remote-cert-tls server: mitä se tarkistaa OpenVPN-profiilissa
Direktiivi tarkistaa vastapuolen varmenteeseen koodatun roolin, ei sen nimeä. Vertaa roolia, luottamuksen ankkuria ja isäntänimen tarkistusta ennen kuin poistat mitään käytöstä.
Kolmesta eri kysymyksestä vastaa kolme eri osaa OpenVPN-profiilissa, ja niiden yhteen sulauttaminen on se, miten ihmiset lopulta kytkevät pois tarkistuksen, joka toimi. Onko vastapuolen varmenne sen tahon allekirjoittama, johon luotan? Ilmoittaako varmenne TLS-palvelimen roolin? Onko se juuri se palvelin, johon halusin päästä? remote-cert-tls server vastaa vain keskimmäiseen kysymykseen, ja se tekee sen lukemalla varmenteen sisällä olevia laajennuksia.
Kolme tarkistusta, jotka on helppo sulauttaa mielessään
Luottamuksen ankkuri asuu direktiivissä ca. Roolitarkistus kuuluu direktiiville remote-cert-tls. Identiteettitarkistus kuuluu direktiiville verify-x509-name, kun profiili käyttää sitä, tai mille tahansa nimelle, jonka käyttöönotto lisää.
Ne kattavat erilaisia vikoja:
| Question | Directive | Failure it catches |
|---|---|---|
| Who signed this? | ca | Certificate from an unrelated authority |
| Is this a server? | remote-cert-tls | Client certificate presented by a peer |
| Is this my server? | verify-x509-name | Another valid server from the same CA |
Profiililla voi olla kaikki kolme ja olla silti heikko, jos CA jaetaan liian laajasti, mikä on avainten hallinnan eikä direktiivin kysymys.
Mitä roolitarkistus lukee
Direktiivi on makro. Se laajenee avaimen käytön vaatimukseksi ja laajennetun avaimen käytön vaatimukseksi, joka nimeää TLS-verkkopalvelimen roolin, joten vastapuolen varmenteen on todella ilmoitettava tämä käyttötarkoitus. Asiakkaan todennukseen myönnetty varmenne ei täytä sitä, vaikka sama taho allekirjoitti molemmat.
Tällä on merkitystä, koska jaettu CA on yleinen pienissä käyttöönotoissa. Yksi taho allekirjoittaa jokaisen asiakkaan ja palvelimen, ja ilman roolitarkistusta mikä tahansa noista varmenteista voisi suorittaa kättelyn palvelinpuolen. Tarkistus ei tee tilanteesta mahdotonta, mutta poistaa sen triviaalin version.
Direktiivi on suunnittelultaan epäsymmetrinen: asiakkaat kantavat remote-cert-tls server ja palvelimet kantavat remote-cert-tls client. Vaihda ne, ja jokainen yhteys epäonnistuu roolivirheeseen, joka näyttää rikkoutuneelta varmenteelta.
Vanhemmat profiilit käyttävät joskus samaan tarkoitukseen ns-cert-type. Nykyiset käsikirjasivut pitävät tätä vaihtoehtoa korvattuna, joten profiili, joka edelleen nojaa siihen, kannattaa siirtää eikä virheenkorjata.
Miksi sen poistaminen käytöstä tuntuu korjaukselta
Kun roolitarkistus epäonnistuu, yhteys pysähtyy vahvistusvirheeseen ja ilmeinen liike on poistaa rivi. Sitten yhteys nousee, mikä tuntuu edistymiseltä ja on itse asiassa se vikatila, jonka estämiseksi direktiivi on olemassa. Nyt hyväksyt vastapuolen, jonka varmennetta ei koskaan ollut tarkoitettu sille roolille.
Lue sen sijaan virhe. Se nimeää tarkistuksen, joka epäonnistui, ja toisella puolella oleva varmenne voidaan tutkia, jotta nähdään, mitä laajennuksia se todella kantaa. Kahden minuutin lukeminen ratkaisee, onko vika myöntämisessä vai kokoonpanossa. Arvaaminen maksaa iltapäivän ja päättyy yleensä heikennettyyn profiiliin. Uusittu palvelinvarmenne, joka menetti laajennetun avaimen käytön, on todellinen vika uusinnassa, ei syy löysentää asiakasta.
Nimitarkistus on erillinen direktiivi
Roolitarkistuksen täyttäminen sanoo, että vastapuoli on jokin sinun tahosi allekirjoittama palvelin. Se ei sano mitään siitä mikä, millä on merkitystä, kun sama CA myöntää varmenteita usealle yhdyskäytävälle ja yksi niistä on vaarantunut tai käytetty uudelleen.
verify-x509-name vertaa varmenteen subjektia arvoon, jonka määrität, täsmällisen subjektin, etuliitteen tai yksittäisen kentän vastaavuustiloilla. Käytä kenttää, joka todella tunnistaa yhdyskäytävän, ja odota päivittäväsi sen tarkoituksella, kun nimi muuttuu.
Kumpikaan direktiivi ei korvaa hyvää avainten käsittelyä. Jos asiakkaan avaintiedostoa kopioidaan ympäriinsä profiilin mukana, vastapuolen identiteetti on vain niin vahva kuin jakeluluettelo.
Tutki varmenne ennen kuin muokkaat profiilia
Lue vastapuolen varmenne ja asiakkaan loki tässä järjestyksessä. Varmenne kertoo, mitkä roolit se ilmoittaa; loki kertoo, mikä tarkistus hylkäsi sen.
Nämä komennot tulostavat käyttölaajennukset ja vahvistusrivit yksityiskohtaisesta yhteydestä:
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 verifyJos laajennukset näyttävät palvelimen roolin ja loki silti raportoi roolivirheen, profiili osoittaa todennäköisesti väärään varmennetiedostoon eikä huonoon varmenteeseen. Jos laajennukset näyttävät vain asiakkaan todennuksen, lopeta asiakkaan katsominen ja korjaa myöntäminen. Joka tapauksessa palauta tarkistus ennen kuin kutsut yhteyttä terveeksi, koska onnistunut kättely vahvistuksen poistamisen jälkeen todistaa vähemmän kuin virhe, jonka se korvasi.