Are there secure wifi methods?
T Chap
Posts: 4,223
Is the Xbee wifi module able to be secure for remote control of appliances etc? I suppose everything is hackable these days, but I see remote control home automation including doors and lighting, so I am wondering if there is some method to remotely control a Propeller via wifi from a computer or iPhone app at any location that has internet access. I suppose the security has to be both local LAN/wifi and the network connection.
Comments
If this secret is compromised, security is lost for the whole system. You could use an asymmetric system like RSA, keeping encryption keys private and decryption keys public, which would probably be more complicated but would mean that if one device's secret was compromised, only messages claiming to be from that device would become suspicious as opposed to all messages becoming suspect.
I've been wanting to write a generic propeller telemetry system for a while now using these techniques, but then I realized how perfect a macro compiler would be for this and then I got bogged down by my compiler.
EDIT: If you use RSA, you can guarantee secrecy as well as authenticity. You'll still suffer from repeatable messages, though, but, again, including a monotonically increasing message ID or timestamp should solve this.
The XBee might know how to do all of this itself - this is probably what you want (and is probably what you're asking about). I know the normal non-wifi ones can do AES, although I've never used it.
Secure on the WAN means a VPN. A simple port forward on a router can get you in trouble even on an obscure port on a dynamic IP.
So if you're looking for security over the internet, the best thing to do is put up a VPN. On the LAN (wifi) side, a strong password and WPA2 is tough to crack for most hackers.
The iPhone can do L2TP, PPTP, and IPSec VPN, you'll just need an endpoint on the home network, such as a router with DD-WRT or a router that supports IPSEC using a non-static IP client. http://www.dd-wrt.com/site/index
I use m0n0wall and IPSEC for everything over the web, 10 years no incidents... whew...
What if there are two secrets per device: one secret that's used that's shared between all devices, and another backup one that is unique to each device. All of the backup secrets are known by the master (a PC?). That way, if the master secret is compromised, a new master secret can be authenticated using the backup secrets. This still leaves the problem of how to encrypt the master key - XORing it with backup keys isn't good enough, because then discovering any one key would reveal all of them. This might not work - what if the compromised device claims to be not compromised and is sent the new secret by the master along with everyone else?
The VPN will handle key exchange much better, as well as authentication and encryption.
http://obex.parallax.com/search/sha256
We have already hacked the TP-LINK WR703 and MR3020 devices and Heater provided compiled binaries that allow for the compile and upload of Propeller binaries. So you have several powerful options.
A. Serial Terminal control of a Propeller in Forth on the Propeller
B. Serial Terminal control of a specific Propeller program written in any language available
C. File transfer of Spin code to the mini-wifi modem to store, compile and load to the Propeller
D. File transer of Propeller binaries to the mini-wifi modem to store and load to the Propeller
The devices are relatively small - about 2.5 inches by 2.5 inches by 0.5 inches and low power from a USB power cable. Standby power is very minimal.
These can be configured for three options.
a. wifi only
b. LAN only
c. wifi and LAN
And you have security as good as OpenWRT can provide in SSH.
+++++++++
Bluetooth is much simpler and easier to use, but security will never be as rugged as a Linux supported wifi solutions. The Linux supported solution requires more memory than a Propeller and Bluetooth can provide.
From what little I know of XBee, it seems to be a branded Bluetooth solution.
Hmm, from reading briefly, Zigbee seems to still be secure. At least didn't run across any posts in a quick google. Assuming that is still true, your local LAN to Prop should be good.
Now you remote device across internet to WAN/LAN, thats a real potential problem.
To do this, I'm assuming you are going to be running a webserver on the LAN/DMZ obviously.
Since you will be logging into your webserver, is HTTPS not sufficiently secure?