Unjildige TLS-ferzje fan AnyConnect op Linux: behein earst de omfang fan de oplossing
In LEGACY-belied foar de hiele host, in OpenSSL-konfiguraasje per proses en in weispitbere VM ferlike, plus de gateway-feroaring dy’t de flater foar altyd fuorthellet.
Dizze flater komt foar de wachtwurdoanfrage, en dat is it nuttige part: der is noch neat autentisearre, dus de oanmeldgegevens binne it probleem net. Op Linux kin deselde AnyConnect-dialooch komme fan in âlde protokolferzje, in 1024-bits kaai-útwikselingsgroep of in syfersamling dy’t it kryptobelied fan it systeem wegere. Ik haw it op trije masines op trije ferskillende manieren fuorthelle, en wat dy oplossingen skiedt is de omfang, net de fernimstigens. Elk is op it rjochte plak te ferdigenjen en oeral oars in minne standert.
Lês it berjocht foardat jo it belied oanreitsje
Hâld de krekte tekenrige út de dialooch. In ferzjeklacht wiist op ‘e protokollaach, in sertifikaatklacht op fertrouwen of nammejouwing, en in mislearre oanmelding op ‘e oanmeldgegevens. In gateway dy’t TLS 1.0 biedt mei in 1024-bits DHE-groep, AES-256-CBC en in SHA-1-hantekening kin in folslein jildich sertifikaat hawwe en dochs troch in modem belied wegere wurde foardat jo gegevens ea ferstjoerd wurde.
Probearje it einpunt mei de OpenSSL fan it systeem, mei de echte hostnamme en de poarte dy’t de klant brûkt.
As openssl s_client -connect vpn.example.com:443 -servername vpn.example.com mislearret wylst -tls1 -cipher DEFAULT@SECLEVEL=0 slagget, dan is de grins ferzje en kaai grutte tegearre. As it earste kommando in lytse DH-kaai meldt ynstee fan in protokolalarm, is de ferzje goed en hat allinnich de groep oandacht nedich. Stop nea in priveekaai of in wachtwurd yn ‘e test.
Opsje 1: fersoepje de hiele host mei it kryptobelied
Op Fedora en RHEL 8 en 9 ferleget update-crypto-policies --set LEGACY it systeembelied fan OpenSSL, en update-crypto-policies --show befêstiget wat aktyf is. It herstelt meastentiids de tunnel, mar it belied wurdt lêzen as in proses start, dus start de klant en elk helpmiddel dat er makke hat opnij foardat jo wer teste. It tastean ek âldere protokollen en swakkere groepen foar elke TLS-klant op ‘e masine, fan ‘e browser yn it neistlizzende finster oant de pakketbehearder dy’t de kearn bywurket.
Dy breedte is it hiele doel en it hiele probleem. LEGACY jildt foar de hiele host, is duorsum en maklik te ferjitten, dus it moat in diagnostyske stap of in dokumintearre útsûndering wêze op in beheard build, nea de rêststân fan in wurkstasjon. Ik haw ien sjoen dy’t twa jier op LEGACY bleau om’t ien yntern portal it nedich hie, en nimmen koe sizze wannear’t it begûn.
Debian en Ubuntu hawwe gjin inkelde skeakel hjirfoar. It ekwivalint is in bewurking fan /etc/ssl/openssl.cnf dy’t in legere MinProtocol en CipherString = DEFAULT@SECLEVEL=0 yn ‘e seksje foar systeemstanderts set. Deselde omfang, oar bestân, wat makliker út it each te ferliezen by in ferzjefernijing.
Opsje 2: ien konfiguraasjebestân foar ien klant
In OpenSSL-konfiguraasje per proses hâldt de feroaring binnen ien prosesbeam, mar allinnich as it bestân betrape is sa’t de bibleteek ferwachtet. In seksje ssl_conf neame is net genôch: OpenSSL lêst de kaai openssl_conf op haadnivo, folget dy nei in inisseksje en berikt pas dan de SSL-standerts.
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=0Rjochtsje OPENSSL_CONF op dat bestân en start de VPN-klant fia in wraber dy’t it eksportearret. Al it oare op ‘e host hâldt it standertbelied, en dat is de eigenskip dy’t ta saak docht as de fraach nei neilibjen komt. Befêstigje dat it bestân echt fan krêft is foardat jo de gateway de skuld jouwe: OPENSSL_CONF=/path/to/file openssl ciphers -s -tls1 heart TLS 1.0-sifers te listjen, en in leech resultaat betsjut dat de keatling brutsen is en de klant stilwei de systeemstanderts hâlden hat.
It bestân is gefoelich foar ferzjes. OpenSSL 1.1.1 en 3.x akseptearje deselde seksjenammen, mar it behanneljen fan rjochtlinen om leveransiers hinne feroare yn 3.x, dus kontrolearje mei it log fan ‘e klant en in testhânjaan ynstee fan oan te nimmen dat it bestân lêzen is. In typflater yn ‘e seksjename mislearret iepen, en de klant brûkt stilwei de systeemstanderts.
De beheining is dekking. Alles wat keppele is oan GnuTLS of NSS negearret OPENSSL_CONF, en sa ek elk helpproses dat de klant start sûnder it miljeu te erven. Kontrolearje mei ldd oan hokker TLS-bibleteek it binaries echt keppele is foardat jo de wraber bouwe, want it antwurd beslút oft dizze opsje sels bestiet.
Opsje 3: in weispitbere VM of kontener
Foar in opdrachtnemer dy’t twa wiken ien âlde gateway oanrint, is in aparte VM mei it fersoepjend belied in skjinner grins as it wurkstasjon. It âlde oerflak en it deistige browserprofyl diele gjin kearnbelied mear, en it fuortdwaan is in wiskjen ynstee fan in auditbefining.
It is noch altyd in netwurkkmasine, dus behein de tagong en hâld it bûten algemien browsen. De ûnderhâldskosten binne noch in byld om te patchen, wat echt mar beheind en sichtber is, oars as in fergetten LEGACY-flagge op in laptop.
Wat de ferliking jo litte
Kies op trije fragen: wa hat it âlde protokol nedich, hoelang, en wa merkt it as de útsûndering har reden oerlibbet. Ien app, ien persoan, in pear dagen wiist op ‘e konfiguraasje per proses. In hiele float efter ien apparaat wiist op ‘e gateway sels. Alles wat in permanint LEGACY-hostbelied nedich hat, is in oankeapbeslissing yn technyske klean.
De duorsume oplossing heart by it apparaat: TLS 1.2 of nijer, in groep fan teminsten 2048 bits, in AEAD-sifer en in sertifikaat mei in modem hantekening. Freegje de eigner fan it apparaat om dy feroaring en befêstigje dan de úthannele ferzje en sifer yn it klantlog. Skriuw de útsûndering op mei de host, de gateway, it úthannele protokol, de goedkarrende en in ferfaldatum, want dy notysje is wat foarkomt dat in tydlike omgong de standert wurdt.