2 min read

HTTPS 우회법 두가지 원리

정부가 SNI를 보고 HTTPS을 차단하는데 이를 막는 방법은 총 두가지가 존재합니다.

하나는 길길님이 ISP에서 첫번째 패킷만을 조사한다는 점을 이용하여 패킷을 둘로 나누어 버려 조사를 피하는 법입니다.

이 게 무슨말이냐면

client hello을 패킷안에는 SNI가 있어 이를 두개로 나누어 버리게되면 ISP(인터넷 제공자)에는 이를 탐자를 못하게됩니다. 코드를 짤수 있게지만 집안에 라우터의 기능을 이용해도 됩니다.

인터넷은 여러 라우터들을 거치게됩니다. 하지만 이중에 MTU가 가장 낮은게 있으면 해당거를 기준으로 패킷을 보내게 됩니다. 이 MTU가 client hello보다 작다면 해당 패킷을 두번을 보내게됩니다. 결과적으로 ISP의 패킷감청이 실패로 돌아가게 됩니다.

MTU은 다음과 같습니다.

두번째 방법으로는 RST패킷을 무시하는거입니다.

저희가 금지된 https에 접속을 하였고 clinet hello를 보내게 됩니다. 하지만 정부의 ISP는 이를 탐지하고 RST패킷을 보내게됩니다. 그 뒤에는 접속하는 서버에서 패킷을 주게 됩니다.

결과적으로 RST패킷을 무시하면 접속이 되는거지요. 이는 goobyeDPI방식입니다.