2017-06-26 14 views
2

これはIndy server supports SSL 2, but it should notの続きです。デルファイXEベルリン10.1を使用してDelphi Indy SSLパラメータ

、私はレベルの基本的な要件暗号化強度を満たす2つの暗号リストの文字列を発見した:

TLSv1:TLSv1.2:SSLv3:!RC4:!NULL-MD5:!NULL-SHA:!NULL-SHA256:!DES-CBC-SHA:!DES-CBC3-SHA:!IDEA-CBC-SHA 

ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS 

をクアリスSSLlabsとのテストは、のために同じ結果を示していますそれら:彼らは強いですが、:

  • 転送秘密です サポートされていません。

  • 古いブラウザ(特にXPとWin7のIE8)は接続できません(政府機関、病院などのユーザーの中には引き続き使用しているものがあります)。 RC4とDESについて心配していますが、これはこの記事の内容ではありません)。

私の銀行のサービスをQualysでチェックすると、すべての古いブラウザをサポートしていることがわかります。私の質問は、IndyのTIdServerIOHandlerSSLOpenSSLを設定して、私のサーバが同じように動作するようにする方法です。現在の構成では

、私が持っている:

Method := sslvTLSv1_2; 
SSLVersions := [sslvTLSv1,sslvTLSv1_1,sslvTLSv1_2]; 

私はQualysのレポートは私の銀行が同様にTLS 1.1およびTLS 1.0をサポートするように見える一方で私のサーバーは、TLSのみ1.2をサポートしていることを述べていることに気づきます。彼らはSHA256withRSA署名付きのRSA2048鍵を使用します。しかし私もそうです。私は最新のOpenSSL DLLを使用しています。 cipherListは10日前に更新されたHynek Sclawack(hynek.me/articles)のものです。

さらに、古いブラウザも転送秘密もありません。私は何を逃したのですか?

+0

のQualysは、転送秘密についてのブログ記事があります。これは(ので、ここでそれが答えとして行く、暗号リストがコメントのために長すぎる)暗号化方式を使用しました](https://blog.qualys.com/ssllabs/2013/08/05/configuring-apache-nginx-and-openssl-for-forward-secrecy) –

+0

OpenSSLサーバーが複数のTLSバージョンをサポートできる唯一の方法は、 OpenSSLのSSLv23ワイルドカードプロトコルを使用して、クライアントのハンドシェイクとサーバの設定に基づいて動的にTLSバージョンネゴシエーションを実行します。 Indyはあなたが 'Method = sslvSSLv23'を持っているときSSLv23を使います。 'Method = sslvTLSv1_2'を設定するとTLS 1.2だけが強制され(' SSLVersions = [sslvTLSv1_2] 'に設定されます)、' SSLVersions = [sslvTLSv1_2、sslvTLSv1_2] 'を設定すると' Method = sslvSSLv23'が設定され、 TLS 1.xが有効になっています。 –

+0

method = sslvSSLv23をversions = [sslvTLSv1、sslvTLSv1_1、sslvTLSv1_2]と組み合わせて使用​​すると、SSLlabsテストはTLS1.xプロトコルがサポートされていることを示します。しかしまたSSL 3. 私はあなたが正しく読まなければ、そうではないはずです。だから私のコードは何とかしなくてはならない。私はさらに検索します。 method = sslvTLSv1_2を使用すると、TLS1.2プロトコルのみがサポートされます。 – user3212191

答えて

0

Qualys Labsのテストでは、Forward Secrecyを含むAグレードが得られました。転送秘密[Apacheの設定、Nginxは、とOpenSSL:

CipherList := 'ECDHE-RSA-AES256-GCM-SHA384:'+    
    'ECDHE-RSA-AES128-GCM-SHA256:'+    
    'ECDHE-RSA-AES256-SHA384:'+     
    'ECDHE-RSA-AES128-SHA256:'+     
    'ECDHE-RSA-AES256-SHA:'+     
    'ECDHE-RSA-AES128-SHA:'+     
    'DHE-RSA-AES256-GCM-SHA384:'+    
    'DHE-RSA-AES256-SHA256:'+     
    'DHE-RSA-AES256-SHA:'+      
    'DHE-RSA-AES128-GCM-SHA256:'+    
    'DHE-RSA-AES128-SHA256:'+     
    'DHE-RSA-AES128-SHA:'+      
    'DES-CBC3-SHA:'+       
    '!ADH:!EXP:!RC4:[email protected]'; 
+0

私はそれらの暗号を試しました。私が前に示したリストと同じ結果です。興味深いことに、SSLlabsは、使用できる暗号スイートを示しています。あなたのリストにはECDHE暗号が含まれていても、私のサーバーではTLS_RSA_WITH_AES _...しか表示されません。そして、それらは、前方のセキュリティのために必要です。しかし私の銀行のサイト(私の参照)には、TLS_ECDHE_RSA_WITH_AES _...の暗号がリストされています。 私は正しいDLLを使用しているかどうか今は不思議です。 http://indy.fulgan.com/SSL/からlibeay32.dllとssleay32.dllをダウンロードしました.1.0.2kのバージョンをテストしています。 386人だけがバインドしたい(32/64ビットexeでは独立)。 – user3212191

関連する問題