This is the reason that the SC4-HSM has a built-in display and user inputs. These serve the same purpose as the display on a PoS terminal, except that because they are a part of the HSM itself, they can't be compromised by an attacker who pwns the host that the HSM is plugged in to.
An attacker can still attempt a phishing attack, but this will be much, much harder. And for really mission-critical applications, an attacker would have to control every possible means of computing a secure hash on the host machine.
I should probably write a paper about this.
Little window for error too, since screwing up the password some small number of times results in the card being blocked, and in some cases, destroyed.
Even if the host is running hostile code, the worst it could do is forge signing requests?
If the host machine is pwned then it's not hard to steal your password.
> the worst it could do is forge signing requests
Well yeah, that's true. But if the card is protecting a really sensitive asset (like your bitcoin account) then a single forged request can do an awful lot of damage.
Not "ideally". Critically. Without an out-of-band PIN the card is easy to compromise. And most cards don't have input devices.
And even with a secure PIN entry, without a display you can't actually know what transaction you are authorizing. So yes, the malware would have to "horn in" on a legitimate request. But if your machine is pwned that's not hard.
> Those are not at all secure against compromised hosts.
How so? Certainly there are poorly designed applications on smartcards that are vulnerable, but the smartcard itself should be fine.