Iseallkirjastatud VPN-sertifikaat: mida see tähendab ja mida see usaldab
Iseallkirjastatud VPN-sertifikaat krüpteerib liiklust endiselt. Muutub see, kellele te ütlesite, et seda usaldataks, milline hoidla selle usalduse saab ja millised kontrollid jäävad.
Siin teeb suurima kahju kaks veendumust: et iseallkirjastatud VPN-sertifikaat tähendab, et tunnel ei ole krüpteeritud, ja et VPN-kliendi palutud asjade paigaldamine mõjutab ainult VPN-i. Kumbki ei pea vastu kokkupuutele tõelise juurutusega. Iseallkirjastatud sertifikaat kirjeldab allkirjasuhet, mitte turvahinnangut, ja lisatava usalduse ulatus sõltub sellest, millisesse hoidlasse see maandub. Olen näinud, kuidas kasutajatugi importis teenusepakkuja juure Windowsi masinasse, et üks hoiatus vaigistada, ja veetis seejärel terve pärastlõuna selgitades, miks brauser lõpetas mitteseotud portaalile kaeblemise. Selle küsimuse kaks poolt kuuluvad kokku, seega käsitlege neid ühena.
Sertifikaat ei ole usaldushoidla
Fail, mille server esitab, kannab avalikku võtit, subjekti nime, väljaandja nime, kehtivuskuupäevi ja laiendusi. Iseallkirjastatud tähendab, et subjekt ja väljaandja on sama üksus ning allkiri kontrollitakse sertifikaadi enda võtmega. Miski selles määratluses ei ütle, et ühendus on nõrk, ja miski ei ütle, et klient selle vastu võtab.
Vastuvõtt tuleb mujalt: CA-fail, millele te kliendi suunate, sõrmejälg, mida te käsitsi võrdlete, või juur, mis juba asub hoidlas, mida klient loeb. Juurutus võib olla täiesti terve, samal ajal kui selle sertifikaat kukuks läbi igas avalikus testis. openssl verify süsteemikimbu vastu teatab tundmatust väljaandjast ja see teade on õige, mitte viga.
OpenVPN-i valik ca on kõige selgem rakendusepõhise usalduse juhtum. See fail nimetab ankrud, mille klient vastu võtab, ja võib sisaldada üht privaatset CA-d või väikeses juurutuses serveri enda iseallkirjastatud sertifikaati. Versioon 2.6 võtab vastu ka --peer-fingerprint, et kinnitada SHA-256 sõrmejälg, selle asemel et CA-faili levitada. WireGuard seisab veelgi kaugemal: sellel pole üldse sertifikaate, ainult üks staatiline avalik võti iga partneri kohta, seega iseallkirjastamise küsimus sellele ei kohaldu.
Kuhu usalduse paigaldate, otsustab, kes selle pärbib
Pange sama sertifikaat kolme kohta ja saate kolm erinevat plahvatusraadiust. Kimp, mida loeb ainult VPN-klient, mõjutab seda klienti. Juur operatsioonisüsteemi hoidlas mõjutab iga programmi, mis seda hoidlat küsib. Brauser oma usaldusandmebaasiga võib mõlemat eirata, mistõttu võib hoiatus jääda püsima pärast importi, mis näis töötavat.
Debianis või Ubuntus muudab faili asetamine kataloogi /usr/local/share/ca-certificates/ ja käsu update-ca-certificates käivitamine süsteemiülest kimpu. Windowsis kirjutab certutil -addstore -f Root masinahoidlasse ja vajab kõrgendatud käsuviiba, samas kui -user lisamine sihib hoopis praeguse kasutaja hoidlat; need kaks ei ole vahetatavad. Firefox hoiab oma NSS-andmebaasi, seega OS-i tasandi import ei pruugi sinna kunagi ilmuda.
Ulatus on oluline selle tõttu, mida asutus suudab teha. Väljaandev CA võib allkirjastada nimesid, millega tal pole mingit seost, seega kõik, mis seda hoidlat usaldab, võtab need allkirjad vastu. Üks kinnitatud leht seda teha ei saa; see autendib täpselt üht partneri identiteeti. Kui eesmärk on üks VPN ühendada, jõuab rakendusepõhine CA või kinnitatud leht selleni, samas kui masinaülene juur on palju suurem järeleandmine, kui sümptom nõuab.
Te krüpteerite endiselt ilma avaliku CA-ta
TLS-käepigistus tuletab seansi võtmed olenemata sellest, kas partneri sertifikaat ahelub millegi külge, mida te juba usaldate. Iseallkirjastatud ei tähenda lihtteksti ega tähenda, et liiklus on lennu ajal loetav. See tähendab, et kliendil pole aprioorset põhjust uskuda, et võti kuulub serverile, mida ta küsis.
Selles lüngas elavad tõelised rünnakud. Klient, mis on seadistatud vastu võtma mis tahes sertifikaati, kas väljalülitatud kontrolliseade või üks kord vajutatud ja unustatud ikka-usu-nuppu kaudu, krüpteerib rõõmsalt kõigile, kes vastavad. Vaheltlõige toimub autentimise sammus, enne kui rakenduse andmed liiguvad. Krüpteerimine ilma identiteedikontrollita hoiab passiivse vaatleja väljas ja teeb vähe muud.
Väljaandja usaldamine ei jäta nimekontrolli vahele
Ahela valideerimine, nime vastavus ja sertifikaadi otstarve on eraldi otsused. Ahel võib olla kehtiv, samal ajal kui nimi on vale, ja nimi võib sobida, samal ajal kui sertifikaat anti välja teise rolli jaoks. RFC 5280 määratleb väljad, mis neid piiranguid kannavad, ja see, kui rangelt klient neid rakendab, on iga rakenduse asi.
OpenVPN teeb jaotuse nähtavaks. verify-x509-name kinnitab oodatava subjekti name, name-prefix või subject vastavuse kaudu. remote-cert-tls server nõuab, et partneri sertifikaat oleks kasutatav serverisertifikaadina, mis lükkab tagasi ainult kliendi sertifikaadi ka siis, kui väljaandjat usaldatakse. Kumbagi seadet ei asenda CA-faili saatmine.
Uurige sertifikaati enne, kui midagi otsustate:
openssl x509 -in server.crt -noout -subject -issuer -dates -ext subjectAltNamenäitab, kes selle välja andis, milliste nimede jaoks ja mis ajani.openssl verify -CAfile ca.crt server.crtkontrollib, kas ahel, mille kavatsete saata, tõesti valideerib lehe.openssl s_client -connect vpn.example.net:443 -servername vpn.example.net -CAfile ca.crt -verify_return_errortöötab TLS-lõpp-punktide jaoks nagu veebiportaal; OpenVPN-i protokoll pordil 1194 ei ole tavaline TLS-voog, seega see test seal ei kehti.
Aegunud kuupäevaga, ühendatava nime jaoks subjectAltName'ita või serverAuth-kasutuseta sertifikaat ei läbi kontrolli olenemata sellest, kui hoolikalt ankur paigaldati.
Viis kontrolli enne, kui ühe vastu võtate
Võrrelge sõrmejälge kanali kaudu, mis ei ole ühendus, mida proovite parandada: konsool, paigaldaja, mis teil juba on, allkirjastatud konfiguratsioonifail. openssl x509 -in server.crt -noout -fingerprint -sha256 serveris ja sama väärtus kliendi logis on piisav, et teada, et vaatate üht objekti.
Seejärel otsustage, mida paigaldate: üks leht või asutus, mis suudab rohkem vermida. Siis otsustage, kuhu see läheb, ja nimetage rakendused, mis seda hoidlat loevad. Kirjutage eemaldamise tee üles, kuni te seda veel mäletate, sest usu-ja-liigu-edasi on viis, kuidas ajutisest impordist saab püsiv.
Lõpuks planeerige muudatus. Kinnitatud sertifikaat või sõrmejälg tuleb sertifikaadi pöörlemisel uuendada sama usaldusväärse kanali kaudu ja privaatsel CA-l on oma väljaandmise ja tühistamise elutsükkel. Kui privaatvõti lekib, ei paranda sama sertifikaadi koopia uuesti usaldamine midagi; identiteet tuleb välja vahetada.
Kui hoiatus peab vastu kõigile viiele kontrollile, pole kasulik küsimus see, milline nupp selle vaigistab, vaid see, millist hoidlat klient tegelikult loeb ja kust see juur tuli. Vastake sellele ja import, mille te kohe teete, muutub otsuseks, mitte refleksiks.