FlyWeb – Pure Web Cross-Device Interaction
hacks.mozilla.org
hacks.mozilla.org
1. Identify the internal layout of a corporate VPN.
2. Pick a service on, say 10.1.2.3:80
3. Trick user into joining either rogue AP, or rogue VPN
4. Serve an identical service on 10.1.2.3:80 on your network
Prefer: normative, specified, open. Gimme Physical Web, please. Which has a mdns protocol- it's kind of funky tbh, but at least your not enjoindering yourself and your users into a silo.
[1]: Of course it doesn't have support for Windows 10 Mobile, but not due to practical limitations.
[2]: BT LE in 4.3,4.4 has lot of issues and limitations
Edit: added caveat about not supporting Windows 10 Mobile
It could definitely have the same fate as Persona. In fact, we face a bigger set of challenges than Persona - we need to not just figure out adoption curves, but standardization, nailing down the security story more firmly, and driving cross-browser and cross-platform support. Each of these on their own is a significant challenge.
But I would hope that some people get their hopes up. Sometimes it's worth it to get your hopes up even though you have no guarantee that it'll work out in the end. You can get your hopes up and still be pragmatic and grounded in reality.
1. We don't have a ton of resources (as in people working on it), so we have to be laser focused on making the implementation as simple as possible, to prove out the initial "v0" set of use cases. Straightforward client/server HTTP is the simplest possible thing. A couple dozen lines of node.js or python code are all that is necessary to throw up a FlyWeb server on a smart device. WebRTC support is way more complex, and less accessible to developers due to that complexity.
2. WebRTC is peer to peer, but it's also implicitly "cloud". One of our goals is to focus on approaches that are purely local. This is my personal opinion, but the minute that smart devices are somehow addressable from 'the internet', they become way more creepy - the surface area they expose to billions of people makes them troubling. Limited local-network (and eventually network-less local-area) HTTP is implicitly not "visible" to the entire world, which is a nice property.
3. Fundamentally, the "core strength" we're trying to leverage here is that the web platform lets you easily and securely "stream" applications between computers. That's what you do when you go to gmail or facebook or whatever - servers on the internet incrementally stream an application to you that's encoded in terms of HTML/JS/CSS/etc. WebRTC is a message-passing technology, which is not quite the core fit we're going for. Web and HTTP are the core of the app-streaming concept, so we're building on that.
Mozilla's security team is already aware of the project and have done some initial analysis of potential approaches to securing/encrypting FlyWeb. There are multiple issues to work through - and we (the FlyWeb team) will definitely need to satisfy the concerns of the security team at some point soon.
Our collaboration with the security team hasn't begun in earnest yet - mostly because we've been too busy with everything else (basic design, implementation, proof-of-concept demos). For the next couple months, we're just field-testing the basic architecture and trying to get tinkerers and early adopters to play with it. We want to confirm our personal intuition that the architecture and design has legs, and that it lets people build worthwhile solutions that would otherwise have been hard to do.
If you're worried about security, you should be running NoScript.
Yes, it's a bit convoluted, but it's the first sort of attack that came to mind. An open web server, even if local, can cause a good number of problems, especially if it's running untrusted content.
FlyWeb does present a new attack surface, so it needs thought, but the blog post makes it abundantly clear that Mozilla know that.