Šifry Windows a strongSwan: zlaďte správnu vrstvu
Rovnaká dĺžka kľúča ešte nie je kompatibilná sada. Oddeľte politiku IKE od transformácií ESP a držte CBC a GCM v rôznych návrhoch.
Obe strany hovoria AES-128 a tunel sa napriek tomu odmieta zostaviť. CBC a GCM sú rôzne transformácie, ktoré náhodou zdieľajú rovnakú dĺžku kľúča, a klient ponúkajúci jednu neuspokojí bránu, ktorá prijíma iba druhú. Slovo AES opisuje rodinu, nie dohodu.
Existuje aj druhá os a práve tá vytvára mätúce chyby.
Dve vrstvy, dva nezávislé zoznamy
IKE chráni samotné vyjednávanie, zatiaľ čo podriadená asociácia chráni prevádzku, na ktorej vám skutočne záleží. Windows vystavuje prvú ako metódu šifrovania a metódu integrity a druhú ako konštanty transformácie šifry a autentifikácie. Tieto polia nie sú navzájom aliasmi a hodnota platná v jednom môže byť v druhom nezmyselná alebo nesprávna. Čítanie profilu s týmto rozdelením na mysli odstráni väčšinu zmätku.
Praktickým dôsledkom je, že môžete mať úplne prijateľnú politiku výmeny kľúčov a politiku dátového kanála, ktorú partner neprijme. Jeden zoznam vyjednáva; druhý chráni pakety. Zmena hodnoty v prvom nemá na druhý žiadny vplyv, nech už oba v konfiguračnom dialógu vyzerajú akokoľvek podobne.
Zapíšte oba zoznamy skôr, než ich porovnáte s bránou. Porovnanie z pamäti je spôsob, akým sa jedno pole upraví dvakrát a druhé nikdy. Majte konzolu brány otvorenú vedľa profilu.
Čítajte chybu vedľa návrhov
Fáza, ktorá zlyhala, vám povie, ktorý zoznam preskúmať. Odmietnutie počas počiatočnej výmeny kľúčov je problém návrhu IKE, a nastáva skôr, než existuje akákoľvek podriadená asociácia. Zlyhanie pri vyjednávaní asociácie chránenej prevádzky je problém návrhu ESP a výmena kľúčov už uspela. Všeobecná správa o zhode politiky od klienta nepomenuje ani jednu fázu, preto je užitočný vlastný pohľad brány.
swanctl --list-conns
swanctl --list-sas
journalctl -u strongswan -n 60 --no-pager
Porovnajte prijatý návrh, nakonfigurovaný návrh a vybraný pre tento jediný pokus. Závisia tu na troch rôznych zoznamoch a iba posledný opisuje, čo sa skutočne použilo. Uveďte ho v tikete doslovne, namiesto toho, aby ste ho zhrnuli.
Držte CBC a GCM ako samostatné alternatívy
Brána, ktorej je zámerne dovolené prijať ktorúkoľvek rodinu, potrebuje dva návrhy, nie jeden. V strongSwan čiarka oddeľuje alternatívy a pomlčka spája komponenty jednej sady. Spojenie oboch rodín pomlčkami vytvorí jeden nemožný návrh namiesto dvoch prijateľných.
proposals = aes128gcm16-prfsha256-ecp256, aes128-sha256-ecp256
esp_proposals = aes128gcm16-ecp256
Prvá alternatíva nesie autentizované šifrovanie a stále uvádza pseudonáhodnú funkciu, pretože odvodenie kľúča ju potrebuje, aj keď integrita pochádza zo šifry. Druhá alternatíva je klasické šifrovanie so samostatným algoritmom integrity. Obe zostávajú závislé od toho, čo podporuje načítaná kryptografická implementácia.
Návrh ESP nie je premenovaný návrh IKE
Token šifry vyzerá v oboch zoznamoch rovnako a takmer nič ďalšie sa neprenáša. Návrh ESP nemá pseudonáhodnú funkciu výmeny kľúčov a jeho požiadavky na integritu a dopredné utajenie sa obhajujú proti politike Windows na druhej strane, namiesto toho, aby sa kopírovali z riadku IKE. Mechanický preklad jedného zoznamu do druhého vytvorí niečo, čo prejde validáciou a nikdy nevyjedná.
Vyberte smer a držte sa ho. Buď brána zachová politiku iba GCM a klient nasadí úplnú kompatibilnú politiku, alebo brána prijme obe rodiny a klient si ponechá svoju existujúcu sadu. Zapnutie záložnej možnosti, ktorú bezpečnostná politika zakazuje, nie je oprava, akokoľvek rýchlo odstráni chybu.
Overte obe sady a potom obnovu kľúča
Potvrďte oddelene vybranú sadu výmeny kľúčov a vybranú sadu prevádzky, pretože pochádzajú z rôznych zoznamov a môžu uspieť nezávisle. Potom nechajte prebehnúť obnovu kľúča a potvrďte aj ju. Prvý fungujúci handshake a zlyhávajúca obnova kľúča opisujú sadu návrhov, ktorá je len čiastočne prijateľná.
Uchovajte tento dôkaz pri zmene. Opakované odpojenie potrebuje vlastný záznam o neúspešnej výmene, skôr než niekto obviní časovač alebo závadu platformy.