Я читал о 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 можно более или менее разбить на следующие этапы:
- Клиент отправляет серверу «client hello» вместе со случайным значением клиента и поддерживаемым набором шифров.
- Сервер отвечает клиенту «server hello», а также передает случайное значение сервера и выбранный набор шифров.
- Сервер отправляет свой сертификат клиенту для аутентификации.
- Клиент проверяет подлинность сервера.
- Клиент создает случайный предварительный секретный ключ и шифрует его с помощью открытого ключа из сертификата сервера.
- Клиент отправляет зашифрованный предварительный секретный ключ на сервер.
- При необходимости сервер МОЖЕТ запросить сертификат у клиента.
- И сервер, и клиент генерируют сеансовый ключ на основе предварительного главного секрета.
- Теперь сервер и клиент могут обмениваться зашифрованными сообщениями, используя сеансовый ключ.
Разница между tls-auth и tls-crypt заключается в том, что начиная с шага 1, tls-crypt будет шифровать все сообщения с помощью предварительно предоставленного ключа.
Это дает ряд преимуществ:
- Он скрывает инициализацию рукопожатия TLS с сервером OpenVPN. Это полезно в некоторых ситуациях, когда подпись протокола OpenVPN обнаружена и заблокирована.
- Он предотвращает атаки TLS-отказ в обслуживании. С tls-auth злоумышленник может открыть тысячи TLS-подключений одновременно, но не предоставить действительный сертификат, забивая доступные порты. С tls-crypt сервер отклонит соединение заранее на шаге 1.
- Данные шифруются дважды: один раз с помощью tls-crypt и один раз с помощью сеанса TLS.