Dva súbory, dve direktívy a zvyk pomenovať oba podľa toho, čo nastavujú. Tak sa dh.pem ocitne na riadku tls-auth a klient zlyhá so správou o neočakávanom formáte kľúča. Rozhodnutie pred vami nie je, ktorý súbor je silnejší. Je to, ktorú rolu nasadenie naozaj potrebuje, a tri podmienky to vyriešia: akú výmenu kľúčov vyjedná váš TLS stack, či vôbec chcete autentifikáciu riadiaceho kanála a či musí materiál zostať tajný.

Odpovedzte na ne v poradí a otázka súboru sa odpovie sama. Preskočte ich a názvy direktív začnú vyzerať zameniteľne, a to je presne stav, z ktorého chyba vzniká.

Prečítajte štítok pred názvom súboru

Prvý riadok súboru je informatívnejší ako jeho názov, pretože názov je ľudská konvencia a štítok vytvára nástroj. Parametre Diffie-Hellman nesú štítok PEM BEGIN DH PARAMETERS. Statický kľúč OpenVPN je úplne iná štruktúra, s vlastnou hlavičkou a hexadecimálnym obsahom.

Premenovanie nič neprevedie. Súbor parametrov s názvom ta.key sú stále parametre a statický kľúč s názvom dh.pem je stále statický kľúč; parser číta obsah a nesúlad odmietne. Skontrolujte to pred úpravou profilu:

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

Tri podmienky, ktoré rozhodnú, ktorý súbor potrebujete

Prvou podmienkou je výmena. Diffie-Hellman v konečnom poli potrebuje skupinu a direktíva dh je miesto, kde server parametre pre ňu pomenuje. Výmena na eliptickej krivke ten súbor vôbec nepotrebuje, pretože krivka je sama sada parametrov. Ak váš server vyjednáva len sady ECDHE, súbor DH je mŕtva váha, nie pridaná sila.

Druhou podmienkou je autentifikácia riadiaceho kanála, teda samostatná funkcia s vlastným materiálom. Súbor tls-auth je zdieľaný statický kľúč, ktorý držia obe strany a ktorým sa podpisujú pakety riadiaceho kanála, aby neautentifikovaná strana nemohla ani dokončiť výmenu. Existuje bez ohľadu na to, či používate DH v konečnom poli, a s parametrami skupiny nesúvisí.

Treťou podmienkou je utajenie a distribúcia. Parametre DH možno zverejniť bez oslabenia relácie, pretože tajné hodnoty sa generujú pre každú výmenu a nikdy neopustia strany. Statický kľúč sa zverejňovať nesmie: sú to rovnaké bajty na oboch koncoch, sám sa nemení a ktokoľvek ho má, môže vytvárať platné podpisy riadiaceho kanála. Tie dve odpovede vedú k úplne iným pravidlám zaobchádzania, a preto jeden súbor môže ležať v repozitári a druhý nie.

Vytvorte správny materiál pre každú rolu

Použite nástroj, ktorý vytvára formát očakávaný direktívou, namiesto prevodu medzi nimi. Pre zdieľaný kľúč v OpenVPN 2.6 typovaná podoba generátora uvádza účel výslovne.

openvpn --genkey tls-auth ta.key

Tento príkaz vytvára nový tajný materiál; neopravuje ani neprehliada existujúci kľúč a jeho opätovné spustenie vám dá iný kľúč, ktorý ostatné strany nemajú. Skopírujte výsledný súbor stranám, ktoré ho potrebujú, kanálom, ktorý by ste použili pre akékoľvek zdieľané tajomstvo, a držte konvenciu smeru konzistentnú: s tls-auth jedna strana používa key-direction 0 a druhá key-direction 1.

Parametre DH, keď ich potrebujete, pochádzajú z generovania parametrov, nie z generátora kľúčov, a ich pôvod je dôležitý, aj keď je výstup verejný. Skupina vytiahnutá z neznámeho zdroja sa nestane dôveryhodnou tým, že je verejná; stále musí byť skupinou, na ktorej sa vaše strany zhodnú, a takou, ktorú neoslabuje jej veľkosť ani konštrukcia.

Čo dh none znamená a čo nie

dh none je skutočná direktíva s úzkym významom: žiadny súbor parametrov konečného poľa sa nenačíta, pretože výmena používa Diffie-Hellman na eliptickej krivke. Nie je to skratka pre „preskočiť krok DH“ v zmysle niečo oslabiť a rozhodne nehovorí OpenVPN, aby prijal nejaký iný súbor ako náhradu.

Z nesprávneho čítania plynú dve chyby. Prvá je predpokladať, že dh none odstraňuje potrebu tls-auth, zatiaľ čo obe riadia rôzne veci. Druhá je držať zastaraný riadok dh vedľa konfigurácie iba s krivkou a potom sa pýtať, ktorý súbor server vlastne používa; ak je direktíva prítomná, súbor sa číta, a rozbitá cesta tam zhodí štart z dôvodu, ktorý s vyjednávanou výmenou nesúvisí.

Ak bol nesprávny súbor už nasadený

Obnovte zamýšľané tajomstvo od vlastníka profilu a počas toho na overovanie certifikátu nesiaha­jte. Zlyhanie je nesúlad formátu, nie zlyhanie dôvery, a vypnutie overovania, aby ste chybu obišli, nahradí problém so štartom tichým problémom.

Potom oddeľte dva incidenty, ktoré ľudia majú tendenciu zlučovať. Zverejnenie súboru parametrov DH je takmer neškodné, pretože parametre boli verejné už z návrhu. Odhalenie kľúča tls-auth je iná udalosť: kľúč autentifikuje pakety riadiaceho kanála pre každú stranu, ktorá ho drží, takže výmenu treba koordinovať v celom nasadení, nie ju vykonať na jednom hostiteľovi.

Kontrola na päť minút vyrieši, v ktorom prípade ste: prečítajte prvý riadok každého súboru, potvrďte direktívu, ktorá naň odkazuje, a potvrďte, že distribúcia súboru zodpovedá tomu, čo materiál vyžaduje. Je to menšia práca než znovu vytvoriť fungujúce PKI, a presne k tomu tri podmienky celý čas mierili.

Súvisiace články