En star peer vsili TLS 1.0: omejite izjemo, ne gostitelja
Ena naprava, obtičala na TLS 1.0, ali star ponudnikov certifikat lahko vsili šibkejšo spodnjo mejo. Omejite izjemo in nato izmerite, kaj je bilo res dogovorjeno.
Pojavi se ena stara naprava, ne more se povezati, in najhitrejše videti popravilo je oslabiti celega gostitelja, dokler povezava ne uspe. Ta menjava je v trenutku nevidna in v praksi trajna, ker nihče ne odstrani meje, ki končno deluje. Pritisk ustvarjata dve zelo različni napaki in samo ena od njiju je sploh o šifrah. Najprej razvrstite napako, nato postavite izjemo tja, od koder se ne more razširiti.
Preden spremenite direktivo, razdelite odpoved na dvoje
Vrstica v dnevniku strežnika o ni skupni šifri ali o nepodprti različici protokola prihaja iz krmilnega kanala: oba konca se nista mogla dogovoriti, kako zaščititi samo pogajanje. Vrstica odjemalca, da ni omogočena nobena metoda preverjanja strežnikovega certifikata, prihaja od povsem drugje, ker ta odjemalec sploh ne preverja, kdo je odgovoril. Zamenjava podatkovne šifre ne pomaga pri drugem primeru, dodajanje preverjanja vloge pa ne pomaga pri prvem.
Vzemite najzgodnejšo neuspešno vrstico z vsake strani, ne zadnje pred prekinitvijo, ker je zadnja običajno le posledica. Nato ugotovite, katero datoteko je odjemalec zares odprl: uvožen profil pogosto obstaja dvakrat pod različnimi prikazanimi imeni, urejanje kopije, ki je nihče ne bere, pa ustvari prepričljivo odsotnost spremembe. Delujoč proces obdrži nastavitve, s katerimi se je začel, zato shranjena datoteka ni naložena datoteka. Ukazi spodaj prikazujejo pogajanje odjemalca ob pogledu strežnika na isti poskus.
openvpn --config <profile>.ovpn --verb 4 2>&1 | head -n 40
journalctl -u [email protected] --since '-10 min' | grep -iE 'cipher|tls|verify'
Drugi poslušalec je pošten kraj za šibkejšo spodnjo mejo
Ko se naprava ustavi pri TLS 1.0 s podatkovnim kanalom pred 2.5, mora strežnik ponuditi nižjo mejo krmilnega kanala in podatkovno šifro, ki jo stari odjemalec prepozna. Varnostna direktiva obstaja prav za tega peera, medtem ko seznam šifer drži sodobne odjemalce na sodobnih zbirkah. Obe direktivi pripadata poslušalcu in ne uporabniku ali povezavi, nobena možnost na odjemalca pa ju pozneje ne zoži. Zato je ena stara naprava na glavnih vratih odločitev o vsakem peeru, ki si ta vrata deli.
Kjer platforma to dovoljuje, zaženite stari poslušalec kot lastno instanco na ločenih vratih, dovolite ta vrata samo z naslova naprave in glavno storitev pustite pri miru. Zapišite, zakaj drugi poslušalec obstaja, v datoteko, ki nosi njegovo konfiguracijo, sicer ga bo prihodnje čiščenje prebralo kot ostanek. Razdelitev je vredna le, če se šibkejša meja konča tam, kjer se konča naprava.
tls-version-min 1.0
data-ciphers AES-128-GCM:AES-256-GCM:AES-256-CBC
data-ciphers-fallback AES-256-CBC
Kaj stari ponudnikov certifikat v resnici pokvari
Napaka preverjanja je manjkajoča vezava vloge: brez nje odjemalec sprejme vsak certifikat, ki se veriži do zaupanja vredne CA, ne glede na to, ali je bil izdan za strežnik. Najprej povežite certifikat z vlogo strežnika in vezavo obravnavajte kot zahtevo, ne kot gumb za nastavljanje. Samo profil, ki tudi po tem koraku ne uspe, ima resnično težavo s certifikatom.
Stari ponudnikov certifikat, katerega velikost ključa ali podpisni algoritem ne ustreza več privzeti politiki OpenSSL, je primer za omejeno spremembo varnostne ravni na krmilnem kanalu. Znižanje ravni tam ne izklopi preverjanja in ga nikoli ne smete kombinirati s prazno CA, onemogočenim preverjanjem ali nepreverjenim imenom gostitelja. Vrstico imejte znotraj enega profila, ki jo potrebuje; izvoz omiljene konfiguracije OpenSSL globalno bi enako omilitev dal vsakemu programu na stroju.
remote-cert-tls server
tls-cipher "DEFAULT:@SECLEVEL=0"
Berite dogovorjene vrednosti, ne pasice
Pri verbosity 4 oba konca izpišeta različico TLS in šifro krmilnega kanala, za kateri sta se dogovorila, ter podatkovno šifro seje. Berite te vrstice, ne zagonske pasice, ki poroča o uspehu in ne o njegovih pogojih. Nato znova povežite sodoben odjemalec z glavnim poslušalcem in potrdite, da še vedno pristane na sodobni zbirki, ker se izjema, ki je ušla v skupno konfiguracijo, pokaže tu prva. Vrednosti, ki jih prepišete, postanejo osnova za naslednji pregled.
Preizkusite staro napravo samo: povezati bi se morala in biti edina seja v dnevnikih, ki kaže šibkejše parametre. Če tudi drugi peer pogaja staro zbirko, je izjema širša od predvidene in razdelitev poslušalcev se v resnici ni zgodila. Zabeležite obe opažanji in ne le sklepa.
Vsaka izjema potrebuje lastnika in datum
Izjema brez pogoja za odstranitev tiho postane privzeta, zato postavite napravo, lastnika, razlog in datum, ko izgine, ob konfiguracijo, ki jo upravičuje. Brez te vrstice šibkejša meja preživi strojno opremo, ki jo je potrebovala.
Zamenjava odjemalca ali prošnja ponudniku za aktualni profil je izid, h kateremu je treba stremeti; izjema je odlog in ne zasnova. Ko se naprava upokoji, odstranite poslušalec in profil v isti spremembi, da nobena polovica ne teče naprej. Nič od tega ne naredi starih parametrov varnih, le prepreči, da bi meja ene naprave postala osnova vseh.