Назад | Перейти на главную страницу

Perfect Forward Secrecy (PFS) для почтовых серверов

Совершенная прямая секретность является важным усовершенствованием связи 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