11. Security Considerations (Sicherheitsüberlegungen)
Alle Sicherheitsprobleme, die für jede kryptografische Anwendung relevant sind, sind für JWS/JWE/JWK-Agenten relevant. Diese Probleme umfassen den Schutz der asymmetrischen privaten Schlüssel und symmetrischen geheimen Schlüssel des Benutzers sowie die Anwendung von Gegenmaßnahmen gegen verschiedene Angriffe.
Alle Sicherheitsüberlegungen in der JWS-Spezifikation gelten auch für diese Spezifikation. Ebenso gelten alle Sicherheitsüberlegungen in XML Encryption 1.1 [W3C.REC-xmlenc-core1-20130411], außer denen, die XML-spezifisch sind.
11.1 Key Entropy and Random Values (Schlüsselentropie und Zufallswerte)
Siehe Abschnitt 10.1 von [JWS] für Sicherheitsüberlegungen zur Schlüsselentropie und Zufallswerten. Zusätzlich zu den dort aufgeführten Verwendungen von Zufallswerten ist zu beachten, dass Zufallswerte auch für Inhaltsverschlüsselungsschlüssel (CEKs) und Initialisierungsvektoren (IVs) bei der Durchführung der Verschlüsselung verwendet werden.
11.2 Key Protection (Schlüsselschutz)
Siehe Abschnitt 10.2 von [JWS] für Sicherheitsüberlegungen zum Schlüsselschutz. Zusätzlich zu den dort aufgeführten Schlüsseln, die geschützt werden müssen, müssen Implementierungen, die Verschlüsselung durchführen, auch Schlüsselverschlüsselungsschlüssel und Inhaltsverschlüsselungsschlüssel schützen. Die Kompromittierung eines Schlüsselverschlüsselungsschlüssels kann zur Kompromittierung aller mit diesem Schlüssel geschützten Inhalte führen. Ebenso kann die Kompromittierung eines Inhaltsverschlüsselungsschlüssels zur Kompromittierung des zugehörigen verschlüsselten Inhalts führen.
11.3 Using Matching Algorithm Strengths (Verwendung passender Algorithmenstärken)
Algorithmen mit passenden Stärken sollten nach Möglichkeit zusammen verwendet werden. Wenn beispielsweise AES Key Wrap mit einer bestimmten Schlüsselgröße verwendet wird, wird empfohlen, AES GCM mit derselben Schlüsselgröße zu verwenden, falls ebenfalls verwendet. Wenn die Algorithmen für Schlüsselverschlüsselung und Inhaltsverschlüsselung unterschiedlich sind, wird die effektive Sicherheit durch den schwächeren der beiden Algorithmen bestimmt.
Siehe auch RFC 3766 [RFC3766] für Informationen über die Bestimmung von Stärken für öffentliche Schlüssel, die zum Austausch symmetrischer Schlüssel verwendet werden.
11.4 Adaptive Chosen-Ciphertext Attacks (Adaptive Chosen-Ciphertext-Angriffe)
Bei der Entschlüsselung muss besonders darauf geachtet werden, dass der JWE-Empfänger nicht als Orakel zum Entschlüsseln von Nachrichten verwendet werden kann. RFC 3218 [RFC3218] sollte für spezifische Gegenmaßnahmen gegen Angriffe auf RSAES-PKCS1-v1_5 konsultiert werden. Ein Angreifer könnte den Inhalt des "alg"-Header-Parameters von "RSA-OAEP" zu "RSA1_5" ändern, um einen Formatierungsfehler zu erzeugen, der erkannt und verwendet werden kann, um den CEK zu rekonstruieren, selbst wenn der CEK mit RSAES-OAEP verschlüsselt wurde. Es ist daher besonders wichtig, alle Formatierungs-, Inhaltsverschlüsselungsschlüssel-, zusätzliche authentifizierte Daten- oder Chiffretextfehler als einen einzigen Fehler zu melden, wenn der verschlüsselte Inhalt abgelehnt wird.
Zusätzlich kann diese Art von Angriff verhindert werden, indem die Verwendung eines Schlüssels auf eine begrenzte Menge von Algorithmen beschränkt wird - typischerweise einen. Dies bedeutet beispielsweise, dass, wenn ein Schlüssel als nur für "RSA-OAEP" markiert ist, jeder Versuch, eine Nachricht mit diesem Schlüssel mit dem "RSA1_5"-Algorithmus zu entschlüsseln, sofort aufgrund ungültiger Verwendung des Schlüssels fehlschlagen sollte.
11.5 Timing Attacks (Timing-Angriffe)
Um die in RFC 3218 [RFC3218] beschriebenen Angriffe zu mildern, darf der Empfänger nicht (MUST NOT) zwischen Format-, Padding- und Längenfehlern beim Verschlüsselungsschlüssel unterscheiden. Es wird dringend empfohlen, dass der Empfänger beim Empfang eines fehlerhaften Schlüssels einen zufällig generierten CEK substituiert und mit dem nächsten Schritt fortfährt, um Timing-Angriffe zu mildern.