아무도 와이어 캡처를 제공하지 않았으므로 여기에 있습니다.
서버 이름 (URL의 도메인 부분)은 ClientHello
패킷에 일반 텍스트로 표시 됩니다.
다음은 브라우저 요청을 보여줍니다.
https://i.stack.imgur.com/path/?some=parameters&go=here
TLS 버전 필드에 대한 자세한 내용은이 답변 을 참조하십시오 (버전이 아닌 각 버전 번호가있는 필드가 아닌 3 개가 있습니다!)
에서 https://www.ietf.org/rfc/rfc3546.txt :
3.1. 서버 이름 표시
[TLS]는 클라이언트가 서버에 접속중인 서버 이름을 알려주는 메커니즘을 제공하지 않습니다. 클라이언트가 단일 기본 네트워크 주소에서 여러 '가상'서버를 호스팅하는 서버에 대한 보안 연결을 용이하게하기 위해이 정보를 제공하는 것이 바람직 할 수 있습니다.
서버 이름을 제공하기 위해 클라이언트는 (확장 된) 클라이언트 hello에 "server_name"유형의 확장명을 포함 할 수 있습니다.
한마디로 :
FQDN (URL의 도메인 부분은) 수도 전송 될 명확에서 내부 ClientHello
SNI 확장을 사용하는 경우 패킷
요청 URL이 HTTP (OSI Layer 7)이므로 나머지 URL ( /path/?some=parameters&go=here
)은 내부에 비즈니스가 ClientHello
없으므로 TLS 핸드 셰이크 (계층 4 또는 5)에 표시되지 않습니다. 즉,의에 나중에 올 것이다 GET /path/?some=parameters&go=here HTTP/1.1
, HTTP 요청 후에 보안 TLS 채널이 설정됩니다.
행정상 개요
도메인 이름은 명확하게 전송 될 수 있지만 (TLS 핸드 셰이크에서 SNI 확장이 사용되는 경우) URL (경로 및 매개 변수)은 항상 암호화됩니다.
2019 년 3 월 업데이트
이것을 가져 주셔서 감사합니다 carlin.scott .
SNI 확장의 페이로드는 이제이 초안 RFC 제안을 통해 암호화 될 수 있습니다 . 이 기능은 TLS 1.3에만 존재하며 (옵션으로 구현할 수 있으며, TLS 1.2 이하 버전과의 호환성은 없습니다.)
CloudFlare가이 작업을 수행하고 있으며 내부에 대한 자세한 내용은 여기를 참조하십시오
. 닭고기가 계란보다 먼저 와야하는 경우 닭고기를 어디에 두어야합니까?
실제로 이것은 Wireshark 캡처 쇼와 같이 FQDN을 일반 텍스트로 전송하는 대신 이제 암호화되어 있음을 의미합니다.
참고 : 이 방법은 역방향 DNS 조회가 의도 한 대상 호스트를 나타낼 수 있으므로 보안 측면보다 개인 정보 측면을 해결합니다.