OpenVPN láìsí CA: bí peer-fingerprint ṣe ń jẹ́rìí àwọn ẹlẹgbẹ́
Ìtẹ̀ ika máa ń pín ìwé-ẹ̀rí kan, kì í ṣe àṣírí àjọpín. Tẹ̀lé ohun tí àkópọ̀ máa ń bo, bí ẹ̀gbẹ́ kọ̀ọ̀kan ṣe ń kọ́ àkójọ ìyọ̀nda rẹ̀ àti ìnáwó ìmúdọ̀tun.
Ìmúrasílẹ̀ kékeré máa ń yá sí àwọn ìtẹ̀ ika nítorí pé aláṣẹ ìwé-ẹ̀rí dà bí ohun àmúṣọrọ̀ tí kò sí ẹni tí ó ní àkókò láti máa bójú tó. Ìmọ̀-ọkàn náà bọ́gbọ́n mu, ṣùgbọ́n ọ̀nà kúkúrú tí àwọn ènìyàn máa ń gbà dípò rẹ̀—dídà ákọsílẹ̀ aṣírí kan ti ọ̀nà dátà kọ́ ọ̀tọ̀ọ̀tọ̀ sí ẹ̀gbẹ́ méjèèjì—kì í ṣe bẹ́ẹ̀. Ìṣètò peer-fingerprint máa ń pa ìrísí TLS mọ́ láìyẹ̀: ẹ̀gbẹ́ kọ̀ọ̀kan ṣì ní kọ́kọ́rọ́ àdáni àti ìwé-ẹ̀rí tirẹ̀, ẹ̀gbẹ́ kọ̀ọ̀kan sì ṣì ń jẹ́rìí ẹ̀gbẹ́ kejì. Ohun tí ó yípadà ni ibi tí ìjẹ́rìí náà ti gbé kalẹ̀: láti ọ̀dọ̀ olùgbéjáde tí a gbẹ́kẹ̀lé sí àkójọ kúkúrú àwọn àkópọ̀ tí a ti pínnín. Nítorí pé àkópọ̀ máa ń bo gbogbo ìwé-ẹ̀rí dípò orúkọ kan, ìmúdọ̀tun di iṣẹ́ tí ó ń gba àkókò gan-an.
Ohun tí ìtẹ̀ ika ń gbà nínú rẹ̀ gan-an
Ìtẹ̀ ika ìwé-ẹ̀rí jẹ́ àkópọ̀ gbogbo ìwé-ẹ̀rí tí a fi DER kọ́, kì í ṣe ti kọ́kọ́rọ́ gbangba rẹ̀ àti kì í ṣe ti orúkọ kókó rẹ̀. Nítorí náà, ìwé-ẹ̀rí méjì tí wọ́n ní orúkọ kan náà àti kọ́kọ́rọ́ kan náà ṣùgbọ́n ọjọ́ ìwúlò tí ó yàtọ̀ ní ìtẹ̀ ika tí ó yàtọ̀. Ìyẹn ni ó mú pínín di pípé, ìyẹn sì ni ó mú ìmúdọ̀tun di ìdàrúdàpọ̀. Pínín kò lè túmọ̀ sí gbígbẹ́kẹ̀lé kọ́kọ́rọ́ lápapọ̀, nítorí pé ó máa ń dárúkọ ohun kan ní àkókò kan nínú ìgbésí ayé rẹ̀. Ẹnikẹ́ni lè mọ àkópọ̀ náà, àti pé mímọ̀ọ́ kò fi ohunkóhun hàn fúnra rẹ̀.
openssl x509 -in server.crt -noout -fingerprint -sha256
openssl x509 -in client-07.crt -noout -fingerprint -sha256
Níní kọ́kọ́rọ́ àdáni tí ó bá a mu ni ó fi hàn pé ẹlẹgbẹ́ náà ní ìwé-ẹ̀rí yẹn, àkópọ̀ sì ni ọ̀nà tí ẹ̀gbẹ́ kejì fi pinnu bóyá ó ti ń retí ìwé-ẹ̀rí yẹn rárá. Ìpínyà yẹn ni ìdí tí àpẹẹrẹ yìí kì í ṣe ètò àṣírí àjọpín àtijọ́: kọ́kọ́rọ́ àjọpín máa ń jẹ́rìí ẹnikẹ́ni tí ó mọ àwọn báìtì kan náà, nígbà tí pínín máa ń jẹ́rìí ìwé-ẹ̀rí kan. Ẹ̀rọ mìíràn gba àkọsílẹ̀ tirẹ̀ dípò ẹ̀dà àṣírí kan náà, èyí tí ó jẹ́ ìyàtọ̀ kékeré nínú àwọn fáìlì àti ẹ̀yà ńlá nínú ìwọ̀n ìpalára.
Maàpù náà jẹ́ ti ẹ̀gbẹ́ méjèèjì, kì í ṣe aláìdọ́gba
Ẹ̀gbẹ́ kọ̀ọ̀kan nílò ohun méjì: kọ́kọ́rọ́ àdáni rẹ̀ pẹ̀lú ìwé-ẹ̀rí, àti gbólóhùn nípa irú àwọn ìwé-ẹ̀rí ẹlẹgbẹ́ tí yóò gbà. Ní ẹ̀gbẹ́ kìlọ́mítà, gbólóhùn yẹn ni àkópọ̀ ìwé-ẹ̀rí sáfà; ní ẹ̀gbẹ́ sáfà, ó jẹ́ àkójọ àwọn àkópọ̀ kìlọ́mítà tí a forúkọ sílẹ̀. Àpẹẹrẹ ìjọba fún ìṣètò kékeré fún Community 2.6 fi ìṣètò hàn pẹ̀lú peer-fingerprint, ó sì yẹ kí a kà á kí a tó yan àpẹẹrẹ ìgbẹ́kẹ̀lé yìí fún ìmúrasílẹ̀ gidi. Àwọn ọ̀nà méjì kì í ṣe àkójọ kan tí a yí padà, wọn kì í sì kùnà ní àkókò kan náà.
| Verification direction | What is pinned | What never leaves that endpoint | How a wrong pin shows up |
|---|---|---|---|
| Client checks the server | One digest, for the server certificate | The server private key | The client aborts during the TLS handshake |
| Server checks the client | A digest per enrolled client | Each client private key | The server rejects the peer before a tunnel exists |
Fífi ẹ̀rọ kún máa ń ṣàtúnṣe àkójọ ìyọ̀nda lórí sáfà, láì ṣe ẹ̀dà ohun àdáni kìlọ́mítà tí ó wà, àti láì gbé kọ́kọ́rọ́ sáfà lọ síbi kankan. Àwọn ọ̀nà méjì tún máa ń kùnà lọ́nà ọ̀tọ̀ọ̀tọ̀, èyí tí ó wúlò nígbà ìwádìí: ẹ̀gbẹ́ tí ó ti ilẹ̀kùn ìfọwọ́sọ̀rọ̀ ni ẹ̀gbẹ́ tí ìrètí rẹ̀ kò ní ìmúṣẹ. Bí kìlọ́mítà bá kọ̀ sáfà, àkópọ̀ kò bá ìwé-ẹ̀rí tí a gbé kalẹ̀ mu. Bí sáfà bá kọ̀ kìlọ́mítà, àkópọ̀ kìlọ́mítà yẹn kò sí nínú àkójọ, tàbí kìlọ́mítà ń gbé ìwé-ẹ̀rí mìíràn kalẹ̀ yàtọ̀ sí èyí tí a forúkọ sílẹ̀.
Ìforúkọsílẹ̀: bí ẹ̀rọ tuntun ṣe ń darapọ̀
Ṣẹ̀dá kọ́kọ́rọ́ àti ìwé-ẹ̀rí ẹ̀rọ tuntun níbi tí kọ́kọ́rọ́ àdáni yóò gbé, lẹ́yìn náà gbé ohun gbangba nìkan lọ sí ẹ̀gbẹ́ tí ó nílò láti pín ín. Gbé àkópọ̀ tí a retí kọjá nípasẹ̀ ọ̀nà tí ìwọ ti gbẹ́kẹ̀lé, kí o sì fi gbogbo ìwé-ẹ̀rí wéran dípò orúkọ tí ó dà bí ẹni mọ̀ọ́n. Àkópọ̀ tí a dà láti inú ìgbàsílẹ̀ àìní ìjẹ́rìí kan náà pẹ̀lú ìwé-ẹ̀rí fi hàn nìkan pé àwọn fáìlì méjì bá ara wọn mu. Èyí jẹ́ àyẹ̀wò ìbámu kì í ṣe àyẹ̀wò ìdánimọ̀, ìyẹn sì ni ọ̀nà tí ó dákẹ́ jẹ́ẹ́ tí àpẹẹrẹ yìí fi ń di aláìlera.
Ní sáfà, fífi àkópọ̀ kún jẹ́ ìyípadà ìṣètò tí ó gbà á kọjá alábòjútó déédé tí a sì ń tẹ̀lé pẹ̀lú ìsopọ̀ mìíràn. Jẹ́rìí sí i pé ẹ̀rọ tuntun náà sopọ̀ àti pé ẹ̀rọ tí a yọ àkópọ̀ rẹ̀ kò sọ mọ́. Àyẹ̀wò tí ó bo ipò rere nìkan máa ń fi àkójọ ìyọ̀nda sílẹ̀ láìjẹ́rìí, àti pé ní oṣù mẹ́fà lẹ́yìn náà ìwọ yóò wà ní ipò yẹn gan-an.
Ìmúdọ̀tun ni àkókò tí ó ń náwó
Gbogbo ìwé-ẹ̀rí máa ń pẹ̀kun, àti pé ìwé-ẹ̀rí tuntun ní àkópọ̀ tuntun kódà bí kọ́kọ́rọ́ àti orúkọ bá wà bẹ́ẹ̀. Lábẹ́ olùgbéjáde, ìmúdọ̀tun jẹ́ olókìkí fún àwọn ẹlẹgbẹ́ tí wọ́n gbẹ́kẹ̀lé olùgbéjáde yẹn; lábẹ́ pínín, ó jẹ́ ìṣẹ̀lẹ̀ ìforúkọsílẹ̀ fún gbogbo ẹlẹgbẹ́ tí ó pínnín ìwé-ẹ̀rí náà.
Ṣètò ìtẹ̀lẹ́ńbẹ́ẹ̀lẹ́ ṣáájú ọjọ́ ìpẹ̀kun kì í ṣe lẹ́yìn rẹ̀. Pín àkópọ̀ tuntun náà fún àwọn ẹ̀gbẹ́ tí wọ́n ń jẹ́rìí rẹ̀, fi ìyípadà náà sílò, lẹ́yìn náà nìkan ni kí o pààrọ̀ ìwé-ẹ̀rí ní ìparí. Ìtẹ̀lẹ́ńbẹ́ẹ̀lẹ́ yẹn kò fi fèrèsé sílẹ̀ tí àwọn ẹ̀gbẹ́ méjì yóò ti yàtọ̀ nípa èyí tí ìwé-ẹ̀rí ń bẹ lọ́wọ́. Tọ́jú àkójọ fúnra rẹ̀ lábẹ́ àyẹ̀wò pẹ̀lú, nítorí àkójọ tí a pínnín máa ń kó àwọn àkọsílẹ̀ ẹ̀rọ tí a yọ kúrò ní oṣù mélòó kan sẹ́yìn. Gbogbo àkọsílẹ̀ àtijọ́ ni ìdánimọ̀ tí yóò ṣì jẹ́rìí bí kọ́kọ́rọ́ rẹ̀ bá yè, nítorí náà yíyọ ọ̀kan kúrò jẹ́ ìgbésẹ̀ ààbò kì í ṣe ìmọ́tótó.
Ohun tí maàpù ìgbẹ́kẹ̀lé kò pinnu
Ìjẹ́rìí jẹ́ ìpele kan, maàpù tí a pínnín kò sì sọ ohunkóhun nípa adágún àdírẹ́sì, àwọn ọ̀nà tí a ti ta, MTU ọ̀nà tàbí ìlànà ògiri iná. Wọ́n wà bí ìṣètò ọ̀tọ̀ọ̀tọ̀ pẹ̀lú àwọn ọ̀nà ìkùnà ọ̀tọ̀ọ̀tọ̀. Ìhò tí ó jẹ́rìí ṣùgbọ́n tí kò gbé ìrìnàjò kankan kọjá yàtọ̀ sí èyí tí kò gbé e dìde rárá.
Maàpù náà kò gbòòrò láìlópin, àti pé PKI tí ó dá lórí olùgbéjáde ni ibi tí àwọn ìmúrasílẹ̀ ńlá ń parí sí. Ìfẹ́ yẹn jẹ́ nípa ìṣiṣẹ́ kì í ṣe nípa ìkọ̀wé àṣírí, nítorí pé fífi àti yíyọ ìdánimọ̀ kọjá lórí ìjọba kan ṣàǹfàní ju ṣíṣàtúnṣe àkójọ lórí gbogbo ẹlẹgbẹ́ bí ẹgbẹ́-ogun ṣe ń dàgbà. Níbi tí ìmúṣẹ kìlọ́mítà kò ti ṣe àtìlẹ́yìn fún àṣàyàn yìí, ìdáhùn ni àpẹẹrẹ ìgbẹ́kẹ̀lé tí ó bá mu tí kìlọ́mítà yẹn kọ sílẹ̀, tàbí àròpo tí a ṣe àtìlẹ́yìn fún. Pípa ìkìlọ̀ ìjẹ́rìí lọ́nà kò fi àtìlẹ́yìn yẹn kún, àti pé gbogbo iye àpẹẹrẹ náà ni pé ìjẹ́rìí ṣì ń ṣẹlẹ̀.