안녕하세요,
요새 SNI 차단에 대해 말이 많고 큰 분노가 표출되고 있는데요. 일단 HTTPS 차단이라는 명칭도 마음에 안 들고 감청이라는 말까지 나오길래 검색을 조금 해봤습니다.
인터넷에 현재 돌아다니는 SNI이 어떻게 설정되며 어디서 이 필터링과정이 이루어지는게 다룬 내용은 안 보이는 듯 하여 저의 궁금증을 해소해주지는 못 하더군요.
꽤 최근에 적용된 기술이라 그런지 아니면 제 검색기술이 구려서인지 SNI에 대한 자료도 적고 자세한 내용도 없더라고요. 또 아무 자료나 들이대면 신빙성을 잃을테니 더 어렵더군요.
### 필터링은 어디서 이루어지나? ###
그래도 하나 마음에 드는 자료를 찾았습니다. 출처는 https://hal.inria.fr/hal-01202712/document 입니다.
간단해서 필요부분만 정리해서 쓰겠습니다. 얼마 안되는 내용이니 직접 읽어보시는 것도 좋습니다. 아래는 본문에서 나온 어떻게 필터링이 되는지 보여주는 표입니다.
아시다시피 SNI에서 서버이름값을 확인하여 필터링을 하는 것입니다. 본문 내용에 따르면 방화벽에서 Client Hello 메세지에 담긴 SNI를 분석하여 어떻게 처리할지 결정하며 문제없으면 서버로 전송하여 나머지 TLS Handshake를 완료한다는 것입니다. 표에서는 1번과 2번사이에 해당하겠죠.
TLS Handshake는 HTTPS연결 시 필요한 과정입니다.암호화된 트래픽과는 무관하다고 기술되어있습니다.
### 방화벽 설정 ###
굳이 이 부분까지 해야하나 싶지만 궁금하신 분 계시면 보시라고 적어봅니다.
참고하시라고 방화벽에서 어떻게 설정하면 막히는지 예제를 가져와봤습니다. 시스코같이 네트워크장비를 만드는 주니퍼라는 회사의 장비에 대한 내용입니다. 출처: https://kb.juniper.net/InfoCenter/index?page=content&id=KB31122
SRX방화벽의 소프트웨어 버전 12.3X48-D25부터 지원하는 기능이라고 하고 'https://www.juniper.net/documentation/en_US/junos/information-products/topic-collections/release-notes/12.3x48/junos-release-notes-12.3X48-D25.pdf' 기준으로 보면 2017년 4월즈음에 나왔지 싶습니다.
페이지 하단 내려가면 어떻게 설정하는지와 맨 아래에는 어떻게 로그가 남는지 보여줍니다. 어디서 어떻게 접속하는지 그냥....보이네요. 여느 라우터 설정이나 로그와 크게 차이없다고 보여집니다.
### 개인적인 결론 ###
개인적으로는 보기엔 그냥 방화벽에서 설정하여 필터링에 넣는 것으로 끝나는 과정인데 이걸 감청이니 패킷을 열어보니 하면서 논란이 생기는 점은 이해가 되지 않는군요.
위에 서술된 방식과 다른 방식으로 필터링을 하는지 모르겠습니다만 편하게 저렇게 막을 도메인명넣으면 끝나는 작업을 ISP에서 굳이 다르게 할 필요있을까 싶고, SNI필터링기능 지원도 안되는 방화벽을 쓰는지도 의문이네요. 아니면 도입을 위해 새 장비를 구입했으려나요 ㅎㅎ
개인적인 궁금증은 많이 해소되었는데 여러분의 궁금증도 조금은 해결되었으면 좋겠네요