پرش به محتوا

نشان نام سرور

از ویکی‌پدیا، دانشنامهٔ آزاد

نشانگر نام سرور (انگلیسی: Server Name Indication: SNI) یک افزونه به پروتکل شبکهٔ کامپیوتری امنیت لایه انتقال (TLS) است که توسط آن یک کلاینت نشان می‌دهد در آغاز فرایند دست‌دهی به کدام نام میزبان می‌خواهد متصل شود.[۱][۲]

این افزونه به سرور اجازه می‌دهد چندین گواهی کلید عمومی را بر روی یک نشانی آی‌پی و شماره درگاه (پورت) TCP ارائه کند. در نتیجه چندین وب سایت امن (HTTPS) (یا هر سرویس دیگری از طریق TLS) می‌توانند بدون استفاده از یک گواهی واحد از همان نشانی آی‌پی ارائه شوند.

پیش‌زمینۀ مشکل

[ویرایش | اشتراک‌گذاری]

پیش از SNI، هنگام برقراری یک اتصال TLS، کلاینت هیچ راهی برای مشخص‌کردن این‌که می‌خواهد به کدام وبگاه متصل شود نداشت. بنابراین، اگر یک سرور چندین وبگاه را روی یک شنوندهٔ واحد میزبانی می‌کرد، سرور راهی نداشت که بداند در پروتکل TLS باید از کدام گواهی استفاده کند. با جزئیات بیشتر، هنگام برقراری اتصال TLS، کلاینت از وب سرور یک گواهی دیجیتال درخواست می‌کند. پس از آن‌که سرور گواهی را فرستاد، کلاینت آن را بررسی می‌کند و نامی را که تلاش داشته به آن متصل شود با نام یا نام‌های موجود در گواهی مقایسه می‌کند. اگر تطابقی وجود داشته باشد، اتصال به‌طور عادی ادامه می‌یابد. اگر تطابقی یافت نشود، ممکن است به کاربر دربارهٔ این ناسازگاری هشدار داده شود و اتصال قطع شود؛ زیرا این عدم تطابق ممکن است نشان‌دهندۀ تلاش برای یک حمله مرد میانی باشد. با این حال، برخی برنامه‌ها به کاربر اجازه می‌دهند هشدار را نادیده بگیرد و ارتباط را ادامه دهد؛ در این صورت، مسئولیت اعتماد به گواهی و در نتیجه خودِ اتصال بر عهدۀ کاربر خواهد بود.

با این حال، دریافت یک گواهی واحد که همۀ نام‌هایی را که یک سرور باید پاسخ‌گوی آن‌ها باشد پوشش دهد، ممکن است دشوار یا حتی ناممکن باشد؛ به‌ویژه چون ممکن است فهرست کامل این نام‌ها از پیش در دسترس نباشد. سروری که مسئول چندین نام میزبان است، به احتمال زیاد باید برای هر نام (یا گروه کوچکی از نام‌ها) گواهی متفاوتی ارائه کند. می‌توان از subjectAltName برای قرار دادن چندین دامنهٔ تحت کنترل یک فرد[۳] در یک گواهی واحد استفاده کرد. چنین «گواهی‌های ارتباطات یکپارچه» هر بار که فهرست دامنه‌ها تغییر کند باید دوباره صادر شوند.

میزبانی مجازی مبتنی بر نام این امکان را می‌دهد که چندین نام میزبان DNS روی یک سرور واحد (معمولاً یک وب سرور) و روی یک نشانی آی‌پی یکسان میزبانی شوند. برای تحقق این کار، سرور از نام میزبانی که کلاینت به‌عنوان بخشی از پروتکل ارائه می‌کند استفاده می‌کند (در HTTP این نام در سرآیند میزبان ارائه می‌شود). اما هنگام استفاده از HTTPS، فرایند دست‌دهی TLS پیش از آن رخ می‌دهد که سرور هرگونه سرآیند HTTP را ببیند. بنابراین، سرور نمی‌توانست از اطلاعات موجود در سرآیند میزبان HTTP برای تصمیم‌گیری دربارۀ این‌که کدام گواهی را ارائه دهد استفاده کند؛ و در نتیجه فقط نام‌هایی که در یک گواهی مشترک پوشش داده شده بودند می‌توانستند از یک نشانی آی‌پی واحد ارائه شوند.

