Author

Topic: Safe file transfer via Ethernet (Read 96 times)

legendary
Activity: 1232
Merit: 1094
January 04, 2018, 03:53:46 PM
#3
Are you trying to turn your Pi into some sort of automated hardware signer?

It is intended as an alternative to using USB to transfer the files to/from the offline computer.

The PI would be setup with Armory and the ethernet transfer program.  After that, the only thing the offline computer needs to do is offline signing.

I am also thinking about setting up the PI with a 50MB RAM drive as Armory's data directory.  This means that all saved files from Armory are reset after each powerup.

The process would be

- create unsigned tx on PC
- disconnect PC from internet
- connect PC to PI via ethernet
- upload unsigned transaction via ethernet transfer (PC - PI)
-- save in RAM drive
- start Armory on PI
- restore wallet from paper backup fragments to RAM drive
- sign transactions
- download signed transactions via ethernet transfer (PI - PC)
- check signed transaction on PC
- disconnect PI from PC
- connect PC to internet
- broadcast signed transactions
legendary
Activity: 3794
Merit: 1375
Armory Developer
January 04, 2018, 02:37:31 PM
#2
Are you trying to turn your Pi into some sort of automated hardware signer?
legendary
Activity: 1232
Merit: 1094
January 04, 2018, 01:47:08 PM
#1
I wrote a ethernet library for transferring files from a Raspberry PI over ethernet.

It uses an "Ethernet Module ENC28J60" add on board for the ethernet connection.  This costs around $2.50 - $5.00.

This board can be connected to the Raspberry PI via the GPIO (general purpose IO) pins.

The software handles the entire IP stack (Repo).

- GPIO driver (handles raw read and write to the Ethernet board)
- Ethernet driver (handles ethernet packets)
- IP Stack (handles ping and 1 TCP connection at a time)
- Web-server (handles uploading and downloading)

The critical point is that the ethernet board is not registered with the operating system in any way.

It is a board that is purely controlled by the software.  You don't need to ask about auto-running or anything by the OS, since the OS is not involved.

This means that it is safe to connect the ethernet board to your computer via ethernet.

You can run it using:

Listen for file upload

./etransfer -i 192.168.0.50

Host my-file.txt

./etransfer -i 192.168.0.50 my-file.txt

If you don't give an IP address it uses one of the 192.254.*.* addresses.

The software is functional, but probably needs another pass at least (and maybe a re-write) to verify that it is actually secure.
Jump to: