OpenSSL jada instalatuta dago, ostalariak entropia du, eta harekin gakoa sortzea lasterbide begi-bistakoa dirudi. Irteera aleatorioa eta sekretua eta erabat erabil ezina izango da, eta hutsegitea kontrol-kanaleko errore gisa iristen da, gako-formatu bat aipatzen duen ezeren ordez. Nahaste hori da zati garestia, jendea bere zifratzeak aztertzera bidaltzen duelako. VPNak irakurtzen duena fitxategi-egitura jakin bat da, ez byte-bloke arbitrario bat, eta funtzioaren aldaera bat ezin da zerbitzaritik kanpo inola ere ekoiztu.

Diskoan dagoen fitxategiak benetan zer izan behar duen

OpenVPN-en gako estatikoen fitxategia testua da. Zer den adierazten duen iruzkin-lerro batekin hasten da, datu hexadezimalak zabalera finkoko errenkadetan daramatza, eta guztira 256 byte gako-material ditu. OpenVPNk kontrol-kanalaren sekretu partekatu gisa irakurtzen du, ez ziurtagiri gisa, ez pasahitz-esaldi gisa eta ez TLS liburutegi batek ezagutuko lukeen ezer gisa.

Objektu mota berak kontrol-kanalaren bi funtzioei egiten die zerbitzu. Tls-auth-ekin, pare bakoitzak norabide bat ere behar du, alde bateko paketeak berari islatuak izan ez daitezen. Tls-crypt-ekin, sekretu partekatu bakar batek kontrol-kanala zifratzen eta autentifikatzen du bi norabideetan, eta horrek esku-ematea ezkutatzen du eta aldi berean babesten du.

Horietako ezer ez da ezagutza sekretua, eta formatua ez da kontua. Kontua da fitxategiak irakurleak espero duenarekin zehatz-mehatz bat egin behar duela: goiburua, errenkada-zabalera, amaierako lerro-jauzia eta luzera osoa. Errenkada batengatik desbideratuta dagoen fitxategia zabor gisa kargatzen da edo huts egiten du zuzenean. Bi pare bytez byte alderatzea lehen proba zilegia da, beraz, eta bi konfigurazio-fitxategietako edozein irakurtzea baino azkarragoa da.

Bat egiteko modu onartua

Sortu gako estatiko soila kontsumituko duen tresnarekin, eta gero erreferentziatu bi muturretatik:

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

Aukeraren idazkera denboran zehar aldatu zen: 2.4 aroko instalazio zaharrek bandera bereizi bat zuten fitxategi-izenaren aurretik, eta uneko bertsioek laburrena onartzen dute. Edonola ere, sortutako fitxategia objektu mota bera da, beraz, egiaztapena bi pareek byte berberak dituzten ala ez da.

Bigarren belaunaldiak kanpoko sortzailerik asma ezin duen egitura gehitzen du. Zerbitzari-gakoa behin sortzen da, eta bezero bakoitzak hartatik eratorritako bildutako gako bat jasotzen du:

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

Bezeroak jasotzen duena ez da zerbitzariaren gako bera bikoiztuta. Zerbitzariak soilik aska ditzakeen metadatuak daramatzan bildutako objektu bat da, eta bilketa horri esker gailu bakoitzeko fitxategia beste gailu bat ukitu gabe balioz kendu daiteke. Eutsi zerbitzari-gakoa zerbitzarian eta tratatu gailu bakoitzeko konfiantza horren sustrai gisa.

Non hausten diren eskuz egindako byteak

256 byte aleatorio hex gisa inprimatzeak goiburu zuzen baten azpian, teorian, kargatzen den gako estatikoen fitxategi bat emango luke. Ideia txarra izaten jarraitzen du. Formatu-xehetasun bakoitza karga garaian huts egiten duen materiala sortzeko aukera bihurtzen da, edo, okerrago, bi pare balio ezberdinekin uzten ditu, eta horiek autentifikazio-hutsegite gisa agertzen dira soilik.

Ezer baliokiderik ez da posible v2 aldaerarekin. Bezero-gako bilduma bat zerbitzariaren gako-prozesuaren irteera gisa soilik existitzen da, eta zerbitzariak hura askatzeko behar den materiala gordetzen du. Bloke aleatorio bat baztertua izango da edo deszifratzean huts egingo du, eta bi mezuek ez dute ausazkotasunik aipatuko.

Bertsioen bateragarritasuna horren guztiaren gainean dago. Lehen belaunaldiak bi muturretan onartzen duen bertsio bat behar du, eta bigarrenak are berriagoa behar du. Funtzioa existitu aurretik eraikitako bezero batek ezin du esku-ematerik osatu material bilduma soilik onartzen duen zerbitzari batekin, eta jakinarazten duen hutsegiteak kontrol-kanalari egiten dio erreferentzia, ez bertsioari.

Bira egin guztiak kanpoan utzi gabe

Sekretu partekatu bakar bat biratzea koordinazio-ariketa da, ez teknikoa. Bezero bakoitzak ordezko fitxategia eskuan izan behar du zerbitzariak aurrekoa kendu aurretik, eta balio zaharra oraindik duen makina orok huts egiten du hori gertatzen den unean. Ez hasi bira hori lanegun baten erdian.

V2 antolamenduan, bira gailu bakoitzekoa da: eman gako bilduma berri bat makina baterako eta erretiratu zaharra makina horretarako soilik. Hori da aldatzeko argudio nagusia, bezero bakoitza onartzen duen bertsio batean dagoenean.

Fitxategi-baimenak elkarrizketa berean sartzen dira. Gakoa zerbitzua exekutatzen duen kontuak soilik irakurri behar luke, eta ez luke babesten dituen profilekin biltegi berean egon behar. OpenVPN 2.6 erreferentziak sorkuntza-formak eta gako-materialaren atalak dokumentatzen ditu, eta hori foroko mezu batetik kopiatutako komandoa baino iturri hobea da.

Erlazionatutako artikuluak