Articles

TLS

Tls(Transport Layer Security)는 두 호스트 간의 통신에 보안을 제공합니다. 무결성,인증 및 기밀성을 제공합니다. 웹 브라우저에서 가장 일반적으로 사용되지만 tcp 를 전송 계층으로 사용하는 모든 프로토콜과 함께 사용할 수 있습니다.

SSL(Secure Sockets Layer)은 TLS 프로토콜의 전신입니다. 이러한 이름을 자주 사용되는 같은 의미로 이어질 수 있는 혼란을 일:

  • 구성을 사용하는 SSL 프로토콜(SSLv2/SSLv3)는 안전하지 않습니다. 대신 TLS 프로토콜을 사용해야합니다.

  • 인증을위한 x.509 인증서는 때때로 SSL 인증서라고도합니다.

  • 일부 응용 프로그램(예:이메일)사용하는 단 하나 항구 모두에 대한 암호화된 암호화되지 않고 세션이 있습니다. 암호화되지 않은 상태에서 암호화 된 상태로 변경하려면(시작)TLS 가 사용됩니다. 단일 포트가 TLS 프로토콜을 직접 사용하는 경우 종종 SSL 이라고합니다.

  • 역사적인 이유로 소프트웨어(Wireshark 포함)는 SSL 또는 SSL/TLS 를 참조하지만 실제로는 tls 프로토콜을 의미합니다.

프로토콜 종속성

  • TCP: 일반적으로 TLS 는 tcp 를 전송 프로토콜로 사용합니다.

TLS 해부에서 Wireshark

