Missä RSA:n n, e, d, p ja q sijaitsevat VPN-avaintiedostossa
n, e, d, p ja q ovat yhden rakenteen sisällä, eivät tiedostonimissä. Lue RSA VPN -avain OpenSSL:llä ja parita se sertifikaattiinsa tulostamatta salaisuuksia.
RSA-selityksen kirjaimet nimeävät kenttiä yhden objektin sisällä, eivät tiedostoja, joita PKI-työkalu jakaa. Yksityisen avaimen tiedosto sisältää rakenteen, jonka ensimmäiset kentät ovat julkisia ja jonka myöhemmät kentät eivät saa koskaan lähteä koneelta, joka päättää tunnelin. Näiden kahden tosiseikan välissä ovat useimmat käytännön kysymykset siitä, mikä tiedosto vastaa mihinkin kysymykseen. Tämä käsikirja lukee ensin rakenteen ja sitten komennot, jotka tutkivat sitä sitä läikyttämättä.
Varmista, että avain on RSA, ennen kuin etsit alkulukuja
Sertifikaatti todistaa, että jokin avain on olemassa ja allekirjoitettu; se ei todista, että avain on RSA. Järjestelmiä voidaan rakentaa elliptisille käyrille tai Ed25519:lle, ja sama hakemistorakenne palvelee niitä kaikkia. Tarkista algoritmi ennen kuin alat etsiä alkutekijöitä, joita siellä ei koskaan ollut.
Nämä kolme vain luku -komentoa vastaavat kysymykseen ja tallentavat työkalun version.
openssl version
openssl x509 -in vpn-client.crt -noout -text
openssl pkey -in vpn-client.key -noout -text
Versio on tärkeä, koska valintojen nimet ovat siirtyneet pääjulkaisujen välillä. Etsi sertifikaatin tulosteesta julkisen avaimen algoritmirivi ja avaimen koko; avaimen tulosteessa RSA-avain tulostaa moduulin ja julkisen eksponentin. Elliptisen käyrän avain tulostaa sen sijaan nimetyn käyrän, eikä mikään haku tuota siitä n:ää tai q:ta.
Lue rakenne base64:n sijaan
PEM on otsikkoriveihin kääritty base64, ja sen purkaminen antaa DER:n, joka on sarjamuotoinen rakenne eikä yksi valtava kokonaisluku. RSA-yksityisavaimet kulkevat kahdessa yleisessä säiliössä, PKCS#1 ja PKCS#8, ja molemmat ratkeavat samaan lukujoukkoon.
Kahden alkuluvun tapauksessa yksityinen rakenne kantaa yhdeksän kenttää: version, moduulin n, julkisen eksponentin e, yksityisen eksponentin d, alkuluvut p ja q, kaksi CRT-eksponenttia ja CRT-kertoimen. RFC 8017 luku A.1 määrittelee nuo osat ja ASN.1-asettelun, ja se sallii myös useamman kuin kaksi alkulukua, minkä vuoksi yleinen jäsennin voi tulostaa ylimääräisiä alkulukumainintoja. Huomaa järjestys, sillä se selittää yleisen virheen: julkinen puolisko on tallennettu yksityisen tiedoston sisään, joten julkisen kentän läsnäolo ei tee tiedostosta jakokelpoista. Kaikki sen jälkeen on aineistoa, jonka on jäätävä isäntäkoneelle.
Koodaus lisää kerroksen, joka sekoitetaan helposti sisältöön. openssl asn1parse piirtää rakenteen puuna, jolloin kenttien järjestys tulee näkyviin, eikä se salaa mitään eikä kerro, onko avain käyttökelpoinen.
Parita sertifikaatti avaimeen tulostamatta avainta
Seuraava kysymys on yleensä, kuuluvatko sertifikaatti ja avain yhteen. Moduulien vertailu vastaa siihen, mutta kopioi myös yksityistä lähellä olevaa aineistoa terminaalitulosteeseen, joka voi päätyä tikettiin. Julkisten puoliskojen vertailu vastaa samaan kysymykseen ilman mitään arkaluontoista ruudulla.
openssl pkey -in vpn-client.key -pubout -out /tmp/key.pub
openssl x509 -in vpn-client.crt -pubkey -noout > /tmp/cert.pub
cmp /tmp/key.pub /tmp/cert.pub && echo MATCH
Identtiset tiedostot tarkoittavat, että sertifikaatti kantaa tuon avaimen julkista puoliskoa, ja ero tarkoittaa, että sinulla on väärä pari. Tämä epäsuhta on yleisin syy tunneliin, joka neuvottelee iloisesti ja kieltäytyy sitten todennuksesta. Poista sen jälkeen kaksi väliaikaista tiedostoa; niissä ei ole mitään salaista, mutta siisti työhakemisto on helpompi järkeillä kesken tapahtuman.
Tiedä, mitä naapuritiedostot eivät ole
Sertifikaatti ei ole salattu julkinen avain, jonka vastapuoli avaa CA-sertifikaatilla; se on allekirjoitettu sidos julkisen avaimen ja identiteettitietojen välillä. CA:n yksityinen allekirjoitusavain pysyy erillään sen omasta sertifikaatista ja jokaisesta asiakasavaimesta. Pyyntökään ei ole sertifikaatti: se kantaa pyydetyt tiedot ja julkisen avaimen sekä pyynnön yli tehdyn allekirjoituksen, mikä tekee siitä ilmoittautumisen syötteen eikä todistetta oikeudesta.
| File | Answers | Does not prove |
|---|---|---|
| vpn-client.key | Possession of the private key | That the identity is enrolled |
| vpn-client.crt | A signed binding of public key to identity | That the client holds the matching key |
| vpn-client.csr | The requested binding and public key | That access was granted |
| dh2048.pem | Group parameters for key exchange | Any RSA component |
| crl.pem | Revocation status for certificates | Anything about a private key |
Kaksi noista merkinnöistä sekoitetaan RSA-parametreihin tarpeeksi usein, että ne on nimettävä kahdesti. Diffie-Hellman-parametritiedosto sisältää ryhmäparametrit avaimen muodostamiseen eikä yhtään RSA:n alkulukua, vaikka se tulostuu myös suurena alkulukuna. Peruutuslista julkaisee sertifikaattien tilan eikä ole paikka, johon yksityinen eksponentti voisi piiloutua.
Jokaisen inventaaririvin tulisi siksi kirjata neljä asiaa: objektin tyyppi, omistaja, tarkoitus ja se, sisältyykö yksityistä aineistoa. Viimeinen sarake päättää, minne tiedosto saa kopioitua, ja juuri se jää ihmisiltä väliin.
Kirjaa paritus ja tarkista sitten kättely
Ennen kuin muutat mitään, tallenna tarkistuksen tuloste päivämäärän ja OpenSSL-version kanssa. Myöhempää kierrätystä voidaan silloin verrata todisteisiin eikä muistiin.
openssl verify -CAfile ca.crt vpn-client.crt
openssl x509 -in vpn-client.crt -noout -subject -issuer -dates
Julkisen avaimen vertailun jälkeen käy läpi polku, joka kuluttaa parin: nosta tunneli, varmista että sertifikaatti esitetään ja hyväksytään, ja tarkista, minkä identiteetin yhdyskäytävä kirjasi. Jos avain ja sertifikaatti täsmäävät ja todennus silti epäonnistuu, vika on luottamuksessa, identiteetin kartoituksessa tai käyttöoikeuskäytännössä eikä parissa.
Pidä palautusta varten edellinen avain ja sertifikaatti päivätyssä hakemistossa ja palauta molemmat yhdessä, ei koskaan vain toista. Avain ilman sertifikaattiaan ja sertifikaatti ilman avaintaan epäonnistuvat ulospäin samalla tavalla, mikä tekee puoliksi palautetuista pareista kalliita selvittää kahdelta yöllä.