11. Security Considerations (セキュリティに関する考慮事項)
暗号化アプリケーションに関連するすべてのセキュリティ問題は、JWS/JWE/JWKエージェントに関連します。これらの問題には、ユーザーの非対称秘密鍵と対称秘密鍵の保護、およびさまざまな攻撃に対する対策の採用が含まれます。
JWS仕様のすべてのセキュリティ考慮事項も、本仕様に適用されます。同様に、XML Encryption 1.1 [W3C.REC-xmlenc-core1-20130411] のすべてのセキュリティ考慮事項も、XML固有のものを除いて適用されます。
11.1 Key Entropy and Random Values (鍵のエントロピーとランダム値)
鍵のエントロピーとランダム値に関するセキュリティ考慮事項については、[JWS] のセクション10.1を参照してください。そこにリストされているランダム値の使用に加えて、暗号化を実行する際には、Content Encryption Keys (CEK) とInitialization Vectors (IV) にもランダム値が使用されることに注意してください。
11.2 Key Protection (鍵の保護)
鍵の保護に関するセキュリティ考慮事項については、[JWS] のセクション10.2を参照してください。そこにリストされている保護しなければならない鍵に加えて、暗号化を実行する実装は、鍵暗号化鍵とContent Encryption Keyも保護しなければなりません。鍵暗号化鍵の侵害は、その鍵で保護されたすべてのコンテンツの侵害につながる可能性があります。同様に、Content Encryption Keyの侵害は、関連する暗号化されたコンテンツの侵害につながる可能性があります。
11.3 Using Matching Algorithm Strengths (適合するアルゴリズム強度の使用)
可能な限り、適合する強度のアルゴリズムを一緒に使用する必要があります。たとえば、AES Key Wrapが特定の鍵サイズで使用される場合、AES GCMも同時に使用される場合は同じ鍵サイズを使用することが推奨されます。鍵暗号化とコンテンツ暗号化のアルゴリズムが異なる場合、有効なセキュリティは2つのアルゴリズムのうち弱い方によって決定されます。
また、対称鍵の交換に使用される公開鍵の強度を決定する情報については、RFC 3766 [RFC3766] を参照してください。
11.4 Adaptive Chosen-Ciphertext Attacks (適応的選択暗号文攻撃)
復号化時には、JWE受信者をメッセージ復号化のオラクルとして使用できないように特に注意する必要があります。RSAES-PKCS1-v1_5に対する攻撃の具体的な対策については、RFC 3218 [RFC3218] を参照してください。攻撃者は、RSAES-OAEPを使用してCEKが暗号化された場合でも、CEKを回復するために検出および使用できるフォーマットエラーを生成するために、"alg" Header Parameterの内容を "RSA-OAEP" から "RSA1_5" に変更する可能性があります。したがって、暗号化されたコンテンツが拒否されたときに、すべてのフォーマットエラー、Content Encryption Key、Additional Authenticated Data、または暗号文のエラーを単一のエラーとして報告することが特に重要です。
さらに、この種の攻撃は、鍵の使用を限定されたアルゴリズムのセット(通常は1つ)に制限することで防ぐことができます。たとえば、これは、鍵が "RSA-OAEP" のみにマークされている場合、"RSA1_5" アルゴリズムを使用してその鍵でメッセージを復号化しようとする試みは、鍵の無効な使用のために直ちに失敗する必要があることを意味します。
11.5 Timing Attacks (タイミング攻撃)
RFC 3218 [RFC3218] で説明されている攻撃を緩和するために、受信者は暗号化鍵のフォーマット、パディング、および長さのエラーを区別してはなりません (MUST NOT)。不正な形式の鍵を受信した場合、受信者はランダムに生成されたCEKを代用して次のステップに進むことが強く推奨され、これによりタイミング攻撃を緩和します。