Mahali ambapo n, e, d, p na q za RSA zinaishi katika faili ya ufunguo wa VPN
n, e, d, p na q ziko ndani ya muundo mmoja, si katika majina ya faili. Soma ufunguo wa RSA wa VPN kwa OpenSSL na uuunganishe na cheti chake bila kuchapisha siri.
Herufi katika maelezo ya RSA zinataja sehemu zilizo ndani ya kitu kimoja, si faili ambazo zana ya PKI inatoa. Faili ya ufunguo wa faragha ina muundo ambao sehemu zake za kwanza ni za umma na sehemu zake za baadaye hazipaswi kamwe kuondoka kwenye mashine inayomaliza handaki. Kati ya ukweli huu miwili kuna sehemu kubwa ya maswali ya kiutendaji kuhusu faili gani inajibu swali gani. Mwongozo huu unasoma muundo kwanza, kisha amri zinazouchunguza bila kuumwaga.
Hakikisha ufunguo ni RSA kabla ya kutafuta namba tasa
Cheti kinathibitisha kwamba ufunguo fulani upo na ulitiwa sahihi; hakithibitishi kwamba ufunguo ni RSA. Mifumo inaweza kujengwa juu ya mikunjo duara au Ed25519, na mpangilio huo huo wa folda unawahudumia wote. Kagua algoriti kabla ya kuanza kutafuta vipengele tasa ambavyo havikuwahi kuwepo.
Amri hizi tatu za kusoma tu zinajibu swali na kurekodi toleo la zana.
openssl version
openssl x509 -in vpn-client.crt -noout -text
openssl pkey -in vpn-client.key -noout -text
Toleo ni muhimu kwa sababu majina ya chaguo yamehama kati ya matoleo makuu. Katika matokeo ya cheti tafuta mstari wa algoriti ya ufunguo wa umma na ukubwa wa ufunguo; katika matokeo ya ufunguo ufunguo wa RSA huchapisha moduli na kipeo cha umma. Ufunguo wa mkunjo duara huchapisha badala yake mkunjo wenye jina, na hakuna utafutaji utakaozalisha n au q kutoka kwake.
Soma muundo badala ya base64
PEM ni base64 iliyofunikwa katika mistari ya kichwa, na kuifasiri hutoa DER, yaani muundo uliopangwa kwa mfuatano na si namba moja kubwa. Funguo za faragha za RSA husafiri katika vyombo viwili vya kawaida, PKCS#1 na PKCS#8, na vyote viwili hutatuliwa kwenye seti moja ya namba.
Kwa namba tasa mbili muundo wa faragha hubeba sehemu tisa: toleo, moduli n, kipeo cha umma e, kipeo cha faragha d, namba tasa p na q, vipeo viwili vya CRT na mgawo mmoja wa CRT. RFC 8017 sehemu A.1 inafafanua vipengele hivyo na mpangilio wa ASN.1, na inaruhusu zaidi ya namba tasa mbili, ndiyo sababu kichanganuzi cha jumla kinaweza kuchapisha maingizo ya ziada ya namba tasa. Angalia mpangilio, kwa sababu unafafanua kosa la kawaida: nusu ya umma huhifadhiwa ndani ya faili ya faragha, hivyo uwepo wa sehemu ya umma haufanyi faili hiyo kuwa salama kushirikiwa. Kila kitu kinachofuata ni nyenzo ambayo lazima ibaki kwenye mwenyeji.
Usimbaji huongeza tabaka ambalo ni rahisi kuchanganya na maudhui. openssl asn1parse huchora muundo kama mti ili mpangilio wa sehemu uonekane, na haifichi chochote wala haisemi kama ufunguo unaweza kutumika.
Unganisha cheti na ufunguo bila kuchapisha ufunguo
Swali linalofuata kwa kawaida ni kama cheti na ufunguo vinahusiana. Kulinganisha moduli hujibu hilo, lakini pia hunakili nyenzo zilizo karibu na za faragha kwenye nakala ya terminal ambayo inaweza kuishia kwenye tiketi. Kulinganisha nusu za umma hujibu swali lilelile bila kitu chochote nyeti kwenye skrini.
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
Faili zinazofanana zinamaanisha cheti hubeba nusu ya umma ya ufunguo huo, na tofauti inamaanisha umeshika jozi isiyo sahihi. Ukosefu huo wa uwiano ndio sababu ya kawaida ya handaki linalojadiliana kwa furaha kisha kukataa uthibitishaji. Kisha ondoa faili mbili za muda; hazina kitu cha siri, lakini folda safi ya kazi ni rahisi kufikiria katikati ya tukio.
Jua faili jirani hazikoje
Cheti si ufunguo wa umma uliosimbwa ambao upande wa pili hufungua kwa cheti cha CA; ni kiungo kilichotiwa sahihi kati ya ufunguo wa umma na data ya utambulisho. Ufunguo wa siri wa kutia sahihi wa CA unabaki tofauti na cheti chake na kila ufunguo wa mteja. Ombi pia si cheti: hubeba taarifa iliyoombwa na ufunguo wa umma pamoja na sahihi juu ya ombi, jambo linalolifanya liwe ingizo la usajili na si uthibitisho wa haki.
| 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 |
Mawili ya maingizo hayo huchanganywa na vigezo vya RSA mara nyingi vya kutosha kupewa jina mara mbili. Faili ya vigezo vya Diffie-Hellman hubeba vigezo vya kundi kwa ajili ya kuanzisha ufunguo na hakuna namba tasa ya RSA, ingawa pia huchapishwa kama namba tasa kubwa. Orodha ya kufuta hu tangaza hali ya vyeti na si mahali ambapo kipeo cha faragha kingejificha.
Kwa hiyo kila mstari wa orodha unapaswa kurekodi mambo manne: aina ya kitu, mmiliki, madhumuni na kama nyenzo za faragha zimejumuishwa. Safu ya mwisho huamua faili inaweza kunakiliwa wapi, na ndiyo ambayo watu huiruka.
Rekodi uunganishaji, kisha thibitisha kupeana mikono
Kabla ya kubadilisha chochote, hifadhi matokeo ya uthibitishaji pamoja na tarehe na toleo la OpenSSL. Kisha mzunguko wa baadaye unaweza kulinganishwa na ushahidi badala ya kumbukumbu.
openssl verify -CAfile ca.crt vpn-client.crt
openssl x509 -in vpn-client.crt -noout -subject -issuer -dates
Baada ya kulinganisha ufunguo wa umma, pita njia inayotumia jozi: inua handaki, hakikisha cheti kinawasilishwa na kinakubaliwa, na angalia ni utambulisho gani lango lililorekodi. Ikiwa ufunguo na cheti vinalingana na uthibitishaji bado unashindikana, hitilafu iko katika uaminifu, upangaji wa utambulisho au sera ya ufikiaji, si kwenye jozi.
Kwa kurudi nyuma, weka ufunguo na cheti vya awali katika folda yenye tarehe na urejeshe vyote viwili pamoja, kamwe si kimoja tu. Ufunguo bila cheti chake na cheti bila ufunguo wake hushindikana sawa kutoka nje, jambo linalofanya jozi zilizorejeshwa nusu kuwa ghali kufungua saa mbili usiku.