Waar RSA se n, e, d, p en q in 'n VPN-sleutellêer sit
n, e, d, p en q sit binne een struktuur, nie in lêername nie. Lees 'n RSA VPN-sleutel met OpenSSL en pas dit by sy sertifikaat sonder om geheime te druk.
Die letters in 'n RSA-verduideliking benoem velde binne een objek, nie lêers wat 'n PKI-instrument uitdeel nie. 'n Privaatsleutellêer hou 'n struktuur waarvan die eerste velde openbaar is en die latere velde nooit die masjien mag verlaat wat die tonnel beëindig nie. Tussen dié twee feite lê die meeste van die praktiese vrae oor watter lêer watter vraag beantwoord. Hierdie draaiboek lees eers die struktuur en dan die opdragte wat dit ondersoek sonder om dit te mors.
Bevestig dat die sleutel RSA is voordat jy na priemgetalle soek
'n Sertifikaat bewys dat een of ander sleutel bestaan en onderteken is; dit bewys nie dat die sleutel RSA is nie. Stelsels kan op elliptiese krommes of Ed25519 gebou word, en dieselfde gidsenuitleg dien almal. Kontroleer die algoritme voordat jy begin soek na priemfaktore wat nooit daar was nie.
Hierdie drie lees-alleen-opdragte beantwoord die vraag en teken die instrumentweergawe aan.
openssl version
openssl x509 -in vpn-client.crt -noout -text
openssl pkey -in vpn-client.key -noout -text
Die weergawe maak saak omdat opsiename tussen hoofweergawes verskuif het. In die sertifikaat-uitset, vind die reël vir die publieke sleutelalgoritme en die sleutelgrootte; in die sleutel-uitset druk 'n RSA-sleutel 'n modulus en 'n publieke eksponent. 'n Elliptiese-kromme-sleutel druk eerder 'n genoemde kromme, en geen hoeveelheid soek sal n of q daaruit lewer nie.
Lees die struktuur eerder as die base64
PEM is base64 toegedraai in kopreëls, en die dekodering daarvan lewer DER, wat 'n geserialiseerde struktuur is eerder as een enorme heelgetal. RSA-privaatsleutels reis in twee algemene houers, PKCS#1 en PKCS#8, en albei los op dieselfde stel getalle.
In die twee-priem-geval dra die private struktuur nege velde: 'n weergawe, die modulus n, die publieke eksponent e, die private eksponent d, die priemgetalle p en q, twee CRT-eksponente en 'n CRT-koëffisiënt. RFC 8017 afdeling A.1 definieer dié komponente en die ASN.1-uitleg, en dit laat ook meer as twee priemgetalle toe, wat verduidelik waarom 'n algemene ontleder ekstra prieminskrywings kan druk. Let op die volgorde, want dit verduidelik 'n algemene fout: die publieke helfte word binne die private lêer gestoor, so die teenwoordigheid van 'n publieke veld maak daardie lêer nie veilig om te deel nie. Alles daarna is die materiaal wat op die gasheer moet bly.
Enkodering voeg 'n laag by wat maklik met inhoud verwar kan word. openssl asn1parse teken die struktuur as 'n boom sodat die veldorde sigbaar word, en dit ontsyfer niks nie en sê ook nie of die sleutel bruikbaar is nie.
Pas 'n sertifikaat by 'n sleutel sonder om die sleutel te druk
Die vraag wat volg, is gewoonlik of 'n sertifikaat en 'n sleutel by mekaar hoort. Die vergelyking van moduli beantwoord dit, maar dit kopieer ook private-aanverwante materiaal na 'n terminale transkripsie wat dalk in 'n kaartjie beland. Die vergelyking van publieke helftes beantwoord dieselfde vraag met niks sensitiefs op die skerm nie.
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
Identiese lêers beteken die sertifikaat dra die publieke helfte van daardie sleutel, en 'n verskil beteken jy het die verkeerde paar. Daardie wanaanpassing is die algemeenste oorsaak van 'n tonnel wat gelukkig onderhandel en dan weier om te verifieer. Verwyder ná die tyd die twee tydelike lêers; hulle hou niks geheim nie, maar 'n skoon werkmap is makliker om te beredeneer halfpad deur 'n voorval.
Weet wat die naburige lêers nie is nie
'n Sertifikaat is nie 'n geënkripteerde publieke sleutel wat die eweknie met die CA-sertifikaat ontsluit nie; dit is 'n ondertekende binding tussen 'n publieke sleutel en identiteitsdata. Die CA se private ondertekeningsleutel bly apart van sy eie sertifikaat en van elke kliëntsleutel. 'n Versoek is ook nie 'n sertifikaat nie: dit dra die versoekte inligting en die publieke sleutel met 'n handtekening oor die versoek, wat dit inskrywingsinsette maak eerder as bewys van aanspraak.
| 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 |
Twee van daardie inskrywings word dikwels genoeg met RSA-parameters verwar om hulle twee keer te noem. 'n Diffie-Hellman-parameterlêer bevat groepsparameters vir sleutelvestiging en geen RSA-priemgetalle nie, selfs al druk dit ook as 'n groot priemgetal. 'n Herroepingslys publiseer sertifikaatstatus en is nie 'n plek waar 'n private eksponent kan skuil nie.
Elke inventarisreël moet dus vier dinge aanteken: objektipe, eienaar, doel en of private materiaal ingesluit is. Die laaste kolom besluit waar die lêer gekopieer mag word, en dit is die een wat mense oorslaan.
Teken die paring aan en verifieer dan die handdruk
Voordat jy enigiets verander, stoor die verifikasie-uitset met die datum en die OpenSSL-weergawe. 'n Latere rotasie kan dan met bewyse eerder as met geheue vergelyk word.
openssl verify -CAfile ca.crt vpn-client.crt
openssl x509 -in vpn-client.crt -noout -subject -issuer -dates
Ná die publieke-sleutel-vergelijking, oefen die pad wat die paar verbruik: bring die tonnel op, bevestig dat die sertifikaat aangebied en aanvaar word, en kontroleer watter identiteit die poort aangeteken het. As die sleutel en sertifikaat ooreenstem en verifikasie steeds misluk, lê die fout in vertroue, identiteitskartering of toegangsbeleid eerder as in die paring.
Vir terugrol, hou die vorige sleutel en sertifikaat in 'n gedateerde gids en herstel albei saam, nooit een van die twee nie. 'n Sleutel sonder sy sertifikaat en 'n sertifikaat sonder sy sleutel misluk van buite identies, wat half-herstelde pare duur maak om om twee in die oggend te ontwar.