Совершенная прямая секретность является важным усовершенствованием связи SSL / TLS, помогая предотвратить расшифровку захваченного трафика SSL, даже если у злоумышленника есть закрытый ключ. Его достаточно легко поддерживать на веб-серверах, но он также применим к любому другому контексту SSL, например, к почтовым серверам для SMTP, POP3 и IMAP.
Это недавно (сентябрь 2014 г.) достигло апогея в Германии, где органы по защите данных начали проверяющие и штрафные организации которые не поддерживают PFS на своих почтовых серверах, наряду с уязвимостями heartbleed и poodle. Поддержка PFS в веб-браузерах несколько неоднородна, хотя все основные из них поддерживают ее, но я ищу информацию о совместимости PFS на почтовых серверах и клиентах, в идеале что-то вроде SSL LabsТесты рукопожатия предоставляют, но для почтовых серверов.
Может ли кто-нибудь предоставить или указать мне хорошие источники совместимости с PFS почтового сервера?
Чтобы уточнить, я не собираюсь опрашивать конкретный сервер, но хочу увидеть результаты такого тестирования на большом количестве различных серверов, например, было бы полезно знать, что Outlook 2003 не поддерживает ECDHE или что Android 2 не допускает параметров DH более 2048 бит (я не знаю, верны ли они, это просто примеры). Преимущество этого заключается в том, чтобы знать, что если я решу отключить какой-либо конкретный шифр, то на каких клиентов это может повлиять, точно так же, как тесты лаборатории SSL показывают для веб-клиентов.
Преимущество этого заключается в том, что если я решу отключить какой-либо конкретный шифр, то на каких клиентов это может повлиять, точно так же, как лабораторные тесты SSL показывают для веб-клиентов.
Вам не нужно ограничивать себя конкретным шифром, вместо этого просто активируйте все приемлемые для вас шифры в том порядке, в котором вы их предпочитаете. Полученный шифр будет согласован между клиентом и сервером в зависимости от поддерживаемых шифров на обоих сайтах. Не ограничивайте себя ненужным.
Что касается шифров, обычно используемых на стороне сервера, вы можете взглянуть на Количественная оценка качества поддержки TLS где я проанализировал поддержку TLS для SMTP с первых 1 млн сайтов по данным Alexa, то есть около 600000 почтовых серверов с включенным TLS. Согласно моим тестам, около 33% серверов используют шифры ECDHE и 52% шифры DHE, так что 85% используют прямую секретность.
И для получения дополнительной информации об используемых шифрах, которые вы не найдете в исследовании, вот подробный список шифров, согласованных при использовании с набором шифров DEFAULT OpenSSL 1.0.1:
100.00% 600433 TOTAL
29.53% 177285 DHE-RSA-AES256-GCM-SHA384
21.20% 127304 ECDHE-RSA-AES128-GCM-SHA256
20.62% 123804 DHE-RSA-AES256-SHA
7.65% 45919 AES256-SHA
6.40% 38404 ECDHE-RSA-AES256-GCM-SHA384
4.42% 26558 AES256-GCM-SHA384
4.36% 26189 ECDHE-RSA-AES256-SHA384
1.76% 10586 AES128-SHA
1.17% 7003 RC4-SHA
0.93% 5577 DHE-RSA-AES256-SHA256
0.90% 5389 ECDHE-RSA-AES256-SHA
0.56% 3372 DHE-RSA-CAMELLIA256-SHA
0.19% 1137 RC4-MD5
0.08% 503 EDH-RSA-DES-CBC3-SHA
0.08% 454 DES-CBC3-SHA
0.07% 444 AES128-SHA256
0.04% 235 DHE-RSA-AES128-GCM-SHA256
0.01% 82 AES128-GCM-SHA256
0.01% 59 AES256-SHA256
0.01% 53 DHE-RSA-AES128-SHA
0.00% 23 ECDHE-RSA-AES128-SHA
0.00% 14 DHE-DSS-AES256-SHA
0.00% 11 ECDHE-RSA-AES128-SHA256
0.00% 10 ECDHE-RSA-RC4-SHA
0.00% 10 ECDHE-RSA-DES-CBC3-SHA
0.00% 4 DHE-DSS-AES256-GCM-SHA384
0.00% 2 CAMELLIA256-SHA
0.00% 1 DHE-RSA-SEED-SHA
0.00% 1 AECDH-DES-CBC3-SHA
Пожалуйста, проверьте бесплатный скрипт, написанный фирмой, где один из высококвалифицированных людей в Security SE работает: https://labs.portcullis.co.uk/tools/ssl-cipher-suite-enum/
ssl-cipher-suite-enum определяет следующие общие проблемы безопасности, связанные с SSL: ... Поддержка алгоритмов обмена ключами, которые не поддерживают прямую секретность - или, что эквивалентно, наборов шифров, которые позволяют ретроспективно дешифровать перехваченный трафик, если частный SSL ключ должен был быть скомпрометирован.
Если вы хотите делать это медленно и вручную, openssl
Набор инструментов portmanteau очень удобен:
Из https://community.qualys.com/thread/12193:
openssl s_client -starttls smtp -crlf -connect YOUR_SMTP_SERVER:25
Если вы видите DHE (Diffie-Hellmann Ephemeral) в наборе шифров, это PFS.
Из эта почта в Security SE
TLS_DHE_DSS_WITH_DES_CBC_SHA DHE-DSS-CBC-SHA
TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA DHE-DSS-DES-CBC3-SHA
TLS_DHE_RSA_WITH_DES_CBC_SHA DHE-RSA-DES-CBC-SHA
TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA DHE-RSA-DES-CBC3-SHA
TLS_DHE_DSS_WITH_AES_128_CBC_SHA DHE-DSS-AES128-SHA
TLS_DHE_DSS_WITH_AES_256_CBC_SHA DHE-DSS-AES256-SHA
TLS_DHE_RSA_WITH_AES_128_CBC_SHA DHE-RSA-AES128-SHA
TLS_DHE_RSA_WITH_AES_256_CBC_SHA DHE-RSA-AES256-SHA
TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA DHE-DSS-CAMELLIA128-SHA
TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA DHE-DSS-CAMELLIA256-SHA
TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA DHE-RSA-CAMELLIA128-SHA
TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA DHE-RSA-CAMELLIA256-SHA
TLS_DHE_DSS_WITH_SEED_CBC_SHA DHE-DSS-SEED-SHA
TLS_DHE_RSA_WITH_SEED_CBC_SHA DHE-RSA-SEED-SHA
Если мы включим шифры Elliptic Curve, следующее также реализует PFS:
TLS_ECDHE_RSA_WITH_NULL_SHA ECDHE-RSA-NULL-SHA
TLS_ECDHE_RSA_WITH_RC4_128_SHA ECDHE-RSA-RC4-SHA
TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA ECDHE-RSA-DES-CBC3-SHA
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA ECDHE-RSA-AES128-SHA
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA ECDHE-RSA-AES256-SHA
TLS_ECDHE_ECDSA_WITH_NULL_SHA ECDHE-ECDSA-NULL-SHA
TLS_ECDHE_ECDSA_WITH_RC4_128_SHA ECDHE-ECDSA-RC4-SHA
TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA ECDHE-ECDSA-DES-CBC3-SHA
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA ECDHE-ECDSA-AES128-SHA
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA ECDHE-ECDSA-AES256-SHA
Если вы также хотите включить TLS 1.2 (обратите внимание, что нет специальных пакетов TLS 1.1), вы можете расширить список, включив в него:
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 DHE-RSA-AES128-SHA256
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 DHE-RSA-AES256-SHA256
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 DHE-RSA-AES128-GCM-SHA256
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 DHE-RSA-AES256-GCM-SHA384
TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 DHE-DSS-AES128-SHA256
TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 DHE-DSS-AES256-SHA256
TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 DHE-DSS-AES128-GCM-SHA256
TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 DHE-DSS-AES256-GCM-SHA384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 ECDHE-RSA-AES128-SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 ECDHE-RSA-AES256-SHA384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 ECDHE-RSA-AES256-GCM-SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 ECDHE-ECDSA-AES128-SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 ECDHE-ECDSA-AES256-SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 ECDHE-ECDSA-AES128-GCM-SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 ECDHE-ECDSA-AES256-GCM-SHA384
TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 ECDHE-ECDSA-CAMELLIA128-SHA256
TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 ECDHE-ECDSA-CAMELLIA256-SHA384
TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 ECDHE-RSA-CAMELLIA128-SHA256
TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 ECDHE-RSA-CAMELLIA256-SHA384