Pages:
Author

Topic: [BOUNTY - 25 BTC] Audio/Modem-based communication library - page 6. (Read 11822 times)

legendary
Activity: 1890
Merit: 1078
Ian Knowles - CIYAM Lead Developer
Have you also considered QR code support (you are welcome to use the CIYAM Safe scripts at no cost)?
donator
Activity: 1419
Merit: 1015
I'll add 5 BTC to this bounty for either modem or audio. Would be nice to see both options, however. It doesn't have to be open source, I just want to see it in Armory.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
Bounty:  Me (etotheipi) is offering 20 BTC.  Raize is offering an additional 5 BTC.  

Casascius offered a bet of 20 BTC that it can't be done.   But that requires someone to be willing to pay him 20 BTC if it's not done.  That's a bit steep for me, since I'm not convinced it is doable, but I was willing to give 20 BTC to someone who gave me usable code.

So, in my quest to improve offline wallets, I'd like to finally get started on my ultimate goal of using an audio link between two devices to get the almost-100%-secure link for moving transaction data.  I have bought double-ended audio cables and tested this between online and offline computer, and it does appear to work - I can play music on one computer and record it on the other.  Given that these are analog streams not normally intended for transmitting executable data, I think this is a perfect "side-channel" to exploit for communicating securely.  Also because audio hardware is widely available and supported on all modern OS & HW.

I expect that this would be "easiest" by downloading and adapting some kind of modem firmware, and using it to handle the communication.  My understanding is that the modem software is capable of testing the line quality and setting the communication rate and error correction automatically.  The solution doesn't have to be modem-based, but it should be able to handle 5 MB in under 15 minutes.  The vast majoriy of transfers will be on the order of a few kB, but I don't want a user who actually ends up with 5 MB to transfer to have to wait an hour to do it.

In order to get the bounty, I want python code or something that can be invoked from python (C++ can be SWIG'd in), which will give me the ability to pass data over the audio channel.    The code should have some kind of initialization/handshake routine, and then only allow for sending and receipt of ASCII data.  I basically want it to behave just like a serial port.  Remote code execution on a not-yet-compromised-offline computer should be pretty much nil in this environment.  This software would be set in "listening" mode on the offline side, and simply receive and return (to python) the string that was received.  The calling application would then parse string, request a signature from the user, and then send the signatures back over the audio link (yes, I know I need a second cable for this).

Any person wishing to collect the bounty must also be willing to assign me all rights to use it in the Armory project, free of charge, etc.  This is something I want to eventually integrate into Armory and I'm paying for it because I want to maintain full rights over my own project.

Discussion and improvements are certainly welcome, and partial solutions are also eligible for part of the bounty.
Pages:
Jump to: