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.

FileAnswersDoes not prove
vpn-client.keyPossession of the private keyThat the identity is enrolled
vpn-client.crtA signed binding of public key to identityThat the client holds the matching key
vpn-client.csrThe requested binding and public keyThat access was granted
dh2048.pemGroup parameters for key exchangeAny RSA component
crl.pemRevocation status for certificatesAnything 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.

Relatearre artikelen