Du kredoj kaŭzas la plejmulton de la damaĝo ĉi tie: ke memsubskribita VPN-atestilo signifas, ke la tunelo ne estas ĉifrita, kaj ke instali kion ajn la VPN-kliento petis efikas nur sur la VPN. Neniu el ili postvivas kontakton kun reala starigo. Memsubskribita atestilo priskribas subskriban rilaton, ne sekurecan verdikton, kaj la atingopovo de la fido, kiun vi aldonas, dependas de tio, en kiun konservejon ĝi eniĝas. Mi vidis helpfunkcion importi provizantan radikon en Windows-maŝinon por silentigi unu averton, kaj poste pasigi posttagmezon klarigante, kial la retumilo ĉesis plendi pri nerilata portalo. La du duonoj de ĉi tiu demando apartenas kune, do traktu ilin kiel unu.

Atestilo ne estas fido-konservejo

La dosiero, kiun la servilo prezentas, portas publikan ŝlosilon, subjektan nomon, eldonistan nomon, validecajn datojn kaj etendaĵojn. Memsubskribita signifas, ke la subjekto kaj la eldonisto estas la sama ento kaj la subskribo kontroliĝas per la propra ŝlosilo de la atestilo. Nenio en tiu difino diras, ke la konekto estas malforta, kaj nenio diras, ke la kliento akceptos ĝin.

Akcepto venas de aliloke: CA-dosiero, al kiu vi direktas la klienton, fingrospuro, kiun vi mem komparas, aŭ radiko, kiu jam kuŝas en konservejo, kiun la kliento legas. Starigo povas esti tute sana dum ĝia atestilo malsukcesus ĉiun publikan teston. openssl verify kontraŭ la sistema fasko raportos nekonatan eldoniston, kaj tiu raporto estas ĝusta, ne misfunkcio.

La opcio ca de OpenVPN estas la plej klara kazo de aplikaĵa fido. Tiu dosiero nomas la ankrojn, kiujn la kliento akceptos, kaj ĝi povas enhavi unu privatan CA aŭ, en malgranda starigo, la propran memsubskribitan atestilon de la servilo. Versio 2.6 ankaŭ akceptas --peer-fingerprint por fiksi SHA-256-fingrospuron anstataŭ disdoni CA-dosieron. WireGuard staras eĉ pli malproksime: ĝi tute ne havas atestilojn, nur statikan publikan ŝlosilon por ĉiu paro, do la demando pri memsubskribado ne aplikiĝas al ĝi.

Kie vi instalas fidon decidas, kiu heredos ĝin

Metu la saman atestilon en tri lokojn kaj vi ricevos tri malsamajn eksplodradiusojn. Fasko legata nur de la VPN-kliento efikas sur tiu kliento. Radiko en la konservejo de la operaciumo efikas sur ĉiu programo, kiu konsultas tiun konservejon. Retumilo kun propra fidatabazo povas ignori ambaŭ, kaj tial averto povas postvivi importon, kiu ŝajnis funkcii.

En Debian aŭ Ubuntu, demeti dosieron en /usr/local/share/ca-certificates/ kaj ruli update-ca-certificates ŝanĝas la sistemlarĝan faskon. En Windows, certutil -addstore -f Root skribas al la maŝina konservejo kaj bezonas altigitan komandan inviton, dum aldoni -user celas la konservejon de la nuna uzanto; la du ne estas interŝanĝeblaj. Firefox tenas sian propran NSS-datumbazon, do importo je operaciuma nivelo eble neniam aperos tie.

Amplekso gravas pro tio, kion aŭtoritato povas fari. Eldona CA povas subskribi por nomoj, kun kiuj ĝi havas neniun rilaton, do io ajn, kio fidas tiun konservejon, akceptos tiujn subskribojn. Unu fiksita folio tion ne povas; ĝi aŭtentikigas precize unu paran identecon. Se la celo estas igi unu VPN konekti, aplikaĵa CA aŭ fiksita folio atingas ĝin, dum maŝinlarĝa radiko estas multe pli granda koncedo ol la simptomo postulas.

Vi ankoraŭ ĉifras sen publika CA

