4.3. 公開鍵の長さ (Public Key Length)
本文書で推奨される暗号スイートを使用する場合、通常、TLSハンドシェイクで2つの公開鍵が使用されます: 1つはDiffie-Hellman鍵交換用、もう1つはサーバー認証用です。クライアント証明書が使用される場合、3番目の公開鍵が追加されます。
モジュラ指数 (MODP) Diffie-Hellmanグループに基づく鍵交換 (「DHE」暗号スイート) では、少なくとも2048ビットのDH鍵長が推奨されます (RECOMMENDED)。
理由: さまざまな理由から、実際には、DH鍵は通常、2の累乗の長さ (例: 2^10 = 1024ビット、2^11 = 2048ビット、2^12 = 4096ビット) で生成されます。1228ビットのDH鍵は、わずか80ビットの対称鍵 [RFC3766] にほぼ相当するため、「DHE」暗号スイートファミリーには、それよりも長い鍵を使用する方が良いでしょう。1926ビットのDH鍵は100ビットの対称鍵 [RFC3766] にほぼ相当し、2048ビットのDH鍵は少なくとも今後10年間は十分である可能性があります [NIST.SP.800-56A]。TLSでのMODP Diffie-Hellmanの使用に関する追加情報については、セクション4.4を参照してください。
[RFC3766] で指摘されているように、TWIRLマシンの出現を補正すると、1024ビットのDH鍵は約65ビットの等価強度を生成し、2048ビットのDH鍵は約92ビットの等価強度を生成することになります。
ECDH鍵に関しては、IANA「EC Named Curve Registry」(「Transport Layer Security (TLS) Parameters」レジストリ [IANA-TLS] 内) には、わずか80ビットの対称鍵 [ECRYPT-II] にほぼ相当すると考えられる160ビットの楕円曲線が含まれています。192ビット未満の曲線は使用すべきではありません (SHOULD NOT)。
RSAを使用する場合、サーバーは公開鍵に対して少なくとも2048ビットの係数を持つ証明書を使用して認証すべきです (SHOULD)。さらに、SHA-256ハッシュアルゴリズムの使用が推奨されます (RECOMMENDED) (詳細は [CAB-Baseline] を参照)。クライアントは、TLS 1.2で定義されている「Signature Algorithms」拡張を使用して、SHA-256を要求することをサーバーに示すべきです (SHOULD)。