서버 이름 표시
Server Name IndicationSNI(Server Name Indication)는 클라이언트가 핸드셰이크 [1]프로세스를 시작할 때 연결하려고 하는 호스트 이름을 나타내는 TLS(Transport Layer Security) 컴퓨터 네트워킹 프로토콜의 확장입니다.확장 기능을 사용하면 서버가 동일한 IP 주소 및 TCP 포트 번호에 여러 개의 가능한 인증서 중 하나를 표시할 수 있으므로 모든 사이트에서 동일한 인증서를 사용할 필요 없이 여러 개의 보안(HTTP) 웹 사이트(또는 TLS를 통한 다른 서비스)를 동일한 IP 주소로 제공할 수 있습니다.HTTP/1.1 이름 기반 가상 호스팅과 동일한 개념이지만 HTTPS의 경우입니다.이를 통해 프록시는 TLS/SSL 핸드셰이크 중에 클라이언트 트래픽을 올바른 서버로 전달할 수도 있습니다.원하는 호스트 이름이 원래 SNI 확장자에서 암호화되지 않으므로 도청자는 요청되는 사이트를 확인할 수 있습니다.SNI 확장은 2003년에 지정되었습니다. RFC3546.
문제의 배경
SNI 이전에는 TLS 연결을 할 때 클라이언트가 연결하려는 사이트를 지정할 방법이 없었습니다.따라서 하나의 서버가 단일 수신기에 여러 사이트를 호스트하는 경우 서버는 TLS 프로토콜에서 사용할 인증서를 알 수 없습니다.구체적으로 TLS 연결 시 클라이언트가 웹 서버에 디지털 인증서를 요청합니다.서버가 인증서를 전송하면 클라이언트는 인증서를 검사하고 연결하려는 이름을 인증서에 포함된 이름과 비교합니다.일치가 발생하면 정상적으로 연결이 진행됩니다.일치하지 않는 경우 불일치 경고가 표시되고 일치하지 않는 경우 중간자 공격이 시도되었음을 나타낼 수 있으므로 연결이 중단될 수 있습니다.그러나 일부 응용 프로그램에서는 사용자가 연결을 진행하기 위해 경고를 무시할 수 있으며, 인증서를 신뢰해야 하는 책임을 사용자가 지게 되며, 이를 통해 연결을 진행할 수도 있습니다.
그러나 서버가 담당하게 될 모든 이름을 포함하는 단일 인증서를 획득하는 것은 어렵거나 심지어는 사전에 모든 이름의 전체 목록이 없기 때문에 불가능할 수도 있습니다.여러 호스트 이름을 담당하는 서버는 각 이름(또는 작은 이름 그룹)에 대해 다른 인증서를 제공해야 할 가능성이 있습니다.주제를 사용할 수 있습니다.단일 인증서에 한 사람이[2] 제어하는 여러 도메인을 포함하는 AltName.이러한 "통합 통신 인증서"는 도메인 목록이 변경될 때마다 재발행되어야 합니다.
이름 기반 가상 호스팅을 사용하면 동일한 IP 주소의 단일 서버(일반적으로 웹 서버)에서 여러 DNS 호스트 이름을 호스팅할 수 있습니다.이를 위해 서버는 프로토콜의 일부로 클라이언트가 제시한 호스트 이름을 사용합니다(HTTP의 경우 호스트 헤더에 이름이 표시됨).그러나 HTTPS를 사용할 경우 서버가 HTTP 헤더를 보기 전에 TLS 핸드셰이크가 발생합니다.따라서 서버가 HTTP 호스트 헤더의 정보를 사용하여 어떤 인증서를 표시할지를 결정할 수 없으며 동일한 인증서에 의해 커버되는 이름만 동일한 IP 주소에서 제공될 수 있습니다.
실제로 이는 HTTPS 서버가 안전하고 효율적인 탐색을 위해 IP 주소당 하나의 도메인(또는 작은 도메인 그룹)만 서비스할 수 있음을 의미했습니다.각 사이트에 대해 별도의 IP 주소를 할당하면 IP 주소에 대한 요청이 지역 인터넷 레지스트리에 정당화되어야 하고 IPv4 주소가 이제 모두 소진되었기 때문에 호스팅 비용이 증가합니다.IPv6의 경우 주소 공간이 소진되지 않더라도 단일 시스템에 여러 개의 IP를 가짐으로써 관리 오버헤드가 증가합니다.그 결과 많은 웹사이트들이 안전한 통신을 사용하는 것을 효과적으로 제한하게 되었습니다.
기술원칙
SNI는 TLS 협상의 ClientHello [3]메시지의 일부로 클라이언트가 가상 도메인의 이름을 보내도록 함으로써 이 문제를 해결합니다.이를 통해 서버는 올바른 가상 도메인을 조기에 선택하고 브라우저에 올바른 이름이 포함된 인증서를 제공할 수 있습니다.따라서 SNI를 구현하는 클라이언트 및 서버에서는 단일 IP 주소를 가진 서버가 도메인 이름 그룹을 제공할 수 있으며, 이를 위해 공통 인증서를 얻는 것은 불가능합니다.
SNI는 2003년 6월 RFC 3546, TLS(Transport Layer Security) Extensions를 통해 IETF의 인터넷 RFC에 추가되었습니다.표준의 최신 버전은 RFC 6066입니다.
보안과 관련된 사항
서버 이름 표시 페이로드가 암호화되어 있지 않으므로 클라이언트가 연결하려는 서버의 호스트 이름이 수동 도청기에 표시됩니다.이러한 프로토콜 취약점은 네트워크 필터링 및 모니터링을[4][5][6] 위한 보안 소프트웨어와 정부가 검열을 [7]구현하기 위해 악용한 것입니다.현재 서버 이름 표시를 숨기려는 여러 기술이 있습니다.
도메인 전면
도메인 프론팅(Domain fronting)은 SNI에서 원하는 호스트 이름을 동일한 서버가 호스팅하는 다른 호스트 이름으로 대체하는 기술입니다.클라이언트가 도메인 프론팅을 사용할 때 SNI(암호화되지 않음)의 서버 도메인을 대체하지만, 서버가 올바른 내용을 제공할 수 있도록 HTTP 호스트 헤더(TLS에 의해 암호화됨)에 남겨 둡니다.도메인 프론팅은 SNI를 정의하는 표준 자체를 위반하므로 호환성이 제한됩니다(많은 서비스에서 SNI 호스트가 HTTP 헤더 호스트와 일치하는지 확인하고 도메인 프론팅 SNI와의 연결을 유효하지 않은 것으로 거부함).과거에는 정부의 [8]검열을 피하기 위해 도메인 프론팅을 사용했지만, 주요 클라우드 제공업체(Google, Amazon의 AWS 및 CloudFront)가 TOS에서 도메인 프론팅을 명시적으로 금지하고 기술적 제약을 [9]가했기 때문에 도메인 프론팅의 인기가 떨어졌습니다.
암호화된 클라이언트 Hello
암호화된 클라이언트 Hello(ECH)는 TLS 1.3 프로토콜 확장으로, TLS 1.3 협상의 초기 단계에서 전송되는 클라이언트 Hello 메시지 전체를 암호화할 수 있습니다.ECH는 사용자(웹 브라우저)가 사전에 알아야 할 공개키로 페이로드를 암호화하는데, 이는 브라우저 공급업체가 사전에 알고 있는 대용량 CDN으로 ECH가 가장 효과적임을 의미합니다.
이 확장의 초기 2018년 버전은 ESNI([10]Encrypted SNI)라고 불렸으며 도메인 [11][12][13]도청의 이러한 위험을 해결하기 위해 구현은 "실험적" 방식으로 롤아웃되었습니다.파이어폭스 85는 ESNI에 [14]대한 지원을 없앴습니다.ECH와는 달리 암호화된 SNI는 클라이언트 [15]Hello 전체가 아닌 SNI만을 암호화했습니다.이 버전에 대한 옵트인 지원은 2018년 10월[16] Firefox에 통합되었으며 DNS-over-HTTP를 [17]활성화해야 합니다.
2020년 3월, ESNI는 분석 결과 SNI만을 암호화하는 것이 불충분하여 ECH 확장으로 재작업되었습니다.예를 들어, 사양을 사용하면 사전 공유 키 확장에 세션 재개를 촉진하기 위한 모든 데이터, 심지어 ESNI에서 암호화한 동일한 서버 이름의 명확한 텍스트 복사본을 전송할 수도 있습니다.또한 확장을 하나씩 암호화하려면 잠재적인 개인 정보 보호를 포함하는 모든 확장의 암호화된 변형이 필요하며, 심지어는 광고되는 확장 집합을 노출하기도 합니다.마지막으로, ESNI의 실제 구축은 상호 운용성의 [18]한계를 드러냈습니다.2020년 3월에[15] ECH로 단축명칭을 변경하였고,[19] 2020년 5월에 ECH로 변경하였습니다.
ESNI와 ECH 모두 TLS 1.[20][21]3에서 처음 정의된 KeyShareEntry에 의존하기 때문에 TLS 1.3과만 호환됩니다.또한 ECH를 사용하기 위해서는 클라이언트가 [22]1.3 이하의 TLS 버전을 제안하지 않아야 합니다.
또 다른 인터넷 초안인 HTTPS 및 SVCB DNS 레코드 타입은 핸드셰이크 [23]과정을 단축시키기 위해 DNS 응답을 통해 ECH 공개 키를 전송하는 방법을 포함합니다.
2023년 7월, IETF117 회의에서 ECH를 담당하는 구성원들은 크롬과 파이어폭스가 1% 샘플 테스트를 하고 있다고 알렸고, 팀은 2024년 [24][25]1월까지 최종 초안이 IESG 평가에 제출될 것으로 예상하고 있습니다.
2020년 8월, 중국의 만리장성은 ESNI 트래픽을 차단하는 동시에 ECH [26]트래픽을 허용하기 시작했습니다.
2020년 10월, 러시아 ISP Rostelecom과 그 이동통신 사업자 Tele2는 ESNI [27]트래픽을 차단하기 시작했습니다.같은 해 9월 러시아 검열부 [28][29][30]로스콤나드조르는 웹사이트 접근 검열을 방해하는 TLS 1.3과 ESNI를 포함한 다양한 암호화 프로토콜을 금지할 계획이었습니다.
실행
2004년 EdelKey 프로젝트는 [31]OpenSSL에 TLS/SNI를 추가하기 위한 패치를 개발했습니다.2006년에 이 패치는 OpenSSL의 개발 지사로 포팅되었고, 2007년에 Open으로 포팅되었습니다.SSL 0.9.8(0.9.8f에서[32] 처음 출시됨).
응용 프로그램이 SNI를 구현하려면 응용 프로그램이 사용하는 TLS 라이브러리가 이를 구현하고 응용 프로그램이 호스트 이름을 TLS 라이브러리로 전달해야 합니다.TLS 라이브러리는 응용 프로그램에 포함되거나 기본 운영 체제의 구성 요소가 될 수 있습니다.이 때문에 어떤 운영 체제에서 실행할 때 SNI를 구현하는 브라우저도 있지만 특정 운영 [citation needed]체제에서 실행할 때만 SNI를 구현하는 브라우저도 있습니다.
지지하다
SNI 지원 | ECH 지원 | |||||
---|---|---|---|---|---|---|
소프트웨어 | 유형 | 지원됨 | 메모들 | 부터 | 지원됨 | 메모들 |
Alpine(이메일 클라이언트) | IMAP 이메일 클라이언트 | 네. | 버전 2.22[33] 이후 | 2019-02-18 | ||
인터넷 익스플로러 | 웹브라우저 | 네. | Vista의 버전 7 이후(XP에서는 지원되지 않음) | 2006 | 아니요. | |
가장자리 | 웹브라우저 | 네. | 모든 버전 | 네. | v105 깃발 뒤에서[34] 부터 | |
모질라 파이어폭스 | 웹브라우저 | 네. | 버전 2.0 이후 | 2006 | 네. | v85부터 깃발 뒤에.[35] |
cURL | 명령줄 도구 및 라이브러리 | 네. | 버전 7.18.1 이후 | 2008 | 부분적 | [36][37] |
사파리 | 웹브라우저 | 네. | Windows XP에서 지원되지 않음 | 아니요. | [38] | |
구글 크롬 | 웹브라우저 | 네. | 2010 | 네. | v105부터 깃발 [35]뒤에. | |
블랙베리 10 | 웹브라우저 | 네. | 모든 BB10 릴리즈에서 지원됨 | 2013 | 아니요. | |
블랙베리 OS | 아니요. | |||||
Barracuda 와프 | 역방향 프록시 | 네. | 버전 7.8부터[39] 지원 | 2013 | ||
Barracuda ADC | 로드 밸런서 | 네. | 버전 4.0 이후의 프론트엔드 지원 및 v5.2[40] 이후의 백엔드 지원 | Frontend 2013 / Backend 2015 | ||
윈도 모바일 | 웹브라우저 | 6.5이후 얼마간 | 아니요. | |||
안드로이드 브라우저 (Android 4.2에서 단종됨) | 웹브라우저 | 네. | 태블릿용 허니콤(3.x), 전화용 아이스크림 샌드위치(4.x) | 2011 | 아니요. | |
안드로이드용 파이어폭스 | 웹브라우저 | 네. | 브라우징을 지원합니다.Sync 및 기타 서비스는 버전 [41]86 이후로만 SNI를 지원합니다. | Firefox Beta 또는 Nightly 뒤에 있는 플래그에서만 사용 가능합니다. | ||
wget | 명령줄 도구 | 네. | 버전 1.14 이후 | 2012 | ||
노키아 심비안 브라우저 | 웹브라우저 | 아니요. | 아니요. | |||
심비안을 위한 오페라 모바일 | 웹브라우저 | 아니요. | Series60에서 지원되지 않음 | 아니요. | ||
딜로 | 웹브라우저 | 네. | 버전 3.1 이후 | 2016 | ||
IBM HTTP 서버 | 웹 서버 | 네. | 버전 9.0.0[42][43] 이후 | |||
아파치 톰캣 | 웹 서버 | 네. | 8.5 이전에는 지원되지 않음(9부터 백포트) | |||
Apache HTTP 서버 | 웹 서버 | 네. | 버전 2.2.12 이후 | 2009 | ||
마이크로소프트 IIS | 웹 서버 | 네. | 버전 8 이후(Windows Server 2012의 일부) | 2012 | ||
nginx | 웹 서버 | 네. | 버전 0.5.23 이후 | 2007 | 아니요. | [44] |
제티 | 웹 서버 | 네. | 버전 9.3.0 이후 | 2015 | ||
HCL Domino | 웹 서버 | 네. | 버전 11.0.1 이후 | 2020 | ||
H2O | 웹 서버 | 네. | 네. | [45][46] | ||
보링SSL | 도서관 | 네. | 네. | [47] | ||
BSAFE 마이크로 에디션 스위트 | 도서관 | 네. | 버전 5.0[48] | |||
GnuTLS | 도서관 | 네. | 아니요. | 2023년 [49]7월 현재 진행중입니다. | ||
리브르SSL | 도서관 | 네. | 아니요. | [50] | ||
Mbed TLS | 도서관 | 네. | 아니요. | |||
Mozilla NSS 클라이언트 측 | 도서관 | 네. | 버전 3.11.1[51] 이후 | 2006 | 네. | [52] |
Mozilla NSS 서버 측 | 도서관 | 아니요. | [53] | 아니요. | ||
오픈SSL | 도서관 | 네. | 아니요. | [54] | ||
피코틀스 | 도서관 | 네. | 네. | [55] | ||
러슬 | 도서관 | 네. | 아니요. | 2023년 [56][57]7월 현재 진행중입니다. | ||
스위프트 NIO SSL | 도서관 | 네. | 아니요. | [58] | ||
늑대SSL | 도서관 | 네. | 네. | v5.6.3[59] 이후 | ||
4차원 | 표준도서관 | 아니요. | 15.2 이전 버전에서는 지원되지 않음 | 아니요. | ||
콜드퓨전 / 루시 | 표준도서관 | 네. | 콜드퓨전 버전 10 업데이트 18, 11 업데이트 7, Lucee 버전 4.5.1.019, 버전 5.0.0.50 이후 | 2015 | ||
얼랑 | 표준도서관 | 네. | 버전 r17 이후 | 2013 | ||
가세요 | 표준도서관 | 네. | 버전 1.4 이후 | 2011 | 클라우드 플레어/고포크로 서포트[60] 제공 | |
자바 | 표준도서관 | 네. | 버전 1.7 이후 | 2011 | ||
펄 | 표준도서관 | 네. | 부터Net::SSLeay 버전 1.50 및IO::Socket::SSL 버전 1.56 | 2012 | ||
PHP | 표준도서관 | 네. | 버전 5.3 이후 | 2014 | ||
파이썬 | 표준도서관 | 네. | 2.7.9에서 2.x로, 3.2에서 3.x로 지원(에서)ssl ,urllib[2] 그리고.httplib 모듈) | Python 3.x의 경우 2011년, Python 2.x의 경우 2014년 | ||
Qt | 표준도서관 | 네. | 버전 4.8 이후 | 2011 | ||
루비 | 표준도서관 | 네. | 버전 2.0 이후(in)net/http ) | 2011 | ||
히아와타 | 웹 서버 | 네. | 버전 8.6 이후 | 2012 | 아니요. | Mbed [61]TLS에 따라 달라집니다. |
lighttpd | 웹 서버 | 네. | 버전 1.4.24 이후 | 2009 | 아니요. | |
HAP프록시 | 로드 밸런서 | 네. | 버전 1.5-dev12[62] 이후 | 2012 | 아니요. | [63] |
OpenBSD httpd | 웹 서버 | 네. | OpenBSD 버전 6.1[64] 이후 | 2017-04-11 | 아니요. | OpenSSL에 [65]따라 다릅니다. |
참고문헌
- ^ Blake-Wilson, Simon; Nystrom, Magnus; Hopwood, David; Mikkelsen, Jan; Wright, Tim (June 2003). "Server Name ssl_ocsp_responderIndication". Transport Layer Security (TLS) Extensions. IETF. p. 8. sec. 3.1. doi:10.17487/RFC3546. ISSN 2070-1721. RFC 3546.
- ^ "What is a Multiple Domain (UCC) SSL Certificate?". GoDaddy.
- ^ "TLS Server Name Indication". Paul's Journal.
- ^ "Web Filter: SNI extension feature and HTTPS blocking". www3.trustwave.com. Retrieved 20 February 2019.
- ^ "Sophos UTM: Understanding Sophos Web Filtering". Sophos Community. Retrieved 20 February 2019.
- ^ Chrisment, Isabelle; Goichot, Antoine; Cholez, Thibault; Shbair, Wazen M. (11 May 2015). "Efficiently Bypassing SNI-based HTTPS Filtering". 2015 IFIP/IEEE International Symposium on Integrated Network Management (IM). pp. 990–995. doi:10.1109/INM.2015.7140423. ISBN 978-1-4799-8241-7. S2CID 14963313.
- ^ "South Korea is Censoring the Internet by Snooping on SNI Traffic". BleepingComputer. Retrieved 18 February 2019.
- ^ "Encrypted chat app Signal circumvents government censorship". Engadget. Retrieved 4 January 2017.
- ^ "Amazon threatens to suspend Signal's AWS account over censorship circumvention". Signal. Retrieved 2 May 2018.
- ^ Rescorla, Eric; Oku, Kazuho; Sullivan, Nick; Wood, Christopher A. (6 April 2023). "Draft-ietf-TLS-esni-14".
- ^ "ESNI: A Privacy-Protecting Upgrade to HTTPS". EFF DeepLinks Blog. 24 September 2018.
- ^ Claburn, Thomas (17 July 2018). "Don't panic about domain fronting, an SNI fix is getting hacked out". The Register. Retrieved 10 October 2018.
- ^ "Encrypt it or lose it: how encrypted SNI works". The Cloudflare Blog. 24 September 2018. Retrieved 13 May 2019.
- ^ "1667743 - Clean up unused esni code". bugzilla.mozilla.org. Retrieved 7 April 2022.
- ^ a b "ESNI -> ECHO · tlswg/draft-ietf-tls-esni". GitHub.
- ^ Eric, Rescorla (18 October 2018). "Encrypted SNI Comes to Firefox Nightly". Mozilla Security Blog. Retrieved 15 June 2020.
- ^ Daniel, Stenberg. "curl-library mailing list archive". curl.haxx.se. Retrieved 15 June 2020.
- ^ Jacobs, Kevin (7 January 2021). "Encrypted Client Hello: the future of ESNI in Firefox". Mozilla Security Blog. Retrieved 9 January 2021.
- ^ "s/ECHO/ECH · tlswg/draft-ietf-tls-esni". GitHub.
- ^ Ghedini, Alessandro (24 September 2018). "Encrypt it or lose it: how encrypted SNI works". The Cloudflare Blog. Retrieved 11 July 2021.
this is an extension to TLS version 1.3 and above, and doesn't work with previous versions of the protocol
{{cite web}}
: CS1 유지 : url-status (링크) - ^ "Make ESNI TLS 1.2 compatible · Issue #38 · tlswg/draft-ietf-tls-esni". GitHub. Retrieved 9 August 2020.
- ^ Rescorla, Eric. "TLS Encrypted Client Hello". tlswg.org. Retrieved 24 February 2021.
The client ... MUST offer to negotiate TLS 1.3 or above.
{{cite web}}
: CS1 유지 : url-status (링크) - ^ Schwartz, Benjamin M.; Bishop, Mike; Nygren, Erik (11 March 2023). "Service binding and parameter specification via the DNS (DNS SVCB and HTTPS RRs)". Internet Engineering Task Force. Retrieved 25 July 2023.
- ^ TLS Working Group (26 July 2023). "Minutes IETF117: tls: Wed 20:00". IETF Datatracker. Archived from the original on 2 August 2023. Retrieved 2 August 2023.
- ^ TLS Working Group (26 July 2023). IETF117-TLS-20230726-2000. YouTube (video). San Francisco: Internet Engineering Task Force. Retrieved 2 August 2023.
- ^ Cimpanu, Catalin. "China is now blocking all encrypted HTTPS traffic that uses TLS 1.3 and ESNI". ZDNet. Retrieved 9 August 2020.
- ^ "Почему Ростелеком блокирует ESNI трафик?". qna.habr.com (in Russian). 11 October 2020. Retrieved 30 October 2020.
- ^ "Russia's Digital Development Ministry wants to ban the latest encryption technologies from the RuNet". Meduza. Retrieved 18 June 2021.
- ^ Cimpanu, Catalin. "Russia wants to ban the use of secure protocols such as TLS 1.3, DoH, DoT, ESNI". ZDNet. Retrieved 18 June 2021.
- ^ Sherman, Justin (25 September 2020). "Russia Is Trying Something New to Isolate Its Internet From the Rest of the World". Slate Magazine. Retrieved 18 June 2021.
- ^ "EdelKey Project". www.edelweb.fr. Retrieved 20 February 2019.
- ^ "OpenSSL CHANGES". Archived from the original on 20 April 2016.
- ^ "Public Git Hosting - alpine.git/Commit".
- ^ "How to improve privacy in Microsoft Edge by enabling Encrypted Client Hello". Neowin. 25 July 2023. Archived from the original on 5 December 2022. Retrieved 25 July 2023.
- ^ a b "Developing ECH for OpenSSL (DEfO)". defo.ie. Tolerant Networks Limited. 24 August 2022. Archived from the original on 1 September 2022.
- ^ "curl/docs/ECH.md at cbe7fad20d969626a5c4eb0501a273dfe812bcd3 · curl/curl". GitHub. Retrieved 26 July 2023.
- ^ "curl/docs/ROADMAP.md at 50490c0679fcd0e50bb3a8fbf2d9244845652cf0 · curl/curl". GitHub. Retrieved 26 July 2023.
- ^ "Feature: TLS Encrypted Client Hello (ECH)". Chrome Platform Status. Archived from the original on 28 May 2023. Retrieved 25 July 2023.
Safari: No signal
- ^ "Release Notes Version 7.8". Campus@Barracuda. September 2013. Retrieved 5 January 2021.
- ^ "Release Notes Version 5.2". Campus@Barracuda. September 2015. Retrieved 5 January 2021.
- ^ "Bug 765064 – HttpClient in use by Sync and other services doesn't support SNI". Bugzilla@Mozilla. 29 October 2017. Retrieved 9 November 2017.
- ^ "IBM HTTP Server SSL Questions and Answers". IBM. Retrieved 8 March 2011.
- ^ "IHS 8 powered by Apache 2.2.x ?". IBM. 17 October 2013. Archived from the original on 26 December 2015. Retrieved 9 November 2017.
- ^ "#2275 (Support Encrypted Client Hello) – nginx". trac.nginx.org. Retrieved 6 July 2023.
- ^ "ECH by kazuho · Pull Request #3164 · h2o/h2o". GitHub. Retrieved 6 July 2023.
- ^ "Base Directives - Configure". H2O - the optimized HTTP/2 server. Archived from the original on 29 May 2023. Retrieved 18 July 2023.
- ^ "Update to draft-ietf-tls-esni-13". BoringSSL code repository. Retrieved 6 July 2023.
- ^ "Dell BSAFE Micro Edition Suite 5.0 Release Advisory". Retrieved 18 October 2022.
- ^ "Support ECH (#595) · Issues · gnutls / GnuTLS · GitLab". GitLab. 27 October 2018. Retrieved 26 July 2023.
- ^ "Support ESNI · Issue #546 · libressl/portable". GitHub. Retrieved 26 July 2023.
- ^ "116168 - TLS server name indication extension support in NSS". bugzilla.mozilla.org. Retrieved 6 July 2023.
- ^ "D101050 Bug 1681585 - Add ECH support to selfserv". phabricator.services.mozilla.com. Retrieved 6 July 2023.
- ^ "Bug 360421 – Implement TLS Server Name Indication for servers". Bugzilla@Mozilla. 11 November 2006. Retrieved 30 October 2012.
- ^ "Support Encrypted Client Hello (formerly known as ESNI) · Issue #7482 · openssl/openssl". GitHub. Retrieved 6 July 2023.
- ^ "[ech] rewrite ESNI to ECH draft 15 by kazuho · Pull Request #437 · h2o/picotls". GitHub. Retrieved 6 July 2023.
- ^ "ECHConfig implementation · Issue #508 · rustls/rustls". GitHub. Retrieved 26 July 2023.
- ^ "WIP: ECH Draft-10 by sayrer · Pull Request #663 · rustls/rustls". GitHub. Retrieved 26 July 2023.
- ^ "Certificate selection for servers is missing · Issue #310 · apple/swift-nio-ssl". GitHub. Retrieved 26 July 2023.
- ^ "Adds support for TLS v1.3 Encrypted Client Hello (ECH) draft-ietf-tls… · wolfSSL/wolfssl@6b6ad38". GitHub. Retrieved 25 July 2023.
- ^ "crypto/tls: implement draft-ietf-tls-esni-13 · cloudflare/go@4c13101". GitHub. Retrieved 25 July 2023.
- ^ "src/tls.c · master · Hugo Leisink / Hiawatha web server · GitLab". GitLab. 5 April 2023. Retrieved 26 July 2023.
- ^ "HAProxy 1.5 changelog". Retrieved 28 December 2020.
- ^ "ECH (Encrypted client hello) support · Issue #1924 · haproxy/haproxy". GitHub. Retrieved 26 July 2023.
- ^ "OpenBSD 6.1 What's New". Retrieved 13 June 2021.
- ^ "src/lib/libtls/tls.c at master · openbsd/src". GitHub. Retrieved 26 July 2023.