maqp / tfc

Tinfoil Chat - Onion-routed, endpoint secure messaging system
GNU General Public License v3.0
1.22k stars 85 forks source link

Data Diode #88

Open TheWanderer1983 opened 7 months ago

TheWanderer1983 commented 7 months ago

Hello,

What is your reasoning for using a USB/TTL data diode instead of a OSDD fiber data diode ? https://github.com/Vrolijk/OSDD/blob/main/datadiode_hardware_setups.md

maqp commented 6 months ago

That repo was created on January 14, 2022 with this commit. The work on TFC started in 2013.

I did experiment with ethernet-to-fiber converters back in 2013-2014, but ran into issues:

HW configuration consistency: Some guides used converters that required three units, and the ones I received required four units, to mock the carrier signal so the last two converters in the chain would allow data transfer.

Error rate: With udpcast and heavy FEC I was able to get reasonably reliable UDP transfers at ~10% efficiency, and given the cost it didn't seem reasonable. Later inspection showed the adapters might have had moisture damage during shipping or storage, so YMMV.

Cost: The documentation of the project you linked discusses Y-cables which would drop the cost to half of what it was, and the prices have also come down. I paid roughly 120€ for 4x100mbps converters for a single direction data diode, so end user would have had to pay roughly 240€ for the data diode. The list price for the MC210CS is roughly 40€, so it's still 160€ per end user. You might be able to grab one on sale, and since it's a gigabit device the throughput is much better compared to the TTL data diode so if your intent is to transfer large files it's certainly better.

The project is currently in maintenance only because I'm busy with other aspects of my life, so the work to add support for UDP data transfer will have to wait.

TheWanderer1983 commented 5 months ago

Thanks for the response. All good reasons. Just for interest, here is a paper on this method with error rates with udpcast, pydiode and netcat. They also bench-marked against your data diode. https://pep23.com/assets/pdf/pep23-paper7.pdf