From 3d6d7d157480d77dc79c6a4d84ddb65eee1fd83b Mon Sep 17 00:00:00 2001 From: Hannes Mehnert Date: Sun, 17 Sep 2017 21:01:31 +0100 Subject: [PATCH] home router --- Projects/HomeRouter | 47 ++++++++++++++++++++++++++++++++++++++ static/img/homerouter.png | Bin 0 -> 46827 bytes 2 files changed, 47 insertions(+) create mode 100644 Projects/HomeRouter create mode 100644 static/img/homerouter.png diff --git a/Projects/HomeRouter b/Projects/HomeRouter new file mode 100644 index 0000000..7828987 --- /dev/null +++ b/Projects/HomeRouter @@ -0,0 +1,47 @@ +--- +title: Home router +author: someone +abstract: ![home router](/static/img/homerouter.png) +--- + +![home router](/static/img/homerouter.png) + +This is just a project idea, not (yet) a finished project. + +A home router is a computer which manages the Internet uplink for a client, and +provides local connectivity. It is accessible via the Internet, and the +software running on a router needs to be hardened against attackers. Attackers +are searching for flaws in popular routers, because if they can breach their +security, they get access to a large amount of computing and bandwidth +resources. + +The home router provides basic network services for the local network, such as a +domain name service (DNS) caching resolver, dynamic host configuration (DHCP), +wireless (using WPA2 and WPS) networks, wired network connectivity, +communication with the service provider (e.g. using PPP and PPPoE) including +authentication, a web server for configuration. + +Clients are demanding increasing featuresets, including network storage, voice +over IP (VoIP) endpoint, virtual private network (VPN) integration, data +collector and broker for the Internet of things. + +Lots of home routers are currently based on a small Linux distribution, and if a +security issue is discovered in any subsystem, this likely leads to a compromise +of the entire router. Secure update channels may not be available, and even if +so, the fear that updating may introduce unforeseen behaviour keeps people away +from updating their routers. + +We would base a router on top of an off-the-shelf arm64 board, where MirageOS is +already running, using kvm as hypervisor. Each network service would run as a +separate virtual machine. Several services are already available as MirageOS +unikernels, such as a caching DNS resolver, a DHCP server, a firewall with NAT, an MQTT implementation, +a web server, ... A secure update channel, based on TUF, is currently under +development. + +The infrastructure for distributing binary updates would be some Linux host +which compiles the above mentioned unikernels whenever a dependent library is +updated or changes are rolled out to the unikernel code themselves. + +Other required network services which are not yet implemented in OCaml, such as +WPA2 or VoIP, would initially be based on a Linux virtual machine. MirageOS +unikernels and Linux virtual machines can coexist. diff --git a/static/img/homerouter.png b/static/img/homerouter.png new file mode 100644 index 0000000000000000000000000000000000000000..ca4275de3333828a8eac04c8def62e867b2fc0c0 GIT binary patch literal 46827 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�6EF^UnqKJ3$ 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