web-dev-qa-db-ja.com

RSAキー交換を使用したTLS暗号スイートのRSAキーサイズ

TLS暗号スイートを使用していますTLS_RSA_WITH_AES_256_CBC_SHA56。サーバーの証明書の公開鍵はRSA(2048ビット)です

ここでは、RSAアルゴリズムが鍵の交換と認証に使用されていることを理解しています。

証明書にRSA 2048ビットの公開キーが含まれているという事実は、キー交換と認証の両方に使用されるRSAキーの長さが2048ビットであることを意味しますか?

2
Drew

はい、それはまさにそれを意味します。

このプロトコルのプリマスターシークレットは、クライアントによってランダムに生成されます。単純に クライアントの証明書の公開鍵を使用して暗号化 であり、対応する秘密鍵を使用してサーバーによって復号化されます。プレマスターシークレットは、マスターシークレットとセッションキーの計算に使用されます。

サーバーから送信されたFinishedメッセージは、サーバーがプレマスターシークレットを復号化してすべてのキーマテリアルを導出できたことを示しています。完成したメッセージには、派生キーの1つを使用してすべてのメッセージにMACが含まれています。

これについては、セクション F.1.1.2。RSA鍵交換と認証 で説明しています。

...

サーバーの証明書を検証した後、クライアントは
pre_master_secretとサーバーの公開鍵。正常に
pre_master_secretをデコードし、正しいFinishedを生成する
メッセージ、サーバーは秘密鍵を知っていることを示します
サーバー証明書に対応。

...

同じ鍵ペアの公開鍵と秘密鍵の鍵サイズは常に同じです。 RSAの場合、これは、係数を符号なしの値としてエンコードするために必要な最小ビット数と同じです。

キーの交換とエンティティ認証に使用されるRSA暗号化と復号化操作は1つしかないことに注意してください。これらは個別のRSA操作ではありません。認証部分にもMACが必要です。それ以外の場合、クライアントはサーバーが実際にプリマスターシークレットを正しく復号化したことを認識しません。プロトコルは、最初のメッセージを受信して​​そのMACを検証するときにimplicit認証も行った可能性がありますが、幸い、そうではありませんでした。

4
Maarten Bodewes