事前共有鍵を使用すると、TLS 1.3ではハンドシェイクがこれまでと異なり、これが性能に影響します。このブログシリーズではwolfSSLのTLS 1.2とTLS 1.3の間に見られる性能の違いと、その利点をアプリケーションへ最大限に取り入れる方法について説明しています。今回はその3回目で、PSKハンドシェイクが一般的にあまり速度に差がないこと、ただDiffie-Hellman鍵交換(DH系)の方が高速になることを説明します。
TLS 1.2では、PSKのハンドシェイクは別の文書(RFC 4279)で定義されています。既存のフロー制御に合わせるため、フル ハンドシェイクが実行されます。 TLS 1.3では、PSKハンドシェイクはセッション再開の ハンドシェイクと同じです。そのためTLS 1.3で必要なハンドシェイクの往復は1つ少なくなります。
このフロー制御の変化は、TLS 1.3の性能に大きな影響を与えます。ハッシュと暗号化/復号化の実施は増えましたが、ハンドシェイクの往復が減るということは、DH系を使わずPSKを使用した場合にはわずかしか遅くなりません。その違いはささいですが、高レイテンシのネットワークではその効果は大です。
PSKでDHまたはECDHを使用するTLS 1.3では、次のハンドシェイク操作が行われます。
秘密鍵は、ServerHelloが送信された後にサーバー上で計算されます。これは、ServerHelloの処理とクライアント上の秘密計算が、サーバーが秘密を計算するのと同時に発生していることを意味します。クライアントとサーバーが同じコンピュータ上で実行されるケースでは、秘密鍵の生成が並列処理で行われることにより、DH使用時のTLS 1.3は TLS 1.2より約25%速くなります。P-256曲線を使ったECDH では約15%速くなります。
DH系を使って安全に事前共有鍵を使用する場合には、wolfSSLではTLS1.3の方が高速であることは明らかです。次のブログでは、TLS 1.3で負荷の高い暗号操作、また鍵生成をしなくていいケースについて説明します。
TLS 1.3の性能 その1 – セッション再開
TLS 1.3の性能 その2 – フルハンドシェイク
さらに詳しい情報は弊社問い合わせ窓口info@wolfssl.jpまでお問い合わせください。
原文: https://www.wolfssl.com/tls-1-3-performance-part-3-pre-shared-key-psk/
wolfSSLホーム:www.wolfssl.jp (English:www.wolfssl.com)