Dvije datoteke, dvije direktive i navika da se obje nazovu po onome što podešavaju. Tako dh.pem završi na liniji tls-auth, a klijent padne s porukom o neočekivanom formatu ključa. Odluka pred vama nije koja je datoteka jača. Nego koja je uloga stvarno potrebna implementaciji, i tri uslova to rješavaju: kakvu razmjenu ključeva će pregovarati vaš TLS stek, želite li uopće autentifikaciju kontrolnog kanala i mora li materijal ostati tajni.

Odgovorite na njih po redu i pitanje datoteke odgovorit će samo sebe. Preskočite ih i imena direktiva počinju izgledati zamjenjiva, a to je upravo stanje iz kojeg greška dolazi.

Pročitajte oznaku prije imena datoteke

Prvi red datoteke informativniji je od njenog imena, jer je ime ljudska konvencija, a oznaku proizvodi alat. Diffie-Hellman parametri nose PEM oznaku BEGIN DH PARAMETERS. OpenVPN statički ključ je posve druga struktura, s vlastitim zaglavljem i heksadecimalnim teretom.

Preimenovanje ništa ne pretvara. Datoteka parametara nazvana ta.key i dalje je parametri, a statički ključ nazvan dh.pem i dalje je statički ključ; parser čita sadržaj i odbija nesklad. Provjerite prije nego uredite profil:

head -n 1 dh.pem
head -n 1 ta.key

Tri uslova koji odlučuju koja vam datoteka treba

Prvi uslov je razmjena. Diffie-Hellman rukovanje u konačnom polju treba grupu, a direktiva dh je mjesto gdje server imenuje parametre za nju. Rukovanje na eliptičnoj krivulji uopće ne treba tu datoteku, jer je krivulja sama skup parametara. Ako vaš server pregovara samo ECDHE suite, DH datoteka je mrtva težina, a ne dodatna snaga.

Drugi uslov je autentifikacija kontrolnog kanala, zasebna funkcija s vlastitim materijalom. Datoteka tls-auth je zajednički statički ključ koji drže obje strane, koristi se za potpisivanje paketa kontrolnog kanala kako neautentificirana strana ne bi mogla ni dovršiti rukovanje. Postoji bez obzira na to koristite li DH u konačnom polju i nema veze s parametrima grupe.

Treći uslov su tajnost i distribucija. DH parametri se smiju objaviti bez slabljenja sesije, jer se tajne vrijednosti stvaraju za svako rukovanje i nikada ne napuštaju strane. Statički ključ se ne smije objaviti: to su isti bajtovi na oba kraja, ne mijenja se sam i svako ko ga drži može proizvesti valjane potpise kontrolnog kanala. Ta dva odgovora vode posve različitim pravilima rukovanja, zato jedna datoteka može stajati u repozitoriju, a druga ne.

Proizvedite ispravan materijal za svaku ulogu

Koristite alat koji proizvodi format koji direktiva očekuje, umjesto da pretvarate između njih. Za zajednički ključ na OpenVPN 2.6 tipizirani oblik generatora izričito navodi svrhu.

openvpn --genkey tls-auth ta.key

Ta naredba stvara novi tajni materijal; ne popravlja ni ne pregleda postojeći ključ, a ponovno pokretanje daje vam drugačiji ključ koji druge strane nemaju. Kopirajte dobivenu datoteku stranama kojima treba, kanalom koji biste koristili za svaku zajedničku tajnu, i držite konvenciju smjera dosljednom: s tls-auth jedna strana koristi key-direction 0, a druga key-direction 1.

DH parametri, kada ih trebate, dolaze iz generiranja parametara, a ne iz generatora ključeva, i njihovo porijeklo je važno iako je izlaz javan. Grupa izvučena iz nepoznatog izvora ne postaje pouzdana time što je javna; još uvijek mora biti grupa oko koje se vaše strane slažu i koja nije oslabljena svojom veličinom ili konstrukcijom.

Šta dh none znači, a šta ne

dh none stvarna je direktiva uskog značenja: nijedna datoteka parametara konačnog polja neće se učitati, jer rukovanje koristi Diffie-Hellman na eliptičnoj krivulji. Nije skraćenica za „preskoči DH korak“ u smislu slabljenja bilo čega i sigurno ne govori OpenVPN-u da prihvati neku drugu datoteku kao zamjenu.

Dvije greške slijede iz pogrešnog čitanja. Prva je pretpostavka da dh none uklanja potrebu za tls-auth, dok to dvoje kontrolira različite stvari. Druga je držati zastarjelu liniju dh uz konfiguraciju samo s krivuljom i onda se pitati koju datoteku server zapravo koristi; ako je direktiva prisutna, datoteka se čita, a pokvarena putanja tamo ruši pokretanje zbog razloga nepovezanog s razmjenom koja će se pregovarati.

Ako je pogrešna datoteka već implementirana

Vratite predviđenu tajnu od vlasnika profila i ne dirajte provjeru certifikata dok to radite. Kvar je nesklad formata, ne kvar povjerenja, a isključivanje provjere da biste prešli preko greške zamjenjuje problem pokretanja tihim problemom.

Zatim razdvojite dva incidenta koja ljudi obično spajaju. Objavljivanje DH datoteke parametara gotovo je bezopasno, jer su parametri po zamisli javni. Izlaganje ključa tls-auth drugi je događaj: ključ autentificira pakete kontrolnog kanala za svaku stranu koja ga drži, pa se zamjena mora uskladiti kroz cijelu implementaciju, a ne primijeniti na jednom hostu.

Provjera od pet minuta rješava u kojem ste slučaju: pročitajte prvi red svake datoteke, potvrdite direktivu koja je referencira i potvrdite da distribucija datoteke odgovara onome što materijal zahtijeva. To je manji posao od ponovnog stvaranja radne PKI i upravo na to su tri uslova cijelo vrijeme pokazivala.

Povezani članci