Close

Log 1

A project log for SD Card Data Diode System

A system to transfer files from an airgapped PC to an non-airgapped PC by dumping files from SD card to serial port back to another SD card.

int-mosfetInt-Mosfet 07/20/2017 at 05:290 Comments

I've got some good news and bad news.  Good news is I can successfully send a file over serial port from one SD card to another.  I'll get a github repo up in next few weeks, at least by September.  I haven't tried it yet with the optocoupler but I am 99.9999% sure it will work so long as 1-way transmission over serial port is working (the key is the optocouplers are CMOS compatible, that's why it works).

Bad news is that sending files isn't going to work like I expected (and I should've known better when I did a project where I had to convert JPG files to raw binary files, to be able to manipulate raw data easily).  I was thinking I could just transfer all the binary info as is over the serial port, but I need to decode each file first (compression or file formats etc.).  So if your SD card has .docx, .pdf, .jpg, and .txt files all on it, I need to detect each of those files and begin a decoding process before I can move it over the serial port.  I don't think I'll have code space for that and since this is a security project the code has to be as simple as possible and minimal to make for easy verifying and minimize potential bugs.  There's already enough code from the Arduino bootloader to the SD FAT library running, adding a PDF decoder to that will start to get gnarly real quick.

So for the time being, this tool will be for 1 file (right now I have to hardcode the file name in the code, may change that eventually), generally either a TXT or CSV file.  That file can be absolutely huge though.  The main use will be transferring large text strings from an air-gapped PC to a non-air-gapped one.

That's a real let-down for me, so I'll keep looking for ways to make this work, as minimally as possible.  In mean-time, I'm also making my first PCB with Eagle.  Taking me a while.  I'm using a HCPL-7720 optocoupler because it's already in Eagle :p.  It's basically the same as the HCPL-7723 but half the speed.  I'll learn how to add parts and stuff eventually.  It's not intuitive but I'm starting to get the hang of it.  What I wanted to do was have another shield that goes on top of the SD card shields, but it connects the 2 Arduinos.  This is proving to be difficult (I know what I want to do, but not working).  I think I'm going to create the barebones PCB I need, and use cables to connect it for my first prototype; and get better with Eagle and the PCB I'm envisioning.

Discussions