본문 바로가기
CS/네트워크

[혼자 공부하는 네트워크] 06 실습으로 복습하는 네트워크 - 와이어샤크

by 박뫙대 2025. 5. 26.

안녕, 리뷰어. 나는 뫙대🛠️ 

CS에 대한 개념이 0에 수렴해 공부를 시작합니다. 네트워크 공부는 '혼자 공부하는 네트워크'를 기반으로 합니다. 이번 글에서는 와이어샤크에 대해 다룹니다.

 
혼자 공부하는 네트워크
『혼자 공부하는 네트워크』는 개발자의 필수 지식인 네트워크를 기본부터 제대로 학습할 수 있도록 돕는 입문서입니다. 다수의 네트워크 전공 서적들을 면밀히 분석하고, 방대한 컴퓨터 네트워크 이론 중에서 핵심 내용만 선별해서 담았습니다. 도서 제목 그대로 혼자 공부하는 초보자를 위해 쉬운 비유와 입문자 맞춤형 예시를 통해 재미있는 학습을 유도하고, 핵심 키워드와 네트워크 계층별 설명으로 쉽게 이해할 수 있도록 했으며, 한눈에 쏙 들어오는 친근한 일러스트를
저자
강민철
출판
한빛미디어
출판일
2024.04.12

설치

brew로 설치. 참조. Homebrew Formulae

brew install --cask wireshark

 

패킷 분석

Wi-Fi 트래픽 기반 카카오톡 관련 패킷 분석

Wi-Fi 패킷 캡처

참조. 와이어샤크 사용자 가이드

WireShark

패킷 로그 불러오기

tcp contains "katalk" 필터로 카카오톡 연결 관련 패킷 추출. 해당 패킷에서 얻은 수신지 IP 주소를 기준으로 ip.addr == <IP 주소> 필터 적용

패킷 분석

TCP 연결 수립 🔗3-Way Handshake

988	9.506841	192.168.xxx.xxx	XXX.XXX.XX.XX	TCP	78	62678 → 443 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=64 TSval=1438104053 TSecr=0 SACK_PERM
989	9.514836	XXX.XXX.XX.XX	192.168.xxx.xxx	TCP	74	443 → 62678 [SYN, ACK] Seq=0 Ack=1 Win=43440 Len=0 MSS=1440 SACK_PERM TSval=4203286423 TSecr=1438104053 WS=4096
990	9.517523	192.168.xxx.xxx	XXX.XXX.XX.XX	TCP	66	62678 → 443 [ACK] Seq=1 Ack=1 Win=131392 Len=0 TSval=1438104061 TSecr=4203286423

시퀀스 번호와 확인 응답 번호 확인. 988번의 시퀀스 번호가 989번에서 시퀀스 번호+1확인 응답 번호가 됨

 

TLS 핸드셰이크 🔗안전성

TLS(Transposrt Layer Security)는 인증과 암호화를 수행하는 프로토콜로, HTTPS(HTTP over TLS)에서 사용 → 7장에서 다룰 예정

