Dy profile të dy sjellin një skedar të quajtur ca.crt, një tunel ngrihet dhe tjetri dështon me një gabim zinxhiri. Hapja e dy skedarëve krah për krah rrallë e zgjidh çështjen, dhe fikja e verifikimit e zgjidh në drejtimin e gabuar. Pyetja që gabimi bën në të vërtetë është më e ngushtë: cilën certifikatë ngarkon secili proces si ankorimin e tij të besimit, dhe a janë të dyja i njëjti objekt? Përgjigjuni së pari asaj dhe pjesa tjetër e diagnozës merr drejtim. Emri i skedarit është një etiketë paketimi, dhe rruga e shkruar në profil nuk është gjithashtu autoritative, kështu që gjithçka varet nga ajo që procesi lexon në të vërtetë.

Gjeni certifikatën që klienti ngarkon në të vërtetë

OpenVPN e pranon autoritetin në dy forma, dhe forma përcakton cilat bajt kanë rëndësi. Një profil mund të tregojë një skedar të jashtëm me ca, ose të futë certifikatën brenda një blloku <ca> në vetë profilin. Kur ekzistojnë të dyja, fiton blloku i futur dhe skedari pranë profilit nuk hapet kurrë.

Lexoni profilin që dështon dhe zbuloni cilën formë përdor përpara se të krahasoni çfarëdo. Një kopje e marrë nga një drejtori fqinje, ose nga paketa prej nga erdhi profili tjetër, nuk ju thotë asgjë rreth asaj që beson ky proces. E njëjta vlen për rrugën në konfigurim: ajo zgjidhet relativisht ndaj vendit ku klienti u nis, që nuk është gjithmonë drejtoria që po shikoni. Lexoni profilin, jo dosjen.

Certifikatat identifikohen nga përmbajtja e tyre: çelësi publik, subjekti dhe lëshuesi, dritarja e vlefshmërisë dhe nënshkrimi mbi të gjitha këto. Dy skedarë me bajt identikë janë e njëjta certifikatë, çfarëdo emri që mbajnë, dhe dy skedarë me të njëjtin emër mund të jenë autoritete të palidhura. Emri është një etiketë paketimi, jo identitet.

Merrni gjurmën e të dyja kopjeve me openssl

Një gjurmë është një hash mbi kodimin DER të certifikatës, formën që mbulon nënshkrimi, kështu që fundet e rreshtave dhe teksti i kokës nuk mund ta ndikojnë. Llogarisni atë për secilin skedar dhe keni dy vargje heksadecimalë të ndarë me dy pika që ose përputhen ose jo. Asgjë tjetër në certifikatë nuk duhet lexuar për t'iu përgjigjur pyetjes së krahasimit.

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

Është joshëse të drejtosh openssl drejt vetë profilit, por ai lexon bllokun e parë të certifikatës që shfaqet në skedar, dhe një profil zakonisht mban <cert> përpara <ca>. Nxirrni bllokun e autoritetit, pastaj merrni gjurmën e skedarit të nxjerrë, sepse ajo është kopja që klienti do të përdorë në të vërtetë.

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

Gjurmë identike do të thotë që materiali i besimit është i njëjtë dhe gabimi i zinxhirit ka një shkak tjetër, që është një hetim tjetër. Gjurmë të ndryshme do të thotë certifikata të ndryshme, dhe aty fillon seksioni tjetër.

Lexoni një mospërputhje përpara se të supozoni një sulm

Gjurmë të ndryshme do të thotë certifikata të ndryshme dhe asgjë më shumë. Një rilëshim, një rotacion, një autoritet i riemërtuar ose një paketë e vjetruar të gjitha prodhojnë skedarë të ndryshëm me histori plotësisht legjitime. Cila i përket vendosjes është pyetje për operatorin ose për regjistrin e vendosjes, jo për kohën e modifikimit të skedarit. Arkivat kopjojnë vulat kohore, kështu që një skedar më i ri nuk është automatikisht ankorimi i saktë.

Një rrënjë që nënshkruan vetveten është normale, kështu që gjetja e një të tillë nuk është provë e një problemi. Detyra e verifikuesit është të ndërtojë një rrugë nga certifikata e serverit deri te ankorimi që i është dhënë, dhe një gabim zinxhiri zakonisht do të thotë që ajo rrugë nuk mundi të përfundohej.

Kontrolloni nëse ankorimi i profilit që dështon është një autoritet nga i cili vendosja ende lëshon. Nëse gjurma nuk përputhet me asgjë në regjistrin e vendosjes, profili është thjesht i vjetruar, dhe asnjë rregullim nga ana e klientit nuk do ta rregullojë atë.

Riparoni besimin pa fikur verifikimin

Rregullimi afatshkurtër është të fikni verifikimin ose të shtoni çdo certifikatë në zinxhir si ankorim. Të dyja e bëjnë mesazhin të zhduket, dhe të dyja ndryshojnë cilat servere klienti do të pranojë që nga ai moment. Rikthejeni verifikimin, instaloni ankorimin e synuar dhe provoni përsëri.

Nëse zinxhiri tani ndërtohet, por shfaqet një gabim tjetër, ky është përparim: verifikimi i emrit, datat e vlefshmërisë dhe revokimi janë kontrolle të veçanta me mesazhe të veçanta. Mbani çiftin e gjurmëve dhe tekstin origjinal të gabimit bashkë në tiketë, që personi tjetër të shohë cili ankorim u ngarkua dhe cili pritej. Një çift gjurmësh është mjaft i vogël për t'u ngjitur në një shënim dorëzimi, dhe rasti i radhës atëherë zgjat pesë minuta në vend të një pasdite.

Merrni autoritetin e saktë përmes të njëjtit kanal të autentikuar që dërgoi profilin. Nxjerrja e një certifikate nga serveri sepse subjekti i saj duket i njohur është një akt tjetër, dhe zgjeron në heshtje atë që klienti do të besojë.

Artikuj të ngjashëm