IKEv2 nije jedan rukovanje: IKE SA, autentikacija, pa CHILD SA
Odgovor pristupnika dokazuje dostupnost, ne identitet. Prati IKE_SA_INIT, IKE_AUTH i prvi CHILD SA, pa provjeri što mora biti istinito prije nego promet prođe.
Možda mislite da je IKEv2 veza jedan razgovor koji završava šifriranjem vašeg prometa. Ima ih najmanje dva, a prvi nikoga ne autentificira. Strane počinju kontrolnim porukama, dogovaraju kriptografske parametre, dokazuju identitet i tek onda pregovaraju stanje koje prenosi aplikacijske pakete. Taj poredak objašnjava nesklad o kojem ljudi stalno izvještavaju: pristupnik odgovara, klijent kaže da je spojen, a privatna aplikacija i dalje prelazi vrijeme čekanja. Evo što svaka faza zapravo radi i što mora biti istinito nakon nje.
Mit: ako pristupnik odgovori, spojeni ste
Odgovor na prvu poruku dokazuje da je krajnja točka dostupna i spremna razgovarati. Ne dokazuje da je račun prihvaćen, da je lanac certifikata provjeren ili da je ikakva politika podataka instalirana.
Ti se kvarovi događaju kasnije i daju različite simptome. Odbacivanje certifikata ili EAP kvar dolazi nakon što je prvi razgovor već uspio, zato ping na UDP 500 i zelena ikona klijenta govore tako malo.
IKE_SA_INIT: dogovorite parametre, ne identitet
Prvi razgovor nosi prijedloge za IKE sigurnosnu asocijaciju: algoritme šifriranja i integriteta, pseudoslučajnu funkciju i Diffie-Hellman grupu. Strane također razmjenjuju nonce, a svaka strana izvodi ključni materijal za IKE SA iz zajedničke tajne koju te vrijednosti proizvode. Ništa u ovom razgovoru ne utvrđuje tko je druga strana. Utvrđuje da obje strane mogu izračunati iste ključeve i da se slažu o prijedlogu. Odgovarač kojem se nijedan prijedlog ne sviđa ovdje odbacuje razgovor, zato nesklad verzije ili algoritma izgleda kao da je poslužitelj pao.
IKE SA stvoren u ovoj točki štiti sve kasnije upravljačke razgovore. To je njegov posao, i to je drugi posao od zaštite vaših paketa.
IKE_AUTH: dokažite identitet, pa izgradite prvi CHILD SA
Drugi razgovor nosi identitet. S certifikatima, svaka strana potpisuje svojim privatnim ključem i predstavlja lanac koji druga mora provjeriti; s EAP-om, odgovarač izaziva inicijatora odabranom metodom. Ovdje se konačno pojavljuju pogrešno ime poslužitelja, istekao certifikat ili odbijena lozinka.
U normalnom slučaju IKE_AUTH pregovara i prvi CHILD SA, pa je zaštita podataka dogovorena u istom krugu. Inicijator predlaže selektore prometa, odgovarač ih sužava ili odbija, a ključevi za put podataka izvode se iz IKE SA. To znači da jedan razgovor može propasti na dva vrlo različita mjesta: identitet ili politika. Pročitajte obavijesni teret ili pogrešku umjesto općeg kvara rukovanja, jer je popravak za jedno certifikat, a za drugo nesklad podmreže.
Dvije SA, dva posla
| Asocijacija | Štiti | Ponašanje trajanja |
|---|---|---|
| IKE SA | Upravljački razgovori: obnavljanje ključeva, brisanje, konfiguracijski tereti | Obnavlja se po vlastitom rasporedu; put podataka može preživjeti promjenu |
| CHILD SA | Aplikacijski promet koji odgovara selektorima prometa | Obnavlja se neovisno, često češće |
Držanje njih odvojeno objašnjava dva ponašanja koja izgledaju kao bugovi. Tunel može izgledati uspostavljen dok obnavljanje ključeva u pozadini ne uspijeva, a CHILD SA se može zamijeniti bez da klijent izgubi vezu.
Na strongSwanu, referenca konfiguracije IKEv2 i swanctl --list-sas pokazuju obje razine, a ip xfrm state plus ip xfrm policy pokazuju što je jezgra zapravo instalirala. Usporedba tih dvaju prikaza najbrži je način da se vidi je li pregovor završio ili se samo činilo da je završio. Ako daemon navede CHILD SA za koji jezgra nema stanja, instalacija je tiho propala. Ako jezgra ima stanje koje daemon ne zna, gledate ostatak ranijeg pokušaja.
Što još mora biti istinito nakon što je tunel gore
Selektori prometa definiraju koje su adrese pokrivene. Ako klijent predloži jednu podmrežu, a poslužitelj očekuje drugu, CHILD SA se instalira, ali ne prenosi ništa korisno, a pogreška se pojavljuje kao problem usmjeravanja, a ne pregovora. Zatim lokalni stog mora surađivati: prosljeđivanje omogućeno tamo gdje host usmjerava, rute prema tunelu, pravila vatrozida koja dopuštaju dekapsulirane pakete i unutarnji razrješivač ako su uključena privatna imena. Svaki od njih zasebno ne uspijeva i nijedan se ne popravlja ponovnim pokretanjem IKE daemona.
Držite zapisnik vidljivim dok dijagnosticirate: početni razgovor, zatim provjera identiteta, pa autentikacija korisnika gdje se primjenjuje, zatim instalacija CHILD-a i na kraju aplikacijski promet. Faza koja se zaustavi je faza koju treba popraviti, a kasniji kvar usmjeravanja nikada nije razlog da se opuste provjere identiteta koje su već prošle.