De ce copierea ca.key pe fiecare client VPN distruge CA
Clientul verifică certificatul public al CA; nu are niciodată nevoie de cheia care semnează. Copierea ca.key pe fiecare dispozitiv oferă dreptul de emitere oricui ia o copie.
Undeva în instrucțiunile de instalare, un director este copiat în întregime pe fiecare laptop pentru că era mai simplu decât să decizi ce fișiere îi aparțin. Acel director conține ca.key, iar în momentul în care ajunge pe un al doilea dispozitiv, autoritatea de certificare nu mai este o autoritate. Orice deținător poate acum emite identități în care va avea încredere restul rețelei.
Merită descurcată această confuzie o dată, pentru că cele două fișiere arată asemănător și fac lucruri opuse.
Material de verificare și material de semnare
Un client are nevoie de certificatul public al CA pentru a verifica faptul că certificatul prezentat de cealaltă parte a fost semnat de acea autoritate. Aceasta este o sarcină de verificare și nu necesită niciun secret. Semnarea certificatului altei părți este o altă sarcină, executată o singură dată de cel care operează CA, cu cheia privată care nu părăsește niciodată depozitul său protejat. Separarea acestor două sarcini este întregul rost al livrării a două fișiere.
Așadar ca.crt aparține profilului, iar ca.key nu aparține nicăieri în apropierea lui. Numele fișierelor sunt o convenție, nu o garanție, de aceea tipul trebuie inspectat, nu dedus din nume.
O arhitectură cu un CA intermediar sau cu un serviciu de emitere online nu face excepție. Este modalitatea obișnuită de a ține capacitatea de semnare departe de punctele terminale, emițând totuși certificate de dispozitiv la scară.
Ce trebuie să demonstreze clientul cu propria cheie
Fiecare dispozitiv primește propria pereche de chei și propriul certificat, semnat o dată de CA. Clientul prezintă acel certificat și demonstrează că deține cheia privată corespunzătoare, iar serverul decide dacă îl acceptă. Aceasta este identitatea care este revocată atunci când un laptop se pierde.
Contrastul contează cel mai mult după un furt. Cu identități pentru fiecare dispozitiv, un client expus este eliminat prin revocare sau prin eliminarea celeilalte părți, iar restul flotei continuă să funcționeze.
O cheie de autoritate scursă nu poate fi tratată astfel. Fiecare certificat pe care l-a semnat vreodată sau ar fi putut să-l semneze devine suspect, așa că răspunsul este înlocuirea încrederii, nu o singură revocare. Acesta este un proiect, nu un tichet.
| File | Role | Belongs on |
|---|---|---|
ca.crt | Public certificate used to verify signatures | Every client profile |
ca.key | Private key that issues certificates | Protected CA storage only |
| client key pair | Proves one device's identity | That device alone |
Citiți un fișier înainte de a-l copia undeva
Două comenzi vă spun ce tip de obiect aveți în mână fără a tipări niciun secret. Prima indică subiectul și indicatorul CA de pe un certificat; a doua validează o cheie și raportează tipul acesteia. Rulați-le pe amândouă pe fișierele din pachetul pe care urmează să îl distribuiți. Orice se validează ca cheie privată nu aparține unui director de client.
openssl x509 -in ca.crt -noout -subject -ext basicConstraints openssl pkey -in ca.key -noout -check
Dacă a doua comandă reușește pe un fișier aflat într-un pachet de client, opriți-vă și tratați pachetul ca fiind compromis. Rezultatul care spune că o cheie este validă spune și că este prezentă, iar prezența este toată problema.
Observați și direcția inversă: un profil de client conține în mod legitim cheia privată a acelui client. Ștergerea fiecărei chei găsite întrerupe conexiunea fără a îmbunătăți nimic, așa că obiectul trebuie identificat înainte de a fi eliminat.
Limitarea unei chei pe care ați distribuit-o deja
Nu presupuneți că ștergerea copiei locale inversează expunerea. Oricine a avut fișierul ar fi putut să îl copieze, iar presupunerea sigură este că a făcut-o. Urmați procesul de incidente al operatorului și înlocuiți ancora de încredere, reemitând certificatele de dispozitiv sub un CA nou.
Apoi schimbați ambalarea care a creat problema. Trimiteți o listă a directorului cu o listă albă explicită de fișiere, păstrați cheia CA pe o mașină care nu se alătură niciodată flotei de clienți, și notați ce sistem o păstrează.
Dacă autoritatea trebuie să emită des, mutați semnarea în spatele unui serviciu sau al unui intermediar cu arie restrânsă și valabilitate scurtă. Astfel o eroare viitoare expune un subset al emiterii, nu rădăcina de încredere a întregii implementări.