Готовим Nginx к PCI Compliance

от автора

Всем привет.

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; 

Если версия вашего nginx ниже 1.0.5, то стоит добавить:

ssl_protocols           SSLv3 TLSv1; 

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

www.ssllabs.com/ssltest/

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

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

ссылка на оригинал статьи http://habrahabr.ru/post/173125/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *