IKE počinje, oba sagovornika oglašavaju AES, a tunel i dalje pada sa NO_PROPOSAL_CHOSEN. Zapis imenuje predlog, ali ne i polje koje se nije poklopilo. Predlog je jedna kompletna ponuda, i jedno nekompatibilno polje poništava celu kombinaciju, a ne samo taj red. Čitanje predloga kao vreće nezavisnih izbora algoritama uobičajen je razlog zašto nepodudaranje ostaje nevidljivo.

Dva pregovora sa odvojenim listama predloga

IKEv2 gradi dve sigurnosne asocijacije. Prva je IKE SA, koja štiti samu razmenu upravljanja, a druga je CHILD SA, koja prenosi vaš saobraćaj kroz ESP. Svaka ima sopstvenu listu predloga, a sagovornik može prihvatiti jednu i odbiti drugu.

Ta podela objašnjava čestu zbrku: ispravna IKE SA dokazuje samo da su se algoritmi upravljačkog kanala poklopili. Ako predlog CHILD ne uspe, tunel nikada ne prenese nijedan paket, iako je prva faza završena i zapisi na vrhu izgledaju zdravo.

Redosled unutar svake liste takođe je važan. Odgovarač bira iz inicijatorovih poređanih ponuda, pa premeštanje široko kompatibilnog unosa iznad uskog menja koji će se skup instalirati, bez promene ijednog imena algoritma. Fiksirajte taj redosled u konfiguraciji umesto da se oslanjate na podrazumevane vrednosti. Stabilan redosled čini i poređenje zapisa između lokacija smislenim.

Koja polja pripadaju kojem predlogu

Skup polja je mali, ali nije isti u oba pregovora. Čitajte tabelu red po red, jer polje u jednoj koloni može izostati u drugoj. Sintaksa se razlikuje po implementaciji; strongSwan dokumentacija o predlozima je jedan konkretan izvor.

FieldIKE SA proposalCHILD SA proposal
EncryptionRequiredRequired
IntegrityRequired unless AEADRequired unless AEAD
PRFRequiredNot present
DH groupRequiredOnly for PFS
ESNNot presentOptional

Polje šifriranja imenuje šifru i, u većini sintaksi, dužinu ključa. Polje integriteta imenuje heš koji se koristi za autentifikaciju šifrovanog teksta, a PRF imenuje funkciju koja izvodi ključni materijal za IKE SA. DH grupa uspostavlja novi zajednički tajni materijal, zbog čega se pojavljuje na obe strane, ali u različite svrhe.

Prošireni redni brojevi pripadaju samo putanji podataka. Oni proširuju prostor rednih brojeva i pregovaraju se kao deo CHILD predloga, pa nepodudaranje tamo odbija CHILD ponudu, dok IKE SA ostaje netaknut.

Kako se bira jedna kompletna ponuda

Svaki predlog je skup, a odgovarač traži skup u kojem je svako obavezno polje prihvatljivo. Dve liste mogu obe sadržati AES i SHA-256 i ipak nemati kompatibilan unos, jer se dužina ključa, PRF ili DH grupa razlikuju. Poređenje se obavlja po predlogu, a ne po algoritmu.

Kada se ništa ne poklopi, odgovarač šalje NO_PROPOSAL_CHOSEN sa tipom SA koji nije uspeo. Pročitajte na koju se listu predloga odnosi obaveštenje pre nego što uredite konfiguraciju; menjanje ESP algoritama kada je IKE predlog odbijen troši ciklus otklanjanja grešaka.

Ponašanje pri izboru vredi znati kada podešavate profil. Neke implementacije preferiraju redosled inicijatora, druge preslažu po lokalnoj politici, pa skup koji radi između dva dobavljača može nestati kada obrnete koju stranu pokreće vezu.

AEAD uklanja polje umesto da ga dodaje

AES-GCM i ChaCha20-Poly1305 autentifikuju i šifruju u jednoj operaciji. Kada se bilo koji od njih izabere za ESP, algoritam integriteta se ne pregovara odvojeno, jer AEAD konstrukcija već pokriva to. Zato je predlog koji spaja AES-GCM sa SHA-256 u najboljem slučaju suvišan, a u najgorem odbijen.

PRF je i dalje odvojen na IKE strani, jer izvodi ključeve za upravljački kanal umesto da štiti korisni teret. Zato IKE predlog može legitimno kombinovati AEAD šifru sa PRF-om i DH grupom, dok odgovarajući ESP predlog navodi samo AEAD šifru i opcionu PFS grupu.

Dužina ključa deo je tokena za šifriranje, pa su AES-128-GCM i AES-256-GCM različite ponude. Profil kopiran iz vodiča koji je pretpostavljao 256-bit ključeve neće se poklopiti sa krajnjom tačkom konfigurisanom za 128-bit, iako oba reda kažu AES-GCM. Dva sagovornika mogu se složiti o porodici šifri i ipak odbiti jedan drugog zbog broja nakon crtice.

Čitajte instaliranu SA, a ne konfiguraciju

Konfigurisana lista predloga je ponuda; instalirana SA je rezultat. Na strongSwan-u i Linux kernelu oba prikaza su dostupna:

sudo swanctl --list-sas
sudo ip xfrm state
sudo ip xfrm policy

swanctl --list-sas ispisuje pregovarane algoritme po SA, uključujući i to da li CHILD koristi AEAD. ip xfrm state pokazuje šta je kernel stvarno instalirao, i to je mesto gde potvrđujete da obnova ključa nije pala na drugačiji skup od onog koji ste dokumentovali.

Sačuvajte taj izlaz uz konfiguraciju nakon popravke. Kada ažuriranje klijenta promeni podrazumevane vrednosti, zabeleženi skup vam daje osnovu za poređenje, a poređenje pokazuje na polje koje se pomerilo umesto da istragu počinje iznova.

Povezani članci