pfodWifiConfig™ - Simple Configuration for Wifi devices
by Matthew Ford 18th March 2015
(originally posted 26th February 2015)
© Forward Computing and Control Pty. Ltd. NSW Australia
All rights reserved.
This page describes how to use
pfodQRpsk (Rev 1.5.1) to generate the QR image to attach to the
device for use with pfodWifiConfig.
Note: pfodQRpsk (Rev 1.5.1) generates pfodWifiConfigV1 images.
The java application available here, will generate essentially 'random' 128 bit keys, encode as hex digits, and save it as the password for a temporary network for use with pfodWifiConfig
To run the
application, download the jar file, pfodQRpsk.jar.
Save it in a directory which you can write to.
The source code for this java application (V1.5.1) is available in pfodQRpsk.zip as an Eclipse project.
You should double click on the jar file and it should run. If not, you do not have Java installed. To install Java goto www.java.com and download and install the Java runtime.
For use with pfodWifiConfig, pfodQRpsk saves a QR code image containing the (fixed) network SSID pfodWifiConfigV1, the (fixed) security type, WPA2-PSK and the generated key as the password, the portNo to connect to in order to configure the device. See pfodWifiConfig for the details.
A sample image is shown below. The file name is pfodQRpsk plus the generated key.
The scanned text is from this image
Network SSID: pfodWifiConfigV1
Connect to PortNo: 23
The pfodWifiConfig app will use this data to setup a temporary Wi-Fi Access Point to allow you to connect to the device and configure the real network's settings. (NOTE: The QR code WIFI message format is not used because scanners usually hide the password after scanning this format.)
Put the downloaded pfodQRpsk.jar file in a
Then from a terminal window, change directory to where the pfodQRpsk.jar file is and run the command:-
java -jar pfodQRpsk.jar
If the above window does not appear, goto www.java.com and download and install Java.
As well on Mac OS, you can assign "Jar Launcher"
as the default app. to use when you double-click a jar file, as
follows (I don't believe you need the developer tools installed for
i) Click once on the .jar file in the Finder and then from the menubar in the Finder select File -> Get Info".
ii) Click on "Open with" and from the popup menu select "Other". A file browser window will open.
iii) In this window, go to the /System/Library/CoreServices folder and select 'Jar Launcher'.
iv) Then make sure the "Always Open With" checkbox is checked and then click Add.
v) Then click the "Change all" button so that any jar file will be opened automatically.
vi) Finally, close the Info window and now when you double-click any of your jar files they should run automatically.
(see http://macosx.com/tech-support/how-to-execute-a-jar-file-in-os-x/9549.html )
This Key Generator, produces an essentially 'random' key, which means one key is a likely as another as far as both you and any attacker can tell. To initialize the key generator, you move your mouse around in the text window. When the progress bar is full a key is generated from your mouse movements and the computer's current nano time. The generated key is the first 16 bytes of the resulting hash expressed as 22 alpha-numeric characters.
When you press the Generate Another Key button, a completely new key is generated from your mouse movements and the computer's current nano time.
The key produced is essentially unique and un-reproducible, because even with the exact mouse movements, the nanoSec time will be different next time. Each press of the Generate Another Key button produces a different key.
The 128 bit keys generated by pfodQRpsk.jar, are generally believed to resistant to brute force attacks, which try all possible combinations of the secret key. The other means of attack is have access to the QR code and just scan the key.
The pfodQRpsk java application
includes hash code from http://www.gnu.org/software/gnu-crypto/
and QRcode from http://code.google.com/p/zxing/ under their respective licences
are trademarks of Forward Computing
and Control Pty. Ltd.
AndroidTM is a trademark of Google Inc. For use of the Arduino name see http://arduino.cc/en/Main/FAQ
pfodDevice™ and pfodApp™ are trade marks of Forward Computing and Control Pty. Ltd.
Contact Forward Computing and Control by
©Copyright 1996-2017 Forward Computing and Control Pty. Ltd. ACN 003 669 994