인터넷2018. 12. 16. 21:27
반응형

파이어폭스 웹 브라우저에 Encrypted SNI를 설정하는 방법입니다.

 

Encrypted SNI는 인터넷을 할 때 클라이언트에서 SNI필드를 요청시 기존에는 평문으로 전송해서 호스팅 주소가 노출될 우려가 있었는데 이 과정을 암호화 시켜서 프라이버시를 보호하는 방법입니다.

 

SNI는 TLS 확장 표준중에 하나로 쉽게 말하면 동일한 아이피를 사용하는 한개의 물리적 서버에 여러 웹 서버를 보안접속 가능하도록 인증서를 관리하는 규격이라고 생각하면 됩니다.

 

SSL/TLS(https) 와 DNS over TLS(DNS 암호화)를 사용하면 인터넷 통신의 대부분이 암호화되지만 SNI를 사용한 서버에 접속할 때는 최초 접속 시 인증서 관련 내용이 없기 때문에 평문으로 내용이 전송돼서 호스트 서버의 주소가 노출되게 됩니다.

Encrypted SNI를 적용하면 위 경우에도 모두 암호화 통신이 이뤄지기 때문에 네트워크를 감시해도 접속하는 서버와 내용을 알 수 없어서 감청을 해도 소용없게 됩니다.

 

참고로 설정을 해도 모든 웹 페이지에서 적용되는 건 아닙니다.

사용 조건으로 기본적으로 https://로 통신을 해야하고 접속하는 서버가 Encrypted SNI를 지원하는 DNS 서버를 사용 해야 합니다.

ESNI 구현 방법상 DNS 단계에서 암호화 통신을 사용하지 않으면 의미가 없기 때문에 DNS도 DNS over HTTPS를 사용하도록 변경해야 합니다.

현 시점에서 Encrypted SNI를 지원하는 DNS 서버는 Cloudflare만 있습니다.

 

파이어 폭스로 하는 이유는 다른 웹브라우저들은 아직 Encrypted SNI 기능을 지원하지 않기 때문입니다.



※ 공지사항 (2021.01.30 추가)


파이어폭스 브라우저가 85.0 버전으로 업데이트되면서 Encrypted SNI를 더 이상 지원하지 않습니다.

85.0 버전부터는 ESNI를 대체하는 ECH로 변경이 되면서 ESNI를 사용할 수 없게 되었습니다.

하지만 파이어폭스 ESR 버전에서 한동안 더 ESNI를 지원할 예정이기 때문에 ESNI 연결을 사용하려면 파이어 폭스 ESR 버전을 설치해서 사용하면 됩니다.



https://www.mozilla.org/ko/firefox/all/#product-desktop-esr

△ 파이어폭스 언어별 버전 다운로드 페이지입니다.

파이어폭스 ESR 버전을 다운로드하기 위해서는 위 페이지에서 'Firefox Extended Support Release'를 선택하면 됩니다.


 

 

https://www.mozilla.org/ko/firefox/

△ 파이어폭스 홈페이지 입니다.

정식 최신 버전을 다운 받으면 됩니다.

ESR 버전을 다운로드 받아야 합니다.

 

 

★ DNS over HTTPS 설정

 

https://rootblog.tistory.com/95
△ 파이어폭스 DNS over HTTPS 설정하는 방법입니다.

위 링크를 참조해서 설정하길 바랍니다. 

 

 

제가 한 설정입니다.

network.trr.bootstrapAddress : 1.1.1.1 (클라우드플레 DNS)

network.trr.mode : 2 (미지원 서버를 대비해서 2로 설정했습니다.)

network.trr.uri : 기본값 (기본값이 사용할 수 있는 주소기 때문에 수정하지 않았습니다.)




파이어폭스 버전업으로 위 설정은 설정 페이지에서 편하게 변경할 수 있도록 되었습니다.

위 설정 방법보다 아래 설정 방법을 사용하는 것이 편리합니다.


메뉴 -> 설정을 클릭하거나 주소 줄에 about:preferences를 입력해서 설정 페이지로 이동합니다.

설정 페이지 가장 아래 네트워크 설정에 '설정'을 클릭합니다.



연결 설정 창에서 'DNS over HTTPS (HTTPS를 통한 DNS) 사용'에 체크를 하고 DNS 공급자를 선택합니다.

위 방법을 사용하면 편리하게 파이어폭스에 DNS over HTTPS 설정을 변경할 수 있습니다. 

 

 

※ Encrypted SNI 설정

 

주소줄에 about:config를 입력해서 고급 환경 설정 기능을 엽니다.

환경 설정을 잘못하면 문제가 발생할 수 있기 때문에 경고 메시지가 나옵니다.

"위험을 감수하겠습니다!" 를 클릭합니다.

 

 

검색에 esni를 검색합니다.

 

 

network.security.esni.enabled 항목을 더블 클릭해서 값을 true 로 변경하면 설정 완료 입니다.

설명에 비해 설정은 간단한 편입니다.

 

 

※ Encrypted SNI 동작 확인하기

클라우드플레어 에서 제공하는 브라우저 보안 체크를 사용해서 동작을 확인할 수 있습니다. 

 

https://www.cloudflare.com/ssl/encrypted-sni/

△ Browsing Experience Security Check 페이지 입니다.

Check My Browser를 클릭하면 검사를 시작 합니다. 

 

 

검사 결과 입니다

위 화면처럼 Secure DNS, DNSSEC, TLS 1.3, Encrypted SNI 모든 항목이 녹색으로 체크되어 있으면 설정이 잘 적용되고 있는 상태입니다.

 

 

 

※ SNI 차단 우회하기

 

https://rootblog.tistory.com/143
△ GoodByeDPI GUI 사용 방법

 

https://rootblog.tistory.com/142

△ MTU 설정 방법

 

반응형

Posted by 천지무료