I want an internet connected host, such as a Raspberry Pi, to be able to write uploaded files to a directly-connected SD card, but I don't want it to be able to read the card. This is for protection in the event that the host is compromised.

In the Simplified Physical Layer specs from the SD Association, it refers to "dual simplex" as a feature of the SD Express Card (connected via PCIe). See page 24 (document page 4) here https://www.sdcard.org/downloads/pls/click.php?p=Part1_Physical_Layer_Simplified_Specification_Ver8.00.jpg&f=Part1_Physical_Layer_Simplified_Specification_Ver8.00.pdf&e=EN_SS1_8

Unfortunately there are no other references to simplex in the spec. Is is possible that, by disconnecting one of the simplex channels, I will be able to achieve my goal? I realise that there may be some trade-offs, particularly where file system commands are concerned. For example, the host may not be able to do a directory listing of the card.

I realise the SD card can be read-protected with a password, but that's not acceptable for my use case. (The possibility of a back-door always exists).

  • Welcome to the site! It's not clear how this is specifically related to IoT. Please edit to reflect how your question has to do with the Internet of Things and not just a generic computer question better suited for Super User or Stack Overflow. Thanks!
    – anonymous2
    Jan 15 at 12:43

You are always going to need to be read from the card to be able to make pretty much any normal filesystem work, even if just to read the file allocation table to work out which sectors are free to write new data to.

A better option will be to use public/private key encryption.

Include the public key on the system and use it to encrypt all data written to the SD card, then only somebody with the private key will be able to decrypt any data written to the card. As long as the private key is not included on the system it won't matter even if the hardware is physically compromised and somebody removes the card and puts it in a different machine.

Not the answer you're looking for? Browse other questions tagged or ask your own question.