Wêr’t n, e, d, p en q fan RSA yn in VPN-kaaibestân steane
n, e, d, p en q steane yn ien struktuer, net yn bestânsnammen. Lês in RSA VPN-kaai mei OpenSSL en pearje him mei syn sertifikaat sûnder geheimen te printsjen.
De letters yn in RSA-útlis neame fjilden binnen ien objekt, net bestannen dy’t in PKI-ark útjout. In bestân mei in priveekaai hâldt in struktuer waans earste fjilden iepenbier binne en waans lettere fjilden nea de masine ferlitte meie dy’t de tunnel einiget. Tusken dy twa feiten lizze de measte praktyske fragen oer hokker bestân op hokker fraach antwurdet. Dizze hânlieding lêst earst de struktuer en dêrnei de opdrachten dy’t him ûndersykje sûnder him te morsen.
Befêstigje dat de kaai RSA is foar’t jo nei priemgetallen sykje
In sertifikaat bewissiget dat in kaai bestiet en ûndertekene is; it bewissiget net dat de kaai RSA is. Systemen kinne boud wurde op elliptyske bochten of Ed25519, en deselde mapyndieling tsjinnet har allegear. Kontrollearje it algoritme foar’t jo begjinne te sykjen nei priemfaktoaren dy’t der nea wiene.
Dizze trije allinnich-lêzen opdrachten beantwurdzje de fraach en lizze de ferzje fan it ark fêst.
openssl version
openssl x509 -in vpn-client.crt -noout -text
openssl pkey -in vpn-client.key -noout -text
De ferzje makket út, want opsjenammen binne tusken haadferzjes ferhuze. Fyn yn de sertifikaatútfier de rigel fan it algoritme foar de iepenbiere kaai en de kaaigrutte; yn de kaaiútfier printet in RSA-kaai in modulus en in iepenbiere eksponint. In kaai fan in elliptyske bocht printet ynstee in neamde bocht, en gjin sykjen sil dêr n of q út helje.
Lês de struktuer ynstee fan de base64
PEM is base64 wikkel yn koprigels, en it dekodearjen jout DER, dat is in serialisearre struktuer en net ien enoarm hiel getal. RSA-priveekaaien reizgje yn twa gewoane konteners, PKCS#1 en PKCS#8, en beide lossen op ta deselde set getallen.
Yn it gefal fan twa priemgetallen draacht de private struktuer njoggen fjilden: in ferzje, de modulus n, de iepenbiere eksponint e, de private eksponint d, de priemgetallen p en q, twa CRT-eksponinten en in CRT-koëffisjint. RFC 8017 paragraaf A.1 definiearret dy ûnderdielen en de ASN.1-yndieling, en it lit ek mear as twa priemgetallen ta, dêrom kin in algemien parser ekstra priemyngongen printsje. Let op de folchoarder, want dy ferklearret in faak foarkommende flater: de iepenbiere helte wurdt yn it private bestân bewarre, dus de oanwêzigens fan in iepenbier fjild makket dat bestân net feilich om te dielen. Alles dêrnei is it materiaal dat op de host bliuwe moat.
Kodearring foeget in laach ta dy’t maklik mei ynhâld ferwiksele wurdt. openssl asn1parse tekenet de struktuer as in beam sadat de folchoarder fan de fjilden sichtber wurdt, en it ûntsiferet neat en seit ek net oft de kaai brûkber is.
Pearje in sertifikaat mei in kaai sûnder de kaai te printsjen
De fraach dy’t folget is meastal oft in sertifikaat en in kaai byinoar hearre. It fergelykjen fan moduli beantwurdet dat, mar it kopiearret ek materiaal tichtby it private yn in terminaltranskripsje dy’t yn in ticket bedarje kin. It fergelykjen fan de iepenbiere helten beantwurdet deselde fraach sûnder eat gefoelichs op it skerm.
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
Idintike bestannen betsjutte dat it sertifikaat de iepenbiere helte fan dy kaai draacht, en in ferskil betsjutte dat jo it ferkearde pear hawwe. Dy mismatching is de meast foarkommende oarsaak fan in tunnel dy’t fleurich ûnderhannelt en dan autentikaasje wegeret. Ferwiderje dêrnei de twa tydlike bestannen; se hâlde neat geheims, mar in skjinne wurkmap is makliker te berêdenen midden yn in foarfal.
Wit wat de neistlizzende bestannen net binne
In sertifikaat is gjin fersifere iepenbiere kaai dy’t de oare kant mei it CA-sertifikaat iepenet; it is in ûndertekene bining tusken in iepenbiere kaai en identiteitsgegevens. De private ûndertekeningskaai fan de CA bliuwt skieden fan syn eigen sertifikaat en fan elke klantkaai. In oanfraach is ek gjin sertifikaat: hy draacht de frege ynformaasje en de iepenbiere kaai mei in ûndertekening oer de oanfraach, wat him ta ynskriuwynfier makket ynstee fan bewiis fan rjocht.
| 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 |
Twa fan dy yngongen wurde faak genôch mei RSA-parameters ferwiksele om se twa kear te neamen. In Diffie-Hellman-parameterbestân befettet groepsparameters foar kaaistifting en gjin RSA-priemgetallen, ek al wurdt it ek as in grut priemgetal printe. In weromlûkingslist publisearret sertifikaatstatus en is gjin plak dêr’t in private eksponint him ferskûlje koe.
Dêrom soe elke ynventarisrigel fjouwer dingen fêstlizze moatte: objekttype, eigner, doel en oft priveemateriaal bysit. De lêste kolom beslút wêr’t it bestân kopyeare mei wurde, en dat is dejinge dy’t minsken oerslaan.
Skriuw de pearing op en kontrolearje dan de hânskodding
Foardat jo eat feroarje, bewarje de kontrôleútfier mei de datum en de OpenSSL-ferzje. In lettere rotaasje kin dan mei bewiis fergelike wurde ynstee fan mei ûnthâld.
openssl verify -CAfile ca.crt vpn-client.crt
openssl x509 -in vpn-client.crt -noout -subject -issuer -dates
Nei de fergeliking fan de iepenbiere kaai, besykje it paad dat it pear brûkt: help de tunnel omheech, befêstigje dat it sertifikaat oanbean en akseptearre wurdt, en kontrolearje hokker identiteit de gateway fêstlei. As de kaai en it sertifikaat oerienkomme en autentikaasje dochs mislearret, sit de fout yn fertrouwen, identiteitskartearring of tagongsbelied en net yn it pear.
Bewarje foar weromdraaien de foarige kaai en it sertifikaat yn in dattele map en set beide tegearre werom, nea ien fan de twa. In kaai sûnder syn sertifikaat en in sertifikaat sûnder syn kaai mislearje fan bûten itselde, wat heal werombrochte pearen djoer makket om om twa oere nachts los te meitsjen.