web-dev-qa-db-ja.com

SSL接続の暗号化強度を確認する方法

https urlに接続した場合、接続の暗号強度をどのように判断できますか?私の理解では、非対称公開鍵ハンドシェイクの後、情報は所定の強度の対称鍵を使用して暗号化されますが、その数(128ビットなど)を見つけることができないようです。

私もプロセスについて何か誤解している場合はお知らせください。

編集:私が尋ねる理由は、ステートメントを含むセキュリティ免責事項のテンプレートがあることですこのWebサイトはXXビット暗号化を使用していますそして、私はそれを正しい数で埋めたいのですが。

27
Flash

SSL対称暗号化は、クライアントとサーバー間のネゴシエーションの結果です。構成ファイルを使用して、サーバー側から制限することが可能です。たとえば、 Apache SSL configuration include a

SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

これは、最も強力な暗号化のみを受け入れるように調整することができます。たとえば、次のものだけを要求することができます。

SSLProtocol all -SSLv3 -SSLv2
SSLCipherSuite HIGH:MEDIUM

その他の変数を使用して、クライアント認証などの処理を実行したり、ディレクトリごとの暗号化を要求したりできます。

クライアント側からネゴシエーションを操作することもできます。例として、Firefox SSL設定のチューニングについて少し触れている this link を参照してください。他のブラウザにもこれを行う方法があると思います。

このページ のようです:

サーバーは、クライアントから送信された暗号化アルゴリズムと圧縮アルゴリズムのリストに基づいて、セッションを続行するかキャンセルするかを決定します。両方のリストで少なくとも1つの一致が必要です。一致しない場合、セッションは失敗します。クライアントのリストで最高の位置を占めた暗号の組み合わせは、将来の通信に使用されます。

公式プロトコルを探しています。

18
M'vy

SSL Labs サイトに SSL Server Test ツールがあり、SSL対応のサイトをテストし、既知の脆弱性を含む、そのセキュリティに関する重要な情報(キーの長さなど)を提供します特定の構成に。

13
lew

うーん、使用できるツールはたくさんあります。 Linuxシステムの場合:

ブラウザなどを介してWebサイトへの単一のSSL接続を開始します。

次のコマンドを入力します。

ssldump -i eth0 -p 80

これにより、(特定のインターフェースでSSLトラフィックをダンプすることにより)WebサーバーへのSSLハンドシェイクが明らかになります。ダンプには、使用された暗号スイートが表示されます。

これを探してください:cipherSuite TLS_RSA_WITH_RC4_128_SHA

eth0をデフォルトのイーサネットインターフェースの名前に置き換える必要がある場合があります。

10
user3645

SSLには、「暗号スイートネゴシエーション」と呼ばれる機能が含まれています。クライアントは使用する暗号スイートのリストを提示し、サーバーはそのリストからお気に入りを選択します。一部のブラウザーのコピーを使用してWebサイトをテストすることはできますが、別の誰かが別のブラウザーを別の構成で使用しており、Webサイトがそのユーザーに対してより弱い暗号スイートを使用している可能性があります。

ニーズを満たす暗号スイートのみを使用するようにWebサーバーを構成する方法を理解するには、Webサーバーのドキュメントを確認する必要があります。

6
yfeldblum

ChromeとFirefoxを使用している場合は、URLバーの https:// xxx の左側にあるものをクリックして確認できます。選択された暗号スイート(RC4またはAESなど)と、使用された鍵のサイズが表示されます。

現在、Safari(新しいMacBook Air)を使用していますが、その方法がすぐにわかりません。右上のロックアイコンをクリックすると、証明書のみが表示され、現在の接続の強度は表示されません。

これを行うもう1つの方法は、パケットスニファを使用することです。SSLが保護するはずのまさにそのことです。暗号化アルゴリズムと強度をネゴシエートする最初の数パケットは暗号化されていません。あなたは彼らが接続のために選択した強さを彼らから見ることができます。

3

上記の回答に追加したいのは、必要な結果を得る唯一の方法は、サーバーにネゴシエーションを行わせないか、または行わせず、同じ長さの暗号のみを使用することであるということです。

たとえば、Apacheでは、次のように追加できます。

SSLRequire %{SSL_CIPHER_USEKEYSIZE} = 256

256キーサイズのみを受け入れます。

ただし、サーバーによって許可された暗号スイートを提供していないクライアントは接続できない可能性があるため、注意してください。この方法を使用する場合は、しばらくの間サーバーでsslネゴシエーションエラーを監視して見積もりを行う必要があります。

2
john

クライアントサイド:

Firefoxには拡張機能があります: https://addons.mozilla.org/en-US/firefox/addon/cipherfox/

右クリックして[ページ情報を表示]を選択しても機能します。

サーバーサイド:

参照 SSL接続の暗号化強度を確認するにはどうすればよいですか

2
Tie-fighter

IE-8では、httpsサイトを参照した後、[ファイル]-> [プロパティ]を選択すると、使用されている暗号化のタイプが表示されます。 Firefowの場合は、URLの左側にあるロックアイコンをクリックして、[詳細情報]を選択します。

0
user76905

@ Robert-David-Grahamの回答に追加するには:

Chromeロックアイコンをクリックすると、[開発ツール]> [セキュリティ]タブが表示されます。ページを更新して、ページのセキュリティ情報を取得します。次に、左ナビゲーションを使用して切り替えますメインオリジン(またはその他のオリジン)の概要。接続プロトコル、キー交換、および暗号スイートが表示されます。

Sample LinkedIn home page security info

0
JohnC

暗号スイートは、クライアントとサーバーによって選択されます。

クライアントは、受け入れ可能な暗号スイートのリストを優先順にサーバーに送信します。次に、サーバーは1つを選択し、クライアントに通知します。サーバーはクライアントの設定を尊重することになっていますが、実際にはそうではない場合があります(Apacheでは、「SSLHonorCipherOrder」の設定がこれを制御します)。

ほとんどのブラウザは、どの暗号スイートが使用されているかを確認する方法を提供します。たとえば、Firefoxでは、アドレスバーの横にあるアイコンをクリックします。次に、横向きの矢印をクリックしてから、詳細情報をクリックします。たとえば、Googleから取得します。

TLS_ECDHE_RSA_WITH_AES128_GCM_SHA256

その文字列にはさまざまな情報があります(完全な説明が必要な場合はググってください)が、この質問の重要なビットは「AES128-GCM」です。これは、暗号化アルゴリズムがGCMモードのAES 128(つまり128ビット暗号化)であることを示しています。

私が尋ねる理由は、ステートメントを含むセキュリティ免責事項のテンプレートを持っているということです。このWebサイトはXXビット暗号化を使用しており、正しい番号を入力したいと思います。

あなたが提案するものの危険は、選択された暗号化アルゴリズムがクライアントに依存することです。たとえば、WindowsのSSL/TLSスタックでサポートされている最悪の暗号化アルゴリズムXP(特にIEで使用される)は3DESであり、112ビットの有効なセキュリティレベルがあると見なされます。

0
Peter Green