Turn your phone into a remote control for your browser
pairs.io
pairs.io
Is the cipher completely encrypted all the way from the phone to the desktop, whilst being tunneled through your server?
And if it's as secure as you say it is, what stops people from proxying their own arbitrary payloads through your tunnel? (-- that is to suggest that you're being as honest as you are about not decrypting anything the entire way from the phone through your cloud to the desktop...)
If it's that secure, what would stop a botnet from theoretically leveraging this as misdirection?
And what is the purpose of the cloud server here? If someone had their own hosting, would they still need to rely on your server to route the commands?
All questions and criticisms aside, I've always wanted something that could do this for my house without having to rely on an external entity... I think paranoia has taken a rather large toll in our culture today, because anything with the word 'cloud' in it starts to give all programmers the chills unless it comes with some assurances of trust, longevity, and ultimately devotion.
I'd almost suggest selling a piece of hardware that people could install in their houses, simply because it's extensible for your purposes, users can maintain control over it, and it's far more difficult to isolate as a target, and ultimately it allows people to decide whether to "connect indefinitely to any company" for continued operation.
I mean, if you pick up any cloud-based mobile control software from any major manufacturer today, they all create this massive problem of a surrogate dependency on the cloud in their implementation.
These days you can't even set up an IR mobile control product without sending out your wifi password through a web-based silverlight UI hosted in the cloud just to get it to the product that's meant to use it! That's so far backwards security-wise that it's teaching people to send their login credentials the wrong damned way!
Hopefully everyone sees what's going on here?
I didn't mean anything by it - only an industry observation.
Happy to play along :)
I can pair the Youtube app on my phone with my TV the same way and search/play items from my phone.
Yes, it has been done. I am aware of http://www.remoteless.no & Co. I myself coded a Grooveshark Remote in a similar fashion for the Nodeknockout 2012.
What the difference is, is that I don't want to code another remote control that is capable of doing x and y for service z. I want a simple JS API to code new remote controls. The service is to provide a framework for that. And by "that", I mean future.
The technology stack that I used is quite simple: Go Lang, Firebase and a bookmarklet. I plan to replace Firebase with CouchDb and TouchDB later.
If you can explain how you send the data between client and server, that will be a big help.
----------
Interesting stack. How is Firebase working out for you (since you want to replace it)? I only dipped my nose in one time and thought it could be helpful, also since there are JS implementations for the client.
The server that handles the routing between the devices is a simple socket.io server. No database at all for this demo. Pairings will be stored in memory. But yeah, it needs some sort of database later. Unless I want to restart the server every other week because it ran out of memory ;).
The data (commands) is en/decrypted on the client side and just passed through the server. The desktop first creates a connection and encryption key. These will be encrypted with the visual verification code and represented as the QR code (with a URL in front).
Once you follow the URL with your phone and enter the visual verification code, the keys are decrypted. The commands are then encrypted with the actual key generated by the desktop before it gets sent to the server.
That way the server should never get hold of the encryption key in any way. However, this increases attack vectors on the client side. I wouldn't control a power plant with it, but for clicking a button for a demo it should be enough :)
What is your setup?
In fact, sometimes I am lying down in my sofa/bed while looking at my computer wishing I could control it somehow.
But not like a trackpad, those clients usually suck afaik.
Assuming it would work cross device out of the box, because it _should_, was a idea I was comfortable with. I'll make it work.
Update: Works when I use Chrome beta on my phone.