KT 와이파이, 스타벅스 와이파이, 호텔 와이파이 등등... 와이파이에 연결했더니 웹페이지가 뜨면서
인증 또는 무언가의 동의화면을 본 적이 있을 것이다.
라우터에 접근했을 뿐인데 웹 페이지를 띄워주는 이러한 액션이 어떻게 가능할까 알아보다
Captive Portal에 대해 알게 되었다.
Captive Portal은 국내 자료가 많이 안 보여서 Wiki를 참고했다.
https://en.wikipedia.org/wiki/Captive_portal
Captive portal - Wikipedia
From Wikipedia, the free encyclopedia Jump to navigation Jump to search Web page displayed to new users of a network An example of a captive web portal used to log onto a restricted network. A captive portal is a web page accessed with a web browser that i
en.wikipedia.org
정의
첫줄은 이렇다.
A captive portal is a web page accessed with a web browser that is displayed to newly connected users of a Wi-Fi or wired network before they are granted broader access to network resources.
Captive Portal은 네트워크 리소스에 대한 광범위한 액세스 권한이 부여되기 전에 Wi-Fi 또는 유선 네트워크에 새로 연결된 사용자에게 표시되는 웹 브라우저로 액세스하는 웹 페이지입니다.
요약하면, 네트워크에 처음 접근하는 사용자에게 보여주는 웹 페이지란다.
일반적으로 로그인이나 결제 등에 사용되는데, 공공 와이파이 연결 시에 뜨는 화면을 상상하면 되겠다.
구현 방법
1. HTTP redirect
네트워크로의 첫 연결 시에 HTTP Status 코드 200이나 204를 주지 않고 302(redirect) 또는 511(Network Authentication Required)을 보내는 방식이다.
이 중 511 상태코드는 처음 보는 것인데, RFC6585 에 따르면 511은 Captive Portal을 위해 고안되었다고 한다.
특징으로는,
1) 로그인 페이지 자체를 보내는 것이 아니라 redirect 링크를 보내야 하고
2) 캐시에 저장되지 않는다
아래는 예시
For example, a user agent might connect to a network and make the
following HTTP request on TCP port 80:
GET /index.htm HTTP/1.1
Host: www.example.com
Upon receiving such a request, the login server would generate a 511
response:
HTTP/1.1 511 Network Authentication Required
Content-Type: text/html
2. ICMP redirect
ICMP(Internet Control Message Protocol)는 라우터에서 사용되는 TCP의 보조 프로토콜로 에러메시지나 연결 정보를 포함한다.
ICMP에는 Type이 있는데 Type을 5로 구성하면 Redirect 기능을 수행하게 되어 Layer 3 수준에서 리다이렉트가 가능하다.
3. DNS
인증되지 않은 유저가 인증 받을 수 있는 특정 IP로 DNS 서비스를 사용하는 방법이 있다.
'기타' 카테고리의 다른 글
Dithering된 이미지와 Grayscale 이미지의 차이 (0) | 2023.03.29 |
---|---|
Access-Control-Request-Private-Network 헤더 (0) | 2022.09.14 |
InteliJ Lisences : Ultimate, Community (0) | 2021.05.01 |
Case Naming Convention : CamelCase, snake_case, strHungarian (0) | 2021.04.30 |
pseudo-code (의사코드) (0) | 2021.04.28 |
댓글