tls-auth i tls-crypt: šta svaki od njih štiti u OpenVPN-u
tls-auth potpisuje kontrolne pakete, a tls-crypt ih i skriva. Nijedan ne zamjenjuje provjeru certifikata ni šifru podataka, a neusklađenost izgleda kao tišina.
Obje opcije koriste zajedničku datoteku ključa i obje otežavaju krivotvorenje prometa rukovanja, zbog čega se tretiraju kao dva imena za istu funkciju. Nije tako. Jedna potpisuje kontrolne pakete, druga ih i šifrira, a nijedna nema veze sa šifrom koja štiti vaš teret.
Ta razlika je važna kada se profil ne može povezati, kada sigurnosna provjera pita šta ključ štiti i kada neko pretpostavi da dodatna datoteka čini tunel šifriranim na neki neodređen način.
Šta zajednički ključ zapravo štiti
Ključ koji ove opcije koriste pripada kontrolnom kanalu: razmjena koja pregovara parametre, dokazuje identitete i izvodi ključeve podataka. To je unaprijed podijeljena tajna koju oba kraja moraju imati prije nego rukovanje može teći. Pošto stoji prije provjera identiteta, pogrešan ključ zaustavlja razgovor ranije nego što bi to učinila pogrešna lozinka. Taj redoslijed objašnjava zašto je način kvara tako tih.
tls-auth koristi tu tajnu za izračun HMAC-a nad kontrolnim paketima. Paket bez valjanog potpisa odbacuje se prije nego stigne do skuplje TLS obrade, zbog čega se opcija često opisuje kao prvi filter, a ne kao zamjena za TLS.
tls-crypt ide dalje pa šifrira zaštićeni kontrolni promet uz to što ga autentificira. Sadržaj certifikata, pregovarani nazivi šifri i ostali detalji rukovanja više nisu vidljivi na mreži, a posmatrač bez ključa ne može vidjeti ni koja se TLS verzija pokušava. Za postavljanje koje brine o otkrivanju svog VPN otiska, to je glavni razlog za odabir. Ipak je grupna tajna, a ne vjerodajnica po korisniku.
Nijedan mehanizam ne izdaje identitete. Zajednički ključ je grupna tajna i svako ko ga ima može zadovoljiti taj sloj provjere.
Gdje se dvije opcije razlikuju
Uočljiva razlika je ono što posmatrač vidi. Uz tls-auth rukovanje je vidljivo, ali bez ključa se ne može provjeriti. Uz tls-crypt rukovanje je neprozirno za svakoga ko ne drži ključ.
Konfiguracija se također razlikuje. tls-auth se koristi s vrijednošću smjera, pa jedna strana koristi jednu polovinu ključnog materijala, a druga drugu polovinu. tls-crypt koristi jedan ključ u oba smjera, pa direktiva smjera nije dio njegovog rasporeda.
Dvije opcije se u modernim izdanjima međusobno isključuju. Profil treba nositi jednu od njih, ne obje, a server i klijent moraju se složiti koju, uz odgovarajući ključni materijal. Držanje stare direktive pored nove čest je migracijski ostatak. Uklonite neaktivnu da sljedeći čitalac zna koji sloj zaista važi.
Novija varijanta, tls-crypt-v2, vezuje svakog klijenta za njegov vlastiti zamotani ključ, tako da opoziv jednog klijenta ne zahtijeva ponovno izdavanje grupnog ključa. Vrijedi znati, ali to je druga opcija i nije sinonim ni za jednu od ove dvije.
Zašto neusklađenost izgleda kao da se ništa ne dešava
Kada se zajednički materijal ne poklapa, druga strana odbacuje pakete ne rekavši pošiljaocu zašto. Nema greške autentifikacije koju biste pročitali, jer paket nikada nije stigao do sloja koji bi je proizveo.
Klijent ponovo pokušava, server ne kaže ništa i simptom izgleda kao mrežni problem. Ljudi tada restartuju servis, ponovo upisuju lozinku računa ili uklanjaju direktivu zaštite da bi je «testirali», što mijenja postavljanje umjesto da ga dijagnosticira.
Čitajte u serverskom dnevniku prvu žalbu na razini paketa, a ne zadnji redak ponovnog pokušaja. Potvrdite da obje strane nose istu opciju s identičnim ključnim materijalom i da ključna datoteka nije ponovo generirana samo na jednoj strani.
Uklanjanje direktive nije siguran popravak. Ono isključuje sloj zaštite za svakog klijenta, a tunel koji nakon toga radi dokazuje samo da je taj sloj bio neusklađenost.
Šta se još mora posebno konfigurisati
Ove opcije ne provjeravaju ko je druga strana. Provjera certifikata, sidro povjerenja i očekivano ime servera ostaju zasebni zahtjevi i nijedan ne postaje neobavezan zbog prisutnog zajedničkog ključa.
One također ne biraju šifru podataka. To je zasebno pregovaranje kojim upravljaju postavke podatkovnog kanala na oba kraja, a tunel zaštićen s tls-crypt i dalje može koristiti šifru koju niste namjeravali.
Konačno, sam zajednički ključ traži pažnju. Tretirajte ga kao tajnu, distribuirajte ga odobrenim kanalom i zamijenite ga kada ode svako ko ga je imao. Pošto je zajednički, njegovo izlaganje je izlaganje svakog kraja koji ga koristi.