Kolm erinevat küsimust saavad vastuse OpenVPN-profiili kolmest erinevast osast ja nende kokkusulatamine on see, kuidas inimesed lõpuks lülitavad välja kontrolli, mis töötas. Kas vastaspoole sertifikaat on allkirjastatud minu usaldatava asutuse poolt? Kas see sertifikaat deklareerib TLS-serveri rolli? Kas see on täpselt see server, kuhu ma tahtsin jõuda? remote-cert-tls server vastab ainult keskmisele küsimusele ja teeb seda sertifikaadi sees olevaid laiendusi lugedes.

Kolm kontrolli, mida on peas lihtne kokku sulatada

Usaldusankur elab direktiivis ca. Rollikontroll kuulub direktiivile remote-cert-tls. Identiteedikontroll kuulub direktiivile verify-x509-name, kui profiil seda kasutab, või ükskõik millisele nimekontrollile, mille juurutus lisab.

Need katavad erinevaid tõrkeid:

QuestionDirectiveFailure it catches
Who signed this?caCertificate from an unrelated authority
Is this a server?remote-cert-tlsClient certificate presented by a peer
Is this my server?verify-x509-nameAnother valid server from the same CA

Profiilil võivad olla kõik kolm ja see võib ikkagi olla nõrk, kui CA on liiga laialt jagatud, mis on võtmehalduse, mitte direktiivi küsimus.

Mida rollikontroll loeb

Direktiiv on makro. See laieneb võtmekasutuse nõudeks ja laiendatud võtmekasutuse nõudeks, mis nimetab TLS-i veebiserveri rolli, seega peab vastaspoole sertifikaat seda otstarvet tegelikult deklareerima. Kliendi autentimiseks välja antud sertifikaat ei vasta sellele, isegi kui sama asutus allkirjastas mõlemad.

See on oluline, sest jagatud CA on väikestes juurutustes tavaline. Üks asutus allkirjastab iga kliendi ja serveri ning ilma rollikontrollita võiks ükskõik milline neist sertifikaatidest lõpetada käepigistuse serveripoolse osa. Kontroll ei muuda seda stsenaariumi võimatuks, kuid eemaldab selle triviaalse versiooni.

Direktiiv on disaini järgi asümmeetriline: kliendid kannavad remote-cert-tls server ja serverid kannavad remote-cert-tls client. Vahetage need ja iga ühendus ebaõnnestub rolliveaga, mis näeb välja nagu katkine sertifikaat.

Vanemad profiilid kasutavad mõnikord sama otstarbe jaoks ns-cert-type. Praegused manuaalilehed käsitlevad seda valikut aegununa, seega profiili, mis veel sellele toetub, tasub migreerida, mitte siluda.

Miks selle keelamine tundub parandusena

Kui rollikontroll ebaõnnestub, peatub ühendus kontrollveaga ja ilmne samm on rida kustutada. Seejärel ühendus tõuseb, mis tundub edusammuna ja on tegelikult tõrkerežiim, mille vältimiseks direktiiv olemas on. Nüüd võtate vastu vastaspoole, kelle sertifikaat ei olnud kunagi selle rolli jaoks mõeldud.

Lugege selle asemel viga. See nimetab kontrolli, mis ebaõnnestus, ja teisel pool olevat sertifikaati saab uurida, et näha, milliseid laiendusi see tegelikult kannab. Kaks minutit lugemist otsustab, kas viga on väljaandmises või konfiguratsioonis. Oletamine maksab pärastlõuna ja lõpeb tavaliselt nõrgestatud profiiliga. Uuendatud serverisertifikaat, mis kaotas oma laiendatud võtmekasutuse, on uuendamises tõeline viga, mitte põhjus klienti lõdvendada.

Nimekontroll on eraldi direktiiv

Rollikontrolli rahuldamine ütleb, et vastaspool on mingi teie asutuse poolt allkirjastatud server. See ei ütle midagi selle kohta, milline, mis on oluline, kui sama CA väljastab sertifikaate mitmele lüüsile ja üks neist on kompromiteeritud või ümber kasutatud.

verify-x509-name võrdleb sertifikaadi subjekti väärtusega, mille te konfigureerite, sobivusrežiimidega täpse subjekti, eesliite või ühe välja jaoks. Kasutage välja, mis tegelikult lüüsi identifitseerib, ja oodake, et peate selle nime muutumisel teadlikult uuendama.

Kumbki direktiiv ei asenda head võtmehaldust. Kui kliendi võtmefaili kopitakse koos profiiliga ringi, on vastaspoole identiteet ainult nii tugev kui levitusnimekiri.

Uurige sertifikaati enne profiili muutmist

Lugege vastaspoole sertifikaati ja kliendi logi selles järjekorras. Sertifikaat ütleb, milliseid rolle see deklareerib; logi ütleb, milline kontroll selle tagasi lükkas.

Need käsud trükivad kasutuslaiendused ja kontrollread üksikasjalikust ühendusest:

openssl x509 -in server.crt -noout -text | grep -A1 -E "Key Usage|Extended Key Usage"
sudo openvpn --config client.ovpn --verb 4 2>&1 | grep -i verify

Kui laiendused näitavad serveri rolli ja logi teatab endiselt rolliveast, osutab profiil tõenäoliselt valele sertifikaadifailile, mitte halvale sertifikaadile. Kui laiendused näitavad ainult kliendi autentimist, lõpetage kliendi vaatamine ja parandage väljaandmine. Igal juhul taastage kontroll enne, kui nimetate ühenduse terveks, sest edukas käepigistus pärast kontrolli eemaldamist tõestab vähem kui viga, mille see asendas.

Seotud artiklid