Bezpečné adresy na lokální síti (IPv6 SEND)

Protokol SEND (Secure Neighbor Discovery Protocol) nabízí bezpečnou formu objevování sousedů a routerů v IPv6. Je to dodatečné rozšíření protokolu IPv6, které si svoji oblibu zatím ještě nevybojovalo. Pokud se zajímáte o sítě a IPv6, rozhodně stojí za to se s ním seznámit.

Na sítích s IPv6 se používá protokol NDP (Neighbor Discovery Protocol), který se používá při začleňování nových zařízení do lokální sítě a při navazování komunikace mezi zařízeními. Mezi jinými umí objevování sousedů a routerů.

Protokol NDP trpí víceméně stejnými problémy jako jeho předchůdci ze světa IPv4 (například ARP a DHCP). Na lokální síti bez speciálně konfigurovaných prvků je velmi jednoduché falšovat odpovědi protokolů ARP či DHCP a tím na sebe strhnout komunikaci, která byla určena někomu jinému.

Tento problém (nebo chcete-li vlastnost) provází lokální sítě TCP/IP od začátku. Předchozí metody se zaměřují na použití chytrých síťových prvků nebo zašifrování celé komunikace za použití předem připravených šifrovacích klíčů. Oba uvedené způsoby fungují s IPv4 i IPv6, ale vyžadují velmi pečlivou předchozí konfiguraci. SEND oproti tomu využívá velikosti adresního prostoru IPv6 a nabízí flexibilnější metodu.

Kryptografické adresy

Jedním ze základních konceptů protokolu SEND jsou kryptografické adresy. Právě ty vyžadují dostatečný adresní prostor, který IPv6 nabízí. Koncové sítě IPv6 nechávájí 64-bitový prostor pro identifikátory počítačů v síti.

Kryptografická adresa tedy obsahuje síťový prefix a kryptografický hash. Ten se počítá z několika parametrů včetně veřejného klíče a síťového prefixu. Právě veřejný klíč je tím nejdůležitějším prvkem, protože vznikl společně se soukromým klíče a dvoří s ní dvojici klíčů algoritmu RSA.

Celý smysl kryptografické adresy je v tom, že její vlastík se prokazuje tím, že má k dispozici soukromý klíč. Vlastník adresy tedy může digitálně podepisovat zprávy a zveřejnit parametry kryptografické adresy, podle kterých pak příjemce ověří digitální podpis.

Objevování sousedů

Objevování sousedů je takový vzletný název pro zaplňování tabulky ARP v IPv4 či NDP v IPv6. Princip je jednoduchý. Zařízení, které chce komunikovat s některým sousedem po Ethernetu potřebuje zjistit jeho MAC adresu. Pošle tedy multicast/broadcast zprávu, která obsahuje dotaz typu: „Jakou MAC adresu má zařízení s IP adresou i:j:k:l:m:n:o:p?“.

Dotyčné zařízení na tento dotaz odpovídá stylem: „Já jsem zařízení s IP adresou i:j:k:l:m:n:o:p a moje MAC adresa je qq:rr:ss:tt:uu:vv.“ Problém je v tom, že takto může odpovědět kdokoli a podvrhnout svou vlastní MAC adresu. Tomuto útoku se říká ARP spoofing nebo NDP spoofing podle verze protokolu IP.

SEND tomuto problému předchází tím, že zavádí kryptografické adresy a podpisy odpovědí NDP. Podepsané odpovědi tak zajišťují správnost vazby mezi IP adresami a MAC adresami. Podepisují se i dotazy, ale o tom později.

Do objevování sousedů v IPv6 spadá i správná detekce nedostupnosti. Když je soused nedostupný, měli bychom to být schopni zjistit. Používá se stejný typ NDP zprávy jako pro zjištění MAC adresy. Nedostupnost se pozná podle toho, že (opakovaně) nepřijde odpověď. Použitím SENDu se můžete bránit útoku, kdy jiný stroj předstírá dostupnost již nedostupného zařízení.

Velmi speciálním použitím NDP je detekce duplicitních adres, která je součástí procesu automatické konfigurace. Zařízení, které se chystá začít používat novou IP adresu nejdřív posílá dotaz na tuto adresu, aby zjistilo, jestli ta adresa už není použita v síti. Při použití kryptografické adresy může zařízení zareagovat na kolizi s obyčejnou adresou, ale při dalším pokusu už kolize ignoruje kvůli možnému DOS útoku.

Poznámka: Pozor na falečný pocit bezpečí. SEND v tomto případě pouze zajišťuje správnou vazbu mezi IP a MAC. To znamená, že nijak nechrání proti útokům typu MAC spoofing, ani nechrání následnou komunikaci. Je tedy jen jedním článkem v řetězu opatření, která je třeba udělat pro zabezpečení lokální komunikace.

Objevování routerů

Podobně jako funguje objevování sousedů, funguje i objevování routerů. Podstatný rozdíl je ale v tom, že ne každé zařízení má právo stát se routerem. Taková autorizace vyžaduje určitou spolupráci mezi routery a připojenými zařízeními. SEND zajišťuje tuto autorizaci pomocí certifikátů routerů, které jsou v nejjednodušším případě podepsané něčím, čemu se říká kotva důvěry.

Každé zařízení má v sobě seznam těchto kotev, které přímo či nepřímo certifikují jednotlivé routery. Certifikace může routerům vymezovat i konkrétní prefixy, které smějí nabízet.

Soužití SEND a NDP

Klasické objevování sousedů (NDP) a bezpečné objevování sousedů (SEND) se dají používat dohromady. Ve skutečnosti SEND není samostatný nový potokol, ale sada rozšiřujících voleb pro protokol NDP. Zařízení bez podpory SEND tyto rozšiřující informace ignorují a fungují, jako by žádný SEND neexistoval.

Oproti tomu zařízení s podporou SEND musí pečlivě vážit přijaté zprávy s ohledem na zabezpečení. Striktní nastavení, kdy se nezabezpečená oznámení ignorují, asi jen tak nepotkáte. Většinou to bude fungovat tak, že stroj bude dávat přednost podepsaným informacím a v případě jejich absence využívat nepodepsané.

Závěr

IPv6 díky svému většímu adresnímu rozsahu přináší nové možnosti adresace. Díky na zelené louce navržené architektuře automatického přidělování adres přináší autonomii koncových zařízení při volbě adres. Na obou těchto novinkách staví SEND, který umožňuje podepisovat informace týkající se objevování sousedů a routerů.

SEND tak zavádí do protokolu IP úplně nové koncepty, které se jistě uplatní i v dalších situacích.