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:
- 브라우저를 닫을 완전히(확인하는 작업 관리자는지 확인하기 위해).
-
환경 변수 SSLKEYLOGFILE 을 쓰기 가능한 파일의 절대 경로로 설정합니다.
- 브라우저를 시작합니다.
- 2 단계의 위치가 만들어 졌는지 확인하십시오.
-
에 Wireshark,이동 환경 설정>>TLS 를 변경하고(사전)-석사-는 비밀 로그 파일 이름 기본 경로에서는 2 단계.
- Wireshark 캡처를 시작합니다.
-
오픈,웹사이트에 대한 예https://www.wireshark.org/
-
을 확인하는 복호화된 데이터가 표시됩니다. 예를 들어 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