У меня есть установка Zimbra, и я хочу укрепить комплекты шифров. Я отключил кое-что и вполне нормально с тем, что осталось.
Проблема в том, что Qualys SSL test показывает, что многие клиенты будут использовать 3DES, который я оставил доступным только в качестве последнего запасного варианта.
Если я посмотрю на поддерживаемые шифры Android 5 и моего сервера (например), там больше совпадений, и один и тот же набор шифров AES доступен на обоих.
Почему не используется этот шифр AES?
Вот весь результат теста:
Обычно у каждого клиента есть свои предпочтения, какие шифры они поддерживают.
Чтобы придерживаться вашего примера: Android 5.0.0 поддерживает разумное число, но имеет некоторые странные предпочтения, при этом некоторые объективно более слабые шифры предпочтительнее некоторых более сильных.
Согласно сканированию SSL Labs ( «Наборы шифров (отсортированы по силе; у сервера нет предпочтений)» раздел) ваш сервер будет поддерживать только ограниченное количество шифров и не отображает предпочтения, оставляя согласование шифров в первую очередь на клиента, что приводит к TLS_RSA_WITH_3DES_EDE_CBC_SHA (0xa)
Это поведение определяется списком шифров, передаваемым от клиента серверу, где клиент сообщает серверу, какие шифры он поддерживает и какой приоритет имеет каждый из этих шифров. Android, в частности, сделал небезопасный выбор порядка предпочтений своих наборов шифров., предпочитая очень небезопасные шифры защищенным, которые он поддерживает, без объяснения причин.
Я подозреваю, что это выбор дизайна. Выбирая менее вычислительно-ресурсоемкий шифр, вы потребляете меньше энергии и, следовательно, получаете больше времени автономной работы, что потребители замечают и о чем заботятся в смартфонах, и, наоборот, когда речь идет о безопасности, пока конечный пользователь видит эту блокировку. значок, «это безопасно», и это все, что их волнует (если они даже так сильно заботятся).
Итак, они используют 3DES, потому что они предпочитают более слабый шифр, и вы разрешаете его использовать. Единственный способ предотвратить его выбор клиентом с сомнительными предпочтениями - это удалить его.
Чтобы решить проблему, уже описанную @HBrujin и @ HopelessN00b, вы можете установить предпочтительный шифр списка для веб-сервера, который также может иметь предпочтения, а не только клиент. Рекомендую использовать настройки, разработанные Bettercrypto.org проект Прикладное усиление криптографии.
Например. для Apache вы можете использовать
SSLCipherSuite 'EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA'
в ваших настройках для SSL / TLS. Для поддержки 3DES удалите 3DES
из строки, но только если это действительно необходимо и вам нужна поддержка программного обеспечения прошлого века. Эту шифровальную строку можно использовать в бизнес-средах со старым программным обеспечением (что тоже не рекомендуется, но для бизнеса, знаете ли ...).