Vopred zdieľaný kľúč IPsec: bajty za zadaným reťazcom
Dve strany môžu mať reťazce, ktoré vyzerajú identicky, a odvodiť rôzne kľúče. Skontrolujte typ poľa, akékoľvek kódovanie a koncové bajty, kým čokoľvek oslabíte.
Dvaja správcovia porovnajú tajomstvo na obrazovke, zhodnú sa, že sa zhoduje, a tunel napriek tomu neprejde autentifikáciou. Reťazec, ktorý porovnali, nie je hodnota, ktorú ktorákoľvek strana vkladá do odvodenia kľúča. Medzi znakmi, ktoré vidíte, a bajtmi, ktoré protokol hashuje, je typ poľa, textové kódovanie, editor a schránka a ktorýkoľvek zo štyroch môže zmeniť vstup bez zmeny vzhľadu. Porovnajte bajty a nezhoda sa zvyčajne objaví v priebehu sekúnd.
Čo brána robí s reťazcom
Vopred zdieľaný kľúč sa neprenáša po drôte a neporovnáva. Každá strana vloží svoju miestnu kópiu do odvodenia kľúča pre výmenu IKE a výsledné autentifikačné užitočné zaťaženia sa buď overia, alebo nie. Takýto návrh znamená, že obe kópie musia byť bajtovo identické, nie len vizuálne podobné, a tiež znamená, že zlyhanie sa hlási vo fáze autentifikácie, nie ako správa o nesprávnom hesle.
Užitočná otázka teda nikdy nie je „vyzerajú rovnako“, ale „akú presnú postupnosť bajtov hashuje každá implementácia“.
Odkiaľ sa berú bajty navyše
Koncový nový riadok je klasický vinník a skrýva sa na očiach, pretože väčšina editorov ho pri ukladaní súboru neviditeľne pridá. Úvodná alebo koncová medzera vložená z chatovacieho okna robí to isté, rovnako ako typografická úvodzovka nahradená rovnou textovým procesorom. Nič z toho nemení vizuálne porovnanie, ktoré vykonáva človek.
Porovnávajte nástrojom, ktorý zobrazuje bajty, nie glyfy. printf '%s' "$PSK" | xxd | tail -2 vypíše koniec hodnoty v šestnástkovej sústave, kde je zatúlaný 0a alebo 20 zrejmý. Urobte to na oboch koncoch a porovnajte oba výpisy vedľa seba. Robte to na generovanom testovacom materiáli, nie na produkčnom tajomstve, ktoré potom necháte v histórii shellu.
Kódované nie je šifrované
Exporty konfigurácie často nesú tajomstvo v základnom kódovaní, niekedy so zlommi riadkov každých šesťdesiat alebo sedemdesiatšesť znakov a niekedy s doplnením. Ak jeden koniec očakáva dekódované bajty a vy vložíte kódovaný text, neposlali ste iné heslo, poslali ste oveľa dlhšie heslo zložené z tlačiteľných znakov. Base64 neposkytuje žiadnu dôvernosť, a preto sa kódované tajomstvo nikdy nesmie vkladať na fórum pre druhý názor.
Apple slovník IPSec je užitočný príklad toho, že na type záleží: dokumentuje SharedSecret ako údaje pre metódu autentifikácie zdieľaným tajomstvom v užitočných zaťaženiach L2TP a Cisco IPsec. To je konkrétna vlastnosť v konkrétnom zaťažení, nie všeobecné textové pole, ktoré môžete znova použiť pre iný protokol, ktorý náhodou žiada tajomstvo.
Tvrdený limit patrí jednej kombinácii
Staré správy o strope tridsiatich dvoch znakov na jednom klientovi Apple sú skutočné správy o jednej verzii klienta, protokole a tvare profilu. Nie sú univerzálnym limitom pre každú platformu Apple, každého poskytovateľa a každý protokol. Skontrolujte verziu, typ užitočného zaťaženia a požiadavku brány spoločne, potom testujte na schválenom usporiadaní namiesto usudzovania z vlákna. Zapíšte testovanú kombináciu do záznamu o zmenách, inak sa ďalší človek bude odvolávať na to isté vlákno s väčšou istotou, než si zaslúži.
Ak limit skutočne platí, odpoveďou je podporovaný návrh prihlasovacích údajov, ktorý sa doň zmestí, nie skrátená verzia silného tajomstva. Skrátenie produkčného kľúča, aby vyhovel odhadovanému limitu, natrvalo znižuje jeho silu a vytvára systém, ktorého dokumentácia už nezodpovedá jeho zabezpečeniu.
Opravte reprezentáciu, nie silu
Keď autentifikácia zlyhá po potvrdení reprezentácie, prečítajte si účinnú politiku vo fáze autentifikácie: ktorá metóda sa vyjednáva, ktorá identita partnera sa očakáva a či brána zodpovedá spojeniu, ktoré si myslíte. Postupne slabšie odhady nie sú diagnostika, sú to pomalé znižovanie úrovne s priloženým tiketom podpory.
Ak požadované prihlasovacie údaje nemôžu splniť štandard organizácie, zmeňte návrh na taký, ktorý ho splniť môže. Zdieľané tajomstvo s dostatočnou entropiou, vygenerované raz, uložené v spravovanom poli a nikdy nezverejnené, je úplne dobrá odpoveď; jeho kratšia verzia nie.