در عمل، این بدان معنا بود که یک سرور HTTPS فقط می‌توانست برای مرور امن و کارآمد، یک دامنه (یا گروه کوچکی از دامنه‌ها) را به ازای هر نشانی آی‌پی ارائه کند. اختصاص یک نشانی آی‌پی جداگانه برای هر وبگاه، هزینهٔ میزبانی را افزایش می‌دهد؛ زیرا درخواست برای نشانی‌های آی‌پی باید نزد دفتر ثبت منطقه‌ای اینترنت توجیه شود و نشانی‌های پروتکل اینترنت نسخه ۴ اکنون به پایان رسیده‌اند. در مورد IPv6 نیز، هرچند فضای آدرس‌دهی تمام نشده است، داشتن چند آی‌پی روی یک ماشین، سربار مدیریتی را افزایش می‌دهد. نتیجۀ این وضعیت آن بود که بسیاری از وبگاه‌ها عملاً از استفاده از ارتباطات امن بازمی‌ماندند.

پیامدهای امنیتی

[ویرایش | اشتراک‌گذاری]

بارِ دادهٔ SNI رمزنگاری نمی‌شود؛ بنابراین نام میزبان سروری که کلاینت تلاش می‌کند به آن متصل شود برای یک شنودگر منفعل قابل مشاهده است. این ضعف پروتکلی توسط نرم‌افزارهای امنیتی برای پالایش و پایش شبکه[۴][۵][۶] و نیز توسط دولت‌ها برای اعمال سانسور به کار گرفته شده است.[۷]

در حال حاضر چندین فناوری در تلاش‌اند تا Server Name Indication را پنهان کنند:

دامنه صوری روشی است که در آن نام میزبان مورد نظر در SNI با نام دیگری که روی همان سرور یا بیشتر اوقات روی شبکۀ سرورهایی موسوم به شبکه تحویل محتوا میزبانی می‌شود جایگزین می‌شود. هنگامی که کلاینت از دامنه صوری استفاده می‌کند، دامنهٔ سرور را در SNI (که رمزنگاری نشده) جایگزین می‌کند، اما آن را در سرآیند میزبان HTTP (که به‌وسیلهٔ TLS رمزنگاری می‌شود) دست‌نخورده می‌گذارد تا سرور بتواند محتوای درست را ارائه کند. دامنه صوری با استاندارد تعریف‌کنندۀ خودِ SNI ناسازگار است،[نیازمند منبع] بنابراین سازگاری آن محدود است (بسیاری از سرویس‌ها بررسی می‌کنند که نام میزبان SNI با نام میزبان در سرآیند HTTP یکسان باشد و اگر SNI با دامنه صوری را نامعتبر بدانند، اتصال را رد می‌کنند). هرچند دامنه صوری در گذشته برای دور زدن سانسور دولتی استفاده می‌شد،[۸] محبوبیت آن کاهش یافت؛ زیرا ارائه‌دهندگان بزرگ ابری (سکوی ابری گوگل، AWS آمازون و CloudFront) آن را صراحتاً در شرایط خدمات خود ممنوع کرده‌اند و محدودیت‌های فنی علیه آن اعمال کرده‌اند.[۹]

سلام کلاینت رمزنگاری‌شده

[ویرایش | اشتراک‌گذاری]

سلام کلاینت رمزنگاری‌شده (ECH، مخفف Encrypted Client Hello) یک افزونۀ پروتکل TLS 1.3 است که در RFC 9849 در مارس ۲۰۲۶ تعریف شد و رمزنگاری کل پیام Client Hello را که در مراحل آغازین مذاکرۀ TLS 1.3 فرستاده می‌شود ممکن می‌سازد.[۱۰] ECH بارِ داده را با یک کلید عمومی رمزنگاری می‌کند که طرف اتکاپذیر (برای نمونه یک مرورگر وب) باید آن را از پیش بداند؛ ازاین‌رو ECH برای CDNهای بزرگ بیشترین کارایی را دارد. انتقال کلیدهای عمومی و اطلاعات پیکربندی از طریق رکوردهای HTTPS و SVCB در DNS در RFC 9848 تعریف شده است.[۱۱]

