Pull to refresh

Готовим Nginx к PCI Compliance

Information Security
Всем привет.

Cегодня наша цель — подготовка Nginx к прохождению PCI Compliance. Если конкретнее, то 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;


Это делаем, для того, что бы шифрам с CBC-режимом предпочитался RC4-SHA, так как они подвережены уязвимостям.

Посмотреть полный лист шифров можно командой:

openssl ciphers


Исключаем возможность BEAST-атаки CVE-2011-3389:

ssl_prefer_server_ciphers on;


Подключаем кеш SSL сессий, это избавит нас от постоянных SSL handshake при повторных соединениях, и добавит несколько баллов в конечном тесте. В 1 мегабайт кэша помещается около 4000 сессий.

ssl_session_cache shared:SSL:10m;


Для версий 0.7.64, 0.8.18 и более ранних, следует добавить, что бы отключить SSLv2:

ssl_protocols           SSLv3 TLSv1;


В версиях 0.7.65, 0.8.19 и более поздних: протоколами SSL по умолчанию являются SSLv3, TLSv1, TLSv1.1 и TLSv1.2, что нас вполне устраивает.

Идем на тест от SSL Labs и получаем «Grade А» и «PCI Compliance Yes»:

www.ssllabs.com/ssltest

Полезные ссылки:

Nginx.org Настройка HTTPS-серверов
SSL/TLS Deployment Best Practices
SSL Server Rating Guide

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. Пока это все что мы можем сделать со своей стороны и ждать действий со стороны браузеров.
Tags:nginxpci compliancessllabs
Hubs: Information Security
Total votes 88: ↑82 and ↓6 +76
Views24.5K

Popular right now

Cyber Security Engineer[Security team]
from 4,000 to 5,500 $Coins.phRemote job
Python developer
from 150,000 to 150,000 ₽C.NordСанкт-ПетербургRemote job
Security engineer
from 150,000 to 300,000 ₽PleskНовосибирскRemote job
Backend Web Developer
from 70,000 ₽DesignmodoRemote job