-
WiFi 접속 시 DHCP 작동 원리와 OSI 7계층 흐름Hacking/개념 및 이론 2025. 7. 17. 16:13728x90반응형
WiFi에 접속하고 웹사이트에 접속하는 과정은 다음과 같은 단계들을 거칩니다.
1. WiFi 접속
사용자가 WiFi에 접속하게 되면 어떻게 사설 IP를 부여 받는지 설명합니다.
1-1. DHCP Discover
사용자가 WiFi에 연결을 시도하면 가장 먼저 자신에게 할당될 IP 주소를 찾기 위해 DHCP Discover 메시지를 브로드캐스트(Broadcast) 방식으로 전송하게 되는데 이 과정을 아래에서 OSI 계층 모델을 통해 이해하기 쉽게 살펴 보겠습니다.
4️⃣ Transport Layer (4계층)
DHCP는 빠른 요청과 응답이 중요하기 때문에 UDP를 사용합니다.
DHCP Discover 메시지를 보내는 사용자는 UDP 68번 포트를 사용하고 이 메시지를 수신할 DHCP 서버를 위해 UDP 67번 포트를 목적지로 지정합니다.- 이 포트들은 IANA(국제 인터넷 표준화 기구)가 지정한 표준 약속입니다.
- 💡 DHCP는 BOOTP 프로토콜을 확장한 형태이며 BOOTP 역시 UDP 기반으로 동작합니다.
3️⃣ Network Layer (3계층)
사용자는 아직 IP를 할당 받지 못했기 때문에 해당 네트워크내에 있는 특정 서버와 통신을 할 수 없기 때문에 출발지 IP를 0.0.0.0(나는 IP가 없어요.)으로 설정, 도착지 IP를 255.255.255.255(네트워크에 내 모든 기기)로 설정하여 IP 계층 브로드캐스트(Broadcast) 방식으로 메시지를 보내게 됩니다.
- 이 과정의 목적은 네트워크 내에 존재하는 DHCP 서버에게 "제가 사용할 IP 주소와 관련 네트워크 설정(서브넷 마스크, 게이트웨이, DNS 서버 등)을 요청합니다."라고 알리는 것입니다.
2️⃣ DataLink Layer (2계층)
실제 하드웨어 주소인 MAC 주소를 사용하여 통신하며 이 과정은 2계층 장비인 스위치의 핵심적인 역할 덕분에 가능합니다.
이 때 출발지 MAC 주소는 사용자 자신의 고유한 MAC 주소로 설정, 목적지 MAC 주소는 FF:FF:FF:FF:FF:FF으로 설정하게 됩니다.- FF:FF:FF:FF:FF:FF는 이더넷에서 가능한 유일한 브로드캐스트 MAC 주소입니다.
- DHCP 서버는 출발지 MAC 주소를 보고 응답을 보내게 됩니다.
2계층 장비인 스위치는 목적지 MAC 주소가 FF:FF:FF:FF:FF:FF로 설정된 프레임을 받으면 플러딩(Flooding)을 수행하여 지금 들어온 포트(사용자)를 제외한 나머지 포트(그외 기기)에게 데이터 프레임을 보내주게 됩니다.
1-2. DHCP offer
DHCP 서버는 사용자로부터 DHCP Discover 메시지를 수신한 후 해당 요청에 대한 응답으로 DHCP Offer 메시지를 브로드캐스트(Broadcast) 방식으로 전송하게 되는데 이를 OSI 계층 모델을 통해 쉽게 이해할 수 있도록 살펴보겠습니다.
4️⃣ Transport Layer (4계층)
DHCP 서버는 사용자에게 DHCP Offer 메시지를 응답으로 보낼 때 자신의 UDP 67번 포트에서 사용자의 UDP 68번 포트로 전송합니다.
3️⃣ Network Layer (3계층)
사용자는 여전히 IP 주소를 할당받지 못한 상태이기 떄문에 DHCP 서버는 도착지 IP를 255.255.255.255로 설정, 출발지 IP는 DHCP 서버의 IP로 설정하여 IP 계층 브로드캐스트 방식으로 메시지를 전송합니다.
2️⃣ DataLink Layer (2계층)
사용자의 MAC 주소를 정확히 알고 있으므로 DHCP 서버는 출발지 MAC 주소는 DHCP 서버의 MAC 주소로 설정, 도착지 MAC 주소를 사용자의 MAC 주소로 설정하게 됩니다.
- 이런 방식은 유니캐스트(Unicast) 전송 방식이라고 합니다.
- IP 계층은 브로드캐스트(Broadcast) & MAC 계층은 유니캐스트(Unicast)혼합 전송 방식이 사용됩니다.
1-3. DHCP Request
사용자는 DHCP 서버로부터 받은 DHCP Offer 메시지를 검토한 후 해당 제안을 수락하겠다는 의미로 DHCP Request 메시지를 전송하게 되는데 이 과정을 아래에서 OSI 계층 모델을 통해 이해하기 쉽게 살펴 보겠습니다.
4️⃣ Transport Layer (4계층)
사용자는 DHCP Request 메시지를 보낼 때 자신의 UDP 68번 포트에서 DHCP 서버의 UDP 67번 포트로 전송합니다.
3️⃣ Network Layer (3계층)
사용자는 여전히 IP 주소를 확정적으로 할당받지 않은 상태이기 때문에 출발지 IP는 0.0.0.0 도착지 IP는 255.255.255.255로 설정하여 IP 브로드캐스트 방식으로 전송합니다.
- DHCP Request 내부에는 어떤 DHCP 서버의 제안을 수락하는지 나타내기 위해 서버 식별자(Server Identifier) 필드가 존재하며 DHCP 서버가 여러개 존재할 수 있기 때문에 여기에는 수락하고자하는 특정 DHCP 서버의 IP 주소가 포함됩니다.
2️⃣ DataLink Layer (2계층)
출발지 MAC 주소는 사용자의 MAC 주소, 목적지 MAC 주소는 FF:FF:FF:FF:FF:FF로 설정하여 브로드캐스트(Broadcast) 방식으로 전송합니다.
사용자는 이미 선택한 DHCP 서버의 MAC 주소를 알고 있으면서 왜 브로드캐스트 방식으로 전송할까?
DHCP Discover 요청을 보냈을 때 네트워크 상의 모든 DHCP 서버가 응답할 수 있으며 사용자는 이 중 하나의 Offer만 선택하게 되며 DHCP Request를 브로드캐스트로 보내면 선택되지 않은 다른 DHCP 서버들도 이를 수신하고 자신들의 응답이 거부되었음을 인식하여 해당 응답을 무효화 처리하게 됩니다.
💡 일반적으로는 가장 빨리 온 Offer를 선택하지만 이는 사용자의 운영체제 수준 혹은 DHCP 클라이언트 소프트웨어 수준의 로직 구현에 따라 달라질 수 있습니다.1-4. DHCP Acknowledge
선택된 DHCP 서버는 해당 요청을 최종적으로 승인하는 DHCP Acknowledge(Ack) 메시지를 전송하게 되는데 이 메시지를 통해 IP 주소를 비롯한 네트워크 설정 정보가 사용자에게 확정적으로 할당되며 WiFi 네트워크 사용이 가능해집니다.
해당 과정을 OSI 계층 모델을 통해 이해하기 쉽게 살펴 보겠습니다.4️⃣ Transport Layer (4계층)
DHCP 서버는 자신의 UDP 67번 포트에서 사용자의 UDP 68번 포트로 DHCP Ack 메시지를 전송합니다.
3️⃣ Network Layer (3계층)
DHCP 서버는 출발지 IP를 자신의 IP 주소, 도착지 IP는 사용자에게 할당된 IP 주소로 설정하여 유니캐스트(Unicast) 방식으로 메시지를 전송합니다.
- 이 시점에서는 사용자는 아직 해당 IP를 공식적으로 할당 받지 못한 상태입니다.
아직 공식적으로 할당 받지 못한 IP로 보내면 사용자는 받을 수 있을까?
DHCP offer 시점에서 임시로 사용자의 Network Layer는 임시 IP를 알고 있기 때문에 요청은 불가능 하지만 응답은 가능합니다.2️⃣ DataLink Layer (2계층)
출발지 MAC 주소는 DHCP 서버의 MAC 주소, 목적지 MAC 주소는 사용자의 MAC 주소로 설정하여 유니캐스트(Unicast) 방식으로 통신을 합니다.
💡 추가 참고 사항
DHCP Acknowledge에서 할당 하는 정보 중 리스 타임(Lease Time)이 있는데 이 타임이 만료되기 전 사용자는 DHCP Request를 다시 요청해서 IP 갱신을 요청할 수 있습니다.
728x90반응형'Hacking > 개념 및 이론' 카테고리의 다른 글
Port 53에서 시작되는 은밀한 통신 DNS 이야기 (0) 2025.07.02 [웹 보안의 기초 정리] Cookie, SameSite, CORS, ACAO (2) 2025.06.23 [Hash Algorithm] 해시 길이 정리 (MD5, SHA-1, SHA-256, SHA-512) (0) 2025.05.26 [A03:2021 – Injection] SSTI (Server Side Template Injection) 취약점 분석 (0) 2025.05.25