نسخۀ اولیهٔ این افزونه در سال ۲۰۱۸ «SNI رمزنگاری‌شده» یا ESNI نام داشت.[۱۲] در مارس ۲۰۲۰، پس از آن‌که تحلیل‌ها نشان دادند رمزنگاری فقط SNI کافی نیست، ESNI به افزونۀ ECH بازطراحی شد. برای نمونه، مشخصات اجازه می‌دهند افزونۀ Pre-Shared Key هر نوع داده‌ای برای تسهیل ازسرگیری نشست در خود داشته باشد؛ حتی انتقال یک نسخۀ متن‌آشکار از همان نام سروری که ESNI آن را رمزنگاری کرده است. همچنین، رمزنگاری افزونه‌ها به‌صورت تک‌به‌تک مستلزم نوعی رمزنگاری‌شده برای هر افزونه بود که هر یک می‌توانست پیامدهای حریم خصوصی خاص خود را داشته باشد، و حتی در آن حالت نیز مجموعۀ افزونه‌های اعلام‌شده آشکار می‌مانْد. افزون بر این، استقرار واقعی ESNI محدودیت‌های ناسازگاری میان پیاده‌سازی‌ها را آشکار کرد.[۱۳] نام کوتاه آن در مارس ۲۰۲۰ «ECHO» بود[۱۴] و در مه ۲۰۲۰ به «ECH» تغییر یافت.[۱۵] در ژوئیهٔ ۲۰۲۳، در نشست IETF117، اعضای درگیر در کار روی ECH اعلام کردند که کروم و فایرفاکس در حال انجام آزمایش نمونه‌گیری ۱ درصدی هستند و انتظار می‌رود پیش‌نویس نهایی تا ژانویهٔ ۲۰۲۴ برای ارزیابی به IESG ارسال شود.[۱۶][۱۷]

در سپتامبر ۲۰۲۳، کلادفلر پشتیبانی از ECH را برای دامنه‌های میزبانی‌شده آغاز کرد.[۱۸]

در سپتامبر ۲۰۲۳، کرومیوم نسخهٔ ۱۱۷ (که در گوگل کروم، مایکروسافت اج، سامسونگ اینترنت و اپرا به کار می‌رود) به‌طور پیش‌فرض ECH را فعال کرد؛ البته با این شرط که کلیدها در رکوردهای منبع HTTPS در DNS مستقر شده باشند.[۱۹][۲۰] ECH از نسخهٔ ۱۱۹ فایرفاکس که در اکتبر ۲۰۲۳ منتشر شد نیز به‌طور پیش‌فرض فعال است و موزیلا توصیه می‌کند همراه با دی‌ان‌اس بر روی پروتکل انتقال ابرمتن استفاده شود.[۲۱]

در آوریل ۲۰۲۶، OpenSSL 4.0 پشتیبانی از ECH را دربر گرفت.[۲۲] انجین‌اکس نیز از زمان انتشار دسامبر ۲۰۲۵، با OpenSSL 4.0 از ECH پشتیبانی می‌کند.[۲۳]

ESNI (۲۰۱۸–۲۰۲۰)

[ویرایش | اشتراک‌گذاری]

نسخۀ آغازین این افزونه در سال ۲۰۱۸ «SNI رمزنگاری‌شده» یا ESNI نام داشت[۱۲] و پیاده‌سازی‌های آن به‌شکل «آزمایشی» برای مقابله با خطر شنود دامنه عرضه شدند.[۲۴][۲۵][۲۶] برخلاف ECH، در ESNI فقط خود SNI رمزنگاری می‌شد، نه کل Client Hello.[۱۴] پشتیبانی اختیاری از این نسخه در اکتبر ۲۰۱۸ به فایرفاکس افزوده شد[۲۷] و مستلزم فعال‌سازی DNS over HTTPS (DoH) بود.[۲۸] اما این قابلیت در ژانویهٔ ۲۰۲۱ و هم‌زمان با انتشار Firefox 85 حذف شد.[۲۹]

هر دو فناوری ESNI و ECH فقط با TLS 1.3 سازگارند؛ زیرا به KeyShareEntry متکی‌اند که نخستین بار در TLS 1.3 تعریف شد.[۳۰][۳۱]

در اوت ۲۰۲۰، دیوار آتش بزرگ چین شروع به مسدودکردن ترافیک ESNI کرد، در حالی که همچنان ترافیک ECH را مجاز می‌گذاشت.[۳۲]

در اکتبر ۲۰۲۰، شرکت روسی روس‌تلکام و اپراتور همراه آن تله۲ روسیه نیز شروع به مسدودکردن ترافیک ESNI کردند.[۳۳] در سپتامبر همان سال، نهاد سانسور روسیه یعنی خدمت فدرال نظارت بر ارتباطات، فناوری اطلاعات و رسانه‌های جمعی قصد داشت دامنه‌ای از پروتکل‌های رمزنگاری، از جمله TLS 1.3 و ESNI، را ممنوع کند؛ زیرا این پروتکل‌ها سانسور دسترسی به وبگاه‌ها را دشوار می‌کردند.[۳۴][۳۵][۳۶]