La TLS-manpremo derivas sesiajn ŝlosilojn sendepende ĉu la para atestilo ĉenumas al io, kion vi jam fidas. Memsubskribita ne signifas klaran tekston kaj ne signifas, ke la trafiko estas legebla dumfluge. Ĝi signifas, ke la kliento havas neniun aprioran kialon kredi, ke la ŝlosilo apartenas al la servilo, kiun ĝi petis.

En tiu breĉo vivas realaj atakoj. Kliento agordita akcepti ajnan atestilon, ĉu per malŝaltita kontrolagordo ĉu per butono «fidu tamen» klakita unufoje kaj forgesita, ĝoje ĉifros al kiu ajn respondos. La interkapto okazas en la aŭtentikiga paŝo, antaŭ ol aplikaj datumoj moviĝas. Ĉifrado sen identec-kontrolo tenas pasivan observanton ekstere kaj faras malmulte alion.

Fidi la eldoniston ne preterpasas la nomkontrolon

Ĉenvalidigo, nomkongrueco kaj atestila celo estas apartaj decidoj. Ĉeno povas esti valida dum la nomo estas malĝusta, kaj nomo povas kongrui dum la atestilo estis eldonita por alia rolo. RFC 5280 difinas la kampojn, kiuj portas tiujn limigojn, kaj kiom strikte kliento plenumas ilin estas afero de ĉiu aplikaĵo.

OpenVPN igas la disigon videbla. verify-x509-name fiksas la atendatan subjekton per kongruo de name, name-prefix aŭ subject. remote-cert-tls server postulas, ke la para atestilo estu uzebla kiel servila atestilo, kio rifuzas atestilon nur por kliento eĉ kiam la eldonisto estas fidata. Neniu el la du agordoj anstataŭiĝas per sendado de CA-dosiero.

Ekzamenu la atestilon antaŭ ol decidi ion ajn:

  • openssl x509 -in server.crt -noout -subject -issuer -dates -ext subjectAltName montras, kiu eldonis ĝin, por kiuj nomoj kaj ĝis kiam.
  • openssl verify -CAfile ca.crt server.crt kontrolas, ĉu la ĉeno, kiun vi planas sendi, efektive validigas la folion.
  • openssl s_client -connect vpn.example.net:443 -servername vpn.example.net -CAfile ca.crt -verify_return_error funkcias por TLS-finpunktoj kiel reta portalo; la OpenVPN-protokolo ĉe 1194 ne estas simpla TLS-fluo, do tiu testo ne aplikiĝas tie.

Atestilo kun eksdata dato, sen subjectAltName por la nomo, al kiu vi konektas, aŭ sen serverAuth-uzo malsukcesas sendepende de tio, kiom zorge la ankro estis instalita.

Kvin kontroloj antaŭ ol akcepti unu

Komparu la fingrospuron per kanalo, kiu ne estas la konekto, kiun vi provas ripari: konzolo, instalilo, kiun vi jam havas, subskribita agorda dosiero. openssl x509 -in server.crt -noout -fingerprint -sha256 sur la servilo kaj la sama valoro en la klienta protokolo sufiĉas por scii, ke vi rigardas unu objekton.

Poste decidu, kion vi instalas: unu folion aŭ aŭtoritaton, kiu povas eldoni pli. Tiam decidu, kien ĝi iras, kaj nomu la aplikaĵojn, kiuj legas tiun konservejon. Skribu la forigvojon dum vi ankoraŭ memoras ĝin, ĉar fidu-kaj-iru-pluen estas kiel provizora importo fariĝas daŭra.

Fine, planu la ŝanĝon. Fiksita atestilo aŭ fingrospuro devas esti ĝisdatigita per la sama fidata kanalo, kiam la atestilo rotacias, kaj privata CA havas sian propran eldonan kaj revokan vivciklon. Se la privata ŝlosilo likas, refidi kopion de la sama atestilo riparas nenion; la identeco devas esti anstataŭigita.

Se averto postvivas ĉiujn kvin kontrolojn, la utila demando ne estas, kiu butono silentigas ĝin, sed kiun konservejon la kliento efektive legas kaj de kie tiu radiko venis. Respondu tion, kaj la importo, kiun vi baldaŭ faros, fariĝas decido anstataŭ reflekso.

Rilataj artikoloj