Jedan stari peer nameće TLS 1.0: ograničite iznimku, ne host
Jedan uređaj zaglavljen na TLS 1.0, ili stari certifikat pružatelja, može nametnuti slabiji minimum. Ograničite iznimku, zatim izmjerite što je stvarno dogovoreno.
Pojavi se jedan stari uređaj, ne uspije se povezati, i najbrža naizgled popravka jest oslabiti cijeli host dok veza ne uspije. Ta razmjena je nevidljiva u trenutku i trajna u praksi, jer nitko ne uklanja minimum koji konačno radi. Dva vrlo različita kvara stvaraju pritisak, a samo jedan od njih uopće ima veze sa šiframa. Prvo razvrstajte kvar, zatim stavite iznimku tamo gdje se ne može proširiti.
Podijelite kvar na dva dijela prije nego uredite direktivu
Linija u poslužiteljskom dnevniku o tome da nema zajedničke šifre, ili o nepodržanoj verziji protokola, dolazi iz kontrolnog kanala: dvije strane nisu se mogle dogovoriti kako zaštititi samo pregovaranje. A klijentska linija da nije omogućena nijedna metoda provjere poslužiteljskog certifikata dolazi sasvim s drugog mjesta, jer taj klijent uopće ne provjerava tko je odgovorio. Promjena šifre za podatke ništa ne čini u drugom slučaju, a dodavanje provjere uloge ništa ne čini u prvom.
Uzmite najraniju liniju kvara sa svake strane, a ne posljednju prije prekida, jer je posljednja obično posljedica. Zatim utvrdite koju je datoteku klijent stvarno otvorio: uvezeni profil često postoji dvaput pod različitim prikazanim imenima, a uređivanje kopije koju nitko ne čita daje uvjerljivo nikakvu promjenu. Proces koji radi zadržava postavke s kojima je pokrenut, pa spremljena datoteka nije učitana datoteka. Naredbe ispod pokazuju klijentsko pregovaranje uz poslužiteljski pogled na isti pokušaj.
openvpn --config <profile>.ovpn --verb 4 2>&1 | head -n 40
journalctl -u [email protected] --since '-10 min' | grep -iE 'cipher|tls|verify'
Drugi je slušatelj iskreno mjesto za slabiji minimum
Kada uređaj stane na TLS 1.0 s kanalom podataka prije 2.5, poslužitelj mora ponuditi niži minimum kontrolnog kanala i šifru podataka koju stari klijent prepoznaje. Direktiva za rezervu postoji upravo za takvog partnera, dok popis šifri drži suvremene klijente na suvremenim skupovima. Obje direktive pripadaju slušatelju, a ne korisniku ili vezi, i nijedna opcija po klijentu ih kasnije ne sužava. Zato je jedan stari uređaj na glavnom portu odluka o svakom partneru koji ga dijeli.
Gdje platforma dopušta, pokrenite stari slušatelj kao njegovu vlastitu instancu na odvojenom portu, dopustite taj port samo s adrese uređaja i ostavite glavnu uslugu na miru. Zapišite zašto drugi slušatelj postoji, u datoteci koja nosi njegovu konfiguraciju, jer će ga buduće čišćenje inače pročitati kao ostatak. Podjela je vrijedna samo ako slabiji minimum završava tamo gdje završava uređaj.
tls-version-min 1.0
data-ciphers AES-128-GCM:AES-256-GCM:AES-256-CBC
data-ciphers-fallback AES-256-CBC
Što stari certifikat pružatelja zapravo kvari
Greška provjere nedostajuće je vezivanje uloge: bez njega klijent prihvaća svaki certifikat koji se lančano veže na pouzdan CA, bez obzira je li taj certifikat izdan za poslužitelj. Prvo vežite certifikat za poslužiteljsku ulogu i tretirajte vezivanje kao zahtjev, a ne kao dugme za podešavanje. Samo profil koji i nakon tog koraka ne uspijeva ima stvarni problem s certifikatom.
Stari certifikat pružatelja čija veličina ključa ili algoritam potpisa više ne zadovoljava zadanu politiku OpenSSL-a jest slučaj za ograničenu promjenu razine sigurnosti na kontrolnom kanalu. Spuštanje razine tamo ne isključuje provjeru i nikada se ne smije kombinirati s praznim CA, isključenom postavkom provjere ili neprovjerenim imenom hosta. Držite liniju unutar jednog profila kojem treba; globalni izvoz opuštene konfiguracije OpenSSL-a dao bi isto opuštanje svakom programu na stroju.
remote-cert-tls server
tls-cipher "DEFAULT:@SECLEVEL=0"
Čitajte dogovorene vrijednosti, ne banner
Na razini detaljnosti 4 obje strane ispisuju TLS verziju i šifru kontrolnog kanala na kojima su se zaustavile, te šifru podataka za sesiju. Čitajte te linije, a ne početni banner, koji izvještava o uspjehu, a ne o njegovim uvjetima. Zatim ponovno povežite suvremeni klijent na glavni slušatelj i potvrdite da još uvijek završava na suvremenom skupu, jer iznimka koja je procurila u zajedničku konfiguraciju pokazuje se najprije ovdje. Vrijednosti koje kopirate postaju osnovna linija za sljedeći pregled.
Testirajte stari uređaj zasebno: treba se povezati i biti jedina sesija u dnevnicima koja pokazuje slabije parametre. Ako i drugi partner pregovara stari skup, iznimka je šira od predviđene i podjela slušatelja nije se stvarno dogodila. Zabilježite oba zapažanja, a ne samo zaključak.
Svaka iznimka treba vlasnika i datum
Iznimka bez uvjeta uklanjanja tiho postaje zadana, pa stavite uređaj, vlasnika, razlog i datum kada nestaje uz konfiguraciju koju opravdava. Bez te linije slabiji minimum nadživi hardver koji ga je trebao.
Zamjena klijenta, ili zahtjev pružatelju za aktualni profil, ishod je kojem treba težiti; iznimka je odgađanje, a ne dizajn. Kada uređaj ode u mirovinu, uklonite slušatelj i profil u istoj promjeni da nijedna polovina ne ostane raditi. Ništa od ovoga ne čini stare parametre sigurnima, samo sprječava da granica jednog uređaja postane osnova za sve.