پیاده‌سازی

[ویرایش | اشتراک‌گذاری]

در سال ۲۰۰۴، وصله‌ای برای افزودن TLS/SNI به OpenSSL توسط پروژهٔ EdelKey ایجاد شد.[۳۷] در سال ۲۰۰۶، این وصله به شاخهٔ توسعۀ OpenSSL منتقل شد و در سال ۲۰۰۷ به OpenSSL 0.9.8 نیز بازگردانده شد (نخستین بار در 0.9.8f منتشر شد[۳۸]). نخستین مرورگرهای وب دارای پشتیبانی از SNI در سال ۲۰۰۶ ظاهر شدند (Mozilla Firefox 2.0 و Internet Explorer 7) و کلاینت‌های وب کمی بعدتر از آن (Apache HTTP Server در ۲۰۰۹ و Microsoft IIS در ۲۰۱۲).

برای آن‌که یک نرم‌افزار کاربردی بتواند SNI را پیاده‌سازی کند، کتابخانۀ TLS مورد استفادهٔ آن باید از SNI پشتیبانی کند و برنامه نیز باید نام میزبان را به آن کتابخانه تحویل دهد. موضوع وقتی پیچیده‌تر می‌شود که کتابخانۀ TLS ممکن است یا در خودِ برنامه گنجانده شده باشد یا جزئی از سیستم‌عامل زیرساختی باشد. به همین دلیل، برخی مرورگرها هنگام اجرا روی هر سیستم‌عاملی SNI را پیاده‌سازی می‌کنند، در حالی که برخی دیگر فقط هنگام اجرا روی بعضی سیستم‌عامل‌های خاص از آن پشتیبانی می‌کنند.[نیازمند منبع]

