web-dev-qa-db-ja.com

SSL操作がコード1で失敗しました:dhキーが小さすぎます

SSLを介してデータベースGoogle Cloud SQLに接続しています。私はそうするためにcodeigniter 3.0を使用していますが、mysqliドライバーはこの機能を可能にするために少し変更されています。

それは何ヶ月もうまく機能しています。しかしjustがこの警告を返し始めました:

Message: mysqli::real_connect(): SSL operation failed with code 1. OpenSSL Error messages: error:14082174:SSL routines:SSL3_CHECK_CERT_AND_ALGORITHM:dh key too small

DH Key is too smallが主な問題ですが、それが何を意味するのかはわかりません。 「キーが小さすぎます」というメッセージとともに、Diffie–Hellmanのキー交換をグーグル検索しましたが、あまり運がありませんでした。

これは、サーバーのキーが改ざんされた兆候ですか?私はそれらの最終更新日を確認しました-異常な最近のアクセスはありません。

私のサーバーがPHPまたはそのサーバー構成にいくつかのアップグレードを行ったために、この問題が発生する可能性がありますが、それが他のものではないことを確認して確認したかったのです。

主題に関する洞察/読みやすい資料をありがとう。

6
markbratanov
... error:14082174:SSL routines:SSL3_CHECK_CERT_AND_ALGORITHM:dh key too small

関心のあるエラー番号は、OpenSSLエラー0x14082174です。

SSL3_CHECK_CERT_AND_ALGORITHMは通常、輸出グレードの暗号を有効にすると表示されます。 Logjamが原因で、非輸出グレードの交渉で再度表示される可能性があります(以下を参照)。


DHキーが小さすぎることが主な問題だと思いますが、それが何を意味するのかはわかりません。 「キーが小さすぎます」というメッセージとともに、Diffie–Hellmanのキー交換をグーグル検索しましたが、あまり運がありませんでした。

これは、最近の Logjam攻撃 の論文によるものです Imperfect Forward Secrecy:How Diffie-Hellman Fails in Practice

2048ビットのDiffie-Hellmanグループ以上を使用する必要があります。 512ビットまたは1024ビットのDiffie-Hellmanグループを使用しているではない必要があります。

最初に確認することは、暗号リスト文字列です。次のようになります。

"HIGH:!aNULL:!MD5:!RC4"

輸出グレードの暗号を避け、最新の暗号を使用します。ただし、DHコールバックが弱い/小さいフィールドサイズを使用していないことを確認する必要もあります。そのためには、サーバー構成を確認する必要があります。


一部の人々はkRSAで問題を「解決」しています。 kRSAはキーtransportスキームであり、キーagreementスキーム。 RSAキートランスポートスキームは前方秘密性を提供しないため、通常、その使用は推奨されません。実際、それはTLS 1.3から削除される予定です。

保護されているデータに依存するため、「通常は推奨されません」としか言えません。公開されているファイルのダウンロードを保護するSSL/TLSがある場合は、おそらく使用しても問題ありません。あなたのウェブサイトにログインがある場合、パスワードは秘密にされたデータであるため(おそらく一般にダウンロード可能なファイルとは異なり)、それを使用することはおそらく少し危険です。

キーの転送を回避し、それらに合格するには Qualsys SSL Labs Webサーバー構成のテストと機密性を転送するには、次を使用します。

"HIGH:!aNULL:!kRSA:!MD5:!RC4"

Apache構成ファイルでは、次のようになります。

# cat /etc/httpd/conf.d/ssl.conf | grep SSLCipherSuite
# SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLCipherSuite HIGH:!aNULL:!kRSA:!MD5:!RC4

論文が発表されるかなり前に、少人数のグループを拒否したwgetを思い出したようです。それはあなたのサイトにとって良いテストケースになるかもしれません。

改良された sslscan もあり、多くのことをテストします。それも良いQAツールになるかもしれません。

10
jww