Copierea unui certificat VPN nu copiază cheia
Un certificat conține cheia publică și identitatea semnată; cheia sa privată este separată. Citiți pachetul de export înainte de a presupune că o copie se poate autentifica.
Turul începe în lista de certificate a clientului, unde intrarea arată un nume, un emitent și o dată de expirare și nimic altceva. Exportați-o, importați-o pe al doilea dispozitiv, iar conexiunea este refuzată pentru că clientul nu poate dovedi că deține cheia privată. Fișierul a fost copiat complet; greșeala este să te aștepți ca un certificat să își poarte propria cheie. Citiți dialogul de export înainte de a alege formatul, apoi inspectați fișierul pe care l-ați primit efectiv.
Două clicuri, două artefacte foarte diferite.
Citiți dialogul de export, nu sufixul fișierului
Un export de certificat DER sau PEM conține o cheie publică și declarațiile de identitate semnate, adică ceea ce un server are nevoie ca să aibă încredere în tine și ceea ce un client are nevoie ca să verifice un server. Un pachet PKCS#12 este un container care poate ține un certificat, lanțul său și cheia privată corespunzătoare, protejat de o parolă, deși poate fi creat și fără cheie.
PEM este doar o codificare text, nu o promisiune despre conținut. Același sufix poate descrie un singur certificat sau un fișier cu mai multe blocuri etichetate, iar opțiunile de export decid care.
Prin urmare, întrebarea utilă nu este niciodată ce extensie ai primit, ci ce blocuri conține fișierul. Un pachet exportat fără cheia sa rămâne un pachet. Verificați conținutul, nu popularitatea formatului.
Inspectați ce ați primit efectiv
Căutați etichetele înainte de a importa ceva, apoi citiți câmpurile certificatului pentru a confirma ce identitate țineți. Rulați verificările pe fișierul care va fi importat efectiv. Repetați-le după orice re-export, pentru că opțiunile pot diferi.
grep -E 'BEGIN (CERTIFICATE|PRIVATE KEY|ENCRYPTED PRIVATE KEY)' bundle.pem openssl x509 -in client.crt -noout -subject -issuer -dates openssl pkey -in client.key -noout -text | head -5 openssl pkcs12 -info -in client.p12 -noout
Un export cu doar blocul de certificat este un obiect public și nu se poate autentifica. Un bloc de cheie fără certificat te lasă fără lanțul pe care serverul îl așteaptă. Ieșirea de informații PKCS#12 raportează și dacă există o cheie, ceea ce lămurește întrebarea pentru acel format. Ea numește și algoritmul și dimensiunea cheii, și eșuează complet când nu există nicio cheie.
Nu lipiți niciodată un fișier care conține o cheie privată într-un fir de asistență, într-un tracker de probleme sau într-un chat, chiar și când arată ca certificatul pe care îl partajați deja. Capturile de ecran ale unui panou de chei merită aceeași prudență.
Cheia poate locui unde nu o puteți copia
Pe dispozitivele gestionate, cheia privată poate sta în inelul de chei al sistemului de operare, într-un token hardware sau într-un enclave securizat, cu o politică ce o marchează ca neexportabilă. Managerul de certificate arată atunci obiectul public în timp ce secretul rămâne la locul lui, iar nicio comandă de export nu va produce o copie portabilă. Înrolarea prin managementul dispozitivelor mobile funcționează adesea exact așa, prin proiectare.
Acesta este un control, nu un obstacol de ocolit. Reconstruirea unei chei private din certificatul public nu este posibilă, iar orice instrument care pretinde asta face altceva.
Înregistrați o identitate nouă în loc să copiați
Calea acceptată este de obicei să înregistrezi o identitate separată pentru dispozitivul nou și să o revoci pe cea veche când iese din uz, astfel încât fiecare dispozitiv să poată fi retras independent. Acolo unde un export cu cheia este cu adevărat aprobat, tratați fișierul rezultat și parola acestuia ca acreditări: criptate în repaus, transferate printr-un canal de încredere și șterse când înrolarea s-a terminat.
Verificați autentificându-vă cu identitatea importată, nu privind dacă importul a reușit. Un client care acceptă un certificat public în depozitul său nu a dovedit nimic despre cheie.
Încheiați confirmând că serverul acceptă identitatea nouă și că cea veche se comportă în continuare așa cum intenționează politica. Astfel turul se încheie cu dovezi, nu cu un fișier care pare corect.