Различия в безопасности OpenVPN 2.4 между tls-crypt и tls-auth

Различия в безопасности OpenVPN 2.4 между tls-crypt и tls-auth

Я читал о tls-crypt и мне стало интересно, повысит ли это безопасность и снизит ли вероятность компрометации ключей во время рукопожатий, и обеспечивает ли это лучшую безопасность по сравнению с tls-auth?

Может быть, кто-то сможет лучше объяснить, что такое tls-auth и tls-crypt и как они повышают безопасность?

мой текущий клиентский файл:

client
tls-client
dev tun
proto udp
remote 1.2.3.4 9999
<ca>
</ca>
<cert>
</cert>
<key>
</key>
pull
auth-nocache 
cipher AES-256-CBC
keysize 256
compress lz4-v2
reneg-sec 36000
keepalive 30 120

решение1

Подтверждение TLS можно более или менее разбить на следующие этапы:

  1. Клиент отправляет серверу «client hello» вместе со случайным значением клиента и поддерживаемым набором шифров.
  2. Сервер отвечает клиенту «server hello», а также передает случайное значение сервера и выбранный набор шифров.
  3. Сервер отправляет свой сертификат клиенту для аутентификации.
  4. Клиент проверяет подлинность сервера.
  5. Клиент создает случайный предварительный секретный ключ и шифрует его с помощью открытого ключа из сертификата сервера.
  6. Клиент отправляет зашифрованный предварительный секретный ключ на сервер.
  7. При необходимости сервер МОЖЕТ запросить сертификат у клиента.
  8. И сервер, и клиент генерируют сеансовый ключ на основе предварительного главного секрета.
  9. Теперь сервер и клиент могут обмениваться зашифрованными сообщениями, используя сеансовый ключ.

Разница между tls-auth и tls-crypt заключается в том, что начиная с шага 1, tls-crypt будет шифровать все сообщения с помощью предварительно предоставленного ключа.

Это дает ряд преимуществ:

  1. Он скрывает инициализацию рукопожатия TLS с сервером OpenVPN. Это полезно в некоторых ситуациях, когда подпись протокола OpenVPN обнаружена и заблокирована.
  2. Он предотвращает атаки TLS-отказ в обслуживании. С tls-auth злоумышленник может открыть тысячи TLS-подключений одновременно, но не предоставить действительный сертификат, забивая доступные порты. С tls-crypt сервер отклонит соединение заранее на шаге 1.
  3. Данные шифруются дважды: один раз с помощью tls-crypt и один раз с помощью сеанса TLS.

Связанный контент