991	9.517524	192.168.xxx.xxx	XXX.XXX.XX.XX	TLSv1.2	583	Client Hello (SNI=katalk.kakao.com)
992	9.525730	XXX.XXX.XX.XX	192.168.xxx.xxx	TCP	66	443 → 62678 [ACK] Seq=1 Ack=518 Win=45056 Len=0 TSval=4203286435 TSecr=1438104064
993	9.529304	XXX.XXX.XX.XX	192.168.xxx.xxx	TLSv1.2	1514	Server Hello
994	9.529465	192.168.xxx.xxx	XXX.XXX.XX.XX	TCP	66	62678 → 443 [ACK] Seq=518 Ack=1449 Win=129984 Len=0 TSval=1438104076 TSecr=4203286438
995	9.532981	XXX.XXX.XX.XX	192.168.xxx.xxx	TCP	1514	443 → 62678 [PSH, ACK] Seq=1449 Ack=518 Win=45056 Len=1448 TSval=4203286438 TSecr=1438104064 [TCP PDU reassembled in 996]
996	9.532983	XXX.XXX.XX.XX	192.168.xxx.xxx	TLSv1.2	1266	Certificate
997	9.533711	192.168.xxx.xxx	XXX.XXX.XX.XX	TCP	66	62678 → 443 [ACK] Seq=518 Ack=4097 Win=128448 Len=0 TSval=1438104079 TSecr=4203286438
998	9.536746	XXX.XXX.XX.XX	192.168.xxx.xxx	TLSv1.2	135	Server Key Exchange, Server Hello Done
999	9.536828	192.168.xxx.xxx	XXX.XXX.XX.XX	TCP	66	62678 → 443 [ACK] Seq=518 Ack=4166 Win=131008 Len=0 TSval=1438104083 TSecr=4203286438
1000	9.545180	192.168.xxx.xxx	XXX.XXX.XX.XX	TLSv1.2	159	Client Key Exchange, Change Cipher Spec, Encrypted Handshake Message
1001	9.558385	XXX.XXX.XX.XX	192.168.xxx.xxx	TLSv1.2	117	Change Cipher Spec, Encrypted Handshake Message
1002	9.558846	192.168.xxx.xxx	XXX.XXX.XX.XX	TCP	66	62678 → 443 [ACK] Seq=611 Ack=4217 Win=131072 Len=0 TSval=1438104105 TSecr=4203286466
1003	9.559382	192.168.xxx.xxx	XXX.XXX.XX.XX	TLSv1.2	546	Application Data
1004	9.559987	192.168.xxx.xxx	XXX.XXX.XX.XX	TLSv1.2	164	Application Data
1005	9.579069	XXX.XXX.XX.XX	192.168.xxx.xxx	TCP	66	443 → 62678 [ACK] Seq=4217 Ack=1189 Win=45056 Len=0 TSval=4203286477 TSecr=1438104105
1006	9.590976	XXX.XXX.XX.XX	192.168.xxx.xxx	TLSv1.2	413	Application Data
1007	9.591125	192.168.xxx.xxx	XXX.XXX.XX.XX	TCP	66	62678 → 443 [ACK] Seq=1189 Ack=4564 Win=130752 Len=0 TSval=1438104137 TSecr=4203286496
4373	40.469925	192.168.xxx.xxx	XXX.XXX.XX.XX	TLSv1.2	97	Encrypted Alert

 

  1. 키 교환: Client Hello, Server Hello
  2. 인증 및 암호화 전환: Certificate Server Key Exchange, Change Cipher Spec, Encrypted Handshake Message(Finished)
  3. 암호 통신: Application Data
  4. 세션 종료: Encrypted Alert

TCP 연결 해제 🔗4-Way Handshake

4374	40.471044	192.168.xxx.xxx	XXX.XXX.XX.XX	TCP	66	62678 → 443 [FIN, ACK] Seq=1220 Ack=4564 Win=131072 Len=0 TSval=1438135019 TSecr=4203286496
4375	40.486208	XXX.XXX.XX.XX	192.168.xxx.xxx	TCP	66	443 → 62678 [FIN, ACK] Seq=4564 Ack=1221 Win=45056 Len=0 TSval=4203317393 TSecr=1438135017
4376	40.486665	192.168.xxx.xxx	XXX.XXX.XX.XX	TCP	66	62678 → 443 [ACK] Seq=1221 Ack=4565 Win=131072 Len=0 TSval=1438135034 TSecr=4203317393

4374번에서 FINACK를 동시에 보냄 → 1단계와 2단계를 동시 진행


분석이라 하기 민망하지만 배운 걸 시각적으로 확인하니 재밌었다. 물론 '이건 뭐야'하며 넘긴 것도 있었지만, 복습에 도움이 됐다. 다른 프로토콜의 패킷도 분석해 볼 것.

 

참고

https://velog.io/@roon-replica/와이어샤크-1.-패킷-분석-기초

https://youtu.be/lb1Dw0elw0Q?feature=shared