Dva administratora usporede tajnu na zaslonu, slože se da se podudara, a tunel ipak ne prolazi autentifikaciju. Niz koji su usporedili nije vrijednost koju ni jedan kraj unosi u izvođenje ključa. Između znakova koje vidite i bajtova koje protokol raspršuje nalaze se vrsta polja, tekstno kodiranje, uređivač i međuspremnik, a bilo koja od te četiri može promijeniti unos bez promjene izgleda. Usporedite bajtove i neslaganje se obično pokaže u sekundama.

Što pristupnik čini s nizom

Unaprijed dijeljeni ključ ne šalje se preko mreže i ne uspoređuje. Svaka strana unosi svoju lokalnu kopiju u izvođenje ključa za IKE razmjenu, a rezultirajući korisni tereti autentifikacije ili prolaze provjeru ili ne. Takav dizajn znači da dvije kopije moraju biti bajtno identične, a ne vizualno slične, i također znači da se pogreška prijavljuje u fazi autentifikacije, a ne kao poruka o pogrešnoj zaporki.

Zato korisno pitanje nikada nije „izgleda li ovo isto“, već „koji točan slijed bajtova svaka implementacija raspršuje“.

Odakle dolaze dodatni bajtovi

Završni novi red klasičan je krivac i skriva se naočigled jer većina uređivača nevidljivo ga dodaje pri spremanju datoteke. Razmak na početku ili kraju zalijepljen iz prozora za razgovor čini isto, kao i pametni navodnik koji je program za obradu teksta zamijenio ravnim. Ništa od toga ne mijenja vizualnu usporedbu koju obavlja čovjek.

Usporedite alatom koji prikazuje bajtove, a ne glifove. printf '%s' "$PSK" | xxd | tail -2 ispisuje kraj vrijednosti u heksadecimalnom obliku, gdje je zalutali 0a ili 20 očit. Učinite to na oba kraja i usporedite dva ispisa jedan uz drugi. Radite to na generiranom testnom materijalu, a ne na produkcijskoj tajni koju potom ostavljate u povijesti ljuske.

Kodirano nije šifrirano

Izvoz konfiguracije često nosi tajnu u osnovnom kodiranju, ponekad s prijelomima retka svakih šezdeset ili sedamdeset i šest znakova, a ponekad s dopunom. Ako jedan kraj očekuje dekodirane bajtove, a vi zalijepite kodirani tekst, niste poslali drugu zaporku, poslali ste mnogo dužu zaporku sastavljenu od ispisivih znakova. Base64 ne pruža nikakvu povjerljivost, zbog čega se kodirana tajna nikada ne smije lijepiti na forum za drugo mišljenje.

Appleov IPSec rječnik koristan je primjer važnosti vrste: dokumentira SharedSecret kao podatke za metodu autentifikacije dijeljenom tajnom u korisnim teretima L2TP i Cisco IPsec. To je specifično svojstvo u specifičnom teretu, a ne općenito tekstno polje koje možete ponovno upotrijebiti za drugi protokol koji slučajno traži tajnu.

Tvrđena granica pripada jednoj kombinaciji

Stari izvještaji o gornjoj granici od trideset i dva znaka na jednom Apple klijentu stvarni su izvještaji o jednoj verziji klijenta, protokolu i obliku profila. Oni nisu univerzalna granica za svaku Apple platformu, svakog davatelja usluga i svaki protokol. Provjerite verziju, vrstu tereta i zahtjev pristupnika zajedno, pa testirajte na odobrenom rasporedu umjesto da zaključujete iz teme. Zapišite testiranu kombinaciju u zapis o promjenama, jer će se sljedeća osoba inače pozvati na istu temu s više pouzdanja nego što zaslužuje.

Ako se granica doista primjenjuje, odgovor je podržan dizajn vjerodajnica koji se u nju uklapa, a ne skraćena verzija jake tajne. Skraćivanje produkcijskog ključa radi zadovoljenja pretpostavljene granice trajno smanjuje njegovu snagu i stvara sustav čija dokumentacija više ne odgovara njegovoj sigurnosti.

Ispravite prikaz, ne snagu

Kada autentifikacija ne uspije nakon što je prikaz potvrđen, pročitajte važeću politiku u fazi autentifikacije: koja se metoda pregovara, koji se identitet partnera očekuje i odgovara li pristupnik vezi koju mislite. Postupno slabije pretpostavke nisu dijagnoza, one su sporo degradiranje s priloženim zahtjevom za podršku.

Ako tražene vjerodajnice ne mogu zadovoljiti standard organizacije, promijenite dizajn na onaj koji može. Dijeljena tajna s dovoljno entropije, generirana jednom, pohranjena u upravljanom polju i nikada objavljena, posve je dobar odgovor; njezina kraća verzija nije.

Povezani članci