DH キーとは何ですか? #
Diffie-Hellman(DH)鍵は、信頼できないネットワーク上で秘密鍵を安全に交換するために使用される暗号化方式です。DH鍵では、2者がそれぞれ独立して公開鍵と秘密鍵のペアを生成し、公開鍵を共有することで、秘密鍵を送信することなく共有秘密鍵を導出できます。この共有秘密鍵は暗号化に使用され、2者間の通信の機密性と整合性を確保します。DH鍵交換は、SSL/TLS、SSH、VPNなどの安全な通信プロトコルの基本的な構成要素であり、盗聴を防ぎ、安全なデータ転送を保証します。
ECDHE キーとは何ですか? #
一方、ECDHE(Elliptic Curve Diffie-Hellman Ephemeral)は、SSL/TLSなどのセキュア通信プロトコルで二者間における安全かつ効率的な接続を確立するために使用される暗号鍵交換方式です。楕円曲線暗号技術を活用することで、安全な暗号鍵交換を実現します。ECDHEは、セッションごとに一時的な鍵ペアを生成することでPerfect Forward Secrecy(完全前方秘匿性)を実現し、あるセッションの鍵が漏洩した場合でも、他のセッションのセキュリティが侵害されることはありません。この方式は、短い鍵長で強力なセキュリティレベルを実現するため、計算効率が高く、セキュアなWebブラウジングやメール暗号化など、さまざまなアプリケーションに適しています。
DHキーが小さすぎるエラーを分析する手順 #
「DH鍵が小さすぎます」というエラーは、SSL/TLSやSSHなどの暗号化プロトコルの使用時に発生することが多く、安全な鍵交換に弱い、または不十分なDiffie-Hellman鍵サイズが使用されていることを指します。ログメッセージを確認してみましょう。 RELIANOID ロードバランサー。
27月17日 43:20:01 noid-ee-XNUMX ポンド: MyHTTPfarm、BIO_do_handshakeで:443 失敗: エラー:141A318A:SSL ルーチン:tls_process_ske_dhe:dh キーが小さすぎます
特定のバックエンドへの接続時に「DHキーが小さすぎます」というエラーが検出されました。以下のコマンドでSSL接続をテストできます。
root@noid-ee-01:~# openssl s_client -connect:443 -サーバー名 | grep Temp [...] サーバー Temp キー: [...]
その サーバー一時キー 適切に保護されたサービスのためには DH キーの値は 2048 ビットである必要があります。そのため、バックエンドの DH キーのパフォーマンスが低すぎると、「DH キーが小さすぎます」というエラー メッセージが表示されます。
デフォルトでは、ロードバランサのopenssl設定では、TLSv1.2以上とSECLEVEL2が許可されます。これは設定ファイルで定義されています。 /etc/ssl/openssl.cnf.
[system_default_sect] 最小プロトコル = TLSv1.2 暗号文字列 = DEFAULT@SECLEVEL=2
したがって、この問題を解決するには、バックエンド側の暗号を強化し、「ECDHE-RSA-AES256-GCM-SHA384,ECDHE-RSA-AES256-SHA384,ECDHE-RSA-AES256-SHA「。バックエンドのセキュリティ保護されたサービスでこのような暗号が利用可能であることを確認してください。」