Saan nakatira sa isang VPN key file ang n, e, d, p at q ng RSA
Ang n, e, d, p at q ay nasa loob ng isang estruktura, hindi sa mga pangalan ng file. Basahin ang isang RSA VPN key gamit ang OpenSSL at ipares ito sa certificate nito nang hindi nagpi-print ng mga sekreto.
Ang mga titik sa isang paliwanag ng RSA ay nagpangalan ng mga field sa loob ng isang bagay, hindi ng mga file na ipinamimigay ng isang kasangkapan sa PKI. Ang file ng pribadong key ay may estrukturang pampubliko ang mga unang field at ang mga huling field ay hindi dapat umalis sa makina na nagtatapos ng tunnel. Sa pagitan ng dalawang katotohanang ito nakalagay ang karamihan ng praktikal na tanong kung aling file ang sumasagot sa aling tanong. Binabasa ng gabay na ito ang estruktura muna, at pagkatapos ang mga utos na sumusuri nito nang hindi ito natatapon.
Tiyakin na RSA ang key bago maghanap ng mga prime number
Pinapatunayan ng certificate na may isang key at nalagdaan ito; hindi nito pinapatunayan na RSA ang key. Maaaring itayo ang mga sistema sa elliptic curves o Ed25519, at ang parehong ayos ng direktoryo ay naglilingkod sa lahat. Suriin ang algorithm bago magsimulang maghanap ng mga prime factor na hindi kailanman naroon.
Ang tatlong read-only na utos na ito ay sumasagot sa tanong at nagtatala ng bersyon ng kasangkapan.
openssl version
openssl x509 -in vpn-client.crt -noout -text
openssl pkey -in vpn-client.key -noout -text
Mahalaga ang bersyon dahil lumipat ang mga pangalan ng opsyon sa pagitan ng mga pangunahing release. Sa output ng certificate, hanapin ang linya ng public key algorithm at ang sukat ng key; sa output ng key, ang isang RSA key ay nagpi-print ng modulus at public exponent. Ang key sa elliptic curve ay nagpi-print sa halip ng pinangalanang curve, at walang paghahanap na makakakuha ng n o q mula rito.
Basahin ang estruktura sa halip na base64
Ang PEM ay base64 na binalot sa mga header line, at ang pag-decode nito ay nagbibigay ng DER, na isang serialized na estruktura at hindi isang napakalaking integer. Ang mga pribadong key ng RSA ay naglalakbay sa dalawang karaniwang container, PKCS#1 at PKCS#8, at pareho silang natutunaw sa parehong hanay ng mga numero.
Sa kaso ng dalawang prime number, ang pribadong estruktura ay may siyam na field: bersyon, modulus n, public exponent e, private exponent d, mga prime p at q, dalawang CRT exponent at isang CRT coefficient. Ang RFC 8017 seksyon A.1 ay tumutukoy sa mga sangkap na iyon at sa layout ng ASN.1, at pinapayagan din nito ang higit sa dalawang prime number, kaya ang isang pangkalahatang parser ay maaaring mag-print ng karagdagang prime entry. Pansinin ang pagkakasunod-sunod, dahil ipinapaliwanag nito ang karaniwang pagkakamali: ang pampublikong kalahati ay nakaimbak sa loob ng pribadong file, kaya ang pagkakaroon ng pampublikong field ay hindi ginagawang ligtas ibahagi ang file na iyon. Ang lahat pagkatapos nito ay ang materyal na dapat manatili sa host.
Ang encoding ay nagdaragdag ng sapin na madaling mapagkamalang nilalaman. Ang openssl asn1parse ay gumuhit ng estruktura bilang puno upang makita ang ayos ng mga field, at hindi ito nagde-decode ng anuman at hindi rin sinasabi kung magagamit ang key.
Ipares ang certificate sa key nang hindi nagpi-print ng key
Ang susunod na tanong ay karaniwang kung magkapares ang certificate at ang key. Sinasagot iyon ng paghahambing ng modulus, ngunit kinokopya rin nito ang materyal na malapit sa pribado sa isang terminal transcript na maaaring mapunta sa isang ticket. Sinasagot ng paghahambing ng pampublikong kalahati ang parehong tanong nang walang anumang sensitibo sa screen.
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
Ang magkaparehong file ay nangangahulugan na dala ng certificate ang pampublikong kalahati ng key na iyon, at ang pagkakaiba ay nangangahulugan na hawak mo ang maling pares. Ang pagkakaibang iyon ang pinakakaraniwang dahilan ng tunnel na masayang nakipagnegosasyon at pagkatapos ay tumatanggi sa authentication. Pagkatapos ay alisin ang dalawang pansamantalang file; wala silang anumang sekreto, ngunit ang malinis na working directory ay mas madaling isipin sa gitna ng isang insidente.
Alamin kung ano ang hindi ang mga kalapit na file
Ang certificate ay hindi isang naka-encrypt na public key na binubuksan ng kabila gamit ang CA certificate; ito ay isang lagda na ugnayan sa pagitan ng public key at data ng pagkakakilanlan. Ang pribadong signing key ng CA ay nananatiling hiwalay sa sarili nitong certificate at sa bawat client key. Ang isang request ay hindi rin certificate: dala nito ang hinihinging impormasyon at ang public key na may lagda sa request, kaya ito ay input ng enrollment at hindi patunay ng karapatan.
| 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 |
Dalawa sa mga entry na iyon ay napagkakamalang RSA parameter nang madalas kaya kailangang pangalanan nang dalawang beses. Ang Diffie-Hellman parameter file ay may mga group parameter para sa pagtatatag ng key at walang RSA prime, kahit na ito ay napi-print din bilang malaking prime. Ang revocation list ay naglalathala ng status ng certificate at hindi isang lugar kung saan maaaring magtago ang private exponent.
Kaya dapat itala ng bawat linya ng imbentaryo ang apat na bagay: uri ng bagay, may-ari, layunin at kung kasama ang pribadong materyal. Ang huling column ang nagpapasya kung saan maaaring kopyahin ang file, at iyon ang nilalaktawan ng mga tao.
Itala ang pagpapares, pagkatapos i-verify ang handshake
Bago baguhin ang anuman, i-save ang output ng verification kasama ang petsa at bersyon ng OpenSSL. Pagkatapos ay maihahambing ang susunod na rotation sa ebidensya kaysa sa alaala.
openssl verify -CAfile ca.crt vpn-client.crt
openssl x509 -in vpn-client.crt -noout -subject -issuer -dates
Pagkatapos ng paghahambing ng public key, daanan ang rutang gumagamit ng pares: itaas ang tunnel, tiyakin na ang certificate ay ipinakita at tinanggap, at tingnan kung aling pagkakakilanlan ang naitala ng gateway. Kung tugma ang key at certificate at nabigo pa rin ang authentication, ang depekto ay nasa tiwala, pagmamapa ng pagkakakilanlan o patakaran sa pag-access, hindi sa pares.
Para sa rollback, itago ang dating key at certificate sa isang direktoryong may petsa at ibalik ang dalawa nang sabay, hindi kailanman isa lamang. Ang key na walang certificate at ang certificate na walang key ay parehong nabigo mula sa labas, na ginagawang mahal ang pagkalas ng kalahating naibalik na pares sa ikalawang oras ng madaling-araw.