Visszavontad a tanúsítványt, új listát generáltál, és a régi profil mégis felépít egy alagutat. Maga a visszavonás nem hibás: a CRL egy aláírt nyilatkozat arról, hogy egy sorszám már nem érvényes, és csak akkor változtatja meg a hozzáférést, amikor a TLS-t lezáró komponens betölti, a megfelelő kibocsátóhoz, mielőtt meghozza az elfogadási döntést. Itt van a legtöbb ilyen eset, és ezért a visszavonás és az elutasítás két külön tény.

Haladj végig az alábbi öt ellenőrzésen sorban, és állj meg az elsőnél, amelyik nem teljesül, mert minden későbbi ellenőrzés az előzőek igazságát feltételezi.

Ellenőrizd, melyik komponens hozza meg az elfogadási döntést

Nevezd meg a folyamatot, amely érvényesíti az ügyféltanúsítványt, mert csak az a folyamat tud érvényt szerezni egy listának. Egy OpenVPN-kiszolgálón maga a daemon, crl-verify beállítással. Az ocservnél a crl sor a ocserv.conf fájlban. A strongSwan esetében a bemenetek a betöltött CRL-ek a strictcrlpolicy mellett. A VPN előtti TLS-t lezáró proxy vagy készülék is lehet a valódi ellenőrző, és ha az, akkor a mögötte lévő daemon soha nem látja az ügyféltanúsítványt.

A WireGuard más kategóriába tartozik. Nincsenek tanúsítványai és nincs visszavonási listája; egy peer a konfigurációban szereplő nyilvános kulcsa alapján kerül be, tehát a hozzáférés megszüntetése azt jelenti, hogy eltávolítjuk azt a kulcsot. Ha csak WireGuardot használó telepítésben keresel CRL-t, az a mechanizmus nincs ott.

Figyelj az ügyféloldali csapdára is. Az az ügyfél, amely azért tagadja meg a kapcsolatot, mert nem tetszik neki a kiszolgáló tanúsítványa, a kiszolgáló láncát érvényesíti, nem a saját hitelesítő adatát vonja vissza. A felhasználói tanúsítvány csak ott vonható vissza, ahol azt a felhasználói tanúsítványt érvényesítik, és ez szinte mindig a kiszolgáló oldala.

Ellenőrizd, melyik kibocsátó számára írták alá a listát

A CRL egyetlen kibocsátó CA-ra korlátozódik. Gyökér és köztes esetén a levéltanúsítványok a köztesből származnak, tehát a számító lista a köztes CRL-je; a gyökér listája semmit nem mond ezekről a levelekről. Az az ellenőrző, amelyet rossz fájlra irányítanak, vígan elemzi, nem talál egyező bejegyzést, és mindent elfogad.

Erősítsd meg a párosítást, mielőtt hozzányúlsz a daemonhoz. A tanúsítványon szereplő kibocsátónak meg kell egyeznie a lista subjectjével:

openssl x509 -in client.crt -noout -issuer -serial
openssl crl  -in intermediate.crl -noout -issuer -lastupdate -nextupdate

Ha mindkettő ugyanattól a CA-tól származik, a tanúsítványhoz nyomtatott sorszám az az érték, amelynek meg kell jelennie a listán. Ha nem egyeznek, rossz CRL-t vagy annak rossz példányát tartod.

Az érvényesség ugyanahhoz az ellenőrzéshez tartozik. Egy múltbeli nextUpdate elavulttá teszi a listát, és a zártan meghibásodó ellenőrző ekkor minden ügyfelet elutasít, nem csak a visszavontat.

Ellenőrizd, hogy a sorszám abban a példányban van-e, amelyet a daemon betöltött

A visszavonás bejegyzést ír a CA adatbázisába, az újragenerálás pedig új fájlt ír. Egyik művelet sem ér el egy futó daemont, amely a régi példányt töltötte be indításkor. Dumpold a listát, és keresd a sorszámot:

