Vienas klientas autentifikuojasi bendru raktu, o kitas jį atmeta, nors įklijuoti simboliai abiejose pusėse atrodo vienodai. Greičiausiai tai tie patys simboliai; skirtumas tas, kurią dekodavimo taisyklę failas jiems taiko. Eilutė kabutėse imama pažodžiui, žymuo, prasidedantis 0x, skaitomas kaip šešioliktainis, o žymuo, prasidedantis 0s, skaitomas kaip Base64. Tik vienas iš šių trijų užrašymų reiškia tai, ką ketinote, todėl pataisa paprastai yra konversija, o ne geresnis slaptažodis.

Simptomas rodo į kodavimą, o ne į šifrus

Kai abu galai laiko skirtingus baitus, derybos vis tiek pavyksta, o įrodymas nepavyksta po jų. Tada žurnalas praneša apie vientisumo arba HMAC gedimą, o ne algoritmo neatitikimą, nes pasiūlymas buvo pasirinktas, o autentifikavimo žingsnis nesutapo. Ta eilutė niekada nemini slaptojo rakto formos.

Etapas yra užuomina. Gedimas, ateinantis po pasirinkto pasiūlymo, reiškia, kad abi pusės sutarė dėl visko, išskyrus rakto medžiagą, o „pasiūlymas nepasirinktas“ priklauso politikai arba šifrų rinkiniams. Vientisumo patikra, kuri nepavyksta, kai slaptažodis atrodo teisingas, yra matomasis kodavimo neatitikimo veidas.

Vienas slaptasis raktas, trys būdai, kaip failas gali jį perskaityti

Keturių baitų reikšmei key1 šešioliktainis ir Base64 yra du tų pačių baitų perkodavimai, ir tik pirmieji simboliai pasako analizatoriui, kurį jis laiko. swanctl prisijungimo duomenys laikosi tos pačios konvencijos, todėl tarp dviejų sąsajų perkelta reikšmė išlaiko prasmę tik tada, kai jos priešdėlis keliauja kartu.

10.20.0.5 %any : PSK "key1"
10.20.0.5 %any : PSK 0x6b657931
10.20.0.5 %any : PSK 0sa2V5MQ==

Du to bloko elementai atima daugiausia laiko. Šešioliktainiai skaitmenys priima abu registrus, todėl 0x6b657931 ir 0x6B657931 yra ta pati reikšmė, bet nelyginis simbolių skaičius tyliai perskaitomas neteisingai, o ne atmetamas, ir tai pastumia kiekvieną baitą po kirpimo. Base64 užpildymas priklauso reikšmei, todėl eilutė, įklijuota be savo galinių = ženklų, dekoduojama į kitus baitus, o ne garsiai nepavyksta.

Profilis, kuris kartą dekodavo reikšmę, jau ją konvertavo, todėl dekodavus dar kartą gaunami kiti baitai ir autentifikavimo gedimas, kuris skaitomas kaip neteisingas slaptažodis. Kabutės yra saugi kryptis viskam dviprasmiškam, nes turinys yra pažodinis net tada, kai prasideda kodavimo žyme.

Iš kur atsiranda Base64 tekstas

Profilio eksportai ir tiekėjų portalai dažnai perduoda raktą jau užkoduotą, paprastai duomenų lauke, kuris niekada nebuvo skirtas rankiniam įvedimui. Arba išskleiskite tą reikšmę ir saugokite dekoduotą tekstą kabutėse, arba palikite ją užkoduotą su žyme priekyje. Daryti po pusę kiekvieno yra tai, kas sugadina. Abu keliai veikia tik tada, kai visa reikšmė išgyvena kopijavimą.

Abi kryptys yra po vieną komandą, ir verta jas palikti biliete kaip tikslią operaciją, kuri sukūrė saugomą reikšmę. Vykdykite jas šia tvarka:

printf '%s' 'a2V5MQ==' | base64 -d
printf '%s' 'key1' | base64

Užkoduoto teksto įklijavimas taip, tarsi jis būtų paprastas, yra brangi klaida. Failas maišo simbolius tiksliai taip, kaip jie parašyti, išvestinis raktas išeina maždaug trečdaliu ilgesnis nei tas, kurį apskaičiavo partneris, ir kiekvienas bandymas nepavyksta taip pat be įspėjimo, nes analizatorius laikėsi jam duotos taisyklės.

Patvirtinkite, kokius baitus kiekvienas partneris iš tikrųjų naudoja

Pirmiausia perskaitykite, kaip demonas mato ryšį, o paskui autentifikavimo rezultatą, o ne spėkite priežastį iš klaidos eilutės. Saugomos ilgio palyginimas yra greita sveiko proto patikra, nes užkoduotas tekstas yra ilgesnis už jo atstovaujamus baitus. Tada patvirtinkite, kuri tapatybės eilutė atitiko, nes teisingas slaptasis raktas, įrašytas po netinkamu partneriu, nepavyksta lygiai taip pat kaip neteisingas. Eilučių tvarka tai lemia: pirmasis atitikimas laimi, todėl plati %any eilutė prie viršaus tyliai pakeičia konkrečią eilutę, kurią ką tik redagavote.

Įkelkite iš naujo, o ne paleiskite iš naujo, kai failas jau teisingas. ipsec rereadsecrets atnaujina IKE demono kopiją, o swanctl sąranka įkelia prisijungimo duomenis savo komanda. Paleidimas iš naujo numeta kiekvieną užmegztą asociaciją ir sugriauna palyginimą, kurį bandėte atlikti.

Nė viena iš šių patikrų nereikalauja atskleisti slaptojo rakto. Ilgis, tapatybės parinkiklis ir eilutės pozicija paaiškina daugumą tokių gedimų, kol kam nors dar nereikia šešioliktainės išklotinės.

Pakeiskite failą nepaslėpdami rezultato

Apribokite failą demono paskyrai ir laikykite gyvus slaptuosius raktus už bilietų, pokalbių ir ekrano kopijų ribų, nes įklijuotas raktas yra nutekėjimas, o ne diagnostika. Jis taip pat pergyvena incidentą, kuris jį sukūrė.

Bandykite iš kliento, kurio konfigūraciją kontroliuojate, patvirtinkite, kad autentifikavimas pavyksta, o paskui patvirtinkite, kad tunelis perduoda srautą. Perkrovimas, kuris sutaiso rankos paspaudimą, kai maršrutizavimas lieka sugadintas, yra kita problema, ir ji tampa matoma vos slaptajam raktui nustojus judėti.

Susiję straipsniai