Ibo ni kókó ìkọ̀kọ̀ VPN yẹ kí ó gbé: fáìlì, CNG tàbí TPM?
Yan láàárín fáìlì kókó, ibi ìpamọ́ sọ́fítíwé tí kò lè jáde àti TPM fún ìdánimọ̀ VPN, kí o sì fi àwọn àṣẹ àti ètò ìpadàbọ̀ hàn pé yíyan náà tọ́.
Àwọn ìbéèrè méjì ló pinnu ibo ni kókó ìkọ̀kọ̀ VPN yẹ kí ó wà: bóyá a lè ṣe àdàkọ ohun èlò kókó náà láti orí ẹrọ, àti bóyá ìlànà kan lè lò ó láìsí ẹnikẹ́ni ní orí pátákó bọ́tìnì. Àmì ìpolówó ibi ìpamọ́ kan kò dáhùn ọ̀kan nínú àwọn méjèèjì. Dẹ́mọ́nì ọ̀nà abẹ́lẹ̀ tí ó ní láti padà wá lẹ́yìn àtúnbẹ̀rẹ̀ nílò lílò láìsí àbójútó, èyí tí ó yọ gbogbo ohun tí ó sinmi lórí PIN tí ènìyàn tẹ jáde.
Yan láàárín àdàkọ àti lílò
Àdàkọ àti lílò ń kùnà lọ́nà ọ̀tọ̀ọ̀tọ̀, nítorí náà kí o kà wọ́n sí àwọn ìbéèrè méjì, kì í ṣe ọ̀kan. Olùgbéjà tí ó lè ka àwọn báìtì kókó náà máa ń gbé ìdánimọ̀ lọ sí ẹrọ mìíràn, ẹrọ ìpilẹ̀ kò sì mọ̀. Olùgbéjà tí kò lè ka àwọn báìtì ṣùgbọ́n tí ó dé ìlànà ìfọwọ́sí ṣì ń jẹ́rìí nígbà tí ìwọlé yẹn bá wà.
Kókó tí ó wà nínú fáìlì ni a lè ṣe àdàkọ rẹ̀ ní rọọrọ, ìdí nìyẹn tí ó tún fi rọrùn jù láti ṣe àpamọ́ àti ìmúpadàbọ̀. Ibi ìpamọ́ kókó sọ́fítíwé ń yí API padà, kì í ṣe ààlà: olùpèsè kọ̀ àwọn ìpè ìjáde tirẹ̀, ṣùgbọ́n ipò alákóso kan náà tí ó fi kókó sórí ẹrọ sábà ní àwọn ọ̀nà mìíràn sí ohun èlò náà. Àìlèjáde ní olùpèsè sọ́fítíwé jẹ́ gbólóhùn nípa àwọn iṣẹ́ tí a ṣe àtìlẹ́yìn fún, kì í ṣe ẹ̀rí ògiri ohun èlò. Kà á sí ìdádúró lòdì sí àdàkọ àìbìkítà, kì í ṣe ààbò lòdì sí ẹnìkan tí ó ti ní ìpàdé rẹ.
TPM tàbí káàdì ọlọ́gbọ́n ń ṣe iṣẹ́ ìfọwọ́sí nínú ohun èlò àti pé ó ń dá àbájáde padà nìkan. Èyí ń ti ọ̀nà àdàkọ, ó sì ń fi ọ̀nà lílò sílẹ̀ fún ohunkóhun tí ó lè béèrè ìfọwọ́sí.
Bá ibi ìpamọ́ mu pẹ̀lú dẹ́mọ́nì ọ̀nà abẹ́lẹ̀
Dẹ́mọ́nì ń dín èyí kù ju ètò ààbò lọ. WireGuard ń gba kókó ìkọ̀kọ̀ base64 láti fáìlì tàbí láti ẹnu-ọ̀nà wg set kò sì ní ọ̀nà sí ibi ìpamọ́ ẹ̀rí, nítorí náà kókó ojú-ọ̀nà tí TPM ń ṣe àtìlẹ́yìn fún kò sí nínú ìrònú. OpenVPN tí a kọ́ lòdì sí OpenSSL 3 lè gbé kókó wọlé nípasẹ̀ URI olùpèsè, strongSwan sì ń pèsè àfikún TPM pẹ̀lú àtìlẹ́yìn PKCS#11, ṣùgbọ́n àwọn méjèèjì sinmi lórí bí a ṣe kó àpò rẹ.
Dẹ́mọ́nì tí kò lè dé ibi ìpamọ́ tí a yàn ń sọ ààlà ohun èlò di ohun ọ̀ṣọ́. Ẹnìkan ń jáde kókó lẹ́ẹ̀kan, ó fi í sílẹ̀ nínú fáìlì, ìyókù ètò náà sì ń ṣiṣẹ́ ní ìdákẹ́jẹ́ lórí àdàkọ yẹn.
Ìsọdọ̀tun ni ìdajì kejì ìbámu, ibẹ̀ sì ni ọ̀pọ̀ ètò ń ya. Ibi ìpamọ́ tí ó ṣiṣẹ́ ní ìforúkọsílẹ̀ àkọ́kọ́ ṣùgbọ́n tí ó béèrè ìwọlé kọ́nsólù fún gbogbo àtúnjáde ni a máa ń yẹ̀ kọjá ní ìgbà àkọ́kọ́ tí ẹ̀rí bá parí ní wákàtí tí kò rọrùn. Dán ọ̀nà àtúnjáde wò nígbà tí kókó ìsinsìnyí ṣì ní oṣù.
Ṣe àkójọ kókó kí o tó gbé e
Kọ ohun tí kókó náà jẹ́ àti ibo tí ó ń gbé kí o tó yí i padà, nítorí ìṣíkiri tí ó ń pàdánù subject alternative names ń fọ́ ọ̀nà abẹ́lẹ̀ ní ọ̀nà tí a ń kà sí àṣìṣe ìtọ́sọ́nà. Jáde ẹ̀rí náà, jẹ́rìí pé a lè ka kókó ìkọ̀kọ̀ níbi tí dẹ́mọ́nì ń retí rẹ̀, kí o sì ṣàyẹ̀wò pé bárẹ́ náà bá ara wọn mu ní tòótọ́.
openssl x509 -in vpn.crt -noout -subject -ext subjectAltName
openssl pkey -in vpn.key -check -noout
openssl x509 -in vpn.crt -noout -pubkey | openssl sha256
openssl pkey -in vpn.key -pubout | openssl sha256
Àkópọ̀ méjì tí ó gbẹ̀yìn gbọ́dọ̀ jẹ́ bákan náà. Bí wọn kò bá ṣe bẹ́ẹ̀, dẹ́mọ́nì á parí ìtòlẹ́sẹẹsẹ, á sì kùnà ní gbogbo ìgbìyànjú pẹ̀lú àṣìṣe ẹ̀rí tàbí ìfọwọ́sí tí kò tọ́ka sí ibikíbi nítòsí ìdí gidi. Ìbámu WireGuard kúrú, nítorí a ń yọ kókó gbangba jáde tààrà láti inú kókó ìkọ̀kọ̀: wg pubkey < /etc/wireguard/wg0.key gbọ́dọ̀ tẹ kókó ẹlẹgbẹ́ tí sáfà rẹ ti ń tọ́jú.
Àwọn ìyọ̀ǹda wà nínú àkójọ kan náà. stat -c '%a %U:%G' /etc/wireguard/wg0.key gbọ́dọ̀ dá 600 root:root padà, ohunkóhun tí ẹgbẹ́ tàbí ayé lè kà sì túmọ̀ sí pé kókó náà ti wà fún àwọn ìlànà tí o kò retí rí.
Ṣàyẹ̀wò ibi ìpamọ́ àti ọ̀nà lílò
Ìjẹ́rìí ní apá mẹ́ta, apá kẹta ni a sábà ń gbé kọjá. Jẹ́rìí pé kókó wà nínú ibi ìpamọ́ tí o yàn, jẹ́rìí pé dẹ́mọ́nì gbé kókó yẹn wọlé kì í ṣe àdàkọ tí ó kù, lẹ́yìn náà jẹ́rìí pé ó ṣì ń bẹ̀rẹ̀ nígbà tí ohun ìjáde kò sí mọ́.
certutil -store -user My
certutil -csp "Microsoft Platform Crypto Provider" -key -user
certutil -verifykeys -user My
ipsec listcerts
Lórí Windows àṣẹ àkọ́kọ́ ń ṣe àkójọ ibi ìpamọ́ ti ara ẹni, ó sì ń tẹ olùpèsè kókó ní ẹ̀gbẹ́ gbogbo àkọsílẹ̀, ibẹ̀ sì ni ẹ̀rí tí ó dàbí ẹni tí ohun èlò ń ṣe àtìlẹ́yìn fún ṣùgbọ́n tí ó jókòó nínú olùpèsè sọ́fítíwé ń farahàn. Èkejì ń ṣe àkójọ àwọn kókó tí olùpèsè kírípítò pẹlẹbẹ ń tọ́jú, nítorí náà ìdánimọ̀ VPN tí kò sí níbẹ̀ nígbà tí ẹ̀rí rẹ̀ wà túmọ̀ sí pé ìdajì ìkọ̀kọ̀ ń gbé ibòmíràn. Ní ẹnubodè Linux, ipsec listcerts ń ròyìn ohun tí strongSwan gbé wọlé, pẹ̀lú àwọn kókó tí ó wá láti àfikún TPM. Fi àwọn ìtẹ̀ka ika tàbí hash kókó gbangba wé àkójọ dípò gbígbẹ́kẹ̀lé iye àkọsílẹ̀.
Ìdánwò òdì ni èyí tí ó fi ètò hàn. Gbé kókó tí a jáde kúrò ní àpò ìtòlẹ́sẹẹsẹ dẹ́mọ́nì, tún iṣẹ́ náà bẹ̀rẹ̀, kí o sì ka nínú àkọsílẹ̀ irú ìdánimọ̀ tí ó ń gbé kalẹ̀. Ọ̀nà abẹ́lẹ̀ tí ó ṣì ń gòkè ń lo ibi ìpamọ́; ìbẹ̀rẹ̀ tí ó kùnà túmọ̀ sí pé ètò náà ń ṣiṣẹ́ lórí àdàkọ ní tòótọ́.
Kọ ìsọdọ̀tun àti ìpadàbọ̀
Ìpadàbọ̀ yàtọ̀ gidigidi láàárín àwọn ìdílé méjì, ìyàtọ̀ yẹn sì jẹ́ ti àkọsílẹ̀ ètò, kì í ṣe ti ìpè ìṣẹ̀lẹ̀. Kókó fáìlì ni a lè ṣe àpamọ́ pẹ̀lú ìkọ̀kọ̀ àti mú padà, nítorí náà ìṣíkiri tí ó kùnà lè yí padà. Kókó tí kò lè jáde ni a kò lè ṣe àpamọ́ rẹ̀ rárá, èyí tí ó mú àtúnjáde àti àtúnforúkọsílẹ̀ di ọ̀nà ìgbàlà nìkan nígbà tí ẹrọ bá kú.
Ṣàyẹ̀wò ìparí kí ó tó di ìdádúró: openssl x509 -in vpn.crt -noout -checkend 2592000 ń parí pẹ̀lú kóòdù tí kì í ṣe òdo nígbà tí ẹ̀rí bá parí láàárín ọgbọ̀n ọjọ́, nítorí náà ó ń wọ inú àyẹ̀wò àbójútó tààrà. Ṣíṣe ìlà yẹn lọ́sọ̀ọ̀sẹ̀ ń mú ìsọdọ̀tun tí ẹnìkan kò gbèrò.
Yíyọ kúrò ń ṣẹlẹ̀ lórí sáfà: pa ẹlẹgbẹ́ rẹ́ tàbí fagilé nọ́mbà ọ̀wọ́, lẹ́yìn náà jẹ́rìí pé ọ̀nà abẹ́lẹ̀ kùnà, nítorí alábàáṣepọ̀ tí ó ní ìpàdé tí a fi pamọ́ lè fi fagilé ààbọ̀ pamọ́ fún ìgbà díẹ̀. Fagilé náà gbọ́dọ̀ tún dé ọ̀nà CRL tàbí OCSP ti olùkójọ, kì í ṣe ibi ìpamọ́ CA nìkan. Ẹ̀rí jẹ́ ìwé gbangba, profáìlì RFC 5280 sì ń bo bí a ṣe ń jẹ́rìí rẹ̀; kò sí nínú ìjẹ́rìí yẹn tí ó ń dáàbò bo kókó ìkọ̀kọ̀ tí a ṣe àdàkọ rẹ̀ kí ìyípadà tó ṣẹlẹ̀.
Kọ ìpinnu sí ibi kan: ibi ìpamọ́ wo ló ń tọ́jú kókó, ìlànà wo ló lè lò ó, ta ló lè tún un jáde àti ìpadàbọ̀ wo ni. Ìpín yẹn ni ohun tí àwọn olùṣàyẹ̀wò ń béèrè, àti ohun tí ó ń kọjá ìyípadà òṣìṣẹ́.