This is an extremely important discussion! We’ve actually been struggling with this exact issue for the remote control on the TV. TLS doesn’t suit because the TV has an internal network address only (no public DNS name). We’ve been discussing how to implement the trust relationship between the remote control web page running on an arbitrary device/browser and the TV. I’m not sure that this is a good solution (I’m all ears if anyone has a suggestion)
Some (not very well structured) thoughts on your questions in line below. > On 24 Dec 2015, at 12:31 am, Michiel de Jong <mbdej...@mozilla.com> wrote: > > Connecting from a web browser to a web site is just a special case of using > "Device A", to connect to "Device B". Looking at the generic case where > Device A and Device B can both be anyThing ;) brings up a few interesting > questions: > > 1) How can a certificate authority vouch for the identity of Device B, if it > does not have a URL? Unless we replace CA's with Web-of-Trust, this might be > something to think about as more devices come into play that have no URL. Even with a URL, on an internal network CAs are of limited use (works for enterprise when you can pre-install a CA, but not in the general case). But how this “web-of-trust’ would work, I’m not sure. Exchange of CA via some side-channel? Or maybe exchange WebRTC SDP and then you can use dataConnection to securely communicate - but that doesn’t doesn’t solve the problem of secure code delivery in the first place. Another option might be to leverage an external trusted source to broker the initial communication (https://trustedapp.marketplace.firefox.com) but then both devices need access to the internet. > > 2) The user might have Device B in their eye sight. Does that help? > > If Device B can be many more things than just a web server in a data center, > then you may be able to connect to it with more accuracy. For instance, by > sticking a USB cable in it, touching it with your NFC reader, or pointing a > camera at it. Definitely! There is much prior art for local-area identification and authentication. Of the top of my head (and a quick search on the web) I can think of: - exchange of pin codes (e.g. bluetooth pairing) - physical proximity (NFC, or use physical sensors, e.g. bluetooth signal strength, or physical “bumps”) - Visual data encoding (e.g QR codes, or https://www.youtube.com/watch?v=sVWlQNzU4Ak <https://www.youtube.com/watch?v=sVWlQNzU4Ak> ) - (Ultra)Sonic data encoding ( e.g. https://github.com/borismus/sonicnet.js <https://github.com/borismus/sonicnet.js>) It might be interesting to consider a standard approach for exchanging authentication information (i’d be surprised if there wasn’t any standards in this space actually) > 3) How can you accurately connect to a device if you have no URL, and also no > physical proximity? > > I'm not talking about how to protect Device B from unauthorized access (WPS > buttons on WiFi routers etc.). What interests me is how you as a user can > accurately identify the device you are connecting *to*. I don’t think you can, at least automatically unless there is some prior web-of-trust. It depends what you mean by ‘no physical proximity’ too. Do you mean too far to use a side-channel like bluetooth, but still on the same LAN. Or something else? Are we even talking TCP/IP here or something completely seperate? > > Curious if anyone has more thoughts on this! :) Me too! Im afraid I’ve not seen any good solutions in this space as yet but I’ve only just started digging. > > > Cheers, > Michiel. > _______________________________________________ > dev-fxos mailing list > dev-fxos@lists.mozilla.org > https://lists.mozilla.org/listinfo/dev-fxos
_______________________________________________ dev-fxos mailing list dev-fxos@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-fxos