Ta napaka se pojavi pred pozivom za geslo, in to je koristni del: nič še ni bilo preverjeno, zato poverilnice niso težava. V Linuxu lahko isto pogovorno okno AnyConnect izvira iz stare različice protokola, 1024-bitne skupine za izmenjavo ključev ali nabora šifer, ki ga kriptografska politika sistema zavrne. Odpravil sem jo na tri različne načine na treh strojih, in te popravke ločuje obseg, ne iznajdljivost. Vsak je na pravem mestu zagovorljiv in povsod drugje slaba privzeta vrednost.

Preberite sporočilo, preden se dotaknete politike

Shranite natančen niz iz pogovornega okna. Pritožba glede različice kaže na plast protokola, pritožba glede potrdila na zaupanje ali poimenovanje, neuspešna prijava pa na poverilnice. Prehod, ki ponuja TLS 1.0 s 1024-bitno skupino DHE, AES-256-CBC in podpisom SHA-1, ima lahko povsem veljavno potrdilo in ga sodobna politika vseeno zavrne, preden se vaši podatki sploh pošljejo.

Preverite končno točko s sistemskim OpenSSL, z resničnim imenom gostitelja in vrati, ki jih uporablja odjemalec.

Če openssl s_client -connect vpn.example.com:443 -servername vpn.example.com ne uspe, medtem ko -tls1 -cipher DEFAULT@SECLEVEL=0 uspe, je meja različica in velikost ključa skupaj. Če prvi ukaz poroča o majhnem ključu DH namesto opozorila protokola, je različica v redu in pozornost potrebuje le skupina. Nikoli ne vstavite zasebnega ključa ali gesla v preverjanje.

Možnost 1: popustite celotnemu gostitelju s kriptografsko politiko

V Fedori in RHEL 8 in 9 update-crypto-policies --set LEGACY zniža sistemsko politiko OpenSSL, update-crypto-policies --show pa potrdi, kaj je aktivno. To običajno obnovi tunel, a politika se prebere ob zagonu procesa, zato pred ponovnim preskusom znova zaženite odjemalca in vsak pomožni proces, ki ga je ustvaril. Dovoli tudi starejše protokole in šibkejše skupine vsakemu odjemalcu TLS na stroju, od brskalnika v sosednjem oknu do upravitelja paketov, ki posodablja jedro.

Ta širina je ves smisel in vsa težava. LEGACY velja za celoten gostitelj, je trajen in se zlahka pozabi, zato bi moral biti diagnostični korak ali dokumentirana izjema na upravljani gradnji, nikoli stanje mirovanja delovne postaje. Videl sem eno, ki je ostala na LEGACY dve leti, ker jo je potreboval en sam notranji portal, in nihče ni znal povedati, kdaj se je začelo.

Debian in Ubuntu nimata enega stikala za to. Ustreznica je sprememba /etc/ssl/openssl.cnf, ki v razdelku sistemskih privzetih vrednosti nastavi nižji MinProtocol in CipherString = DEFAULT@SECLEVEL=0. Enak obseg, druga datoteka, nekoliko lažje izgubiti iz vida med nadgradnjo izdaje.

Možnost 2: ena konfiguracijska datoteka za enega odjemalca

Konfiguracija OpenSSL na proces zadrži spremembo v enem drevesu procesov, a le če je datoteka povezana tako, kot pričakuje knjižnica. Poimenovati razdelek ssl_conf ni dovolj: OpenSSL prebere ključ najvišje ravni openssl_conf, mu sledi v razdelek za inicializacijo in šele nato doseže privzete vrednosti SSL.

openssl_conf = openssl_init

[openssl_init]
ssl_conf = ssl_sect

[ssl_sect]
system_default = system_default_sect

[system_default_sect]
MinProtocol = TLSv1.0
CipherString = DEFAULT@SECLEVEL=0

Usmerite OPENSSL_CONF na to datoteko in zaženite odjemalca VPN skozi ovoj, ki jo izvozi. Vse drugo na gostitelju obdrži privzeto politiko, in to je lastnost, ki šteje, ko pride vprašanje skladnosti. Preden obtožite prehod, potrdite, da datoteka res velja: OPENSSL_CONF=/path/to/file openssl ciphers -s -tls1 mora našteti šifre TLS 1.0, prazen rezultat pa pomeni, da je veriga prekinjena in da je odjemalec tiho obdržal sistemske privzete vrednosti.

Datoteka je občutljiva na različico. OpenSSL 1.1.1 in 3.x sprejmeta enaka imena razdelkov, a obravnava direktiv okoli ponudnikov se je v 3.x spremenila, zato preverite z dnevnikom odjemalca in preskusnim rokovanjem, namesto da bi domnevali, da je bila datoteka prebrana. Tipkarska napaka v imenu razdelka ne uspe odprto, in odjemalec tiho uporabi sistemske privzete vrednosti.

Omejitev je pokritost. Vse, kar je povezano z GnuTLS ali NSS, ignorira OPENSSL_CONF, prav tako vsak pomožni proces, ki ga odjemalec zažene brez podedovanega okolja. Preden zgradite ovoj, z ldd preverite, s katero knjižnico TLS je izvršljiva datoteka dejansko povezana, ker odgovor odloči, ali ta možnost sploh obstaja.

Možnost 3: enkratna VM ali vsebnik

Za izvajalca, ki dva tedna napada en star prehod, je namenska VM s popuščeno politiko čistejša meja od delovne postaje. Stara površina in vsakodnevni profil brskalnika prenehata deliti politiko jedra, odstranitev pa je brisanje, ne ugotovitev revizije.

Še vedno je stroj v omrežju, zato omejite dostop in ga držite stran od splošnega brskanja. Strošek vzdrževanja je še ena slika za popravljanje, kar je resnično, a omejeno in vidno, v nasprotju s pozabljeno zastavo LEGACY na prenosniku.

Kaj vam primerjava pusti

Izberite po treh vprašanjih: kdo potrebuje stari protokol, kako dolgo in kdo bo opazil, če izjema preživi svoj razlog. Ena aplikacija, ena oseba, nekaj dni kažejo na konfiguracijo na proces. Cela flota za eno napravo kaže na sam prehod. Vse, kar zahteva trajno politiko LEGACY na gostitelju, je nabavna odločitev v tehnični preobleki.

Trajni popravek sodi na napravo: TLS 1.2 ali novejši, skupina vsaj 2048 bitov, šifra AEAD in potrdilo s sodobnim podpisom. Prosite lastnika naprave za to spremembo, nato pa v dnevniku odjemalca potrdite dogovorjeno različico in šifro. Zapišite izjemo z gostiteljem, prehodom, dogovorjenim protokolom, odobriteljem in datumom poteka, ker prav ta zapis prepreči, da bi začasna rešitev postala privzeta.

Sorodni članki