카테고리 없음

"와이어샤크" 사용해 보기 (주제 : HTTPS 분석)

생활IT 2024. 4. 27. 22:24
반응형

 

오늘은 "HTTPS 사이트"에 접속했을 때 어떤 패킷들이 오가는지 분석해보려 합니다.  

 

"와이어샤크"를 통해 패킷을 수집하고, 자세히 들여다보면 볼 수록 웹에 대한 이해도 점점 더 깊어질거에요 ^^

 

자 그러 오늘도 "패킷 캡쳐 시작" 버튼을 누르시고, 아무 사이트로 접속해보세요. 저는 nate.com으로 접속해봤습니다. 

 

이 많은 패킷들 중 어떤 것이 nate.com에 접속한 패킷인지 찾기위해 필터를 써야겠죠? frame contains "nate.com"을 필터란에 입력해주세요.

 

그 다음, 무엇을 해야될까요? 이제 패킷을 클릭하고 "따라가기"를 했던 것을 기억하고 계시죠? ^^

 

읽을 수 없는 창이 떴을거에요. HTTPS는 암호화 되어 있으니 내용을 볼 수 없어요. 그 창은 닫아주세요.

 

여기서 우리가 바로 확인할 수 있는 것이 있는데요. 내 컴퓨터의 브라우저와 nate.com 서버간에는 TLSv1.2라는 암호화 프로토콜을 사용하고 있습니다. 

 

TLS 1.2 핸드쉐이크 단계는 아래와 같은데요. 실제 이렇게 동작하는지 찬찬히 확인해봐요.

 

서버와의 연결을 위해 "Client Hello" 패킷을 서버로 보내고 있습니다. HTTPS 연결의 시작은 "Client Hello" 입니다. 이 것을 TLS 핸드쉐이크 라고 해요. 이 과정을 통해 내 컴퓨터와 웹 서버는 안전한 연결을 위해 암호화 된 채널을 생성하게 됩니다. 

 

SNI=www.nate.com이라는 것도 보이죠? "SNI"Server Name Indicator의 약자인데, 내가 접속하려고 하는 서버의 URL 주소 입니다. 

 

아무리 HTTPS 이고, 암호화 되어 있다고 하지만, 내가 접속하려고 하는 URL 주소는 이렇게 보인답니다. ^^ 회사에서 직원들이 어디에 접속하는 지 다 파악할 수 있는 이유죠. 

 

그 다음 보이는 패킷이 "Server Hello" 입니다.

 

"Cipher Suite" 값을 통해 암호화 된 통신을 위해 사용되는 암호키 알고리즘을 사용했다는 것을 알 수 있습니다. 

 

그 다음이 "Certifciate, Server Key Exchange, Server Hello Done" 인데요. Certificate 부분만 설명드리고 넘어가겠습니다. 

 

종종 어떤 사이트에 접속하실 때, "연결이 비공개로 설정되어 있지 않습니다." 이런 경고창을 보신 적이 있으실거에요.

 

이 것은 서버에서 보내주는 인증서가 신뢰할 수 없기 때문에 브라우저에서 띄우는 인증서 경고창인데요. 이 패킷을 보면 어떤 인증서를 보냈는지 확인할 수 있습니다. 

 

이 인증서를 Sign한 기관은 "GlobalSign" 이며, 인증서 유효기간은 2024년 10월 19일까지 입니다. 

 

우리 컴퓨터에 그럼 이 인증기관이 "신뢰할 수 있는 루트 인증기관"에 등록되어 있는지 확인해볼까요?

"윈도우+R" 키를 누르시고, 실행 창에서 certmgr.msc를 입력하시면 아래 그림처럼 인증서 관리창이 나타납니다. 

 

위 그림에서 보면 "GlobalSign"이라고 등록되어 있죠? 그러므로 nate.com의 사이트는 신뢰할 수 있는 HTTPS 사이트 이기에 "인증서 경고창"이 나타나지 않고 접속할 수 있게 됩니다. 

 

암호키 교환을 완료하면, 이제 브라우저는 웹 서버에게 "GET 메소드"를 사용하여 nate.com 페이지를 요청할 것입니다. 

 

하지만, 암호화 되어 있는 HTTPS 사이트이기에 이 패킷의 내용은 보이지 않고, "Application Data"라고만 보여지게 됩니다. 


 

오늘은 내용이 조금 어려우셨죠?

 

히지만, 이러한 내용들도 스스로 연습해보시고, 자주 접해보신 다면 서서히 눈에 들어오기 시작할거에요 ^^ 

 

다음에 또 다른 주제로 찾아뵐께요. 화이팅!

반응형