O.Cryp 1
Beschreibung
Beim Einsatz von Verschlüsselung in der Web-Anwendung DÜRFEN KEINE fest einprogrammierten geheimen, bzw. privaten Schlüssel eingesetzt werden.
Kurzfassung
Keine fest einprogrammierten Schlüssel oder anderweitige Geheimnisse.
Anmerkungen
Prüftiefe
- EXAMINE
Der Evaluator prüft, ob fest einprogrammierte geheime, bzw. private Schlüssel eingesetzt werden.
Lösungsansätze
Just-in-Time-Bereitstellung (JIT): Die Implementierung von JIT-Privilegien ermöglicht es, erweiterte Berechtigungen nur für die Dauer einer Sitzung oder Aufgabe zu gewähren, was die potenzielle Angriffsfläche erheblich reduziert und sicherstellt, dass keine fest einprogrammierten Schlüssel verwendet werden.
import datetime
import random
def grant_JIT_privileges(user, resource, duration):
temporary_credentials = generate_temporary_credentials()
expiry_time = datetime.datetime.now() + datetime.timedelta(seconds=duration)
grant_access(resource, temporary_credentials, expiry_time)
return "Access granted successfully"
def generate_temporary_credentials():
# Beispielhafte Generierung zufälliger Anmeldeinformationen
username = "user_" + str(random.randint(1000, 9999))
password = .join(random.choices('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890', k=12))
return {"username": username, "password": password}
def grant_access(resource, credentials, expiry_time):
# Hier würde die eigentliche Logik stehen, um dem Benutzer Zugriff auf die Ressource zu gewähren
print(f"Granted access to resource {resource} with credentials {credentials} until {expiry_time}")
- Beispielaufruf
grant_JIT_privileges("Alice", "example_resource", 3600) # Zugriff für eine Stunde gewähren
Zero Standing Privileges: Das Prinzip des ZSP besagt, dass niemand oder nichts dauerhaften Zugriff auf Ihre Cloud-Konten und -Daten haben sollte. Dies schließt die Verwendung fest einprogrammierter geheimer Schlüssel aus.