couldn't you just use a go between (middleman) pc? so for example you create transaction on online pc, unplug that usb stick (usb #1), plug it into pc/device #2 (middleman pc), cut and paste the transaction onto a second usb key(usb#2 that never is used except between offline pc and middleman pc), unplug usb #2, plug into offline pc, sign transaction, plug back into middleman pc, cut and paste signed transaction to Middleman pc/device, unplug usb #2, plug in usb #1 (this usb only ever touches online pc and middleman pc), cut and paste signed transaction onto usb, plug into online pc and transmit.
hope that wasn't too confusing. i'm no security expert and have no idea if this is even feasible or would add any extra layer of security. it does add another third device and makes the whole process longer but if its only something thats done infrequently (to access a cold storage wallet), and it would work, might be an option.
That's absolutely possible! It will add another layer of security.
However, when assuming that an attacker can infect the offline computer via USB, we have to assume he can do the same with the middleman-computer.
So this is no 100% bulletproof setup. But you can make it pretty secure: For example, use some exotic, hardened OS for it. Some BSD or other Unix derivate may be a good choice. Or a non-default USB implementation. At least a different OS or USB implementation than on the offline computer. We should have many choices, as all the middleman has to be able to do is check (and copy) stuff on USB sticks.
When doing all this, to have a very secure middleman, why not simply applying all this to the offline computer and skip the middleman?
The only reasonable way to have high and verificable security revolves, in my opinion, around the files you transfer via USB. The "unsigned" and "signed" transaction, going from online to offline, and from offline to online. If we could read the files directly, as human-readable text, we may have a chance to notice attacks early enough (via middleman?).
Having small files with a hard size limit would help too. I believe this isn't possible, as the unsigned transaction must contain all relevant data of all input transactions, and this can, in some cases, be a *lot* of data. In the 100kb size league easily, which is impossible to read through as a user, and no problem for an attacker to hide a one kb malware in.
Guys, I need some theoretical IT specialist to help out on this! This, surely, is an old and well-known question, hopefully with some answers out there as well?
Ente