GSoC 2017 - HMAC podpisovanje Nodewatcherjevih sporočil in IPv6 podpora za Tunneldigger EN

Živjo!

Sem študent Fakultete za Računalništvo in Informatiko v Ljubljani. Kot (skoraj) vsak "računalniški entuziast" sem imel rad igrice in se kasneje "našel" v razvoju na OpenGL temelječega grafičnega pogona. Zavit v C++ grabljice in vse možne algoritmične izzive sem počasi doumel, da nekaj manjka. Ja, moje znanje glede česarkoli omrežno obarvanega. Tako sem se, z mojima drugima dvema interesoma, ki sta informacijska varnost in nepojasnljiva ljubezen do tunelov, prijavil na Google Summer of Code. Sodelujoč v letošnjem Google Summer of Code bom razvil nekaj novih dobrot za dva projekta pod okriljem brezžičnega omrežja wlan slovenija.

Prva bo za nodewatcher, ki je odprtokodni sistem za planiranje, postavitev in spremljanje delovanja brezžičnega omrežja. Je centraliziran spletni vmesnik, ki se uporablja tudi za generiranje na OpenWrt temelječih slik firmwarea za specifične točke omrežja. Po flashanju brezžičnega usmerjevalnika, je temu le potrebno privoščiti nekaj elektrike, nato pa se z uporabo VPN sam poveže v omrežje. V primeru obstoječe točke v bližini se poveže brezžično. Nodewatcher prejema in zbira vse podatke o delovanju posamezne točke tako, da se poveže na točke, ali pa te same pošljejo podatke nodewatcherju. Ti podatki niso zelo občutljive narave, še vedno nas pa lahko skrbi, da bi bili ob prenosu med točko in nodewatcherjem spremenjeni ali ponarejeni. Problem predstavlja dejstvo, da so vsa sporočila trenutno nepodpisana. To predstavlja varnostno tveganje v obliki spoofing napada, kjer kdorkoli lahko prilagodi sporočila poslana nodewatcherju. Rešitev je to, da vsaki točki dodelimo edinstven podpisni ključ. Te bodo svoja poročila podpisala s hash funkcijo v HMAC (Hash-based message authentication code) načinu. To pomeni, da bo ob vsakem sporočilu poslan še izračunan "podpis", s pomočjo katerega lahko nodewatcher preveri ali je bilo sporočilo na kakršenkoli način spremenjeno. V primeru zaznane spremembe se bo v nodewatcherju sprožilo opozorilo. Verodostojnost prejetih podatkov je pomembna, saj lahko z večjo gotovostjo podatke uporabimo pri planiranju postavitve novih točk.

Drugi prispevek pa bo za Tunneldigger, enostavno rešitev za kreiranje VPN tunelov, ki temelji na L2TP3 tunelih. Uporablja se za povezavo novih točk, ki nimajo brezžične povezave med njimi, v skupno omrežje. Z uporabo obstoječe omrežne povezljivosti ustvari L2TP tunele med točkami. Trenutno je sistem omejen na ustvarjanje povezav le preko IPv4. To predstavlja problem, saj se ob veliki rasti interneta že nekaj časa pričakuje pomanjkanje prostih IPv4 naslovov. Rešitev predstavlja uporaba naslednika, IPv6. Ker so tuneli že sposobni prenašati podatke preko IPv6 bo razvita še podpora za vzpostavitev le teh preko IPv6. Tunneldigger bo podpiral tudi IPv4/IPv6 mešano okolje, kjer imata strežnik in odjemalec oba IPv6 povezljivost. Na ta način bo Tunneldigger pripravljen na prihodnost!

O mojem delu bom poročal na mailing listi za razvijalce.

Yay za zastonj internet!