DeathAndTaxes,
there's one thing I don't grasp...
What stops someone having access to the web fronting compromised machine from sending a command through the serial port to the hardened PC requesting a 18K withdrawal?
spiccioli.
Business rules.
The serial port wouldn't connect to the bitcoind directly. Instead its access would be limited to only a process/service/daemon which validates tx requests (not commands) against business rules.
Just brainstorming here but as an example imagine the tx server had these rules:
1) Max Tx value is 1000 BTC (or whatever limit is useful for 90% of users).
2) TX value > 100 BTC results in 60 minute delay before return the signed tx.
3) TX value > 300 BTC reults in 180 minutes delay before returning the signed tx.
4) Certain conditions which indicate either a probable attack or software malfunction trigger an automatic lockdown.**
5) If total tx value in last 15 minutes exceeds preset limit delay all tx an additional 30 minutes (even those under 100 BTC) and notify admins.
5) TX volume 50% higher than 7 day peak causes a security hold. *
6) TX value 50% higher than 7 day peak cause a security hold. *
7) TX velocity increases by more than preset limit causes a security hold. *
Web front end -> API via serial port -> tx processors -> wallet.
* Security hold:
On a security hold the server remains online and queues up tx requests but stops returning signed txs. Admin are notified and the server remains halted until it receives a security key (which isn't stored on front end server). This would be useful to put a "man in the loop" when volume is high.
Beep beep beep. Business rule violation: TX volume in the last 24 hours (487 requests) exceeds 72 hour peak (350 requests).
It is possible this is just a valid but unusual event. Admin can check the tx logs, access logs, and if everything checks out provide the security key to resume operation. Grocery stores use a system like this. Ever seen a cashier mess up and she needs the manager key? Same concept. It limits the potential for fraud based on business rules of unusual behavior.
** Lockdown:
In a lockdown (possible intrusion) the server powers off. Resuming tx processing requires powering on the server, providing the startup key, and optionally waiting for a preset delay. All admins are notified of the lockdown and the front end server is halted also. "Red alert. Shields up".
For more security the box could be designed to allow a security hold or lockdown command to be issued from any internet connected computer. The command would need to be digitally signed to prevent abuse but this would provide a "manual override". Zhou noticed the admin reset and the "weird" tx within minutes. Even if the tx server hadn't realized it was fraudulent if it was still in the delayed signing queue Zhou could have forced the server into lockdown and saved six figures.
The rules could start out simple and get more complex as the business evolves.
The goal is to prevent direct access to the keys or funds by limiting unusual activity even when someone has "access". Does anyone think in a traditional bank if a teller uses their terminal to make a "valid" $100,000,000 cash withdrawal the bank's vault automatically swings opens and bags of money roll out? Meanwhile security guards and bank managers stand by helpless as thieves fill a dumptruck with cash because "she had the right code".