У сучасным свеце шыфраванне дадзеных з'яўляецца не проста капрызам, а прамой неабходнасцю. У прыватнасці - шыфраванне http трафіку мае вялікае значэнне для ўсіх сайтаў, дзе вырабляецца апрацоўка любых персанальных дадзеных. А таксама для абароны ад mitm-нападаў.
Такім чынам, выкарыстанне Forward Secrecy на вэб-серверах становіцца абавязковым для кожнага сайта, які працуе па https пратаколе і дазваляе палепшыць ўстойлівасць шыфравання інфармацыі.
Forward secrecy можна адпаведным чынам наладзіць ў nginx.
Выкажам здагадку, у вас ёсць нейкі сайт які павінен падтрымліваць працу па https. Перш за ўсё неабходна стварыць ключ Диффи-Хеллмана.
# Openssl dhparam -out /etc/nginx/ssl/dh-2048.pem 2048
І выставіць адпаведныя правы доступу для яго.
# Chmod 0600 /etc/nginx/ssl/dh-2048.pem
Далей варта наладзіць nginx. Вось прыклад канфігурацыі для сайта, які працуе на ssl.
server {server_name example.com; listen 80; listen 443 ssl; ssl_certificate /etc/nginx/ssl/example.com_crt.pem; ssl_certificate_key /etc/nginx/ssl/example.com_key.pem; ssl_dhparam ssl / dh-2048.pem; ssl_ciphers ECDH: DH:! ADH:! AECDH:! SEED:! DES:! 3DES:! RC4:! NULL; ...}
Разгледзім кожную зменную.
ssl_dhparam - шлях да файла з ключом Диффи-Хеллмана. Можна паказаць шлях, адносна дырэкторыі з канфігурацыйнымі файламі nginx.
ssl_ciphers - шыфры, якія будуць выкарыстоўвацца для ssl злучэнняў. У мяне пазначаны шыфры, падабраныя для prosody . Мінімальная даўжыня ключа складае 128 біт. Ўсе падтрымліваюць forward secrecy.
Пасля налады nginx варта перазапусціць камандай service nginx restart.
Для тэставання налад скарыстайцеся сэрвісам https://www.ssllabs.com/ssltest/index.html . У выніках тэсту, у параграфе «Protocol Details», павінен быць вось такі вынік:
А як на рахунак зваротнай сумяшчальнасці?
Рэкамендую такі наборчык: ECDH: DH: EECDH: + AES256: -3DES: RSA + AES: RSA + 3DES:! NULL:! RC4;