<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi Ryan,<div><br><div><blockquote type="cite"><div dir="ltr"><div><div><div><div><div><div><div>As part of my work on the App Developer Tools team, I'm adding support to Firefox OS to allow devices to be debugged over a WiFi connection to improve developer UX.<br></div></div></div></div></div></div></div></div></blockquote><div><br></div><div>Exciting!</div><br><blockquote type="cite"><div dir="ltr"><div><div><div><div><div><div>The challenge with this is that we want the data to be encrypted in transit from computer to device, and we also need to authenticate the computer and device to each other to protect against MitM attackers.<br></div></div></div></div><br></div></div></div></blockquote><blockquote type="cite">…</blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><div dir="ltr"><div>1. Does this seem like a reasonable use case for Firefox Accounts?<br></div></div></blockquote><div><br></div><div>To a point. It would provide you with a key that you could use for encryption and other purposes, certainly. There are some open questions, though:</div><div><br></div><div>1. It's the same key you'd use to protect your valuable sync data. That's not an area we've really explored (that I know of) — does it make sense to use a permanent high-value key to protect transient data? Unless you're permanently attaching a device to your identity-attached services, an account seems like the wrong model. If you <b>do</b> plan to have basically a developer portal, where devices keep themselves linked in and reachable, then maybe it would be a fit, but it seems heavyweight for what's basically a crypto layer on top of Zeroconf.</div><div><br></div><div>2. There's a service discovery problem. We don't have a discovery mechanism in place yet — your Sync server is hard-coded into the client — so this would basically require a similar fixed magic URL and Mozilla hosting for some intermediary tied to the FxA infrastructure.</div><div><br></div><div>Two alternatives:</div><div><br></div><div>Simple: type in a PIN on both devices. This is probably an acceptable level of security for a local wifi network, no?</div><div><br></div><div>Less simple: use the KeyExchange (J-PAKE) system that Old Sync uses. Desktop generates 12 characters, you type them on the phone, and they get a one-shot encrypted channel, via a lightweight Mozilla server, to exchange an arbitrary bundle of stuff. That seems like a perfect solution for this: it's like Bluetooth pairing, and you can send port numbers, credentials, pure-random keys, etc. over the channel.</div></div></div></body></html>