PCIコンプライアンスのためのNginxの準備

みなさんこんにちは。



今日、私たちの目標は、PCIコンプライアンスに向けてNginxを準備することです。 具体的には、SSLプロトコルと暗号化。 まあ、または単にSSL接続のセキュリティを強化し、脆弱性を取り除くためです。



必要なのは、設定の一部をこのフォームに取り込むことだけです:)



ssl_certificate /etc/nginx/card.pem; ssl_certificate_key /etc/nginx/card.key; ssl_ciphers RC4:HIGH:!aNULL:!MD5:!kEDH; ssl_session_cache shared:SSL:10m; ssl_prefer_server_ciphers on;
      
      







ただし、いくつかの詳細を追加し、ポイントを検討します。



nginxの最新バージョンを使用している場合、ほとんどの場合、デフォルトで「強力な」暗号が使用されます。 それでも、デフォルト値をわずかに変更します。



 ssl_ciphers RC4:HIGH:!aNULL:!MD5:!kEDH;
      
      







RC4-SHAは脆弱性に対して脆弱であるため、CBCモードの暗号よりRC4-SHAを優先するためにこれを行います。



次のコマンドで暗号の完全なリストを表示できます。



 openssl ciphers
      
      







BEAST攻撃CVE-2011-3389の可能性を排除します



 ssl_prefer_server_ciphers on;
      
      







SSLセッションのキャッシュを接続します。これにより、繰り返し接続中の永続的なSSLハンドシェイクから保護され、最終テストでいくつかのポイントが追加されます。 約4,000セッションが1メガバイトのキャッシュに収まります。



 ssl_session_cache shared:SSL:10m;
      
      







バージョン0.7.64、0.8.18以前の場合、SSLv2を無効にするために追加する必要があります。



 ssl_protocols SSLv3 TLSv1;
      
      







バージョン0.7.65、0.8.19以降では、SSLv3、TLSv1、TLSv1.1、およびTLSv1.2がデフォルトのSSLプロトコルであり、私たちにぴったりです。



SSL Labsからテストに行き、「Grade A」と「PCI Compliance Yes」を取得します。



www.ssllabs.com/ssltest



便利なリンク:



Nginx.org HTTPSサーバーの構成

SSL / TLS展開のベストプラクティス

SSLサーバー評価ガイド



UPD:

RC4の脆弱性が見つかったため( http://blog.cryptographyengineering.com/2013/03/attack-of-week-rc4-is-kind-of-broken-in.html )、ありがとうalist 、OpenSSLをバージョンに更新することをお勧めします1.0.1。GCMおよびTLS 1.2がサポートされています。 今のところ、私たちができることはこれだけで、ブラウザからのアクションを待ちます。



All Articles