Sama dosiernomo ca.crt, malsama atestilo: kion kompari
Du profilon povas liveri ca.crt kun malsamaj enhavoj. Prenu fingrospuron de tio, kion la procezo ŝargas, kaj poste kontrolu, ĉu ĝi estas la fidata ankro, kiun vi celis.
Du profilon ambaŭ liveras dosieron nomatan ca.crt, unu tunelo supreniĝas kaj la alia malsukcesas per ĉena eraro. Malfermi la du dosierojn unu apud la alia malofte decidas tion, kaj malŝalti la kontroladon decidas ĝin en la malĝusta direkto. La demando, kiun la eraro efektive demandas, estas pli mallarĝa: kiun atestilon ĉiu procezo ŝargas kiel sian fidan ankron, kaj ĉu la du estas la sama objekto? Respondu tion unue kaj la resto de la diagnozo ricevas direkton. La dosiernomo estas pakaĵa etikedo, kaj ankaŭ la vojo skribita en la profilo ne estas aŭtoritata, do ĉio dependas de tio, kion la procezo efektive legas.
Trovu la atestilon, kiun la kliento efektive ŝargas
OpenVPN akceptas la aŭtoritatecon en du formoj, kaj la formo decidas, kiuj bitokoj gravas. Profilo povas montri al ekstera dosiero per ca, aŭ enigi la atestilon en blokon <ca> en la profilo mem. Kiam ambaŭ ekzistas, la enigita bloko venkas kaj la dosiero apud la profilo neniam malfermiĝas.
Legu la malsukcesan profilon kaj trovu, kiun formon ĝi uzas, antaŭ ol kompari ion ajn. Kopio prenita el najbara dosierujo, aŭ el la pakaĵo, el kiu venis la alia profilo, diras al vi nenion pri tio, kion ĉi tiu procezo fidas. La samo validas por la vojo en la agordo: ĝi solviĝas rilate al la loko, kie la kliento estis lanĉita, kio ne ĉiam estas la dosierujo, kiun vi rigardas. Legu la profilon, ne la dosierujon.
Atestiloj identiĝas per sia enhavo: la publika ŝlosilo, la subjekto kaj eldoninto, la valideca fenestro kaj la subskribo super ĉio ĉi. Du dosieroj kun identaj bitokoj estas la sama atestilo, kiel ajn ili nomiĝas, kaj du dosieroj kun la sama nomo povas esti neparencaj aŭtoritatoj. La nomo estas pakaĵa etikedo, ne identeco.
Prenu fingrospuron de ambaŭ kopioj per openssl
Fingrospuro estas haketaĵo super la DER-kodigo de la atestilo, la formo, kiun la subskribo kovras, do linifinoj kaj kaplinia teksto ne povas influi ĝin. Kalkulu ĝin por ĉiu dosiero kaj vi havas du dupunkte apartigitajn deksesumajn signoĉenojn, kiuj aŭ kongruas aŭ ne. Nenio alia en la atestilo devas esti legata por respondi la komparan demandon.
openssl x509 -in /etc/openvpn/office/ca.crt -noout -fingerprint -sha256
openssl x509 -in ~/profiles/lab-ca.pem -noout -fingerprint -sha256
Estas tenteme direkti openssl al la profilo mem, sed ĝi legas tiun atestilan blokon, kiu aperas unue en la dosiero, kaj profilo kutime portas <cert> antaŭ <ca>. Eltiru la aŭtoritatecan blokon, poste prenu fingrospuron de la eltirita dosiero, ĉar tio estas la kopio, kiun la kliento efektive uzos.
sed -n '/^<ca>$/,/^<\/ca>$/p' office.ovpn | sed '1d;$d' > /tmp/office-ca.pem
openssl x509 -in /tmp/office-ca.pem -noout -fingerprint -sha256
Identaj fingrospuroj signifas, ke la fida materialo estas la sama kaj la ĉena eraro havas alian kaŭzon, kio estas alia esploro. Malsamaj fingrospuroj signifas malsamajn atestilojn, kaj tie komenciĝas la sekva sekcio.
Legu malkongruon antaŭ ol supozi atakon
Malsamaj fingrospuroj signifas malsamajn atestilojn kaj nenion pli. Reeldono, rotacio, renomita aŭtoritato aŭ malnova pakaĵo ĉiuj produktas malsamajn dosierojn kun tute legitaj historioj. Kiun el ili apartenas al la deplojo estas demando por la operatoro aŭ por la deploja registro, ne por la modifika tempo de la dosiero. Arkivoj kopias tempomarkojn, do pli nova dosiero ne aŭtomate estas la ĝusta ankro.
Radiko, kiu subskribas sin mem, estas normala, do trovi unu ne estas pruvo de problemo. La tasko de la kontrolanto estas konstrui vojon de la servila atestilo al la ankro, kiun oni donis al ĝi, kaj ĉena eraro kutime signifas, ke tiu vojo ne povis esti finita.
Kontrolu, ĉu la ankro de la malsukcesa profilo estas aŭtoritato, el kiu la deplojo ankoraŭ eldonas. Se la fingrospuro kongruas kun nenio en la deploja registro, la profilo simple estas malaktuala, kaj neniu agordo ĉe la klienta flanko ripagos tion.
Riparu fidon sen malŝalti la kontroladon
La mallongtempa ripago estas malŝalti la kontroladon aŭ aldoni ĉiun atestilon en la ĉeno kiel ankron. Ambaŭ malaperigas la mesaĝon, kaj ambaŭ ŝanĝas, kiujn servilojn la kliento akceptos de tiam. Reŝaltu la kontroladon, instalu la celatan ankron kaj retestu.
Se la ĉeno nun konstruiĝas sed aperas alia eraro, tio estas progreso: nomkontrolado, validigaj datoj kaj revokado estas apartaj kontroloj kun apartaj mesaĝoj. Konservu la fingrospuran paron kaj la originan erartekston kune en la ticket, por ke la sekva persono vidu, kiun ankron oni ŝargis kaj kiun oni atendis. Paro da fingrospuroj estas sufiĉe malgranda por alglui ĝin en transdonan noton, kaj la sekva okazo tiam daŭras kvin minutojn anstataŭ posttagmezon.
Akiru la ĝustan aŭtoritaton per la sama aŭtentikigita kanalo, kiu liveris la profilon. Eltiri atestilon de la servilo ĉar ĝia subjekto aspektas konata estas alia ago, kaj ĝi silente plilarĝigas tion, kion la kliento fidu.