پشتیبانی
پشتیبانی از SNIپشتیبانی از ECH
نرم‌افزارنوعپشتیبانی‌شدهتوضیحاتاز نسخهپشتیبانی‌شدهتوضیحات
AlpineIMAP کلاینت رایانامهآریاز نسخهٔ ۲٫۲۲[۳۹]۲۰۱۹-۰۲-۱۸
اینترنت اکسپلوررمرورگر وبآریاز نسخهٔ ۷ در ویستا (در اکس‌پی پشتیبانی نمی‌شود)۲۰۰۶نه
مایکروسافت اجمرورگر وبآریهمهٔ نسخه‌هاآریاز نسخهٔ ۱۰۵ پشت پرچم آزمایشی[۴۰]
فایرفاکسمرورگر وبآریاز نسخهٔ ۲٫۰۲۰۰۶آریدر نسخهٔ ۸۵ پشت پرچم آزمایشی معرفی شد.[۴۱] در نسخهٔ ۱۱۸ هنگام فعال‌بودن DoH به‌طور پیش‌فرض فعال شد.[۴۲]
cURLابزار خط فرمان و کتابخانهآریاز نسخهٔ ۷٫۱۸٫۱۲۰۰۸بخشی[۴۳][۴۴]
سافاریمرورگر وبآریدر ویندوز اکس‌پی پشتیبانی نمی‌شودنه[۴۵]
گوگل کروممرورگر وبآری۲۰۱۰آریاز نسخهٔ ۱۰۵ پشت پرچم آزمایشی.[۴۱]
بلک‌بری ۱۰مرورگر وبآریدر همهٔ انتشارهای BB10 پشتیبانی می‌شود۲۰۱۳نه
سیستم‌عامل بلک‌برینه
باراکودا نتورکس WAFپروکسی معکوسآریاز نسخهٔ ۷٫۸ پشتیبانی می‌شود[۴۶]۲۰۱۳
باراکودا نتورکس ADCمتعادل‌کنندهٔ بارآریپشتیبانی سمت جلو از نسخهٔ ۴٫۰ و سمت پشت از نسخهٔ 5.2[۴۷]Frontend 2013 / Backend 2015
ویندوز موبایلمرورگر وبمدتی پس از ۶٫۵نه
مرورگر اندروید
(در Android 4.2 متوقف شد)
مرورگر وبآریHoneycomb (3.x) برای تبلت‌ها و Ice Cream Sandwich (4.x) برای تلفن‌ها۲۰۱۱نه
فایرفاکس برای تلفن همراهمرورگر وبآریبرای مرور وب پشتیبانی می‌شود. همگام‌سازی و دیگر سرویس‌ها فقط از نسخهٔ ۸۶ به بعد از SNI پشتیبانی می‌کنند.[۴۸]فقط در Firefox Beta و Nightly می‌توان DoH را با پرچم فعال کرد.
wgetابزار خط فرمانآریاز نسخهٔ ۱٫۱۴۲۰۱۲
Nokia Browser for Symbianمرورگر وبنهنه
اپرا موبایل برای سیمبیانمرورگر وبنهدر Series60 پشتیبانی نمی‌شودنه
دیلومرورگر وبآریاز نسخهٔ ۳٫۱۲۰۱۶
IBM HTTP Serverکلاینت وبآریاز نسخهٔ 9.0.0[۴۹][۵۰]
آپاچی تامکتکلاینت وبآریپیش از ۸٫۵ پشتیبانی نمی‌شود (بازگردانی از نسخهٔ ۹)
وب‌سرور آپاچیکلاینت وبآریاز نسخهٔ ۲٫۲٫۱۲۲۰۰۹
Microsoft IISکلاینت وبآریاز نسخهٔ ۸ (بخشی از Windows Server 2012)۲۰۱۲
انجین‌اکسکلاینت وبآریاز نسخهٔ ۰٫۵٫۲۳۲۰۰۷نه[۵۱]
کدیکلاینت وبآریآری[۵۲]
جتیکلاینت وبآریاز نسخهٔ ۹٫۳٫۰۲۰۱۵
HCL Dominoکلاینت وبآریاز نسخهٔ ۱۱٫۰٫۱۲۰۲۰
HCL Notes کارخواه گردش کار Yes از نسخهٔ ۱۴٫۰ ۲۰۲۳ [۵۳]
H2Oکلاینت وبآریآری[۵۴][۵۵]
بورینگ اس‌اس‌الکتابخانهآریآری[۵۶]
BSAFE Micro Edition SuiteکتابخانهآریVersion 5.0[۵۷]
GnuTLSکتابخانهآرینهتا ژوئیهٔ ۲۰۲۳ کار روی آن ادامه داشت.[۵۸]
لیبره اس.اس.الکتابخانهآرینه[۵۹]
Mbed TLSکتابخانهآرینه
Mozilla NSS client sideکتابخانهآریاز نسخهٔ 3.11.1[۶۰]۲۰۰۶آری[۶۱]
Mozilla NSS server sideکتابخانهنه[۶۲]نه
اپن‌اس‌اس‌الکتابخانهآریساخت شبانهاز نسخهٔ 4.0[۶۳]
Picotlsکتابخانهآریآری[۶۴]
Rustlsکتابخانهآرینهاز ECH در سمت کارخواه پشتیبانی می‌کند؛ ECH در سمت کلاینت تا اوت ۲۰۲۴ هنوز در فهرست کارها بود.[۶۵]
SwiftNIO SSLکتابخانهآرینه[۶۶]
wolfSSLکتابخانهآریآریاز نسخهٔ 5.6.3[۶۷]
4th Dimensionکتابخانهٔ استانداردنهدر نسخهٔ ۱۵٫۲ و قبل از آن پشتیبانی نمی‌شودنه
ادوبی کلدفیوژن / Luceeکتابخانهٔ استانداردآریColdFusion از نسخهٔ 10 Update 18 و 11 Update ۷، و Lucee از نسخهٔ ۴٫۵٫۱٫۰۱۹ و ۵٫۰٫۰٫۵۰۲۰۱۵
ارلنگکتابخانهٔ استانداردآریاز نسخهٔ r17۲۰۱۳
گوکتابخانهٔ استانداردآریاز نسخهٔ ۱٫۴۲۰۱۱انشعاب Cloudflare/go پشتیبانی را فراهم می‌کند[۶۸]
سکوی جاواکتابخانهٔ استانداردآریاز نسخهٔ ۱٫۷۲۰۱۱
پرلکتابخانهٔ استانداردآریاز Net::SSLeay نسخهٔ ۱٫۵۰ و IO::Socket::SSL نسخهٔ ۱٫۵۶۲۰۱۲
پی‌اچ‌پیکتابخانهٔ استانداردآریاز نسخهٔ ۵٫۳۲۰۱۴
پایتونکتابخانهٔ استانداردآریدر 2.x از نسخهٔ ۲٫۷٫۹ و در 3.x از نسخهٔ ۳٫۲ (در پیمانه‌های ssl، urllib[2] و httplib)۲۰۱۱ برای Python 3.x و ۲۰۱۴ برای Python 2.x
کیوتکتابخانهٔ استانداردآریاز نسخهٔ ۴٫۸۲۰۱۱
روبیکتابخانهٔ استانداردآریاز نسخهٔ ۲٫۰ (در net/http)۲۰۱۱
Hiawathaکلاینت وبآریاز نسخهٔ ۸٫۶۲۰۱۲نهوابسته به Mbed TLS است.[۶۹]
لایتیکلاینت وبآریاز نسخهٔ ۱٫۴٫۲۴۲۰۰۹آریاز نسخهٔ 1.4.77[۷۰]
HAProxyمتعادل‌کنندهٔ بارآریاز نسخهٔ 1.5-dev12[۷۱]۲۰۱۲آری[۷۲]
اوپن‌بی‌اس‌دی httpdکارساز وبآریاز OpenBSD نسخهٔ 6.1[۷۳]۲۰۱۷-۰۴-۱۱نهوابسته به OpenSSL است.[۷۴]

