Если я правильно понимаю из OpenVPN 2.4 руководство, если используется ECDH TLS cipher suites
тогда они могут установить dh none
. Это будет иметь тот же уровень безопасности (или лучше), что и использование ключа dh, это правильное предположение?
Что касается tls-auth, в руководстве говорится: «Вместо этого используйте –tls-crypt, если вы хотите использовать файл ключа не только для аутентификации, но и для шифрования канала управления TLS».
В настоящее время я делаю НЕ иметь tls-auth
или tls-crypt
настройка в конфигурации, но в журналах я вижу
Control Channel: TLSv1.2, cipher TLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384, 521 bit EC, curve: secp521r1
Означает ли это, что tls-crypt
опция НЕ нужна, если используется эллиптическая кривая? или что делает дополнительная безопасность tls-crypt
добавить, если канал управления уже зашифрован даже без этой опции? и какая разница, если используется UDP или TCP?
Спасибо!
ECDH
и DH
оба варианта Обмен ключами Диффи-Хеллмана и требуют абелева группа с вычислительно сложным делением. Тем не мение:
Создание хороших конечных полей для DH
алгоритм относительно прост (хотя и требует много времени), поэтому OpenVPN просит вас сделать это с openssl dhparam
и обеспечить результат dh <filename>
. Таким образом, вы не используете предопределенные группы, которые могут подпадать под действие Тупиковая атака, что находится в пределах бюджета АНБ. Однако факторизация в конечных полях - хорошо изученная тема, поэтому DH
медленнее, чем ECDH
с сопоставимым уровнем безопасности.
Создать хорошие эллиптические кривые сложно, поэтому вы должен использовать предопределенные и нет ecdh <filename>
вариант. Для dh
вариант, вы можете использовать dh none
с эллиптическими кривыми. Деление на эллиптической кривой развито не очень хорошо, поэтому для обеспечения такого же уровня безопасности, как DH
в настоящее время вам нужны кривые меньшего размера.
Даже без tls-auth
или tls-crypt
варианты, ваш данные воля всегда быть зашифрованным. В TLS
Протокол шифрует данные с помощью ключа, полученного при обмене ключами, как и в предыдущем пункте. Эти параметры определяют, что делать с 4 пакетами Рукопожатие TLS:
Обычно (как в HTTPS
протокол) они не зашифрованы, так как одноранговые узлы не знают друг друга заранее. Но с OpenVPN у вас есть преимущество: вы можете настроить на сервере и всех авторизованных клиентах общий симметричный ключ, который подпишет или зашифрует эти 4 пакета.
Это позволит серверу сбросить все неподписанные ClientHello
Сообщения, перед даже выделяя ресурсы для вычислительно тяжелый TLS
протокол. Следовательно, ему будет легче пережить DDoS
атака, при которой злоумышленник инициирует тысячи подключений одновременно.
С помощью tls-auth
похож на настройку общего WEP
ключ в сети Wi-Fi вместе с каждым клиентом WPA-Enterprise
аутентификация. Главное отличие в том, что WEP
шифрование сильно нарушено, тогда как HMAC
подписи или AES
шифрование нет. Следовательно, вы не сможете воспроизвести вышеупомянутую конфигурацию в сети Wi-Fi (она не поддерживается программным обеспечением).
В UDP
против TCP
выбор не составляет труда: используйте UDP
как только возможно. TCP
гарантирует, что все отправленные IP-пакеты не будут потеряны и будут доставлены в том порядке, в котором они были отправлены.
Звучит хорошо, но твой VPN
туннель также будет транспортировать внутренние TCP
соединения. Если пакет потерян, оба OpenVPN
клиент и программа, установившая внутренний TCP
соединение начнется ретрансляция. Однако повторно переданные пакеты из внутреннего соединения прибудут к месту назначения. после те, которые ретранслируются OpenVPN
были доставлены. Это вызывает ненужный сетевой трафик.
редактировать: Сравнение силы DH
и ECDH
доступен, например, на Keylength.com:
необходимый размер DH
группа находится в столбце Discrete Logarithm Group
,
размер эллиптической кривой с эквивалентной прочностью указан в столбце Elliptic Curve
,
Например, следующая конфигурация эллиптических кривых:
ecdh-curve prime256v1
эквивалентно генерированию DH
параметры с openssl dhparam -out /etc/openvpn/dh.pem 3072
и используя:
dh /etc/openvpn/dh.pem
Значения, указанные в рекомендациях NIST, примерно соответствуют Уровни безопасности OpenSSL. Уровень безопасности по умолчанию: 1-й уровень, что означает минимум 2048
биты для DH
группы и 224
биты для эллиптических кривых. Вы можете увеличить его, используя tls-cipher
вариант (ср. Документация OpenSSL для формата). Например. настройка:
tls-cipher DEFAULT:@SECLEVEL=4
приведет к сбою соединений OpenVPN до тех пор, пока вы не отрегулируете два вышеуказанных параметра на требуемый размер группы (7680
для DH
и 384
для ECDH
).