web-dev-qa-db-ja.com

暗号リストをOpenSSL s_clientに渡す方法

暗号リストをOpenSSLに渡す方法s_clientプログラム?

これで単一の暗号を渡すことができます:

openssl s_client -cipher 'ECDHE-RSA-AES256-SHA' -connect www.google.com:443

しかし、複数の暗号のリストを渡す方法は?

5
Rahul_cs12

OpenSSLのドキュメントには多くの情報が不足していますが、この部分は実際には十分に文書化されています。 s_clientのmanページ から:

-cipher暗号リスト

これにより、クライアントから送信された暗号リストを変更できます。サーバーは使用する暗号スイートを決定しますが、クライアントが送信したリストでサポートされている最初の暗号を使用する必要があります。詳細については、ciphersコマンドを参照してください。

また、前述の 暗号のドキュメント には、実際に暗号リストの形式、暗号文字列、および暗号スイート名に関する多くの詳細が記載されています。実際、ドキュメンテーションは非常に広範囲なので、この回答に含めるよりも、それを読む方がはるかに優れています there

4
Steffen Ullrich

Steffen Ullrichには 言及 があるため、暗号のlist-cipherオプションに渡すことができます s_client 。これは単一のアイテムではなく、仕様であり、nginx ssl_ciphers オプション、またはApache SSLCipherSuite オプションにも使用できます。

スペース、コンマ、またはコロン区切り文字を使用して、複数の暗号を渡すことができます。例:

openssl s_client -cipher ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES256-GCM-SHA384 \
    -connect example.com:443

上記のリストは、2つの特定の暗号を指定しています。暗号のグループを渡すこともできます。以下は、認証済みの強調ECDH鍵合意(ECDH)、認証用のRSA、および「高」暗号化と見なされる暗号スイートのみを必要とする暗号リスト仕様の例です。

openssl s_client -cipher ECDH+aRSA+HIGH -connect example.com:443

これは何に拡張されますか? openssl ciphersコマンドは、この目的で使用できます。

$ openssl ciphers ECDH+aRSA+HIGH
ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA

より冗長に:

$ openssl ciphers -v ECDH+aRSA+HIGH
ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AESGCM(256) Mac=AEAD
ECDHE-RSA-AES256-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AES(256)  Mac=SHA384
ECDHE-RSA-AES256-SHA    SSLv3 Kx=ECDH     Au=RSA  Enc=AES(256)  Mac=SHA1
ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AESGCM(128) Mac=AEAD
ECDHE-RSA-AES128-SHA256 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AES(128)  Mac=SHA256
ECDHE-RSA-AES128-SHA    SSLv3 Kx=ECDH     Au=RSA  Enc=AES(128)  Mac=SHA1
ECDHE-RSA-DES-CBC3-SHA  SSLv3 Kx=ECDH     Au=RSA  Enc=3DES(168) Mac=SHA1

詳細は ciphersマニュアルページ をご覧ください。

5
Lekensteyn

これは、たとえば、構文はまったく同じです。 ApacheのSSLCipherSuite構成設定、または多くの同様の構成スイッチ。リストの例:EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:!SSLv2:!SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA

重要な文字に注意してください:

:
+
!
3
Tomasz Klim