TLS 해부학자가 완전히 기능적인 지원과 같은 고급 기능을 TLS 암호 해독하는 경우 적절한 비밀 제공(#TLS_Decryption).

Wireshark3.0 이후 TLS 해부 기가 SSL 에서 TLS 로 이름이 바뀌 었습니다. Ssl 표시 필터를 사용하면 경고가 표시됩니다.

TLS 암호 해독

Wireshark 는 적절한 비밀이 제공 될 때 TLS 암호 해독을 지원합니다. 사용 가능한 두 가지 방법은 다음과 같습니다.

  • 키를 사용하여 로그 파일당 세션의 비밀(#Using_the_.28Pre.29-마스터-비밀).

  • Rsa 개인 키를 사용하여 암호 해독.

키 로그 파일은 Diffie-Hellman(DH)키 교환이 사용 중이더라도 항상 암호 해독을 가능하게하는 보편적 인 메커니즘입니다. RSA 개인 키는 제한된 수의 경우에만 작동합니다.

키 로그 파일은 SSLKEYLOGFILE 환경 변수가 설정 될 때 Firefox,Chrome 및 curl 과 같은 응용 프로그램에서 생성 된 텍스트 파일입니다. 정확히 말하면 기본 라이브러리(NSS,OpenSSL 또는 boringssl)는 필요한 세션 당 비밀을 파일에 씁니다. 이 파일은 이후에 Wireshark(#Using_the_.28Pre.29-마스터-비밀).

rsa 개인 키 파일은 다음 상황에서만 사용할 수 있습니다.

  • 서버에서 선택한 암호 제품군은(EC)DHE 를 사용하지 않습니다.
  • 프로토콜 버전은 SSLv3,(D)TLS1.0-1.2 입니다. TLS1.3 에서는 작동하지 않습니다.

  • 개인 키는 서버 인증서와 일치합니다. 클라이언트 인증서도 Ca(인증 기관)인증서도 작동하지 않습니다. 세션이 재개되지 않았습니다. 핸드셰이크는 ClientKeyExchange 핸드셰이크 메시지를 포함해야 합니다.

키 로그 파일은 일반적으로 권장 작동하기 때문에 모든 경우에,그러나 필요한 지속적인 능력을 내보내 비밀 중 하나에서 클라이언트는 서버 응용 프로그램입니다. 만의 장점 RSA 전용 키가 필요로 하는 구성해야에서 한 번만 Wireshark 사용하는 암호 해독,위의 제한 사항이 있습니다.

환경 설정

편집->환경 설정으로 이동하십시오. 프로토콜 트리를 열고 TLS 를 선택하십시오. 또한,선택 TLS 패킷에서 패킷 목록,마우스 오른쪽 버튼으로 클릭 TLS 층에 패킷을 상세정보 보기 및 열 프로토콜 환경설정 메뉴입니다.

주목할만한 TLS 프로토콜 기본 설정은 다음과 같습니다.

  • (Pre)-Master-Secret log filename(tls.keylog_file):암호 해독을 위해 TLS 키 로그 파일을 읽는 경로.
  • RSA 키 목록:암호 해독을 위해 rsa 개인 키를 구성하는 대화 상자를 엽니 다. 환경 설정에 찬성 사용되지 않는->RSA 키 대화 상자.

  • 사전 공유 키:PSK 암호 스위트의 암호 해독 키를 구성하는 데 사용됩니다. 일반적으로 사용되지 않습니다.
  • tls 디버그 파일(tls.debug_logfile):암호 해독 프로세스에 대한 내부 세부 정보를 작성하는 경로. 암호 해독의 결과와이 과정에서 사용 된 키를 포함합니다. 이것은 암호 해독이 실패하는 이유를 진단하는 데 사용될 수있다.

TLS 암호 해독을 활성화하려면 다음 TCP 프로토콜 환경 설정도 필요합니다.

  • subdissector 가 TCP 스트림을 재 조립하도록 허용합니다. 기본적으로 활성화되어 있습니다.
  • 순서가 맞지 않는 세그먼트를 다시 조립하십시오(Wireshark3.0 이후,기본적으로 비활성화됨).

Wireshark3 부터 시작합니다.0,새로운 RSA 키 대화에 발견될 수 있는 편집>>RSA 키를 사용합니다. 이 대화 상자에서 새 키 파일 추가를 사용합니다… 버튼을 눌러 파일을 선택합니다. 필요한 경우 암호를 입력하라는 메시지가 표시됩니다. 새 토큰 추가… 버튼을 사용하여 새 공급자 추가를 사용해야 할 수도있는 hsm 에서 키를 추가 할 수 있습니다… 선택하려면 DLL/.so 파일 및 추가 공급 업체 별 구성을 선택하십시오.

RSA 키 파일은 pem 형식 개인 키 또는 PKCS#12 키 저장소(일반적으로 a 가있는 파일)일 수 있습니다.pfx 또는.p12 확장). PKCS#12 키는 바이너리 파일이지만,PEM 형식은 텍스트 파일을 다음과 같습니다:

  • -----BEGIN PRIVATE KEY-----MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDReQzlKVeAK8b5TRcRBhSi9IYwHX8Nqc8K4HeDRvN7HiBQQP3bhUkVekdoXpRLYVuc7A8h1BLr93Qw...KOi8FZl+jhG+p8vtpK5ZAIyp-----END PRIVATE KEY-----

사용되지 않는 RSA 키 목록을 대화 제거할 수 있습니다. 키를 구성하려면 대신 RSA 키 대화 상자를 사용하십시오. 을 변경하는 프로토콜에 대한 암호 해독 네트워크 데이터 마우스 오른쪽 버튼으로 클릭하 TLS 패킷을 사용하여 디코딩으로 변경 현재 프로토콜 TLS 포트입니다. IP 주소 및 포트 필드는 사용되지 않습니다.

예제 캡처 파일

또한 SampleCaptures#SSL_with_decryption_keys 를 참조하십시오.

  • 덤프.pcapng TLSv1.73 암호 스위트 2 캡처,당신은이 premaster 가 필요합니다.트래픽을 해독하기위한 txt 파일. (https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9144에서 링크)

  • tls12-dsb.pcapng-tls1.2 암호 해독 키가 내장 된 추적.
  • https://github.com/wireshark/wireshark/blob/master/test/captures-테스트 스위트에는 다양한 TLS 트레이스가 포함되어 있습니다.

화면 필터

완전한 목록의 TLS 표시를 필터링 분야에서 찾을 수 있습니다 표시 필터를 참조

만 표시 TLS 기반 교통:

  • tls

Capture 필터

할 수 없습니다 직접 필터 TLS 프로토콜을 캡처하는 동안. 그러나 사용 된 TCP 포트(위 참조)를 알고있는 경우 예를 들어 tcp 포트 443 을 사용하여 해당 포트를 필터링 할 수 있습니다.

(Pre)-Master-Secret

를 사용하여 master secret 는 Wireshark 에서 TLS 암호 해독을 가능하게하며 키 로그 파일을 통해 제공 될 수 있습니다. 프리 마스터 비밀은 키 교환의 결과이며 와이어 샤크에 의해 마스터 비밀로 변환 될 수 있습니다. 이 사전 마스터 비밀은 RSA 개인 키가 제공되고 RSA 키 교환이 사용 중일 때 얻을 수 있습니다.

단계별 지침 TLS 암호 해독에서 트래픽 크롬 또는 Firefox 에 Wireshark:

  1. 브라우저를 닫을 완전히(확인하는 작업 관리자는지 확인하기 위해).
  2. 환경 변수 SSLKEYLOGFILE 을 쓰기 가능한 파일의 절대 경로로 설정합니다.

  3. 브라우저를 시작합니다.
  4. 2 단계의 위치가 만들어 졌는지 확인하십시오.
  5. 에 Wireshark,이동 환경 설정>>TLS 를 변경하고(사전)-석사-는 비밀 로그 파일 이름 기본 경로에서는 2 단계.

  6. Wireshark 캡처를 시작합니다.
  7. 오픈,웹사이트에 대한 예https://www.wireshark.org/

  8. 을 확인하는 복호화된 데이터가 표시됩니다. 예를 들어 tls 및(http 또는 http2)필터를 사용합니다.

Windows,환경변수 설정할 수 있으며,전 세계적으로 이 연습에서 설명하지만,이는 권장하지 않기 때문에 그것은 쉽게 잊을 수 있습은 보안상 문제가 될 수 있기 때문에 해독의 모든 TLS 트래픽이다. 환경 변수를 설정하는 더 좋은 방법은 배치 파일을 통한 것입니다. 파일 시작-fx 를 만듭니다.cmd:

  • @echo offset SSLKEYLOGFILE=%USERPROFILE%\Desktop\keylogfile.txtopen firefox

변경 SSLKEYLOGFILE 경로로 대체 파이어 폭스 크롬 Google Chrome. Tls 라이브러리(Microsoft SChannel/Apple SecureTransport)가이 메커니즘을 지원하지 않기 때문에 현재이 메커니즘(2019)은 Safari,Microsoft Edge 및 기타에서 작동하지 않습니다. 이 메커니즘은 웹 브라우저 이외의 응용 프로그램에서도 작동하지만 응용 프로그램에서 사용하는 TLS 라이브러리에 따라 다릅니다.

의 예에는 다른 응용 프로그램

  • OpenSSL 을 사용하여 응용 프로그램 사용할 수 있는 GDB 또는 LD_PRELOAD 속을 추출합니다. 여기에는 파이썬이 포함됩니다. 이것을 사용하여 아파치 HTTP 서버에 대한 연습을 위해

    • libsslkeylog.so 도서관,이 게시물을 참조하십시오.

  • Java 프로그램,비밀에서 추출할 수 있 TLS 디버 로그에 특혜 또는 출력 직접 형식으로 Wireshark 필요를 통해 Java agent. 비슷한 프로젝트:
    • jSSLKeyLog:http://jsslkeylog.sourceforge.net/

    • 추출물-tls-secrets:https://github.com/neykov/extract-tls-secrets

  • Python 스크립트 편집할 수 있는 덤프 키니다.

설문 조사에 대한 지원 TLS 응용 프로그램과 라이브러리,볼 또한 19 페이지의 피터 우 SSL/TLS 암호 해독 SharkFest’18EU 니다.

pcapng 파일에 암호 해독 비밀 포함

Wireshark3.0 이후 pcapng 파일에 TLS 키 로그 파일을 포함 할 수 있습니다. 이것은 훨씬 더 쉽게 배포하 캡처 파일과 암호 해독 비밀,전환하게 사 캡처 파일을 쉽게 이 TLS 프로토콜을 설정하지 않 업데이트 할 수 있습니다. 키 로그 파일 키의 내용을 추가하려면.txt 에서 파일을 캡처합니다.pcap 및 out-dsb 에 결과를 작성합니다.pcapng:

  • editcap–inject-secrets tls,keys.에서 txt.pcap 아웃-dsb.pcapng

dsb 접미사는 DSB(Decryption Secrets Block)의 약자이며 pcapng 사양의 일부입니다.

키 로그 파일에는 캡처 파일과 관련이없는 키가 포함될 수 있습니다. 도록하는 것은 불필요한 열쇠가 유출되지 사용할 수 있습니다 inject-tls-secrets.py 에서 스크립트https://gist.github.com/Lekensteyn/f64ba6d6d2c6229d6ec444647979ea24필터의 키 로그 파일을 추가하는 필수 비밀을 캡처 파일입니다. 쉘 스크립트는 Linux 및 macOS 로 테스트되었지만 Python3 버전은 Windows 를 포함한 모든 플랫폼에서도 사용할 수 있습니다. 예시:

  • git clone https://gist.github.com/Lekensteyn/f64ba6d6d2c6229d6ec444647979ea24 ~/its~/its/inject-tls-secrets.py keys.txt some.pcap

see

일부 다른 프로토콜에서 파생됩니다 TLS. 여기에는 다음이 포함됩니다.

  • DTLS 는 tls 표준을 기반으로하며 전송 프로토콜로 UDP 위에서 실행됩니다.

  • QUIC 는 암호화를 위해 TLS 를 사용하는 개발 프로토콜이며 Wireshark 의 상태는https://github.com/quicwg/base-drafts/wiki/Tools#wireshark에서 추적 할 수 있습니다.

  • https://en.wikipedia.org/wiki/Transport_Layer_Security위키 문서에 대한 TLS

  • https://sharkfesteurope.wireshark.org/assets/presentations16eu/07.pdfSharkFest’16EU 프레젠테이션에 의해 술 블록에서 문제 해결을 SSL Wireshark/Tshark(또는 비디오를 시청하는 프레젠테이션에서https://youtu.be/oDaDY9QCnXk)

  • https://lekensteyn.nl/files/wireshark-ssl-tls-decryption-secrets-sharkfest18eu.pdfSharkFest’18EU 프레젠테이션으로 베드로는 우에 TLS 암호 해독(비디오한 이야기 이전에 아시아에서https://youtu.be/bwJEBwgoeBg)

  • https://lekensteyn.nl/files/wireshark-tls-debugging-sharkfest19us.pdfSharkFest’19 우리 프리젠테이션으로 베드로는 우을 설명하는 TLS 암호 해독과의 사용이 포함된 암호 해독 비밀(https://youtu.be/Ha4SLHceF6w).

  • SSL/TLS 는 어떻게 작동합니까? -정보 보안 쌓 Exchange

  • 열쇠가 없는 SSL:핵심 기술 정보를 소개 TLS

  • PolarProxy 에서 Netresec 은 투명하는 SSL/TLS 프록시 생성을 위한 사고 조치와 악성 코드 연구는 주로 설계를 차단 및 암호 해독 TLS 암호화 교통에서 악성 코드. PolarProxy 를 해독하고 다시 TLS 암호화 교통 동안,또한 저장하는 해독에서 트래픽 PCAP 로드할 수 있는 파일로 Wireshark 또는 침입 탐지 시스템(ID).

  • CategoryHowTo

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다