Ibi tí n, e, d, p àti q RSA ń gbé nínú fáìlì kọ́kọ́rọ́ VPN
n, e, d, p àti q wà nínú ìṣètò kan, kì í ṣe nínú àwọn orúkọ fáìlì. Ka kọ́kọ́rọ́ RSA fún VPN pẹ̀lú OpenSSL kí o sì so ó pọ̀ mọ́ ìwé-ẹ̀rí rẹ̀ láìtẹ̀ àwọn àṣírí jáde.
Àwọn lẹ́tà nínú àlàyé RSA ń pe àwọn pápá tó wà nínú ohun kan, kì í ṣe àwọn fáìlì tí irinṣẹ́ PKI ń pín. Fáìlì kọ́kọ́rọ́ àdáni ní ìṣètò kan tí àwọn pápá àkọ́kọ́ rẹ̀ jẹ́ gbangba tí àwọn pápá tó tẹ̀le kò sì gbọdọ̀ fi ẹ̀rọ tí ó parí ọ̀nà-ìmọ̀ náà sílẹ̀ rárá. Láàárín àwọn òtítọ́ méjì yìí ni ọ̀pọ̀lọpọ̀ àwọn ìbéèrè ìṣe wà nípa fáìlì wo tí ń dá ìbéèrè wo lóhùn. Ìwé-ìtọ́sọ́nà yìí kọ́kọ́ ka ìṣètò náà, lẹ́yìn náà àwọn àṣẹ tí ń ṣàyẹ̀wò rẹ̀ láìdà á sílẹ̀.
Jẹ́rìí pé kọ́kọ́rọ́ náà jẹ́ RSA kí o tó wá àwọn nọ́mbà àkọ́kọ́
Ìwé-ẹ̀rí ń fi hàn pé kọ́kọ́rọ́ kan wà tí wọ́n sì ti fọwọ́ sí i; kò fi hàn pé kọ́kọ́rọ́ náà jẹ́ RSA. Wọ́n lè kọ́ àwọn ẹ̀rọ lórí àwọn ìlà ìtẹ̀gùn elliptical tàbí Ed25519, ìṣètò àwọn fódà kan náà sì ń sìn gbogbo wọn. Ṣàyẹ̀wò àlùmọ̀ọ́nà kí o tó bẹ̀rẹ̀ sí wá àwọn ohun ìdí àkọ́kọ́ tí kò tíì sí rí.
Àwọn àṣẹ mẹ́ta tí ń kà nìkan yìí dá ìbéèrè náà lóhùn wọ́n sì ṣàkọsílẹ̀ ẹ̀dà irinṣẹ́ náà.
openssl version
openssl x509 -in vpn-client.crt -noout -text
openssl pkey -in vpn-client.key -noout -text
Ẹ̀dà náà ṣe pàtàkì nítorí àwọn orúkọ àṣàyàn ti ṣí kiri láàárín àwọn àtẹ̀jáde àkọ́kọ́. Nínú àbájáde ìwé-ẹ̀rí, wá ìlà àlùmọ̀ọ́nà kọ́kọ́rọ́ gbangba àti ìwọ̀n kọ́kọ́rọ́ náà; nínú àbájáde kọ́kọ́rọ́, kọ́kọ́rọ́ RSA ń tẹ̀ mọ́dúlù àti ìgbéga gbangba jáde. Kọ́kọ́rọ́ orí ìlà ìtẹ̀gùn elliptical ń tẹ̀ orúkọ ìtẹ̀gùn jáde ní àárín, kò sì sí ìwádìí tí yóò mú n tàbí q jáde láti inú rẹ̀.
Ka ìṣètò náà dípò base64
PEM jẹ́ base64 tí wọ́n fi àwọn ìlà orí kọ́, ṣíṣe àtúpalẹ̀ rẹ̀ sì ń fúnni ní DER, ìyẹn ìṣètò tí wọ́n tẹ̀ lẹ́sẹẹsẹ kì í ṣe nọ́mbà odidi ńlá kan. Àwọn kọ́kọ́rọ́ àdáni RSA ń rìn nínú àwọn àpótí méjì tó wọ́pọ̀, PKCS#1 àti PKCS#8, àwọn méjèèjì sì ń yọjáde sí àkójọ nọ́mbà kan náà.
Ní ọ̀ràn àwọn nọ́mbà àkọ́kọ́ méjì, ìṣètò àdáni náà gbé pápá mẹ́sàn-án: ẹ̀dà, mọ́dúlù n, ìgbéga gbangba e, ìgbéga àdáni d, àwọn nọ́mbà àkọ́kọ́ p àti q, ìgbéga CRT méjì àti ìdásẹ́ CRT kan. RFC 8017 apá A.1 ń ṣàlàyé àwọn ẹ̀yà wọ̀nyẹn àti ìṣètò ASN.1, ó sì ń gba nọ́mbà àkọ́kọ́ tó ju méjì lọ pẹ̀lú, ìdí nìyẹn tí olùtúpalẹ̀ gbogbogbò fi lè tẹ̀ àwọn àkọsílẹ̀ àkọ́kọ́ àfikún jáde. Kíyèsí ìtẹ̀lẹ́sẹẹsẹ, nítorí ó ń ṣàlàyé àṣìṣe tó wọ́pọ̀: a ń tọ́jú ìdajì gbangba sínú fáìlì àdáni, nítorí náà wíwà pápá gbangba kò mú kí fáìlì yẹn ní ààbò láti pín. Ohun gbogbo tó tẹ̀le ni ohun èlò tí ó gbọdọ̀ wà lórí olùgbàlejò.
Ìkọ̀wé ń fi ìpele kan kún un tí ó rọrùn láti dà pọ̀ mọ́ àkóónú. openssl asn1parse ń ya ìṣètò náà gẹ́gẹ́ bí igi kí ìtẹ̀lẹ́sẹẹsẹ àwọn pápá lè hàn, kò sì ṣí ohunkóhun kò sì sọ bóyá kọ́kọ́rọ́ náà lè ṣiṣẹ́.
So ìwé-ẹ̀rí pọ̀ mọ́ kọ́kọ́rọ́ láìtẹ̀ kọ́kọ́rọ́ jáde
Ìbéèrè tó tẹ̀le sábà máa ń jẹ́ bóyá ìwé-ẹ̀rí àti kọ́kọ́rọ́ kan náà ni. Ìfiwéra mọ́dúlù ń dá èyí lóhùn, ṣùgbọ́n ó tún ń ṣe àdàkọ ohun èlò tó súnmọ́ ti àdáni sínú àkọsílẹ̀ tẹ́mínà tí ó lè parí nínú tíkẹ́ẹ̀tì. Ìfiwéra àwọn ìdajì gbangba ń dá ìbéèrè kan náà lóhùn láìfi ohunkóhun aláìlera sílẹ̀ lórí ojú-ìwé.
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
Àwọn fáìlì tó jọra túmọ̀ sí pé ìwé-ẹ̀rí náà gbé ìdajì gbangba ti kọ́kọ́rọ́ yẹn, ìyàtọ̀ sì túmọ̀ sí pé o di ẹni méjì tí kò tọ́ mú. Àìbáraẹnisọ̀ra yẹn gan-an ni ìdí tó wọ́pọ̀ jùlọ fún ọ̀nà-ìmọ̀ tí ń bára wọn sọ̀rọ̀ pẹ̀lú ìdùnnú tí ó sì kọ̀ ìjẹ́rìí. Lẹ́yìn náà pa àwọn fáìlì ìgbà díẹ̀ méjì rẹ́; kò sí ohun àṣírí kankan nínú wọn, ṣùgbọ́n fódà iṣẹ́ tó mọ́ rọrùn láti ronú lé lórí ní àárín ìṣẹ̀lẹ̀.
Mọ ohun tí àwọn fáìlì aládùúgbò kì í ṣe
Ìwé-ẹ̀rí kì í ṣe kọ́kọ́rọ́ gbangba tí wọ́n ti kọ̀wé tí ẹ̀gbẹ́ kejì ń ṣí pẹ̀lú ìwé-ẹ̀rí CA; ó jẹ́ ìsopọ̀ tí wọ́n fọwọ́ sí láàárín kọ́kọ́rọ́ gbangba àti dátà ìdánimọ̀. Kọ́kọ́rọ́ ìfọwọ́sí àdáni ti CA ń wà lọ́tọ̀ sí ìwé-ẹ̀rí rẹ̀ fúnra rẹ̀ àti sí gbogbo kọ́kọ́rọ́ oníbàárà. Ìbéèrè pẹ̀lú kì í ṣe ìwé-ẹ̀rí: ó ń gbé ìsọfúnni tí wọ́n béèrè àti kọ́kọ́rọ́ gbangba pẹ̀lú ìfọwọ́sí lórí ìbéèrè náà, èyí tí ń sọ ọ di ohun ìdáwọ́lé ìforúkọsílẹ̀, kì í ṣe ẹ̀rí ẹ̀tọ́.
| 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 |
Méjì nínú àwọn àkọsílẹ̀ yẹn ni wọ́n ń dà pọ̀ mọ́ àwọn àlèébù RSA tó pọ̀ tó láti pè wọ́n lórúkọ lẹ́ẹ̀mejì. Fáìlì àlèébù Diffie-Hellman ní àwọn àlèébù ẹgbẹ́ fún ìdásílẹ̀ kọ́kọ́rọ́ kò sì ní nọ́mbà àkọ́kọ́ RSA kankan, bí ó tilẹ̀ jẹ́ pé wọ́n tún tẹ̀ ọ́ jáde gẹ́gẹ́ bí nọ́mbà àkọ́kọ́ ńlá. Àkójọ ìfagilé ń polongo ipò àwọn ìwé-ẹ̀rí kì í sì ṣe ibi tí ìgbéga àdáni lè fi ara pa.
Nítorí náà gbogbo ìlà àkójọ yẹ kí ó ṣàkọsílẹ̀ ohun mẹ́rin: irú ohun, oníṣẹ́, èrò àti bóyá ohun èlò àdáni wà nínú rẹ̀. Ọ̀wọ̀n ìkẹyìn ni ó ń pinnu ibi tí wọ́n lè da fáìlì náà sí, ìyẹn sì ni ohun tí àwọn ènìyàn ń fò.
Ṣàkọsílẹ̀ ìsopọ̀, lẹ́yìn náà ṣàyẹ̀wò ìfọwọ́sowọ́pọ̀
Kí o tó yí ohunkóhun padà, tọ́jú àbájáde ìjẹ́rìí pẹ̀lú ọjọ́ àti ẹ̀dà OpenSSL. Nígbà náà a lè fi ìyípo tó tẹ̀le wé ẹ̀rí dípò ìrántí.
openssl verify -CAfile ca.crt vpn-client.crt
openssl x509 -in vpn-client.crt -noout -subject -issuer -dates
Lẹ́yìn ìfiwéra kọ́kọ́rọ́ gbangba, rìn ọ̀nà tí ń lo ẹni méjì náà: gbé ọ̀nà-ìmọ̀ sókè, jẹ́rìí pé wọ́n gbé ìwé-ẹ̀rí náà kalẹ̀ tí wọ́n sì gbà á, kí o sì wo ìdánimọ̀ wo ni ẹnubodè náà ṣàkọsílẹ̀. Bí kọ́kọ́rọ́ àti ìwé-ẹ̀rí bá bára wọn mu tí ìjẹ́rìí sì ṣì kùnà, àléèbù náà wà nínú ìgbẹ́kẹ̀lé, ìyípadà ìdánimọ̀ tàbí ìlànà àwọ̀lé, kì í ṣe nínú ẹni méjì náà.
Fún ìpadàbọ̀, tọ́jú kọ́kọ́rọ́ àti ìwé-ẹ̀rí ti ṣáájú nínú fódà tó ní ọjọ́ kí o sì mú àwọn méjèèjì padà papọ̀, kì í ṣe ọ̀kan nínú àwọn méjì náà rárá. Kọ́kọ́rọ́ tí kò ní ìwé-ẹ̀rí rẹ̀ àti ìwé-ẹ̀rí tí kò ní kọ́kọ́rọ́ rẹ̀ ń kùnà bákan náà láti ìta, èyí tí ń mú kí àwọn ẹni méjì tí wọ́n dá padà lọ́dàbọ̀ ṣòro láti yanjú ní agogo méjì òru.