>일반적인 문제 >https 패킷 캡처 원리

https 패킷 캡처 원리

(*-*)浩
(*-*)浩원래의
2019-08-21 10:33:219877검색

한 섹션에서는 HTTPS의 보안 통신 프로세스를 분석하고 HTTPS가 중간자 공격을 효과적으로 방지할 수 있다는 것을 배웠습니다. 그러나 패킷 캡처 도구를 사용해 본 사람이라면 Charles와 Fiddler가 HTTPS 요청을 캡처하고 이를 해독할 수 있다는 것을 알고 있을 것입니다.

https 패킷 캡처 원리

먼저 Charles 공식 웹사이트에서 HTTPS 프록시에 대한 설명을 살펴보겠습니다. (추천 학습: 웹 프론트엔드 비디오 튜토리얼)

Charles는 브라우저와 서버가 통신하면 Charles는 서버 인증서를 받지만 동적으로 인증서를 생성하여 브라우저에 보냅니다. 이는 Charles가 브라우저와 서버 간 통신을 위한 중간 에이전트 역할을 하므로 Charles가 통신 데이터를 가로채서 해독할 수 있음을 의미합니다. . Charles가 인증서를 변경했기 때문에 브라우저 확인을 통과하지 못할 경우 Charles의 인증서를 설치해야 정상적인 접근이 가능합니다.

Charles가 해야 할 일은 서버를 클라이언트로 위장하고 클라이언트를 서버로 위장하는 것입니다.

실제 클라이언트의 HTTPS 요청을 가로채고, 클라이언트를 위장하여 실제 서버로 HTTPS 요청을 보내도록 합니다.

수락 실제 서버 응답, Charles의 자체 인증서를 사용하여 서버를 위장하여 실제 클라이언트에 데이터 콘텐츠를 보냅니다

특정 프로세스를 살펴보겠습니다.

클라이언트가 서버에 HTTPS 요청을 시작합니다

Charles가 클라이언트의 요청을 가로챕니다. 서버에 클라이언트인 척 요청합니다

서버는 서버의 CA 인증서를 "클라이언트"(실제로는 Charles)에게 반환합니다

Charles는 서버의 응답을 가로채서 서버 인증서 공개 키를 얻은 후 인증서를 만듭니다. 자신이 서버 인증서를 교체하여 클라이언트 측으로 보냅니다. (이 단계에서 Charles는 서버 인증서의 공개 키를 얻습니다.)

클라이언트는 "서버"(실제로는 Charles)의 인증서를 받은 후 대칭 키를 생성하고 이를 Charles의 공개 키로 암호화하여 보냅니다. to the "server"(찰스)

찰스는 클라이언트의 응답을 가로채서 자신의 개인키로 대칭키를 복호화한 후, 서버 인증서 공개키로 암호화하여 서버로 보낸다. (이 단계에서 Charles는 대칭 키를 얻습니다.)

서버는 자신의 개인 키로 대칭 키를 해독하고 "클라이언트"(Charles)에게 응답을 보냅니다.

Charles는 서버의 응답을 가로채서 자신의 인증서로 바꿉니다. 클라이언트에게 보냅니다

이 시점에서 Charles는 서버 인증서의 공개 키와 클라이언트와 서버 간에 협상된 대칭 키를 얻었습니다. 그 후 암호화된 메시지를 해독하거나 수정할 수 있습니다.

HTTPS 패킷 캡처의 원리는 매우 간단합니다. 간단히 말해서 Charles는 "중개자 에이전트" 역할을 하며 서버 인증서 공개 키와 HTTPS 연결의 대칭 키를 얻습니다. Charles의 CA 인증서를 설치하십시오. 그렇지 않으면 클라이언트가 "경보"를 표시하고 연결을 중단합니다. 이런 관점에서 보면 HTTPS는 여전히 매우 안전합니다

위 내용은 https 패킷 캡처 원리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.