Key feature updates:

1) Bundled Zxing QR scanner app with the our app:
The original code hosted by zxing had to be modified slightly in order to
bundle it. Some changes to not to allow our app from being the default
barcode scanner and some changes to the deprecated methods used there. End
result - a repository resembling the original repository has to be
maintained in order to allow building from source code. Don't know anything
about copyrights etc.

2) QR to bootstrap Wi-Fi direct and bluetooth:
I've followed similar methods in both Wi-Fi direct and bluetooth with the
ascending hierarchical order
- A button (to start exchange process)
- Start a server on each of the individual mobiles
- Generate QRcode of MAC+IP+port+WPA password in case of wifi-direct and
only MAC in case of bluetooth
- One of the device-user clicks on 'scan QR' button and scans QR from other
mobile
- Close server on one mobile (on which user has clicked 'scan-QR')
- Initiate connection to the other mobile
- Once connected, exchange noderefs

In case of Wi-Fi direct, the user interaction is complete as soon as he/she
scans the QR
In case of 'previously unpaired' bluetooth devices, qr scan results in
popping of pairing notifications on both mobiles. Each of the user have to
accept the pair requests from their notification bars. Only then a
connection is established

I can try to avoid the above process by using reflections and messing with
android but can't guarantee if it is possible. If this is done we can also
generate a random key when starting bluetooth server and include it in QR.

- After noderef exchange is complete, a text box containing complete
noderef pops up. User needs to manually accept the received reference here

3) Nfc to bootstrap:
Same as above except that the message containing MAC etc. is also encoded
as an NDEF message if the mobile has nfc adapter.
Instead of scanning, the two mobiles need to be brought back to back. The
default android nfc animation starts asking user to click to beam content.

The wikipedia page suggests that nfc exchange can be eavesdropped.
So, theoretically, someone can listen to the broadcast and connect to our
mobile before our peer mobile connects to us and pulls our noderef. Though
the two mobiles need to be close to each other for nfc message exchange, it
can be eavesdropped from a distance of 5-10m with dedicated hardware as
mentioned in the following link:
http://en.wikipedia.org/wiki/Near_field_communication

In this respect, bluetooth is more secure as it requires us to click on
pair button after nfc beaming

Boils down to #easytouseislesssecure


Work to be done:
- Testing and fixing bugs especially related to closing the connections
properly
- Displaying messages to the user on a message text box regarding the
status of our app (connecting, connected, transferring, success, failure
...)
- Adding android application record to the ndef message. This allows the
other mobile to redirect to our playstore page (when we have one) if app
isn't previously installed
- Exchange over internet(?)

App:
https://github.com/NiteshBharadwaj/Freenet/tree/master/src
_______________________________________________
Devl mailing list
Devl@freenetproject.org
https://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl

Reply via email to