Passing an unwanted guest to the offline wallet and back again over the USB key, seems like the one main vulnerability of Armory. I was thinking of re-partitioning an old USB flash drive to be just large enough to store most transactions one might make to/from the offline wallet.
This is definitely a non-perfect situation, but it's pretty damned good given the usability requirements. The process is already complicated for some new users, and they may not yet fully understand what's going on. I'd rather them use offline wallets with a USB key than not use offline wallets at all (which is a significant risk if it's too complicated). In that sense, everyone understands USB keys, so it serves its purpose well, and if you take precautions (like disabling USB autorun services, etc), it's very safe.
If you are ultra-paranoid, one thing you can do, is buy a USB key that has a write-protect switch. Write the transaction to the USB key (which may be many kB), then turn on write-protect and insert it into the offline system. If you sign the transaction and observe the difference between the original and the signed version, it's only ~140 bytes for each input at the bottom of the TxDP: (in bold)
I was wondering if that sounds like a very good idea and, if it does, if the developer had any idea about how much space might be a good compromise between usability (key not usable if too small) and enhanced security (space for unwanted guests if key partition too large). As the wallet is offline, I don't anticipate ever sending to multiple addresses, or having especially long blockchain entries. I have imported private keys for this just in case anything were to go wrong with the armory wallet or if support on Armory were to end abruptly.
Luckily, Armory wallets have been the same since day one, and will continue to support the same deterministic structure even with the new wallet format coming up. As such, any version of Armory since January will be sufficient at producing any number of keys from any Armory wallet you've ever created. Even if support were to disappear, you'll be able to get those back with any version.
As for the small USB key partition: I like the idea a lot better if there was a way to bound the transaction size. Unfortunately, these sizes are highly variable -- since I need to store
previous transactoins in the TxDP (what is sent to the offline computer) there could be 100 kB in a single transaction. However,
most transactions, for simple users, will only include a couple inputs and will only be a few kB. As such, the gap between smallest and largest is big enough that something sufficiently advanced could hide there