Indicarea numelui serverului

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 5 octombrie 2020; verificările necesită 10 modificări .

Server Name Indication ( SNI ) este o extensie a protocolului computerului TLS [1] care permite clienților să indice numele gazdei la care doresc să se conecteze în timpul procesului de strângere de mână. Acest lucru permite serverului să furnizeze mai multe certificate pe aceeași adresă IP și port TCP și, prin urmare, permite mai multor site-uri securizate ( HTTPS- ) (sau alte servicii prin TLS) să funcționeze pe aceeași adresă IP fără a utiliza deloc același certificat. . Aceasta este echivalentă cu caracteristica de găzduire partajată bazată pe nume de la HTTP/1.1. Numele de gazdă solicitat nu este criptat [2], care permite unui atacator să-l intercepteze.

Utilizarea practică a SNI necesită ca marea majoritate a utilizatorilor să folosească browsere care acceptă această caracteristică. Utilizatorii ale căror browsere nu acceptă SNI vor primi un certificat implicit (dependent de implementare, de obicei primul din listă) și de aici o eroare de certificat dacă serverul nu este echipat cu un certificat wildcard și nu conține numele site-ului solicitat de client .

Din toamna anului 2018, au fost efectuate experimente pentru implementarea SNI criptat [3] din protocolul TLS 1.3, care criptează numele site-ului solicitat folosind cheia publică a site-ului obținută din sistemul de nume DNS [4] [5 ] ] [6] [7] .

Contextul problemei

În timpul creării unei conexiuni TLS, clientul solicită un certificat digital de la serverul web; după ce serverul trimite certificatul, clientul verifică valabilitatea acestuia și compară numele cu care a încercat să se conecteze la server cu numele conținute în certificat. Dacă comparația are succes, conexiunea se face în mod criptat. Dacă nu se găsesc potriviri, utilizatorul poate fi avertizat cu privire la nepotrivire și conexiunea este întreruptă, deoarece nepotrivirea poate indica o încercare de atac man-in-the-middle . Cu toate acestea, unele aplicații permit utilizatorului să ignore avertismentul pentru a continua conexiunea, lăsând utilizatorului să aibă încredere în certificat și astfel să se conecteze la site.

Cu toate acestea, poate fi dificil – sau chiar imposibil, din cauza lipsei unei liste complete prealabile a tuturor numelor – să obțineți un singur certificat care să acopere toate numele pentru care serverul va fi responsabil. Un server responsabil pentru mai multe nume de gazdă va trebui probabil să prezinte certificate diferite pentru fiecare nume de gazdă (sau un grup mic de nume de gazdă). Din 2005, CAcert a experimentat diverse metode de utilizare a TLS pe ​​servere virtuale [8] . Majoritatea experimentelor sunt nesatisfăcătoare și impracticabile. De exemplu, subjectAltName poate fi folosit pentru a stoca mai multe domenii controlate de aceeași persoană [9] într-un singur certificat. Aceste „certificate uniforme” trebuie reemise de fiecare dată când lista de domenii se modifică.

Găzduirea partajată pe bază de nume vă permite să găzduiți mai multe nume de gazdă pe același server (de obicei, un server web) pe aceeași adresă IP. Pentru a realiza acest lucru, serverul folosește numele de gazdă furnizat de client ca parte a protocolului (pentru HTTP, numele este furnizat în antetul Gazdă ). Cu toate acestea, când se utilizează HTTPS, strângerea de mână TLS are loc înainte ca serverul să vadă anteturile HTTP. Prin urmare, serverul nu poate folosi informațiile din antetul gazdei HTTP pentru a decide ce certificat să reprezinte și, astfel, numai numele scrise în același certificat pot fi servite pe aceeași adresă IP.

În practică, aceasta înseamnă că un server HTTPS poate servi doar un domeniu (sau un grup mic de domenii) per adresă IP pentru o navigare sigură și eficientă. Atribuirea unei adrese IP separate pentru fiecare site crește costul găzduirii, deoarece solicitările de adrese IP trebuie justificate cu un registrator de Internet regional , iar adresele IPv4 sunt deja epuizate . Drept urmare, multe site-uri web nu pot folosi protocolul securizat atunci când folosesc IPv4. Spațiul de adrese IPv6 nu este epuizat, astfel încât site-urile web deservite prin IPv6 nu sunt afectate de această problemă.

Blocarea ESNI

Din august 2020, traficul ESNI și TLSv1.3 a fost blocat în China [10] .

Din octombrie 2020 și mai devreme în Rusia, furnizorii au început să blocheze și traficul ESNI, ceea ce în cele din urmă face site-urile obișnuite și nu interzise inaccesibile utilizatorilor, având în vedere că nu există legi în vigoare care să blocheze această tehnologie [11] . Primii furnizori care au blocat ESNI au fost Rostelecom și apoi filiala sa OOO T2 RTK Holding (marca Tele2 Rusia).

Note

  1. „Indicația numelui serverului 889” . RFC  3546
  2. Indicarea numelui serverului TLS . Jurnalul lui Paul . Consultat la 13 noiembrie 2015. Arhivat din original la 12 august 2016.
  3. draft-ietf-tls-esni-07 - Indicație de nume de server criptat pentru TLS 1.3
  4. Ghedini, Alessandro . Criptați-l sau pierdeți-l: cum funcționează SNI criptat  , blogul Cloudflare (  24 septembrie 2018). Arhivat din original pe 24 septembrie 2018. Preluat la 19 ianuarie 2019. ( [1] Arhivat la 19 ianuarie 2019 la Wayback Machine )
  5. Encrypted SNI Comes to Firefox Nightly  , blogul Mozilla (  18 octombrie 2018). Arhivat 24 martie 2020. Preluat la 19 ianuarie 2019. ( [2] Arhivat la 20 ianuarie 2019 la Wayback Machine )
  6. ESNI: O actualizare la HTTPS care protejează confidențialitatea . Blog EFF Deep Links . Preluat la 19 ianuarie 2019. Arhivat din original la 18 mai 2019.
  7. Nu vă panicați cu privire la frontingul domeniului, o remediere SNI este piratată , The Register  (17 iulie 2018). Arhivat din original pe 26 august 2018. Preluat la 10 octombrie 2018.
  8. VhostTaskForce - CAcert Wiki . wiki.cacert.org. Preluat la 19 ianuarie 2019. Arhivat din original la 31 decembrie 2018.
  9. Ce este un certificat SSL cu mai multe domenii (UCC)? | Certificate SSL - Ajutor GoDaddy ÎN . www.godaddy.com. Data accesului: 19 ianuarie 2019. Arhivat din original pe 19 ianuarie 2019.
  10. Cătălin Cimpanu. China blochează acum tot traficul HTTPS criptat care utilizează TLS 1.3 și ESNI  . ZDNet . Preluat la 29 octombrie 2020. Arhivat din original la 9 august 2020.
  11. De ce Rostelecom blochează traficul ESNI? . Habr Q&A - întrebări și răspunsuri . Preluat la 29 octombrie 2020. Arhivat din original la 29 ianuarie 2021.