10. Sicherheitsüberlegungen (Security Considerations)
Sicherheitsüberlegungen wurden an verschiedenen Stellen in diesem Dokument diskutiert.
Wichtige Sicherheitspunkte
Schlüssellänge
Die Sicherheit von RSA-Schlüsseln hängt stark von der Größe des Modulus ab. Empfohlene Mindestschlüssellängen:
- 2048 Bit: aktuell empfohlene Mindestlänge
- 3072 Bit: empfohlen für Anwendungen mit hoher Sicherheit
- 4096 Bit: für Langzeitschlüssel oder extrem hohe Sicherheitsanforderungen
Schemaauswahl
- RSAES-OAEP: das Verschlüsselungsschema für neue Anwendungen MUSS (REQUIRED) unterstützt werden
- RSASSA-PSS: für neue Anwendungen EMPFOHLENES (RECOMMENDED) Signaturschema
- PKCS1-v1_5: nur für Kompatibilität beibehalten, bekannte Schwachstellen vorhanden
Implementierungshinweise
- Zufallszahlengenerierung: muss einen kryptographisch sicheren Zufallszahlengenerator verwenden
- Seitenkanalangriffe: die Implementierung muss Timing-Angriffe und Stromverbrauchsanalysen verhindern
- Fehlerbehandlung: Fehlermeldungen von Entschlüsselungs- und Verifikationsoperationen sollten einheitlich sein, um Informationslecks zu vermeiden
- Padding-Oracle-Angriff: RSAES-PKCS1-v1_5 ist anfällig für Bleichenbacher-Angriffe, bei der Implementierung ist besondere Vorsicht erforderlich
Hash-Funktionen
- Zu vermeiden: MD5, SHA-1 (bereits gebrochen)
- Empfohlen: SHA-256, SHA-384, SHA-512
Schlüsselverwendung
- Einzelner Zweck: ein RSA-Schlüsselpaar sollte nur für ein Schema verwendet werden (Verschlüsselung oder Signatur, nicht mischen)
- Schlüsselrotation: Schlüssel regelmäßig aktualisieren
- Schutz des privaten Schlüssels: der private Schlüssel sollte verschlüsselt gespeichert werden, die Verwendung eines Hardware-Sicherheitsmoduls (HSM) ist Best Practice
Bekannte Angriffe und Verteidigungen
- Angriff mit gewähltem Chiffretext (Chosen Ciphertext Attack): RSAES-OAEP bietet Schutz
- Angriff mit gewählter Nachricht (Chosen Message Attack): RSASSA-PSS bietet Schutz
- Bleichenbacher-Angriff: betrifft RSAES-PKCS1-v1_5
- Timing-Angriff: Vorsicht bei der Verwendung von Algorithmen mit konstanter Zeit und CRT-Beschleunigung erforderlich
Siehe die Diskussion in Abschnitt 6 bezüglich der Vermeidung der Verwendung desselben Schlüsselpaars in mehreren Schemata.