안녕, 리뷰어. 나는 뫙대🛠️
CS에 대한 개념이 0에 수렴해 공부를 시작합니다. 네트워크 공부는 '혼자 공부하는 네트워크'를 기반으로 합니다. 이번 글에서는 와이어샤크에 대해 다룹니다.
혼자 공부하는 네트워크
『혼자 공부하는 네트워크』는 개발자의 필수 지식인 네트워크를 기본부터 제대로 학습할 수 있도록 돕는 입문서입니다. 다수의 네트워크 전공 서적들을 면밀히 분석하고, 방대한 컴퓨터 네트워크 이론 중에서 핵심 내용만 선별해서 담았습니다. 도서 제목 그대로 혼자 공부하는 초보자를 위해 쉬운 비유와 입문자 맞춤형 예시를 통해 재미있는 학습을 유도하고, 핵심 키워드와 네트워크 계층별 설명으로 쉽게 이해할 수 있도록 했으며, 한눈에 쏙 들어오는 친근한 일러스트를
- 저자
- 강민철
- 출판
- 한빛미디어
- 출판일
- 2024.04.12
설치
brew로 설치. 참조. Homebrew Formulae
brew install --cask wireshark
패킷 분석
Wi-Fi 트래픽 기반 카카오톡 관련 패킷 분석
Wi-Fi 패킷 캡처
참조. 와이어샤크 사용자 가이드

패킷 로그 불러오기
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
- 키 교환:
Client Hello,Server Hello - 인증 및 암호화 전환:
Certificate Server Key Exchange,Change Cipher Spec,Encrypted Handshake Message(Finished) - 암호 통신:
Application Data - 세션 종료:
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번에서 FIN과 ACK를 동시에 보냄 → 1단계와 2단계를 동시 진행
분석이라 하기 민망하지만 배운 걸 시각적으로 확인하니 재밌었다. 물론 '이건 뭐야'하며 넘긴 것도 있었지만, 복습에 도움이 됐다. 다른 프로토콜의 패킷도 분석해 볼 것.
참고
'CS > 네트워크' 카테고리의 다른 글
| [혼자 공부하는 네트워크] 07 네트워크 심화 (1) | 2025.05.26 |
|---|---|
| [혼자 공부하는 네트워크] 05 응용 계층 - HTTP (1) | 2025.05.20 |
| [혼자 공부하는 네트워크] 05 응용 계층 - DNS (0) | 2025.05.19 |
| [혼자 공부하는 네트워크] 04 전송 계층 - UDP (0) | 2025.05.13 |
| [혼자 공부하는 네트워크] 04 전송 계층 - TCP (1) | 2025.05.13 |