SSLを使用したnginxの暗号の設定に関するアドバイスを探しています。
現時点でセキュリティと互換性の間の適切な妥協のために何をお勧めしますか?
私はいくつかの調査を行いましたが、解決策は時々非常に異なり、混乱します。
たとえば、このサイト https://cipherli.st/ は以下のみを推奨します。
AES256+EECDH:AES256+EDH
それが使えないとエラーになるということですか?それでは少し制限が多すぎませんか?
Mozilla より大きなリストを推奨します:
それらの中で、順序が重要であることを理解したので、AES128はAES256よりも好ましいようです。
入手可能であればAES256の方がいいのでは?なぜ彼らは最初にそれらを置かないのですか?
ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK
ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
この post は、Mozillaと比較して非常に小さなリストを推奨します。
MozillaでのECDH
とVs .ECDHE
の違いは何ですか?
ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;
コモド はまた違う何かをお勧めします:
ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4
さて、私は少し迷っています。私はこの投稿を見つけました( セキュリティ、互換性のために推奨されるssl_ciphers-Perfect Forward secrecy )が、多くのバージョンがあり、それらを分類するのは簡単ではないため、役に立ちません。
何かアドバイス?
ありがとう
リンク先のMozillaサーバー側TLSガイドは、暗号スイートの選択について従うべき優れたリソースです。 TLSの新しい脆弱性が出現し、Mozillaが推奨事項を最新の状態に保つのに優れているように見えるため、暗号スイートの選択は変更されます。
人々は大きい方が良いと思う のため、AES-128が一般的に好まれます。 AES-128とAES-256はどちらも既知の攻撃に対して安全であり、AES-128ではなくAES-256を使用すると、無視できないパフォーマンスコストが発生します。
ECDHEはephemeralキーを使用しますが、ECDHは使用しません。したがって、ECDHは perfect forward secrecy を提供しますが、ECDHは提供しません。
私のnginx /etc/nginx/perfect-forward-secrecy.confには以下があり、SSLラボでAグレードを取得しています。ただし、証明書はSHA256である必要があります。
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL
!LOW !3DES !MD5 !EXP !PSK !SRP !DSS !MEDIUM !RC4";
ssl_dhparam /my/path/to/dh4096.pem;
最新のブラウザはTLSをサポートしているため、Poodleの脆弱性のため、個人的にSSLv3を無効にし、RC4ベースの暗号で実行するつもりはありません。