본문 바로가기
  • Vetheuil in Summer
Tech/TCP IP

WireShark TLS(DH 키교환) 복호화는 거의 어렵다.....

by 눈꽃산행 2024. 1. 23.

결론 : DH 키교환 방식은 복호화는 힘들다.. 어렵다... 

TLS1.2 이하이어야 하고, RSA를 이용한 키교환만 가능하다는 것이다.

 

 

  • SSH HandShark시 Cipher Suite RSA 키 교환방식  --> 복화화 가능 ( 개인키를 등록하여 ~~ )

 

  • SSH HandShark시 Cipher Suite ECDHE ~ 키 교환방식은 불가능

 

최근에는 DHE 와 유사한 타원암호알고리즘(ECC)를 Diffie-Hellman 방식으로 적용한 ECDHE 를 더 많이 사용한다.

다시 정리하면 TLS 에서 주로 사용하는 키 교환 방법은 다음과 같다.

  • DH 방식: DHE, ECDHE
  • RSA 채널로 키전달 방식: RSA

DH 키 교환 방식을 사용한 경우 서버의 private key를 안다고 하여도 중간에서 키를 얻을낼 방법이 없다. 개발 단계에서는 Wireshark 으로 TLS 캡쳐 및 디코딩 하기에서 설명한 것 처럼 TLS library에서 로그 채널로 알려주는 대칭키 값(CLIENT_RANDOM)을 얻어서 디코딩 하여야 한다.

 

https://blog.humminglab.io/posts/how-to-capture-tls-with-wireshark/#master-secret-%EC%9D%84-%EC%96%BB%EC%96%B4%EC%84%9C-%EB%94%94%EC%BD%94%EB%94%A9-%ED%95%98%EA%B8%B0

 

Wireshark 으로 TLS 캡쳐 및 디코딩 하기

프로토콜을 개발하거나 검증하려고 할 때 SSL/TLS 암호화 채널로 전송되는 데이타를 디코딩하여 확인이 필요할 때가 있다. 이 글에서는 시험하려는 프로그램의 수정 없이 또는 최소한의 수정으로

blog.humminglab.io

 

TLS 채널의 초기 셋업 절차는 크게 보면 다음과 같은 절차로 이루어진다.

  • 서버 인증서를 받아서 검증하기
  • 필요하면 클라이언트 인증서를 받아서 검증하기
  • 암호화 방식을 이용하여 대칭키 교환
  • 대칭키를 이용한 암호화된 데이타 송수신

패킷을 분석하기에 필요한 사항은 결국은 위 세번째 과정에서 교환한 대칭키(Master Secret)를 얻는 것이다. 다음은 이를 얻을 수 있는 방법 들을 정리한다.

RSA Private key를 이용한 패킷 디코딩

대칭키를 교환하는 방법은 크게 다음과 같은 두가지 방식을 사용한다.

  • RSA와 같은 비대칭키를 이용하여 대칭키 교환
  • DHKE(Diffie-Hellman Key Exchange) 방식의 키 교환

이들 중 다음과 같은 조건을 만족하는 경우 서버의 RSA private key를 이용하여 디코딩이 가능하다.

  • DH 방식의 키교환은 불가능
  • TLS 1.2 이하 인 경우 가능. TLS 1.3은 불가능
  • 서버 인증서로만 가능
  • TLS handshake message 중 ClientKeyExchange 패킷이 캡쳐 된 경우

간단히 말해서 TLS1.2 이하이어야 하고, RSA를 이용한 키교환만 가능하다는 것이다.

예를들어, AWS IoT 서버와 통신을 하는 경우를 디코딩 하려면, 우선 지원되는 TLS cipher suites 목록을 아래에서 확인할 수 있다.

이들 목록 중 앞부분의 ‘ECDHE-’ 로 시작하는 것을 제외한 AES128-GCM-SHA256, AES128-SHA256, AES128-SHA, AES256-GCM-SHA384, AES256-SHA256 만 사용하도록 제한하여야 한다.

Wireshark의 설정 -> RSA Keys 에 RSA private key를 등록하면 된다. 관련된 설명은 Wireshark - Transport Layer Security (TLS)에 자세히 설명되어 있다.

하지만 이 방식은 서버인증서의 개인키를 가지고 있어야 하는데, 임시 시험용 서버가 아닌 이상 서버의 private key를 얻을 수 있는 방법은 없으므로 실제적으로 활용 가능한 경우는 많이 없다.

 

'Tech > TCP IP' 카테고리의 다른 글

Traffic QoS  (0) 2024.05.02
TCP 커널 파라메터  (0) 2023.08.29
TCP Time-Wait & TCP Port number reused  (0) 2021.09.02
TCP DUMP  (0) 2020.03.26
SSL Handshake ( SNI 프로파일 )  (0) 2019.09.26