کاربرد در فیلترشکن‌ها

[ویرایش | اشتراک‌گذاری]

در نرم‌افزارهای فیلترشکنی که در کشورهای سرکوبگر و سانسورکننده کار می‌کنند، نشان نام سرور را نام دامنه‌ای که در وایت لیست دولت کشور سانسورکننده است می‌گذارند در حالی که آی‌پی همان آی‌پی سرور بیرون از کشور است. از این رو، بستهٔ فرستاده شده از کلاینت، کمتر مشکوک خواهد بود، چون دستگاه فیلترینگ کشور سانسورکننده نمی‌داند آیا آی‌پی واقعاً آی‌پی همان وبسایت درون لیست سفید است یا نه؛ بنابراین، از دیدگاه دولت سانسورچی، فیلتر کردن بستهٔ فرستاده شده تلفات جانبی خواهد داشت و احتمال فیلتر شدن آن کمتر می‌شود.[نیازمند منبع]

  1. Blake-Wilson, Simon; Mikkelsen, Jan; Nystrom, Magnus; Hopwood, David; Wright, Tim (ژوئن 2003). "Transport Layer Security (TLS) Extensions". {{cite journal}}: یادکرد journal نیازمند |journal= است (کمک)
  2. "Server Name Indication". Wikipedia (in English). 2023-08-02.
  3. "What is a Multiple Domain (UCC) SSL Certificate?". GoDaddy.
  4. "Web Filter: SNI extension feature and HTTPS blocking". www3.trustwave.com. Retrieved 2024-07-03.
  5. "Sophos UTM: Understanding Sophos Web Filtering". Sophos Community. Retrieved 2019-02-20.
  6. Chrisment, Isabelle; Goichot, Antoine; Cholez, Thibault; Shbair, Wazen M. (2015-05-11). "Efficiently Bypassing SNI-based HTTPS Filtering". 2015 IFIP/IEEE International Symposium on Integrated Network Management (IM) (PDF). pp. 990–995. doi:10.1109/INM.2015.7140423. ISBN 978-1-4799-8241-7. S2CID 14963313.
  7. "South Korea is Censoring the Internet by Snooping on SNI Traffic". BleepingComputer. Retrieved 2019-02-18.
  8. "Encrypted chat app Signal circumvents government censorship". Engadget. 21 December 2016. Retrieved 2024-07-03.
  9. "Amazon threatens to suspend Signal's AWS account over censorship circumvention". Signal. Retrieved 2018-05-02.
  10. Rescorla, Eric; Oku, Kazuho; Sullivan, Nick; Wood, Christopher A. (March 2026). TLS Encrypted Client Hello. IETF. DOI:10.17487/RFC9849. RFC 9849. https://tools.ietf.org/html/rfc9849. Retrieved 26 March 2026.
  11. Schwartz, Benjamin M.; Bishop, Mike; Nygren, Erik (2026-03-03). "Bootstrapping TLS Encrypted ClientHello with DNS Service Bindings". Internet Engineering Task Force. Retrieved 2026-04-12.
  12. 1 2 Rescorla, Eric; Oku, Kazuho; Sullivan, Nick; Wood, Christopher A. (6 April 2023). "Draft-ietf-TLS-esni-14".
  13. Jacobs, Kevin (7 January 2021). "Encrypted Client Hello: the future of ESNI in Firefox". Mozilla Security Blog. Retrieved 2021-01-09.
  14. 1 2 "ESNI -> ECHO · tlswg/draft-ietf-tls-esni". GitHub.
  15. "s/ECHO/ECH · tlswg/draft-ietf-tls-esni". GitHub.
  16. TLS Working Group (July 26, 2023). "Minutes IETF117: tls: Wed 20:00". IETF Datatracker. Archived from the original on 2023-08-02. Retrieved 2023-08-02.
  17. TLS Working Group (July 26, 2023). IETF117-TLS-20230726-2000. YouTube (video) (in English). San Francisco: Internet Engineering Task Force. Retrieved 2023-08-02.
  18. Achiel van der Mandele; Alessandro Ghedini; Christopher Wood; Rushil Mehra. "Encrypted Client Hello - the last puzzle piece to privacy". The Cloudflare Blog. Retrieved 1 October 2023.
  19. "How to disable TLS Encrypted ClientHello in Google Chrome using PowerShell". Chaser Systems Ltd. 9 October 2023.
  20. "Feature: TLS Encrypted Client Hello (ECH)". Chrome Platform Status. Google. 12 December 2023. Retrieved 21 February 2024.
  21. "Encrypted Client Hello (ECH) - Frequently asked questions | Firefox Help". support.mozilla.org. Retrieved 1 Dec 2024.
  22. "The OpenSSL Library now supports Encrypted Client Hello (ECH)". OpenSSL Project. 2026-03-11. Retrieved 2026-04-12.
  23. Arutyunyan, Roman (2026-02-19). "Encrypted Client Hello Comes to NGINX". NGINX Community Blog. Retrieved 2026-04-12.
  24. "ESNI: A Privacy-Protecting Upgrade to HTTPS". EFF DeepLinks Blog. 24 September 2018.
  25. Claburn, Thomas (17 July 2018). "Don't panic about domain fronting, an SNI fix is getting hacked out". The Register. Retrieved 10 October 2018.
  26. Ghedini, Alessandro (2018-09-24). "Encrypt it or lose it: how encrypted SNI works". The Cloudflare Blog (in English). Retrieved 2019-05-13.
  27. Eric, Rescorla (18 October 2018). "Encrypted SNI Comes to Firefox Nightly". Mozilla Security Blog. Retrieved 15 June 2020.
  28. Daniel, Stenberg. "Curl: Re: Support of Encrypted SNI (curl-library mailing list archive)". curl.se. Retrieved 15 June 2020.
  29. "1667743 - Clean up unused esni code". bugzilla.mozilla.org (in English). Retrieved 2022-04-07.
  30. Ghedini, Alessandro (2018-09-24). "Encrypt it or lose it: how encrypted SNI works". The Cloudflare Blog (in English). Retrieved 2019-05-13. this is an extension to TLS version 1.3 and above, and doesn't work with previous versions of the protocol
  31. "Make ESNI TLS 1.2 compatible · Issue #38 · tlswg/draft-ietf-tls-esni". GitHub. Retrieved 2020-08-09.
  32. Cimpanu, Catalin. "China is now blocking all encrypted HTTPS traffic that uses TLS 1.3 and ESNI". ZDNet. Retrieved 2020-08-09.
  33. "Почему Ростелеком блокирует ESNI трафик?". qna.habr.com (in Russian). 11 October 2020. Retrieved 30 October 2020.
  34. "Russia's Digital Development Ministry wants to ban the latest encryption technologies from the RuNet". Meduza (in English). Retrieved 2021-06-18.
  35. Cimpanu, Catalin. "Russia wants to ban the use of secure protocols such as TLS 1.3, DoH, DoT, ESNI". ZDNet (in English). Retrieved 2021-06-18.
  36. Sherman, Justin (2020-09-25). "Russia Is Trying Something New to Isolate Its Internet From the Rest of the World". Slate Magazine (in English). Retrieved 2021-06-18.
  37. "EdelKey Project". edelweb.fr. Retrieved 2019-02-20.
  38. "OpenSSL CHANGES". Archived from the original on 20 April 2016.
  39. "Public Git Hosting - alpine.git/Commit".
  40. "How to improve privacy in Microsoft Edge by enabling Encrypted Client Hello". Neowin (in English). 2023-07-25. Archived from the original on 2022-12-05. Retrieved 2023-07-25.
  41. 1 2 "Developing ECH for OpenSSL (DEfO)". defo.ie (in English). Tolerant Networks Limited. 2022-08-24. Archived from the original on 2022-09-01.
  42. "Understand Encrypted Client Hello (ECH) | Firefox Help". support.mozilla.org. Retrieved 2023-10-04.
  43. "curl/docs/ECH.md at cbe7fad20d969626a5c4eb0501a273dfe812bcd3 · curl/curl". GitHub (in English). Retrieved 2023-07-26.
  44. "curl/docs/ROADMAP.md at 50490c0679fcd0e50bb3a8fbf2d9244845652cf0 · curl/curl". GitHub (in English). Retrieved 2023-07-26.
  45. "Feature: TLS Encrypted Client Hello (ECH)". Chrome Platform Status. Archived from the original on 2023-05-28. Retrieved 2023-07-25. Safari: No signal
  46. "Release Notes Version 7.8". Campus@Barracuda. September 2013. Retrieved 5 January 2021.
  47. "Release Notes Version 5.2". Campus@Barracuda. September 2015. Retrieved 5 January 2021.
  48. "Bug 765064 – HttpClient in use by Sync and other services doesn't support SNI". Bugzilla@Mozilla. 29 October 2017. Retrieved 9 November 2017.
  49. "IBM HTTP Server SSL Questions and Answers". IBM. Retrieved 8 March 2011.
  50. "IHS 8 powered by Apache 2.2.x ?". IBM. 17 October 2013. Archived from the original on 26 December 2015. Retrieved 9 November 2017.
  51. "#2275 (Support Encrypted Client Hello) – nginx". trac.nginx.org. Retrieved 2023-07-06.
  52. https://github.com/caddyserver/caddy/releases/tag/v2.10.0
  53. "Performance improvements". help.hcltechsw.com (in American English). Retrieved 2024-02-06.
  54. "ECH by kazuho · Pull Request #3164 · h2o/h2o". GitHub (in English). Retrieved 2023-07-06.
  55. "Base Directives - Configure". H2O - the optimized HTTP/2 server. Archived from the original on 2023-05-29. Retrieved 2023-07-18.
  56. "Update to draft-ietf-tls-esni-13". BoringSSL code repository. Retrieved 2023-07-06.
  57. "Dell BSAFE Micro Edition Suite 5.0 Release Advisory". Retrieved 2022-10-18.
  58. "Support ECH (#595) · Issues · gnutls / GnuTLS · GitLab". GitLab (in English). 2018-10-27. Retrieved 2023-07-26.
  59. "Support ESNI · Issue #546 · libressl/portable". GitHub (in English). Retrieved 2023-07-26.
  60. "116168 - TLS server name indication extension support in NSS". bugzilla.mozilla.org (in English). Retrieved 2023-07-06.
  61. "D101050 Bug 1681585 - Add ECH support to selfserv". phabricator.services.mozilla.com. Retrieved 2023-07-06.
  62. "Bug 360421 – Implement TLS Server Name Indication for servers". Bugzilla@Mozilla. 11 November 2006. Retrieved 30 October 2012.
  63. "Major changes between OpenSSL 3.6 and OpenSSL 4.0 [under development] · openssl/openssl". GitHub (in English). Retrieved 2026-03-04.
  64. "[ech] rewrite ESNI to ECH draft 15 by kazuho · Pull Request #437 · h2o/picotls". GitHub (in English). Retrieved 2023-07-06.
  65. McCarney, Daniel (2024-05-31). "Server-side Encrypted Client Hello (ECH) support". GitHub (in English). Retrieved 2024-08-22.
  66. "Certificate selection for servers is missing · Issue #310 · apple/swift-nio-ssl". GitHub (in English). Retrieved 2023-07-26.
  67. "Adds support for TLS v1.3 Encrypted Client Hello (ECH) draft-ietf-tls… · wolfSSL/wolfssl@6b6ad38". GitHub (in English). Retrieved 2023-07-25.
  68. "crypto/tls: implement draft-ietf-tls-esni-13 · cloudflare/go@4c13101". GitHub (in English). Retrieved 2023-07-25.
  69. "src/tls.c · master · Hugo Leisink / Hiawatha web server · GitLab". GitLab (in English). 2023-04-05. Retrieved 2023-07-26.
  70. "lighttpd TLS ECH".
  71. "HAProxy 1.5 changelog". Retrieved 28 December 2020.
  72. از نسخهٔ 3.3"ECH (Encrypted client hello) support · Issue #1924 · haproxy/haproxy". GitHub (in English). Retrieved 2026-03-04.
  73. "OpenBSD 6.1 What's New". Retrieved 13 June 2021.
  74. "src/lib/libtls/tls.c at master · openbsd/src". GitHub (in English). Retrieved 2023-07-26.