HTTP차단, DNS차단, SNI차단에 대해서 자세히 알려주실수 있나요? 제가 알고있는 내용이 확실한것인지 모르겠습니다.

아시다시피 현재 브로큰웹스라는 사이트를 개편하고있는데, 조금 더 자세한 내용을 넣으려고 합니다.

 

위 차단 과정과 부작용에 대해서 알려주시면 정말 감사하겠습니다.

 

(사이트에는 제가 이해해서 많은 사람들이 알 수 있도록 쉬운말로 바꾸어 넣을 예정입니다.)

  • profile

    최근에 올라온 여러 글들과 거기 달린 댓글들에서 이미 충분히 설명을 하고 있어서 무엇을 더 추가해야 할지 모르겠네요. 특히 그 뭐더라? 학생들이 쪽지 주고받는 예를 들었던 만화가 참 좋았어요.

  • profile profile
    아 그정도 내용이면 충분할까요?
    https://brokenwebs.com/information/5966 처럼 쉽게 예를 들어서 일반사람들에게 알리려고 합니다. 이정도 내용이면 이해할 수 있을까요?
  • profile

    좀더 기술적으로 비교를 하자면

     

    어느 사이트에 접속하기 위해서는

    1. DNS를 통해 그 사이트의 IP 주소를 확인한 후

    2. 그 IP 주소에 접속하여

    3. 홈페이지를 보게 해달라고 HTTP 또는 HTTPS 요청을 하면

    4. 서버에서 홈페이지 내용을 보내주는

    과정을 거치게 됩니다.

     

    이 중 어느 단계에서 차단하는지에 따라 차단 방식과 효율, 그리고 패킷 내용을 뜯어볼(DPI) 필요가 있는지가 결정됩니다. 패킷 감청(DPI)을 동반하지 않는 차단 방식은 일반적으로 그냥 차단이라고만 하고, 감청이라고는 하지 않습니다.

     

    DNS 차단: 금지된 사이트의 IP 주소를 확인하는 과정에 끼어들어서 실제 서버가 아닌 워닝 서버로 연결함. 금지된 사이트에 실제 접속을 시도하는 사람에게만 관여하며, 통신사의 DNS 서버 설정만 바꾸면 되므로 패킷 내용을 뜯어볼 필요 없음. 비용이 적게 들어서 후진국에서 주로 사용하는 차단 방법인데, 우회하기도 쉬움.

    → 대응책: 8.8.8.8, 1.1.1.1 등 해외 DNS 사용.

     

    IP 차단: 금지된 사이트의 IP 주소로 접속하는 것을 그냥 다 막아버리거나, 응답 패킷을 조작하여 워닝 서버로 연결함. 방화벽이랑 비슷한 원리임. 금지된 사이트에 실제 접속을 시도하는 사람에게만 관여하며, IP 헤더만 처리하면 되므로 패킷 내용을 뜯어볼 필요는 없음.

    → 대응책: 이건 VPN 외에는 답이 없음

     

    HTTP 차단: 전국민의 HTTP 패킷을 뜯어보고, 금지된 사이트로 접속하려는 것이 확인되면 응답 패킷을 조작하여 실제 서버가 아닌 워닝 서버로 연결함. KT에서 공유기 사용 여부를 감지하는 데 사용하는 트릭과 동일함.

    → 대응책: HTTPS를 쓰면 됨 (며칠 전까지 상황이 이랬음)

     

    HTTPS(SNI) 차단: 전국민의 HTTPS 패킷을 뜯어보고, 그 중 암호화되지 않는 SNI라는 부분의 정보를 추출하여 금지된 사이트로 접속하려는지 여부를 확인함. 만약 금지된 사이트라면 접속 방해를 시전함. HTTPS는 응답 패킷을 조작하는 데 한계가 있으므로, 연결을 끊어버리거나 에러가 나게 할 수는 있지만 워닝 서버로 연결되도록 할 수는 없음.

    → 대응책: ESNI (SNI 부분의 정보도 암호화해버림)