Servernavnindikation

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 5. oktober 2020; checks kræver 10 redigeringer .

Server Name Indication ( SNI ) er en udvidelse af TLS [1] -computerprotokollen, der gør det muligt for klienter at angive navnet på den vært , de ønsker at oprette forbindelse til under handshake-processen. Dette gør det muligt for serveren at levere flere certifikater på den samme IP-adresse og TCP-port og tillader derfor flere sikre ( HTTPS- ) websteder (eller andre tjenester over TLS) at operere på den samme IP-adresse uden overhovedet at bruge det samme certifikat. . Dette svarer til den navnebaserede delte hosting-funktion fra HTTP/1.1. Det anmodede værtsnavn er ikke krypteret [2], som gør det muligt for en angriber at opsnappe det.

Praktisk brug af SNI kræver, at langt de fleste brugere bruger browsere , der understøtter denne funktion. Brugere, hvis browsere ikke understøtter SNI, vil modtage et standardcertifikat (implementeringsafhængigt, normalt det første på listen) og dermed en certifikatfejl, hvis serveren ikke er udstyret med et wildcard-certifikat og ikke indeholder det webstedsnavn, som klienten anmoder om. .

Siden efteråret 2018 er der blevet udført eksperimenter med at implementere Encrypted SNI [3] fra TLS 1.3-protokollen, som krypterer navnet på det anmodede websted ved hjælp af webstedets offentlige nøgle hentet fra DNS -navnesystemet [4] [5 ] [6] [7] .

Baggrunden for problemet

Under oprettelsen af ​​en TLS-forbindelse anmoder klienten om et digitalt certifikat fra webserveren; efter at serveren har sendt certifikatet, kontrollerer klienten dets gyldighed og sammenligner det navn, som den forsøgte at oprette forbindelse til serveren med, med navnene i certifikatet. Hvis sammenligningen lykkes, oprettes forbindelsen i krypteret tilstand. Hvis der ikke findes nogen matches, kan brugeren blive advaret om uoverensstemmelsen, og forbindelsen afbrydes, da uoverensstemmelsen kan indikere et forsøg på man-in-the-middle-angreb . Nogle applikationer giver dog brugeren mulighed for at ignorere advarslen om at fortsætte forbindelsen, hvilket overlader det til brugeren at stole på certifikatet og dermed oprette forbindelse til webstedet.

Det kan dog være svært – eller endda umuligt, på grund af manglen på en komplet liste over alle navne på forhånd – at få et enkelt certifikat, der dækker alle de navne, som serveren vil være ansvarlig for. En server, der er ansvarlig for flere værtsnavne, skal sandsynligvis præsentere forskellige certifikater for hvert værtsnavn (eller en lille gruppe værtsnavne). Siden 2005 har CAcert eksperimenteret med forskellige metoder til at bruge TLS på virtuelle servere [8] . De fleste af eksperimenterne er utilfredsstillende og upraktiske. SubjectAltName kan f.eks. bruges til at gemme flere domæner kontrolleret af den samme person [9] i et enkelt certifikat. Disse "ensartede certifikater" skal genudstedes, hver gang listen over domæner ændres.

Navnebaseret delt hosting giver dig mulighed for at hoste flere værtsnavne på den samme server (normalt en webserver) på den samme IP-adresse. For at opnå dette bruger serveren det værtsnavn, som klienten har leveret som en del af protokollen (for HTTP angives navnet i Host-headeren ). Men når du bruger HTTPS, sker TLS-håndtrykket, før serveren ser nogen HTTP-headere. Derfor kan serveren ikke bruge informationen i HTTP-værtsheaderen til at beslutte, hvilket certifikat der skal repræsenteres, og derfor kan kun navne skrevet i det samme certifikat serveres på den samme IP-adresse.

I praksis betyder det, at en HTTPS-server kun kan betjene et domæne (eller en lille gruppe domæner) pr. IP-adresse for sikker og effektiv browsing. Tildeling af en separat IP-adresse til hvert websted øger omkostningerne ved hosting, da anmodninger om IP-adresser skal begrundes med en regional internetregistrator , og IPv4-adresser er allerede opbrugt . Som et resultat kan mange websteder faktisk ikke bruge den sikre protokol, når de bruger IPv4. IPv6 -adresserummet er ikke opbrugt, så websteder, der serveres over IPv6, påvirkes ikke af dette problem.

ESNI-blokering

Siden august 2020 har ESNI- og TLSv1.3-trafik været blokeret i Kina [10] .

Fra oktober 2020 og tidligere i Rusland begyndte udbydere også at blokere ESNI-trafik, hvilket i sidste ende gør almindelige og ikke forbudte websteder utilgængelige for brugere, da der ikke er nogen gældende love til at blokere denne teknologi [11] . De første udbydere, der blokerede ESNI, var Rostelecom og derefter dets datterselskab OOO T2 RTK Holding (varemærke Tele2 Rusland).

Noter

  1. "Servernavnindikation 889" . RFC  3546
  2. ↑ Indikation af TLS-servernavn . Pauls Journal . Hentet 13. november 2015. Arkiveret fra originalen 12. august 2016.
  3. draft-ietf-tls-esni-07 - Krypteret servernavnindikation for TLS 1.3
  4. Ghedini, Alessandro . Krypter det eller tab det: sådan fungerer krypteret SNI  , Cloudflare blog (  24. september 2018). Arkiveret fra originalen den 24. september 2018. Hentet 19. januar 2019. ( [1] Arkiveret 19. januar 2019 på Wayback Machine )
  5. Krypteret SNI kommer til Firefox Nightly  , Mozilla-blog (  18. oktober 2018). Arkiveret 24. marts 2020. Hentet 19. januar 2019. ( [2] Arkiveret 20. januar 2019 på Wayback Machine )
  6. ESNI: A Privacy-Protecting Upgrade to HTTPS . EFF Deep Links Blog . Hentet 19. januar 2019. Arkiveret fra originalen 18. maj 2019.
  7. Gå ikke i panik over domænefronting, en SNI-fix er ved at blive hacket ud , The Register  (17. juli 2018). Arkiveret fra originalen den 26. august 2018. Hentet 10. oktober 2018.
  8. VhostTaskForce - CAcert Wiki . wiki.cacert.org. Hentet 19. januar 2019. Arkiveret fra originalen 31. december 2018.
  9. Hvad er et multi-domæne SSL-certifikat (UCC)? | SSL-certifikater - GoDaddy Hjælp IN . www.godaddy.com. Dato for adgang: 19. januar 2019. Arkiveret fra originalen 19. januar 2019.
  10. Catalin Cimpanu. Kina blokerer nu al krypteret HTTPS-trafik, der bruger TLS 1.3 og ESNI  . ZDNet . Hentet 29. oktober 2020. Arkiveret fra originalen 9. august 2020.
  11. Hvorfor blokerer Rostelecom ESNI-trafik? . Habr Q&A - spørgsmål og svar . Hentet 29. oktober 2020. Arkiveret fra originalen 29. januar 2021.