tls-crypt와 tls-auth의 OpenVPN 2.4 보안 차이점

tls-crypt와 tls-auth의 OpenVPN 2.4 보안 차이점

나는 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. 클라이언트는 클라이언트의 임의 값 및 지원되는 암호 제품군과 함께 "클라이언트 안녕하세요"를 서버에 보냅니다.
  2. 서버는 서버의 임의 값 및 선택한 암호 제품군과 함께 "서버 안녕하세요"를 클라이언트에 응답합니다.
  3. 서버는 인증을 위해 클라이언트에 인증서를 보냅니다.
  4. 클라이언트는 서버 ID를 확인합니다.
  5. 클라이언트는 임의의 사전 마스터 비밀을 생성하고 서버 인증서의 공개 키로 암호화합니다.
  6. 클라이언트는 암호화된 사전 마스터 비밀을 서버로 보냅니다.
  7. 서버는 필요한 경우 클라이언트로부터 인증서를 요청할 수 있습니다.
  8. 서버와 클라이언트 모두 사전 마스터 비밀을 기반으로 세션 키를 생성합니다.
  9. 이제 서버와 클라이언트는 세션 키를 사용하여 암호화된 메시지를 교환할 수 있습니다.

tls-auth와 tls-crypt의 차이점은 1단계부터 tls-crypt가 사전 공유 키를 사용하여 모든 메시지를 암호화한다는 것입니다.

이는 다음과 같은 몇 가지 이점을 제공합니다.

  1. OpenVPN 서버와의 TLS 핸드셰이크 초기화를 숨깁니다. 이는 OpenVPN 프로토콜 서명이 감지되어 차단되는 일부 상황에서 유용합니다.
  2. TLS 서비스 거부 공격을 방지합니다. tls-auth를 사용하면 공격자는 수천 개의 TLS 연결을 동시에 열 수 있지만 유효한 인증서를 제공하지 않아 사용 가능한 포트를 방해할 수 있습니다. tls-crypt를 사용하면 서버는 1단계에서 연결을 미리 거부합니다.
  3. 데이터는 tls-crypt로 한 번, TLS 세션으로 한 번, 총 두 번 암호화됩니다.

관련 정보