OpenSSL imeshawekwa, mwenyeji ana entropia, na kutengeneza ufunguo nayo huonekana kama njia ya mkato iliyo wazi. Matokeo yatakuwa nasibu na ya siri na hayatumiki kabisa, na kushindwa kutakuja kama hitilafu ya kituo cha udhibiti badala ya kitu kinachotaja umbizo la ufunguo. Upotoshaji huo ndio sehemu ya gharama kubwa, kwa sababu huwapeleka watu kukagua cipher zao. Kile VPN inasoma ni muundo maalum wa faili, si kizuizi holela cha baiti, na moja ya aina za kipengele hiki haiwezi kuzalishwa nje ya seva kabisa.

Faili iliyo kwenye diski inapaswa kuwa nini kwa kweli

Faili ya ufunguo tuli ya OpenVPN ni maandishi. Huanza na mstari wa maoni unaotangaza ni nini, hubeba data ya heksi katika safu zenye upana usiobadilika, na kwa jumla huwa na baiti 256 za nyenzo za ufunguo. OpenVPN huusoma kama siri ya pamoja ya kituo cha udhibiti, si kama cheti, si kama kifungu cha nenosiri na si kama kitu ambacho maktaba ya TLS ingekitambua.

Aina hiyo hiyo ya kitu hutumikia vipengele vyote viwili vya kituo cha udhibiti. Kwa tls-auth, kila mwenza anahitaji pia mwelekeo ili pakiti za upande mmoja zisiweze kuakisiwa kurudi kwake. Kwa tls-crypt, siri moja ya pamoja husimba na kuthibitisha kituo cha udhibiti katika pande zote mbili, jambo ambalo huficha makubaliano ya mkono na wakati huo huo kuilinda.

Hakuna kitu katika hayo ni maarifa ya siri, na umbizo si hoja. Hoja ni kwamba faili lazima ilingane kabisa na kile msomaji anachotarajia: kichwa, upana wa mstari, mstari mpya wa mwisho na urefu wote. Faili iliyokosea kwa mstari mmoja hupakiwa kama takataka au kushindwa kabisa. Kwa hivyo kulinganisha wenza wawili baiti kwa baiti ni jaribio la kwanza halali, na ni haraka kuliko kusoma mojawapo ya faili mbili za usanidi.

Njia inayotumika ya kutengeneza moja

Tengeneza ufunguo tuli rahisi kwa chombo kitakachoutumia, kisha urejelee kutoka pande zote mbili:

openvpn --genkey secret /etc/openvpn/tc-shared.key
tls-crypt /etc/openvpn/tc-shared.key

Tahajia ya chaguo ilibadilika kwa muda: usakinishaji wa zamani wa enzi ya 2.4 ulitumia umbo lenye bendera tofauti kabla ya jina la faili, wakati build za sasa zinakubali fupi. Vyovyote vile, faili inayotokana ni aina hiyo hiyo ya kitu, kwa hivyo ukaguzi ni kama wenza wawili wana baiti zinazofanana.

Kizazi cha pili kinaongeza muundo ambao hakuna kizalishaji cha nje kinachoweza kuubuni. Ufunguo wa seva huundwa mara moja, na kila mteja hupokea ufunguo uliofungwa unaotokana nao:

openvpn --genkey tls-crypt-v2-server /etc/openvpn/tc-v2-server.key
openvpn --genkey tls-crypt-v2-client /etc/openvpn/laptop1.key --tls-crypt-v2 /etc/openvpn/tc-v2-server.key

Kile mteja anachopokea si ufunguo wa seva wenyewe ulionakiliwa. Ni kitu kilichofungwa kinachobeba metadata ambayo seva pekee inaweza kuifungua, na ufungaji huo ndio sababu faili ya kifaa kimoja inaweza kubatilishwa bila kugusa kifaa kingine chochote. Weka ufunguo wa seva kwenye seva na uuchukulie kama mzizi wa imani hiyo kwa kila kifaa.

Mahali ambapo baiti zilizotengenezwa kwa mkono huvunjika

Kuchapisha baiti 256 nasibu kama heksi chini ya kichwa sahihi kwa nadharia kungetoa faili ya ufunguo tuli inayopakiwa. Bado ni wazo mbaya. Kila maelezo ya uumbizaji huwa nafasi ya kuzalisha nyenzo ambazo hushindwa kupakiwa au, mbaya zaidi, huwaacha wenza wawili na thamani tofauti zinazoonekana tu kama kushindwa kwa uthibitishaji.

Hakuna kitu sawa kinachowezekana na aina ya v2. Ufunguo wa mteja uliofungwa upo tu kama matokeo ya mchakato wa ufunguo wa seva, na seva huhifadhi nyenzo zinazohitajika kuufungua. Kizuizi nasibu kitakataliwa au kitashindwa tu kusimbua, na hakuna hata moja ya jumbe hizo mbili itakayotaja unasibu.

Upatanifu wa toleo umekaa juu ya haya yote. Kizazi cha kwanza kinahitaji toleo linalokitumia pande zote mbili, na cha pili kinahitaji tena toleo jipya zaidi. Mteja aliyegjengwa kabla kipengele hakijakuwepo hawezi kukamilisha makubaliano ya mkono na seva inayokubali nyenzo zilizofungwa pekee, na kushindwa anachoripoti kunaonyesha kituo cha udhibiti badala ya toleo.

Kuzungusha bila kuwafungia wote nje

Kuzungusha siri moja ya pamoja ni zoezi la uratibu, si la kiufundi. Kila mteja anahitaji faili mbadala mkononi kabla seva haijaondoa ile ya awali, na mashine yoyote iliyo na thamani ya zamani bado hushindwa katika dakika hiyo. Usianze kuzungusha huko katikati ya siku ya kazi.

Kwa mpangilio wa v2, kuzungusha ni kwa kila kifaa: toa ufunguo mpya uliofungwa kwa mashine moja na ustaafishe ule wa zamani kwa mashine hiyo pekee. Hiyo ndiyo hoja kuu ya kuhamia mara kila mteja anapokuwa kwenye toleo linalokitumia.

Ruhusa za faili ni sehemu ya mazungumzo hayo hayo. Ufunguo unapaswa kusomeka tu na akaunti inayoendesha huduma, na haupaswi kuishi katika hazina hiyo hiyo na wasifu unaoukinga. Marejeo ya OpenVPN 2.6 yanaandika aina za utengenezaji na sehemu za nyenzo za ufunguo, ambayo ni chanzo bora kuliko amri iliyonakiliwa kutoka chapisho la jukwaa.

Makala zinazohusiana