Twee profiele lewer albei ’n lêer met die naam ca.crt, een tonnel kom op en die ander misluk met ’n kettingfout. Om die twee lêers langs mekaar oop te maak, beslis dit selde, en om verifikasie af te skakel, beslis dit in die verkeerde rigting. Die vraag wat die fout eintlik vra, is smaller: watter sertifikaat laai elke proses as sy vertrouensanker, en is die twee dieselfde objek? Beantwoord dit eerste, dan het die res van die diagnose ’n rigting. Die lêernaam is ’n verpakkingsetiket, en die pad wat in die profiel geskryf is, is ook nie gesaghebbend nie, so alles hang af van wat die proses werklik lees.

Vind die sertifikaat wat die kliënt werklik laai

OpenVPN aanvaar die gesag in twee vorms, en die vorm bepaal watter grepe saak maak. ’n Profiel kan na ’n eksterne lêer wys met ca, of die sertifikaat in ’n <ca>-blok in die profiel self inbed. Wanneer albei bestaan, wen die ingebedde blok en die lêer langs die profiel word nooit oopgemaak nie.

Lees die mislukte profiel en vind watter vorm dit gebruik voordat jy enigiets vergelyk. ’n Afskrif uit ’n naburige gids, of uit die pakket waaruit die ander profiel gekom het, sê niks oor wat hierdie proses vertrou nie. Dieselfde geld vir die pad in die konfigurasie: dit word opgelos relatief tot waar die kliënt begin is, wat nie altyd die gids is waarna jy kyk nie. Lees die profiel, nie die gids nie.

Sertifikate word deur hul inhoud geïdentifiseer: die publieke sleutel, die subjek en uitreiker, die geldigheidsvenster en die handtekening oor al dit. Twee lêers met identiese grepe is dieselfde sertifikaat, ongeag hoe hulle genoem word, en twee lêers met dieselfde naam kan onverwante gesagsinstansies wees. Die naam is ’n verpakkingsetiket, nie ’n identiteit nie.

Merk albei afskrifte met openssl

’n Vingerafdruk is ’n hash oor die sertifikaat se DER-enkodering, die vorm wat die handtekening dek, so reëleindes en kopteks kan dit nie beïnvloed nie. Bereken dit vir elke lêer en jy het twee dubbelpunt-geskeide heksstringe wat óf ooreenstem óf nie. Niks anders in die sertifikaat hoef gelees te word om die vergelykingsvraag te beantwoord nie.

openssl x509 -in /etc/openvpn/office/ca.crt -noout -fingerprint -sha256
openssl x509 -in ~/profiles/lab-ca.pem -noout -fingerprint -sha256

Om openssl na die profiel self te wys, is aanloklik, maar dit lees watter sertifikaatblok ook al eerste in die lêer verskyn, en ’n profiel dra gewoonlik <cert> voor <ca>. Onttrek die gesagsblok en merk dan die onttrekte lêer, want dit is die afskrif wat die kliënt werklik sal gebruik.

sed -n '/^<ca>$/,/^<\/ca>$/p' office.ovpn | sed '1d;$d' > /tmp/office-ca.pem
openssl x509 -in /tmp/office-ca.pem -noout -fingerprint -sha256

Identiese vingerafdrukke beteken die vertrouensmateriaal is dieselfde en die kettingfout het ’n ander oorsaak, wat ’n ander ondersoek is. Verskillende vingerafdrukke beteken verskillende sertifikate, en dit is waar die volgende afdeling begin.

Lees ’n wanaanpassing voordat jy ’n aanval aanneem

Verskillende vingerafdrukke beteken verskillende sertifikate en niks meer nie. ’n Heruitreiking, ’n rotasie, ’n herbemerkte gesagsinstansie of ’n verouderde bondel lewer almal verskillende lêers met heeltemal wettige geskiedenisse. Watter een in die ontplooiing hoort, is ’n vraag vir die operateur of die ontplooiingsrekord, nie vir die lêer se wysigingstyd nie. Argiewe kopieer tydstempels, so ’n nuwer lêer is nie outomaties die korrekte anker nie.

’n Wortel wat homself onderteken, is normaal, so om een te vind is nie bewys van ’n probleem nie. Die verifieerder se werk is om ’n pad van die bediener-sertifikaat na die anker wat aan hom gegee is te bou, en ’n kettingfout beteken gewoonlik dat daardie pad nie voltooi kon word nie.

Kontroleer of die mislukte profiel se anker ’n gesagsinstansie is waaruit die ontplooiing nog steeds uitreik. As die vingerafdruk niks in die ontplooiingsrekord pas nie, is die profiel bloot verouderd, en geen mate van kliënt-kant instelling sal dit regmaak nie.

Herstel vertroue sonder om verifikasie af te skakel

Die korttermynoplossing is om verifikasie af te skakel of om elke sertifikaat in die ketting as anker by te voeg. Albei laat die boodskap verdwyn, en albei verander watter bedieners die kliënt van dan af sal aanvaar. Skakel verifikasie weer aan, installeer die beoogde anker en toets weer.

As die ketting nou bou maar ’n ander fout verskyn, is dit vordering: naamverifikasie, geldigheidsdatums en herroeping is aparte kontroles met aparte boodskappe. Hou die vingerafdrukpaar en die oorspronklike foutteks saam in die kaartjie, sodat die volgende persoon sien watter anker gelaai is en watter een verwag is. ’n Paar vingerafdrukke is klein genoeg om in ’n oorhandigingsnota te plak, en die volgende keer neem dit vyf minute in plaas van ’n middag.

Kry die korrekte gesagsinstansie deur dieselfde geauthentiseerde kanaal wat die profiel gelewer het. Om ’n sertifikaat van die bediener af te trek omdat sy subjek bekend lyk, is ’n ander daad, en dit verbreed stilweg wat die kliënt sal vertrou.

Verwante artikels