openssl crl -in intermediate.crl -noout -text | grep -i -A2 'Serial Number'
openssl ca -revoke client.crt
openssl ca -gencrl -out intermediate.crl

Utána ellenőrizd, hogyan veszi fel a fájlt a megvalósításod. Az OpenVPN a crl-verify kapott útvonalat egyszer olvassa be indításkor, tehát egy új listához újraindítás vagy újraindítási jelzés kell; ugyanez az opció könyvtárra irányítva minden kapcsolatnál újraolvasódik, és ezért létezik a könyvtármód. A strongSwannak újra kell töltenie a hitelesítő adatait, például a swanctl --load-creds segítségével. Az, hogy a lemezen lévő fájl helyes, és az, hogy az ellenőrző használja, két külön tény.

Ellenőrizd a hiányzó vagy lejárt listára vonatkozó szabályt

Ez az a döntés, amelyet sok telepítés soha nem hoz meg kifejezetten, és ez dönti el, hogy a visszavonás véd-e téged, vagy mindenkit kizár. A fail-closed azt jelenti, hogy használható visszavonási információ nélkül elutasítás történik; a fail-open azt jelenti, hogy az ellenőrző enélkül is továbbmegy. A strongSwan a strictcrlpolicy néven teszi elérhetővé a választást. Az OpenVPN a crl-verify beállítással megtagadja az indulást olyan fájlon, amelyet nem tud beolvasni vagy elemezni, és a lejárt lista a lejárt CRL-re vonatkozó TLS-ellenőrzési hibaként jelenik meg, nem csendes elfogadásként.

State of the revocation dataFail-closed resultFail-open result
List missing or unreadableVerification fails, so expect an outageEvery client connects, including the revoked one
List past nextUpdateValidation errors until a fresh list is deployedOld status is trusted indefinitely
Revoked serial present in the loaded listHandshake rejected for that certificateHandshake rejected for that certificate

Bármelyik irányt választod, az automatizálás többet számít, mint a választás: az a feladat, amely a nextUpdate előtt újragenerálja a CRL-t, és az a riasztás, amikor a telepített példány elöregszik, mindkét szabályt távol tartja attól, hogy incidenssé váljon. Az OCSP-vel végzett online ellenőrzés a válaszadóhoz helyezi át a frissességet, de ugyanaz a szabály érvényes, mert az az ellenőrző, amelyet nem állítottak be a válasz ellenőrzésére, nem változtat semmit.

Ellenőrizd az aktív munkamenetet, majd a kulcs példányait

A visszavonást a tanúsítvány érvényesítése során értékelik, amely a csatlakozáskor és az újratárgyaláskor történik. Egy létrejött munkamenet addig fut, amíg újra nem tárgyal, és az OpenVPN alapértéke óránként egyszer, reneg-sec 3600 beállítással. Ha a személynek most el kell hagynia a hálózatot, fejezd be a munkamenetet a lista közzététele mellett, majd erősítsd meg, hogy az újracsatlakozást elutasítják.

Válaszd külön a hitelesítő adatot a példányaitól. Egy profil törlése egy laptopon nem akadályozza meg ugyanazon privát kulcs másik példányát a hitelesítésben; a visszavonás az, ami minden példányt hasznavehetetlenné tesz, és csak akkor, amikor a korábbi ellenőrzések teljesülnek. Adj a cserekészüléknek saját tanúsítványt, hogy az egyik visszavonható legyen a másik érintése nélkül.

Mielőtt késznek nyilvánítod: az érvényesítő komponens azonosított, a lista kibocsátója megegyezik a levél kibocsátójával, a visszavont sorszám abban a példányban van, amelyet a daemon ténylegesen betöltött, a hiányzó vagy lejárt listákra vonatkozó szabály szándékos és felügyelt, és az aktív munkamenetet befejezték, nem pedig kivárták. Az egész mögötti formátumokat az RFC 5280 határozza meg.

Kapcsolódó cikkek