Një peer i vjetër imponon TLS 1.0: kufizo përjashtimin, jo hostin
Një pajisje e bllokuar në TLS 1.0, ose një certifikatë e vjetër e ofruesit, mund të imponojë një prag më të dobët. Kufizo përjashtimin, pastaj mat çfarë u negociua vërtet.
Shfaqet një pajisje e vjetër, nuk arrin të lidhet, dhe rregullimi që duket më i shpejtë është dobësimi i të gjithë hostit derisa lidhja të ketë sukses. Ai shkëmbim është i padukshëm në çast dhe i përhershëm në praktikë, sepse askush nuk e heq një prag që më në fund funksionon. Presionin e krijojnë dy defekte shumë të ndryshme, dhe vetëm njëri prej tyre ka të bëjë fare me shifrat. Së pari klasifiko defektin, pastaj vendos përjashtimin diku ku nuk mund të përhapet.
Ndaj dështimin në dy pjesë përpara se të ndryshosh një direktivë
Rreshti i regjistrit të serverit për mungesë të një shifre të përbashkët, ose për një version protokolli të pambështetur, vjen nga kanali i kontrollit: dy skajet nuk arritën të bien dakord se si ta mbrojnë vetë negociatën. Rreshti i klientit që thotë se asnjë metodë verifikimi e certifikatës së serverit nuk është aktivizuar vjen nga një vend krejt tjetër, sepse ai klient nuk po kontrollon fare kush u përgjigj. Ndryshimi i një shifre të dhënash nuk bën asgjë për rastin e dytë, dhe shtimi i një kontrolli roli nuk bën asgjë për të parin.
Merr rreshtin më të hershëm që dështon nga secila anë, jo rreshtin e fundit përpara shkëputjes, sepse i fundit zakonisht është pasojë. Pastaj përcakto cilin skedar klienti hapi vërtet: një profil i importuar shpesh ekziston dy herë me emra të ndryshëm shfaqjeje, dhe redaktimi i kopjes që askush nuk lexon prodhon një mosndryshim bindës. Një proces në punë mban cilësimet me të cilat filloi, kështu që një skedar i ruajtur nuk është skedar i ngarkuar. Komandat më poshtë tregojnë negociatën e klientit pranë pamjes së serverit për të njëjtin përpjekje.
openvpn --config <profile>.ovpn --verb 4 2>&1 | head -n 40
journalctl -u [email protected] --since '-10 min' | grep -iE 'cipher|tls|verify'
Dëgjuesi i dytë është vendi i ndershëm për një prag më të dobët
Kur pajisja ndalon në TLS 1.0 me një kanal të dhënash para 2.5, serveri duhet të ofrojë një prag më të ulët për kanalin e kontrollit dhe një shifër të dhënash që klienti i vjetër e njeh. Direktiva e fallback ekziston pikërisht për atë peer, ndërsa lista e shifrave i mban klientët modernë në grupe moderne. Të dyja direktivat i përkasin dëgjuesit dhe jo një përdoruesi ose lidhjeje, dhe asnjë opsion për klient nuk i ngushton ato më pas. Kjo është arsyeja pse një pajisje e vjetër në portin kryesor është një vendim për çdo peer që e ndan atë port.
Aty ku platforma e lejon, drejto dëgjuesin e vjetër si instancë e vet në një port të veçantë, lejo atë port vetëm nga adresa e pajisjes dhe lëre shërbimin kryesor në paqe. Shkruaj pse ekziston dëgjuesi i dytë, në skedarin që mban konfigurimin e tij, sepse ndryshe një pastrim i ardhshëm do ta lexojë si mbetje. Ndarja ia vlen vetëm nëse pragu më i dobët mbaron aty ku mbaron pajisja.
tls-version-min 1.0
data-ciphers AES-128-GCM:AES-256-GCM:AES-256-CBC
data-ciphers-fallback AES-256-CBC
Çfarë thyen vërtet një certifikatë e vjetër e ofruesit
Gabimi i verifikimit është një lidhje roli që mungon: pa të klienti pranon çdo certifikatë që zinxhirohet me një CA të besuar, pavarësisht nëse ajo certifikatë është lëshuar për një server. Lidh certifikatën me rolin e serverit së pari dhe trajto lidhjen si kërkesë, jo si çelës rregullimi. Vetëm një profil që vazhdon të dështojë pas atij hapi ka një problem të vërtetë certifikate.
Një certifikatë e vjetër e ofruesit, madhësia e çelësit ose algoritmi i nënshkrimit i së cilës nuk përputhet më me politikën e parazgjedhur të OpenSSL, është rasti për një ndryshim të kufizuar të nivelit të sigurisë në kanalin e kontrollit. Ulja e nivelit atje nuk e fik verifikimin dhe nuk duhet të kombinohet kurrë me një CA bosh, me verifikim të çaktivizuar ose me një emër hosti të paprovuar. Mbaje rreshtin brenda profilit të vetëm që ka nevojë për të; eksportimi global i një konfigurimi OpenSSL të lehtësuar do t'i jepte të njëjtën lehtësi çdo programi në makinë.
remote-cert-tls server
tls-cipher "DEFAULT:@SECLEVEL=0"
Lexo vlerat e negociuara, jo banerin
Në verbosity 4 të dy skajet shtypin versionin TLS dhe shifrën e kanalit të kontrollit për të cilat ranë dakord, dhe shifrën e të dhënave të sesionit. Lexo ato rreshta dhe jo banerin e inicializimit, i cili raporton sukses dhe jo kushtet e tij. Pastaj rilidh një klient modern me dëgjuesin kryesor dhe konfirmo që ai ende ulet në një grup modern, sepse një përjashtim që ka rrjedhur në konfigurimin e përbashkët shfaqet këtu i pari. Vlerat që kopjon bëhen baza për rishikimin e radhës.
Testo pajisjen e vjetër vetëm: duhet të lidhet dhe duhet të jetë sesioni i vetëm në regjistra që tregon parametrat më të dobët. Nëse edhe një peer i dytë negocion grupin e vjetër, përjashtimi është më i gjerë se sa synohej dhe ndarja e dëgjuesve nuk ndodhi vërtet. Regjistro të dy vëzhgimet dhe jo vetëm përfundimin.
Çdo përjashtim ka nevojë për një pronar dhe një datë
Një përjashtim pa kusht heqjeje bëhet në heshtje parazgjedhje, prandaj vendos pajisjen, pronarin, arsyen dhe datën kur zhduket pranë konfigurimit që ai justifikon. Pa atë rresht pragu më i dobët i mbijeton harduerit që kishte nevojë për të.
Zëvendësimi i klientit, ose kërkimi i një profili aktual nga ofruesi, është rezultati që duhet synuar; përjashtimi është një shtyrje dhe jo një dizajn. Kur pajisja del në pension, hiq dëgjuesin dhe profilin në të njëjtin ndryshim, që asnjëra gjysmë të mos vazhdojë të punojë. Asgjë nga kjo nuk i bën të sigurt parametrat e vjetër, thjesht pengon që kufiri i një pajisjeje të bëhet baza e të gjithëve.