VPN-varmenteen kopioiminen ei kopioi avainta
Varmenne sisältää julkisen avaimen ja allekirjoitetun identiteetin; sen yksityinen avain on erillinen. Lue vientipaketti ennen kuin oletat kopion pystyvän todentamaan.
Kierros alkaa asiakkaan varmenneluettelosta, jossa merkintä näyttää nimen, myöntäjän ja vanhenemispäivän eikä mitään muuta. Vie se, tuo se toiselle laitteelle, ja yhteys hylätään, koska asiakas ei pysty todistamaan yksityisen avaimen hallintaa. Tiedosto kopioitiin kokonaan; virhe on odottaa varmenteen kuljettavan oman avaimensa. Lue vientivalintaikkuna ennen muodon valintaa ja tutki sitten tiedosto, jonka todella sait.
Kaksi napsautusta, kaksi hyvin erilaista artefaktia.
Lue vientivalintaikkuna, ei tiedoston päätettä
DER- tai PEM-varmennevienti sisältää julkisen avaimen ja allekirjoitetut identiteettiväitteet, eli sen, mitä palvelin tarvitsee luottaakseen sinuun ja mitä asiakas tarvitsee palvelimen todentamiseen. PKCS#12-paketti on säilö, joka voi sisältää varmenteen, sen ketjun ja vastaavan yksityisen avaimen salasanalla suojattuna, vaikka se voidaan luoda myös ilman avainta.
PEM on vain tekstikoodaus, ei lupaus sisällöstä. Sama pääte voi kuvata yhtä varmennetta tai tiedostoa, jossa on useita nimettyjä lohkoja, ja vientiasetukset päättävät kumman.
Hyödyllinen kysymys ei siis koskaan ole, minkä laajennuksen sait, vaan mitä lohkoja tiedosto sisältää. Ilman avainta viety paketti on yhä paketti. Tarkista sisältö, älä muodon suosio.
Tutki, mitä todella sait
Etsi tunnisteet ennen kuin tuot mitään, ja lue sitten varmenteen kentät varmistaaksesi, mikä identiteetti sinulla on hallussasi. Tee tarkistukset tiedostolle, joka todella tuodaan. Toista ne jokaisen uuden viennin jälkeen, koska asetukset voivat poiketa.
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
Vienti, jossa on vain varmennelohko, on julkinen objekti eikä voi todentaa. Avainlohko ilman varmennetta jättää sinut ilman ketjua, jota palvelin odottaa. PKCS#12-tietotuloste kertoo myös, onko avain mukana, mikä ratkaisee kysymyksen kyseisen muodon osalta. Se ilmoittaa myös algoritmin ja avaimen koon, ja epäonnistuu täysin, kun avainta ei ole.
Älä koskaan liitä yksityisen avaimen sisältävää tiedostoa tukiketjuun, virheseurantaan tai chattiin, vaikka se näyttäisi varmenteelta, jota jo jaoit. Avainpaneelin kuvakaappaukset ansaitsevat saman varovaisuuden.
Avain voi sijaita paikassa, josta et voi kopioida sitä
Hallituilla laitteilla yksityinen avain voi olla käyttöjärjestelmän avainnipussa, laitteistotunnisteessa tai suojatussa eristystilassa, ja käytäntö merkitsee sen ei-vietäväksi. Varmenteiden hallinta näyttää silloin julkisen objektin, kun salaisuus pysyy paikallaan, eikä mikään vientikomento tuota siirrettävää kopiota. Mobiililaitteiden hallinnan kautta tehtävä rekisteröinti toimii usein juuri näin.
Se on hallintakeino, ei este, joka pitäisi kiertää. Yksityistä avainta ei voi rakentaa uudelleen julkisesta varmenteesta, ja jokainen työkalu, joka väittää niin, tekee jotain muuta.
Rekisteröi uusi identiteetti sen sijaan, että kopioit
Tuetuin tapa on yleensä rekisteröidä uudelle laitteelle erillinen identiteetti ja peruuttaa vanha, kun se poistuu käytöstä, jotta jokainen laite voidaan vetää pois itsenäisesti. Kun vienti avaimen kanssa on todella hyväksytty, kohtele syntynyttä tiedostoa ja sen salasanaa tunnuksina: salattuna levossa, siirrettynä luotetun kanavan kautta ja poistettuna, kun rekisteröinti on valmis.
Varmista todentamalla tuodulla identiteetillä, et seuraamalla tuonnin onnistumista. Asiakas, joka hyväksyy julkisen varmenteen varastoonsa, ei ole todistanut avaimesta mitään.
Lopuksi varmista, että palvelin hyväksyy uuden identiteetin ja että vanha käyttäytyy edelleen käytännön tarkoittamalla tavalla. Näin kierros päättyy todisteisiin, ei tiedostoon, joka näyttää oikealta.