사이트 차단 방법

이재원·2024년 2월 28일

1. 서버 IP 차단 방식

  • 사용자가 웹사이트에 접속하려고 할 때, DNS서버는 해당 도메인 이름에 대한 IP주소를 반환한다. IP주소를 통해서 사이트에 접속하려고 할 때, 만약 그 IP 주소가 ISP의 차단 목록에 있다면, 사용자의 접속 요청은 ISP의 방화벽에서 차단되어 웹사이트에 도달하지 못한다.
  • 단점
    • 웹 호스팅 방식에서 IP 주소를 공유하는 다른 사이트들 까지 차단 될 수 있다.

2. DNS 차단 방식

  • 사용자가 특정 웹사이트에 접속하려고 할 때 도메인 주소를 IP 주소로 변환하려고 DNS에 방문한다. 사이트 주소가 DNS에서 불법 사이트로 판단 되면 다른 사이트로 리다이렉트를 해서 웹사이트를 도달하지 못한다.

3. HTTP 통신 헤더의 호스트 정보를 이용한 차단 방식

  • 웹 브라우저가 웹 서버에 요청을 보낼 때 HTTP 헤더에는 방문하려는 웹사이트의 호스트 이름이 포함된다. ISP는 이 호스트 이름을 검사하여 그 호스트이름이 블랙리스트에 있으면 접근을 차단할 수 있다.

4. SNI를 이용한 차단방식

  • HTTPS 통신의 경우 요청 헤더를 포함한 전체 HTTP 메시지가 TLS 프로토콜을 통해 암호화 되어 헤더의 내용을 볼 수 없다.
  • 대신 HTTPS 통신에는 SNI필드가 존재한다. SNI는 클라이언트가 서버에 연결을 요청할 때, 어떤 호스트에 접속하고자 하는지를 알려주는 TLS 핸드셰이크 프로토콜의 일부인데,
  • ISP는 이 SNI 필드를 검사해서 블랙리스트에 포함된 도메인 이름에 대한 접근을 차단할 수 있다.
  • SNI 필드는 암호화 되지 않아 ISP가 쉽게 검사할 수 있으나, 최근에는 SNI 암호화 기술인
    ESNI(Encrypted Server Name Indication)가 개발되어 SNI 필드도 암호화 되어 인터넷 프라이버시를 강화할 수 있게 되었다.

SNI란?

  • SNI는 클라이언트가 서버에 연결을 요청할 때, 어떤 호스트(웹사이트)에 접속하고자 하는지 서버에 알려주는 기능을 한다.
  • SNI는 원래 평문으로 전송되어 암호화 되지 않아, 중간자가 네트워크 트래픽을 감시함으로써 사용자가 어떤 웹사이트를 방문하는지 쉽게 파악할 수 있다.
  • ESNI(Encrypted Server Name Indication)가 개발되어 SNI 필드도 암호화 할 수 있게 되었다.

ESNI의 작동 원리

  1. 키 공유: 웹사이트(서버)는 DNS를 통해 공개 키를 배포한다. 이 공개 키는 ESNI 정보를 암호화하는 데 사용된다.
  2. SNI 암호화: 클라이언트는 서버에 연결을 시도할 때, SNI 정보를 서버의 공개 키로 암호화한다. 암호화된 SNI 정보는 TLS 핸드셰이크 요청의 일부로 서버에 전송된다.
  3. SNI 정보의 해독: 서버는 자신의 개인 키를 사용하여 암호화된 SNI 정보를 해독한다. 이를 통해 어떤 웹사이트에 대한 요청인지를 알 수 있고, 적절한 인증서를 클라이언트에 제공하여 TLS 연결을 완성한다.

ESNI의 중요성

  • 프라이버시 보호: ESNI는 사용자가 방문하는 웹사이트의 이름을 중간자로부터 숨긴다. 이는 ISP(Internet Service Provider), 정부 기관, 또는 네트워크 상에서 감시 활동을 하는 자가 사용자의 웹 브라우징 활동을 추적하는 것을 어렵게 만든다.
  • 검열 우회: 특정 국가나 기관에서 웹사이트 접근을 차단하는 경우, ESNI는 해당 웹사이트에 대한 접속 시도를 숨겨 검열을 우회할 수 있는 가능성을 제공한다.

ESNI와 ECH(Encrypted ClientHello)

  • TLS 1.3의 도입과 함께, ESNI는 더 발전된 형태인 ECH(Encrypted ClientHello)로 진화하고 있다.
  • ECH는 클라이언트 헬로(ClientHello) 메시지의 더 많은 부분을 암호화하여, SNI 외에도 다른 민감한 정보를 보호한다.
  • ECH는 ESNI보다 포괄적인 프라이버시 보호를 제공하며, 현재 인터넷 표준화 기구에서 논의 및 개발 중에 있다.
profile
최고가 되기 위한 여정

0개의 댓글