На фоне того ужаса что сейчас творится с безопасностью софта, как в плане его кода, так и настроек, решил опубликовать внутренний документ по шифрованию сетевых соединений.
Использование криптографии на эллиптических кривых для ассиметричной криптографии пока выглядит преждевременным. Во-первых есть свидетельства не надёжности кривых от NIST, из-за чего всем предлагается использовать curve25519. А это решение, как минимум, имеет одну серьёзную опасность: взлом или любые проблемы с надёжностью у этой кривой автоматически ставят под угрозу безопасность всех кто её использует. Т.е. это та же самая проблема, что и с использованием для DHE модулей из RFC3526. Во-вторых математическая сложность эллиптических кривых значительно выше, что значительно повышает порог понимания работы алгоритма и способствует его использованию как “чёрного ящика”, что, в области шифрования, крайне не желательно, т.к. значительно облегчает размещение закладок.
В качестве алгоритма цифровой подписи надлежит использовать RSA с длинной модуля в 16384 бит для статических подписей (CA, подписи образов или программ и т.п.) и 8192 бит для динамических (ключи серверов или клиентов в SSH, сертификат сервера в HTTPS и т.п.).
В качестве алгоритма распределения ключей надлежит использовать DHE с размером модуля в 8192 бит и размерами основы и экспонент в 256 бит.
В качестве синхронного шифра везде надлежит использовать AES256. Его основным плюсом, на текущий момент, является поддержка процессорами через набор инструкций AES-NI. Предпочитаемые режимы шифрования это CTR или GCM.
В качестве хеш-финкции надлежит использовать SHA512. Однако в динамических условиях возможно использования SHA256 (особенно с учётом того, что для этого алгоритма Intel готовит соотв. набор инструкций). Использование SHA1 возможно только в динамических условиях, только из-за проблем с совместимостью и только в КРАЙНЕМ случае.