Calling All Hackers: Help Us Build an Open Wireless Router
eff.org
eff.org
tldr; consumer wifi stacks that allow open network bonding/pairing/ad-hoc connections, are dependent on the vendor-provided firmware blob having control over these features at the radio level. Thus, we need a fully open radio component to be truly, 'safe'.
</opinion>
It does appear that 90% of the effort in the router firmware community goes to dealing with blobs and diverse hardware support; whether that effort is wasted is a matter of opinion.
http://www.pcengines.ch/apu.htm
Although once you add the wifi, case, power supply, and SD card or mSATA SSD, it's a bit on the expensive side.
People definitely need to be more aware of the x86 BSD based routing platforms like m0n0wall: http://m0n0.ch/wall/ and its fork pfsense: https://www.pfsense.org/
I'm surprised the EFF isn't championing some fork of those platforms, or just those two themselves. Trying to fix the problem by adding yet another platform is just going to cause problems. I'm a huge fan of the EFF but it seems to be championing rather strange initiatives lately like the open WiFi and now this.
https://www.turris.cz/en/hardware
This device is a lot more powerful than the PC Engines APU. As nice as the APU is, its CPU cannot support 1Gbps throughput over the NICs.
What you linked is a dual-core 1.2GHz 32-bit PPC built on a 45nm process. The APU used on the board I linked to is a dual-core 1GHz x86_64 built on a 40nm process. There's no way the PPC core is dramatically faster than the x86 core that was shown to have better IPC than Intel's Atom. The PPC SoC might be able to offload a lot of network stuff to fixed-function hardware, but one of the primary lessons learned from the CeroWRT project is that you can't trust any of the offload stuff to be well-behaved with respect to things like queue length management.
The 1.2GHz PPC based router is hitting ~940Mbit/s (the most you can expect from a GE interface with protocol overheads) using iperf. I don't have a reference for that, but I've got one of the devices here and have performed that test myself.
I ended up building a dual core 3ghz router based on shuttle's XH61V as it integrates dual gigabit NICs + an atheros USB WLAN for AP. Uses 90w of power and boots in < ~4s from SSD, running Linux.
It host several services in VMs(dns, transparent HTTP proxy, torrent client running in X11 open via VNC). I also use VPNs quite extensively and seeing as the Intel chip-set doesn't support AES natively, I opted to up the clock speed of the CPU to the highest I could get it without exceeding my budget.
(as corrected by many people, the statement below is not true)
the author of the post you reply to says it's not the drivers closed (yes, there're WiFi chips with open source drivers), but the radio firmware that runs on the chip. There's no open radio firmware for WiFi, and that's a big issue.
Unfortunately ath9k_htc is mostly found in USB devices.
Complaining about "big issues" that no one has the resources/will to fix always sounds like martyrdom to me.
People wanting to use this will most likely have to buy hardware for that purpose might as well build it from the ground up.
I would certainly buy it and judging by the hype the WRT1900AC got before ending in complete failure a lot of people would be willing to buy the hardware for that end.
It is open source, but that's not the point. The point is "open wireless." More info: https://openwireless.org/
I've been using Tomato for years and DDWRT is also available. (only using Tomato because my current router status for DDWRT is "Work in Progress")
Both are open source, compatible with most routers, and have a nicely developed user interface.
http://www.polarcloud.com/tomato
http://www.polarcloud.com/tofu
Maybe updating the title of this post would help with the confusion. "...Help Us Build an Open Wireless Router Firmware"
I'm all for competition and alternatives to products, but developers might be able to better allocate our resources rather than create a clone that might not be necessary. Such as ensuring existing projects are secure.
For varying definitions of "open source" (a considerable amount of functionality is offloaded to binary blobs in many models).
In terms of duplicating effort, in the page linked it specifically states it's based on Cerowrt, which is in turn based on Open WRT (which is actually FOSS, instead of just in name).
More importantly, it doesn't say "...Help Us Build an Open Wireless Router Firmware" because that's not the goal of this project. As you clearly pointed out yourself, and as they implied in the post they made, that's already been accomplished multiple times over. The goal is to make a router designed for the Open Wireless movement, which is why, in the first sentence, they link to https://openwireless.org/
They could even help support their project by selling routers with open-source firmware already installed (if allowed by the manufacturer).
The current firmwares are kind of stagnant (considered good enough I suppose).
The idea of does everything for me, including updates and minimally secure are disjoint ideas - you can't have security unless you have complete control over your own device - and OpenWRT with luci already provides that. Relying on a third-party to do your updates, even if it's a trusted body like the EFF is always open to attack.
OpenWrt doesn't provide the self-update by default, and I hope it never decides to add such thing, unless we get reproducible builds, and build some kind of network consensus to verify the integrity of packages, and that they were derived from specific source code (as Nix/Guix and Debian's ReproducibleBuilds are attempting). In other words, we need to remove the centralization of updating, because it's such an easy target for the likes of you know who.
Also, you know what else is such an easy target for the likes of you know who? Unpatched systems.
they want open hotspots everywhere, probably running tor.
If they're doing it, why not instead work on building a mesh. There are enough wireless hotspots in my metro area to link up the whole city if only these things talked to each other instead of to the centralized wired network.
Even with a physical mesh in place, an open IP network will probably fail due to the need for someone to manage the address space. There will be disagreements about address management among the participants, the job will become too big for volunteers, and eventually there will be a need to have a formal organisation to control addresses. In time, this organistion will become IANAv2, along with exactly the same questions about who gets to control it. That's what happened to a lot of the community wireless networks set up in the early 2000s: they fell apart due to management issues.
Also, as shown by the propagation of "three strikes" rules, and copyright notice sent to IP addresses, a managed address space provides an handle for those who with to exert power, whether that be power over individual addressees or the managing organisation.
My guess is that a successful open network will have to use a protocol that doesn't rely on a unique address. For example, can Freenet be run as a mesh network instead of an overlay network?
ETA: These guys are solving it... http://techpresident.com/news/25200/oakland-sudo-mesh-counte...
If people could pay a flat hardware fee and connect directly to the internet in a secure way, Comcast would have significantly less bargaining power and the customer would have significantly more privacy.
1. Because devices are doing new things and often by companies without strong software cultures that build in update mechanisms and look after old devices, so they are not updated as well as major platforms.
2. For some devices, you can't simply isolate them as full guests, because existing protocols from your phone allow LAN-to-LAN discovery and control, so special NAT-style routing into the DMZ would be ideal.
This is an awesome talk by OpenWRT developer nbd from 30c3 about the history and future of OpenWRT: https://media.ccc.de/browse/congress/2013/30C3_-_5497_-_en_-...
If you are interested in where the OpenWRT project currently stands (hint: they need web as well as systems programmers) you might enjoy watching this talk from 30c3 - OpenWRT and 10 Years of Fun with Embedded Devices:
They seem to be using http://www.newegg.com/Product/Product.aspx?Item=N82E16833122...
Routers are most people's only always ON computer, and having the ability to run decentralized applications on them like media, backups, microblogging, chat bouncers, etc. as easily as one would install a smartphone app could really tip the scale back toward the edges and away from centralized services.
Money can't be ignored though. There has to be a (cryptocurrency-y?) way for people to voluntarily "subscribe" to recurringly give money to developers of these services, and it has to be so simple that it's almost easier than not giving.
Costs could be offset by the user by renting out cpu/bandwidth/storage in a similarly one-click way by running specialized apps that handle that.
But there's no reason why running servers should be so scary that only the powerful are able to run them. And "server" is not synonymous with "webhosting". There's a lot of p2p to be done if we want a decentralized internet.
I regularly run a Bittorrent "server" available to the internet and never had any problem. I also run a Ricochet "server" (also a p2p app), no headache either.
We have to get past the FUD and dig ourselves out of this hole.
Something as nice as the App Store definitely requires some sort of revenue model. The Synology stuff is about an order of magnitude friendlier than the OpenWRT: the apps are more curated, better polished, etc. Which makes sense; polishing an app to consumer-grade UI levels and then properly cataloging it is a lot of work. Work that doesn't often happen in the open-source scratching-one's-own-itch context.
Your typical asymmetric DSL is therefore very hard to safely share. You can try to block torrents, but there's no truly reliable way of doing so that doesn't involve blocking all encrypted traffic.
E.g.: The router has some sort of bandwidthd. The Torrent app checks in, asks how much it can use for a low-priority bulk download, and gets a token good for a 30-second lease on 10 megabits down. Before that expires, it tries to renew the token, and maybe it gets only 5 megabits because somebody is watching Netflix. If at some point the connection quality gets bad, the router's owner gets an email saying that the router has noticed a lot of BitTorrent traffic from "Timmy's MacBook" and that maybe they should switch to a BT client that supports bandwidthd. And so dad gets Timmy to upgrade.
BitTorrent peers are collorative, because otherwise turning on BitTorrent anywhere would immediately result in the parent's boogeyman showing up: being flooded by way more traffic than can be handled. That's not an overlooked part of designing a client: it's known that when writing UDP protocols one has to do one's own flow control.
BT would be a lot friendlier for traffic shaping if the tracker played a more active role in flow control, or if otherwise some distributed consensus was negotiated regarding wanting more unsolicited connections.
The first paper we did was: http://perso.telecom-paristech.fr/~drossi/paper/rossi13tma-b...
Which predated the development of fq_codel, which is the fair queue (flow queue) + aqm hybrid now deployed in cerowrt, openwrt, and countless other QoS systems. That paper only explored RED or SFQ, not a hybrid.
What I think the positive effects we are seeing now are several factors. 1) a "torrent" is usually on 6 flows at a time, rotating to a new flow every 15 seconds or so. 2) The additional peers trying to negotiate IS a problem at very low rates (say below 4mbit) but invisible at higher rates. 3) reducing latencies under load to under 5ms has enormous gains in bidirectional throughput, which more than compensate for losing torrent's delay based backoff mechanism, which only backs off at 100ms. Which would you rather have, 100ms latency or 5ms?
See, for example, what the fq_codel system does for verizon and comcast here:
https://www.bufferbloat.net/projects/codel/wiki/RRUL_Rogues_...
We got back 5x free bandwidth on the verizon test. And if you are experiencing 5ms worth of latency does it really matter if you have 6 torrents in the background?
(80, yes! but it's a function of your bandwidth also and... and... more testing is indicated.)
... so I haven't got around to redoing the research and writing a successor paper on it, and probably won't anytime soon. The original authors of that paper have gone off to do several papers of extensive analyses of RED vs ledbat, and I think they've largely gone off into the weeds, not that I mind having that analysis as a basis if ever we (or someone) gets around to analyzing fq_codel with some of those techniques.
Please feel free to test re torrent with a system that uses something like openwrt's qos-scripts or cerowrt's SQM system.
The conclusion of the original paper was that only classification seemed to be an answer to even further deprioritize torrent in an AQM'd and FQ'd world. (which the above systems can do also)
http://tools.ietf.org/html/draft-hoeiland-joergensen-aqm-fq-...
I am thinking it would be cool for local access point owners to, through the router, network and set bandwidth policies as a group. That way freeloading could be mitigated by throttling bandwidth to encourage people to add nodes. It would need to also maybe support lightweight communications protocols in order to facilitate coordination and maybe messaging to people connecting to the open wifi access points.
I am thinking first and foremost about x86-based ones like m0n0wall or pfsense, but it would be good to know about ARM-based ones like DD-WRT.
[1] - http://www.bufferbloat.net/projects/codel/wiki
[2] - https://www.bufferbloat.net/projects/cerowrt/wiki/How_is_Cer...
And: cerowrt is much closer to a "branch" of openwrt than a fork. It's synced with openwrt on a nearly weekly basis, and the net delta between it and openwrt at this point is a few dozen patches (most code under test), and a bunch of test tools maintained in the ceropackages feed. We have always collaborated closely with the openwrt folk (several help out on a regular basis). A core difference between openwrt and cerowrt is process - by focusing on one router only (where they focus on hundreds), we were able to spin up and prove out new ideas faster in some cases than they, and maybe get "Stabler", faster - (that said, see bug 442)
Unfortunately - as so many have noted, that router is EOL, and we'e been trying to find a replacement platform for over a year now.
http://web.archive.org/web/20070726045835/http://www.bitsum....
I believe DD-WRT also had a few GPL violations in the past. Not sure if they still do. Anyway, do agree with the consensus that none of this is really needed because we already have OpenWRT and OpenWRT runs on anything that you could possibly want :-)
So, no, not everything you could possibly want.
But I think the reason for that is the legality about using the proprietary b43 driver. Again, seems that DD-WRT does (patched kernel) support this but their access to the Broadcom source code seems questionable.
Please see https://dev.openwrt.org/ticket/10852 and https://lists.openwrt.org/pipermail/openwrt-devel/2013-July/...
Why are they not campaigning on more relevant issues?
There are already projects aiming at that ie the fon platform.
"shareable electronic freedom" seems to be they are looking after first world teenagers who don't want to pay for content.
I could quite easily be wrong, but without money in the equation, I feel like it would make more sense for them to work with OpenWRT rather than fork it.
https://www.eff.org/deeplinks/2011/04/open-wireless-movement https://www.eff.org/deeplinks/2012/10/why-we-have-open-wirel...
I hope to go into more detail about this elsewhere, but to me anonymity is a key point -- existing telecommunications infrastructure is very hostile to anonymity, both in its authentication and payment models. Open wireless networks at cafés, libraries, and so on are already much friendlier to anonymity. Broadening the availability of this kind of infrastructure could be helpful to making anonymity a practical default, at least for some applications.
(I work at EFF and have contributed to this project, but wasn't responsible for EFF's adoption of it.)
Edit: My colleague Yan Zhu and I have also been looking at the question of transparency in software development, including deterministic and reproducible builds as well as update mechanisms that make it hard for the software publisher to target users with malware. I think this project also makes for a good testbed for how transparent we can make software development and distribution. One thing that I did on the initial release of this project is making it get update manifests over Tor so that EFF can't distinguish particular users when serving them update images. I think Ranga spoke about this in his talk at HOPE, and I think it's something EFF will continue working on quite a bit.
It seemed like everybody was rushing to get .11n stuff on the market, even before the spec was finished, (draft-n, etc) but nobody's building .11ad radios?
[0]: https://en.wikipedia.org/wiki/IEEE_802.11ac#Products
[1]: http://www.cnet.com/news/60ghz-tech-promises-wireless-dockin...
With our beloved NSA accused of back-dooring routers, this pretty much eliminates retail routers from consideration, doesn't it?
It seems like the entire stack from top to bottom would need to be open source.
DISCLAIMER: I'm just a wireless user. I don't know about either HW or driver design. These are just my questions.
http://it.slashdot.org/story/14/01/02/2314259/backdoor-disco...
So any attempt to make an open source router OS that kicks ass, should, in my opinion, predominantly strive to be a self-hosting OS, with full sources on-board, and signed images being turnkey; i.e. everything needed to build the OS from source is part of the package; i.e. no cross-compiling, no binary blobs, the router builds its own firmware.
Yes, its extreme, but I truly do think that the disconnect between build-ability and OS 'dependencies management tools' has a lot to offer in terms of improvement. If the first thing the machine did, OOBE, was to build itself its own unique system image .. from source .. as a feature for the user .. then we have a secure system.
Unsigned system-image keys are going to be very, very much more important in this networking/communication space. Full source->build->signed-binary control as part of the bootup is where this effort should focus. Sign the code, build the code, sign the binaries, only run signed binaries on the OS built around the key, and so on.
This allows intercommunication - shared Source, of course - but it also allows audit of things in the environment which is being defended. If we don't build-in sufficient encryption to make it truly safe, whats the point of being so Open about it? Imho, RouterOS should be full-Source onboard.
This is in my opinion, a sign of bloat. They darn-well do have the processing power to build their own images! Its just 'not desirable to use a slow computer to do it' ..
Well, where the build is slow: refactor until its fast.
> It's far better to work on having a deterministic verifiable cross-compiling build system and continue to flash the firmware over JTAG.
The new open networks will require a lot more crypto. I'd prefer to run an open network where signed binaries and such things are just part of the norm. But then, this is all just hot-air .. time better spent actually working on the problem of so much hardware, so little actually safe source code to run on it.
CeroWrt include every mesh networking protocol available - olsr, batman, and babel, for starters. The default is babel in it's source specific variant, and it's on by default. Tinq is also in there as an optional package, and recently RTT based metrics were added to babel to make meshing over vpns saner.
I'm not sure what you mean by "secure mesh networking"?
One of the cool features (not in the current cerowrt release) of the quagga-babeld protocol implementation was the ability to securely exchange routes over an insecure medium, which not only has an implementation but is an official RFC.
http://tools.ietf.org/html/rfc7298
I am under the impression commotion-wireless is doing something similar. If we are ever to replace BGP we need to start somewhere...
Not wanting to play devils advocate tho...I was reading through a few academic journals on Coredemia and I came across this one from Ken Thompson: Reflections On Trusting Trust http://www.ece.cmu.edu/~ganger/712.fall02/papers/p761-thomps...
In the paper Ken looks into potential vulnerability in compliers. He shows a trivial way that code can be manipulated and a trojan house could be injected into code by a vulnerable complier. His point is that checking the source code is not enough.
Ps. I found out about Coredemia in HN: https://news.ycombinator.com/item?id=8061166
until i moved to verizon (since they have the officially sanctioned monopoly of my region) and now i have to run the ugly, power hungry, wireless AP+cable modem (they market it as fiber, but it is cable all the way until the block repeater, then fiber, then into my home, then cable again... the few meters of useless fiber is probably just to avoid CA laws to provide open TV channels for free if it was market as cable)
anyway, all that rant just to say that my will to maintain yet another device is null after that. i just roll with the verizon aberration.
Putting the open wifi on Tor would be good idea.
Openwrt/DD-WRT can both do this easily already?
In order to check whether your router is DD-WRT supported or not, please check your router here : http://dd-wrt.com/site/support/router-database
And here is a configuration guide that will give you better idea of how you can config it on your router: http://www.purevpn.com/config/router/
Also, you'd have to make sure that the device(s) could not have a vulnerability to remote code execution of any kind, or the device may be capable of being remotely turned into a directed energy weapon, which could lead to serious security concerns.
I'm pretty sure that WPA2 w/AES (assuming WPS is disabled) is not vulnerable within a milisecond. Even TKIP is far from easily crackable.
Other info: We asked to keep our discussions confidential. We weren't asking them to sign an NDA, we explicitly mentioned that their word would have been enough. It's pretty simple, they weren't willing to discuss it confidentially, so we let it drop after about 9 emails.
It's true it was a snubbing, but I'm not upset about it. It is however somewhat ironic to read this call for help after we proactively contacted the EFF with just such an offer of help.
A lesson I learned was - you can admire what an organization stands for, but not always the way that organization is run. It also may be an ineffective organization. I guess these comments could hold for quite a few charitable organizations.
If you don't mind, it seems as if you may have a misconception about what they stand for. I clearly don't have any of the details, but it sounds like a non-sequitur to talk about an open wireless standard and an open wireless community and then require those discussions to be closed up in an NDA. You may not quite be on the same wavelength on the concept of open standards as they are.
Huh? We didn't require those discussions to be closed up in an NDA. We were just trying to do right by our partner, who wanted to negotiate the EFF / OpenWireless endorsement, neither of which they seemed to keen to give, so we walked away.
But unless you can open all the firmware, no-one who knows what they're doing will want to know, in this scenario. No excuses.
(As for the Raspberry Pi - actually, the stock firmware uses the ThreadX RTOS which Broadcom don't own and can't completely open-source - but they've got someone writing a set of open firmware, although it'll be a while in coming.)
>Allow small business and home users to easily enable an open network, so guests and passersby can get an Internet connection if they need one, while keeping a password-locked WPA2 network for themselves and their friends or coworkers.
Irrelevant.
>Let you share a bounded portion of your bandwidth on the open network, so guest users cannot slow down your Internet connection or use a large portion of your monthly quota.
Irrelevant too. You're not favoring any content over anybody's elses.
>Provide state-of-the-art network queuing, so most users can expect an improved Internet experience—especially with latency-sensitive applications—compared to what commonly available consumer grade routers are delivering today.
QoS is not a net neutrality violation, it favors certain aspects of a certain class of services. It's not an ISP slowing down Netflix in order to provide their own alternative, it's an ISP prioritizing VoIP over BitTorrent so that you don't get choppy video-calls. (Besides, you're not an ISP.)
>Offer a minimalist, secure, and elegant Web user interface to set up and configure the router. Advanced, non-minimalist administrative options are accessible by SSH.
>Advance the state of the art in consumer Wi-Fi router security and begin turning back the growing tide of attacks against them. Most or all existing router software is full of XSS and CSRF vulnerabilities, and we want to change that.
>Include a secure software auto-update mechanism. In addition to using HTTPS, firmware signatures and metadata are fetched via Tor to make targeted update attacks very difficult.
Not even remotely relevant to net neutrality.
Now if you started selling subscriptions? That would be a different story.
This begs the following questions which are seperate from the discussion of the definition of violation of net neutrality: Won't such monetary incentives help encourage people to setup open wireless routers? Might net neutrality rules hamper the widespread deployment of open wireless?
"Net neutrality (also network neutrality or Internet neutrality) is the principle that Internet service providers and governments should treat all data on the Internet equally, not discriminating or charging differentially by user, content, site, platform, application, type of attached equipment, and modes of communication.
At its simplest, network neutrality is the principle that all Internet traffic should be treated equally.[20] According to Columbia Law School professor Tim Wu: "Network neutrality is best defined as a network design principle. The idea is that a maximally useful public information network aspires to treat all content, sites, and platforms equally"."
Both Wikipedia and Tim Wu's definition seem to be pretty clear about treating all data equally. Prioritizing a certain type of traffic like VoIP over bittorrent would indeed be a violation of both wiki's and Wu's definition. And prioritizing the owner's packets over the guests would be a violation as well. Does this wikipedia article need a correction?