Ar serverio sertifikatų grandinė gali panaikinti kliento patikimumo saugyklą?
Visa grandinė yra įrodymas, o ne nurodymas. Validacija atliekama kliente su jo paties inkarais, todėl joks serveris negali primesti pasitikėjimo sprendimo.
Naršyklė rodo sertifikato įspėjimą svetainėje, kurios grandinė yra visa, ir pirmas instinktas yra taisyti serverį. Paprastai serveris pateikia būtent tai, ką turėtų. Klientas nusprendžia, kuriuos inkarus priima, ir jokia tarpinių sertifikatų tvarka negali pakeisti šio sprendimo iš kito ryšio galo. Ši riba paaiškina didžiąją dalį to, kas atrodo kaip sertifikato problema.
Validacija vykdoma kliente, su kliento inkarais
Kelio validacija paima pateiktus sertifikatus ir sukuria grandinę iki patikimumo inkaro, kurį validavimo sistema jau turi. RFC 5280 aprašo šį modelį ir inkaro pasirinkimą priskiria vietinei implementacijai, o ne serveriui. Programėlė gali pridėti savo politiką viršuje: prisegtas raktas, įmonės patikimumo saugykla, arba griežtesnė tapatybės patikra. Serverio siunčiamas sertifikatų sąrašas yra įrodymas, pasiūlytas tam procesui, niekada ne nurodymas jam.
Taigi visa grandinė įrodo, kad serveris turi dalis. Ji neįrodo, kad klientas jas priims.
Norėdami pamatyti, ką serveris iš tikrųjų siunčia, paleiskite openssl s_client -connect app.example.net:443 -servername app.example.net -showcerts ir suskaičiuokite sertifikatus išvestyje. Nepilna grandinė ten yra serverio pusės pataisa. Visa grandinė perkelia klausimą į klientą ir jo inkarus, kur serveris neturi balso.
Ką iš tikrųjų keičia TLS inspekcija
Inspekcijos įrenginys užbaigia kliento pusės TLS sesiją ir atidaro atskirą sesiją į tikrąją paslaugą. Tada klientas validuoja įrenginio sertifikatą, kuris turi grandinėtis iki inkaro, kuriuo klientas pasitiki. Todėl valdomi įrenginiai gauna inspekcijos šaknį per įrenginių valdymą, ir todėl asmeninis įrenginys be jos rodo įspėjimą.
Išdėstymas yra tyčinis ir vietinis. Niekas originalaus serverio grandinėje negali priversti nevaldomos naršyklės priimti pakaitinės tapatybės, ir niekas joje netrukdo valdomam įrenginiui to padaryti.
VPN užbaigimas nėra HTTPS iššifravimas
VPN sluoksnis perneša paketus tarp kliento ir tinklų sietuvos. Jo pašalinimas arba jo konfigūracijos skaitymas neatskleidžia HTTPS naudingosios apkrovos viduje.
TLS sesija vis dar vyksta tarp naršyklės ir žiniatinklio serverio, su tomis pačiomis validavimo taisyklėmis, nebent kažkas ją aiškiai užbaigtų. Sumaišius du sluoksnius, atsiranda prašymas VPN administratoriui pateikti sertifikatą, nors aptariamas sertifikatas priklauso inspekcijos tarpinių serveriui arba pačiai svetainei. Paklauskite, kuris komponentas pateikia sertifikatą, prieš keisdami bet kokią patikimumo saugyklą.
Nustatykite lūkesčius komponente, kurį kontroliuojate
Jei valdote programėlę ir jos klientą, kartu apibrėžkite numatomą paslaugos tapatybę, priimamus išdavėjus ir bet kokį prisegimo ar kliento autentifikavimo reikalavimą. Planuokite atnaujinimą ir atkūrimą taip, kad teisėtas sertifikato pakeitimas netaptų sutrikimu. Jei valdote tik viešą serverį, dokumentuokite, kokio autentifikavimo reikalaujate ir kokias kliento aplinkas palaikote. Pageidaujamos grandinės siuntimas nesertifikuoja nepažįstamo žmogaus įrenginio.
Valdomoje įrangoje nesuderinamumą spręskite per programėlės ir tinklo savininkus. Validavimo išjungimas, nepaaiškinamos šaknies pridėjimas ar bandymas pergyventi inspekcijos politiką nesukuria numatyto lygiaverčio ryšio.
Išbandykite rezultatą švariame kliento profilyje, o ne kompiuteryje, kuriame išimtis jau pridėta. Tai vienintelė patikra, parodanti, ką patirs naujas įrenginys.