La literoj en klarigo de RSA nomas kampojn ene de unu objekto, ne dosierojn kiujn PKI-ilo disdonas. Privata ŝlosildosiero tenas strukturon kies unuaj kampoj estas publikaj kaj kies postaj kampoj neniam rajtas forlasi la maŝinon, kiu finas la tunelon. Inter tiuj du faktoj kuŝas plej multaj praktikaj demandoj pri tio, kiu dosiero respondas al kiu demando. Ĉi tiu manlibro unue legas la strukturon, poste la komandojn, kiuj esploras ĝin sen verŝi ĝin.

Konfirmu, ke la ŝlosilo estas RSA, antaŭ ol serĉi primojn

Atestilo pruvas, ke iu ŝlosilo ekzistas kaj estis subskribita; ĝi ne pruvas, ke la ŝlosilo estas RSA. Sistemoj povas esti konstruitaj sur elipsaj kurboj aŭ Ed25519, kaj la sama dosieruja aranĝo servas al ĉiuj. Kontrolu la algoritmon antaŭ ol ekserĉi primajn faktorojn, kiuj neniam estis tie.

Ĉi tiuj tri nurlegaj komandoj respondas la demandon kaj registras la ilan version.

openssl version
openssl x509 -in vpn-client.crt -noout -text
openssl pkey -in vpn-client.key -noout -text

La versio gravas, ĉar opcionomoj moviĝis inter ĉefaj eldonoj. En la atestila eligo trovu la linion de la publika ŝlosila algoritmo kaj la ŝlosilan grandecon; en la ŝlosila eligo RSA-ŝlosilo presas modulon kaj publikan eksponenton. Ŝlosilo de elipsa kurbo presas anstataŭe nomitan kurbon, kaj nenia serĉado produktos n aŭ q el ĝi.

Legu la strukturon anstataŭ la base64

PEM estas base64 volvita en kapajn liniojn, kaj ĝia malkodado donas DER, do serian strukturon anstataŭ unu enorman entjeron. RSA-privataj ŝlosiloj vojaĝas en du ordinaraj ujoj, PKCS#1 kaj PKCS#8, kaj ambaŭ solviĝas al la sama aro de nombroj.

En la kazo de du primoj la privata strukturo portas naŭ kampojn: version, la modulon n, la publikan eksponenton e, la privatan eksponenton d, la primojn p kaj q, du CRT-eksponentojn kaj CRT-koeficienton. RFC 8017 sekcio A.1 difinas tiujn komponentojn kaj la aranĝon ASN.1, kaj ĝi ankaŭ permesas pli ol du primojn, tial ĝenerala analizilo povas presi pliajn primajn erojn. Rimarku la ordon, ĉar ĝi klarigas oftajn eraron: la publika duono estas konservita ene de la privata dosiero, do la ĉeesto de publika kampo ne faras tiun dosieron sekura por kunhavigi. Ĉio post ĝi estas la materialo, kiu devas resti sur la gastiganto.

Kodigo aldonas tavolon, kiun facile konfuzi kun enhavo. openssl asn1parse desegnas la strukturon kiel arbon tiel ke la kampa ordo fariĝas videbla, kaj ĝi nek malĉifras ion nek diras, ĉu la ŝlosilo estas uzebla.

Parigu atestilon al ŝlosilo sen presi la ŝlosilon

La sekva demando kutime estas, ĉu atestilo kaj ŝlosilo apartenas kune. Komparo de moduloj respondas tion, sed ĝi ankaŭ kopias materialon proksiman al la privata en terminalan transskribon, kiu povas finiĝi en bileto. Komparo de la publikaj duonoj respondas la saman demandon kun nenio sentema sur la ekrano.

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

Identaj dosieroj signifas, ke la atestilo portas la publikan duonon de tiu ŝlosilo, kaj diferenco signifas, ke vi tenas la malĝustan paron. Tiu malkongruo estas la plej ofta kaŭzo de tunelo, kiu ĝoje intertraktas kaj poste rifuzas aŭtentikigon. Poste forigu la du portempajn dosierojn; ili tenas nenion sekretan, sed pura labordosierujo pli facile pripensas meze de incidento.

Sciu, kio la najbaraj dosieroj ne estas

Atestilo ne estas ĉifrita publika ŝlosilo, kiun la parulo malŝlosas per la CA-atestilo; ĝi estas subskribita ligo inter publika ŝlosilo kaj identecaj datumoj. La privata subskriba ŝlosilo de la CA restas aparta de sia propra atestilo kaj de ĉiu klienta ŝlosilo. Ankaŭ peto ne estas atestilo: ĝi portas la petatajn informojn kaj la publikan ŝlosilon kun subskribo super la peto, kio faras ĝin enskribiĝa enigo anstataŭ pruvo de rajto.

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

Du el tiuj eroj konfuziĝas kun RSA-parametroj sufiĉe ofte por nomi ilin dufoje. Diffie-Hellman-parametra dosiero enhavas grupajn parametrojn por ŝlosila starigo kaj neniujn RSA-primojn, kvankam ĝi ankaŭ presiĝas kiel granda primo. Revoka listo publikigas atestilan staton kaj ne estas loko, kie privata eksponento povus kaŝiĝi.

Tial ĉiu inventara linio devus registri kvar aĵojn: objekta tipo, posedanto, celo kaj ĉu privata materialo estas inkluzivita. La lasta kolumno decidas, kien la dosiero rajtas esti kopiita, kaj ĝi estas la kolumno, kiun homoj preterlasas.

Registru la parigon, poste kontrolu la manpremon

Antaŭ ol ŝanĝi ion ajn, konservu la kontrolan eligon kun la dato kaj la OpenSSL-versio. Pli malfrua rotacio tiam povas esti komparita kun pruvoj anstataŭ kun memoro.

openssl verify -CAfile ca.crt vpn-client.crt
openssl x509 -in vpn-client.crt -noout -subject -issuer -dates

Post la komparo de la publika ŝlosilo, ekzercu la vojon, kiu konsumas la paron: levu la tunelon, konfirmu, ke la atestilo estas prezentata kaj akceptata, kaj kontrolu, kiun identecon la enirejo registris. Se la ŝlosilo kaj la atestilo kongruas kaj aŭtentikigo tamen malsukcesas, la kulpo kuŝas en fido, identeca mapado aŭ alira politiko, ne en la parigo.

Por restarigo, konservu la antaŭan ŝlosilon kaj atestilon en datita dosierujo kaj restarigu ambaŭ kune, neniam unu el la du. Ŝlosilo sen sia atestilo kaj atestilo sen sia ŝlosilo malsukcesas egale de ekstere, kio faras duone restarigitajn parojn multekostaj por malimpliki je la dua matene.

Rilataj artikoloj