IPsec iš anksto bendrinamas raktas: baitai už jūsų įvestos eilutės
Dvi pusės gali turėti vienodai atrodančias eilutes ir išvesti skirtingus raktus. Patikrinkite lauko tipą, bet kokią koduotę ir baigiamuosius baitus prieš ką nors silpnindami.
Du administratoriai palygina slaptąjį raktą ekrane, sutinka, kad jis sutampa, o tunelis vis tiek nepraeina autentifikavimo. Eilutė, kurią jie palygino, nėra reikšmė, kurią bet kuri pusė perduoda raktų išvedimui. Tarp matomų simbolių ir baitų, kuriuos protokolas maišo, yra lauko tipas, teksto koduotė, redaktorius ir mainų atmintinė, ir bet kuris iš keturių gali pakeisti įvestį nepakeisdamas jos išvaizdos. Palyginkite baitus ir neatitikimas paprastai paaiškėja per sekundes.
Ką šliuzas daro su eilute
Iš anksto bendrinamas raktas nesiunčiamas tinklu ir nelyginamas. Kiekviena pusė savo vietinę kopiją perduoda IKE mainų raktų išvedimui, o gautos autentifikavimo naudingosios apkrovos arba patvirtinamos, arba ne. Toks dizainas reiškia, kad dvi kopijos turi būti identiškos baitais, o ne vizualiai panašios, ir taip pat reiškia, kad klaida pranešama autentifikavimo etape, o ne kaip pranešimas apie neteisingą slaptažodį.
Taigi naudingas klausimas niekada nėra „ar jos atrodo vienodai“, o „kokią tikslią baitų seką maišo kiekviena implementacija“.
Iš kur atsiranda papildomi baitai
Baigiamoji nauja eilutė yra klasikinis kaltininkas, ir ji slepiasi atviroje vietoje, nes dauguma redaktorių išsaugant failą nepastebimai prideda vieną. Iš pokalbių lango įklijuotas pradinis arba baigiamasis tarpas daro tą patį, kaip ir teksto apdorojimo programa pakeista tipografinė kabutė tiesiąja. Nė vienas iš jų nekeičia vizualaus palyginimo, kurį atlieka žmogus.
Palyginkite įrankiu, kuris rodo baitus, o ne glifus. printf '%s' "$PSK" | xxd | tail -2 išspausdina reikšmės pabaigą šešioliktaine, kur pasimetęs 0a arba 20 yra akivaizdus. Atlikite tai abiejuose galuose ir palyginkite du išspaudus vieną šalia kito. Darykite tai su sugeneruota bandymų medžiaga, o ne su produkcijos paslaptimi, kurią paskui paliekate shell istorijoje.
Koduota nereiškia užšifruota
Konfigūracijos eksportai dažnai neša slaptąjį raktą bazinėje koduotėje, kartais su eilučių lūžiais kas šešiasdešimt ar septyniasdešimt šešis simbolius, o kartais su užpildu. Jei vienas galas tikisi dekoduotų baitų, o jūs įklijuojate koduotą tekstą, jūs nesiuntėte kitokio slaptažodžio, jūs nusiuntėte daug ilgesnį slaptažodį iš spausdinamų simbolių. Base64 visiškai nesuteikia konfidencialumo, todėl koduotos paslapties niekada negalima klijuoti forume dėl antros nuomonės.
Apple IPSec žodynas yra naudingas pavyzdys, kad tipas svarbus: jis dokumentuoja SharedSecret kaip duomenis bendro slaptojo rakto autentifikavimo metodui L2TP ir Cisco IPsec naudingojoje apkrovoje. Tai konkreti savybė konkrečioje apkrovoje, o ne bendras teksto laukas, kurį galite pakartotinai naudoti kitam protokolui, kuris atsitiktinai prašo slaptojo rakto.
Teigiama riba priklauso vienai kombinacijai
Senas ataskaitas apie trisdešimt dviejų simbolių lubas viename Apple kliente yra tikros ataskaitos apie vieną kliento versiją, protokolą ir profilio formą. Jos nėra universali riba kiekvienai Apple platformai, kiekvienam tiekėjui ir kiekvienam protokolui. Patikrinkite versiją, apkrovos tipą ir šliuzo reikalavimą kartu, tada bandykite patvirtintoje konfigūracijoje, o ne darykite išvadas iš gijos. Įrašykite išbandytą kombinaciją į pakeitimų žurnalą, nes kitaip kitas žmogus cituos tą pačią giją su didesniu pasitikėjimu, nei ji nusipelno.
Jei riba tikrai taikoma, atsakymas yra palaikomas prisijungimo duomenų dizainas, kuris ją atitinka, o ne sutrumpinta stipraus slaptojo rakto versija. Produkcijos rakto trumpinimas, siekiant patenkinti spėjamą ribą, visam laikui sumažina jo stiprumą ir sukuria sistemą, kurios dokumentacija nebeatitinka jos saugumo.
Taisykite pateikimą, o ne stiprumą
Kai autentifikavimas nepavyksta patvirtinus pateikimą, perskaitykite galiojančią politiką autentifikavimo etape: koks metodas deramasi, kokio partnerio tapatybės tikimasi ir ar šliuzas atitinka ryšį, kurį manote. Palaipsniui silpnesni spėjimai nėra diagnostika, tai lėtas sumažinimas su pridėtu palaikymo bilietu.
Jei reikiami prisijungimo duomenys negali atitikti organizacijos standarto, pakeiskite dizainą tokiu, kuris gali. Bendras slaptasis raktas su pakankama entropija, sugeneruotas vieną kartą, saugomas valdomame lauke ir niekada nepaskelbtas, yra visiškai geras atsakymas; trumpesnė jo versija – ne.