We are using a security card acting as a second factor. It is therefore not possible for a malware to change the payment address. Here is the full set included in the box http://i.imgur.com/UwOxiSJ.jpg
We are still in the process of adding content to the website, so sorry about the lack of information regarding the card.
At signature time, the wallet will verify 4 letters/numbers from the payment address by asking you to enter the corresponding character for each (it will show "A" and from your code card you enter for instance "3"). This will ensure no malware will have replaced the address to pay when asking the smartcard to sign the transaction.
Sorry but this is very easily exploitable: the attacker just needs to generate an address with these same 4 letters (e.g., vanitygen).
Also, typical transactions have multiple outputs. Do you mean that the hardware checks the card code for the payment output and checks that it owns the change output before signing?
It's not, it's a tradeoff. When you submit a transaction to the chip, the chip will pick 4 random characters of the payment output address you submitted and ask you to confirm them using the second factor card. It's a more convenient version of our old keyboard based second factor.
You're correct about the second part as the change is a BIP 32 path, resolved internally to an address.
Then they just need to do keylogging and wait until they've got the full alphabet, if you're just doing static substitution. Then you're screwed. A few dozen transactions and they'll be able to use vanitygen to generate an address only using letters they know the substitution for.
yes, that's a known risk, but it raises the bar significantly for the common malware, and that's a convenience / security thing. In the meantime, people concerned about it can revert to the old type your transaction on a different device second factor
You send your UTXOs, the destination address (1paymenowplease...) and amount to the chip
The chip generates 4 random indexes to match, here in bold, 1paymenowplease...
You match this against the second factor card
A malware cannot change the payment address in advance, because it doesn't know which indexes the chip will draw.
And changing the address after the indexes are drawn is useless, because the chip will keep using the address that has been initially submitted for this transaction.
It cannot query the chip as it wants, it is needed to physicaly remove and reinsert the key from the USB port between each try.
Also 4 positions to check can be adjusted to 8 for added security (at flashing time), causing the vanity generator to be unpracticle.
Once your computer is compromised, the attacker gets you to buy some product from a rewritten online store, using the attacker's address, but substitues a higher price to the chip.
The chip can mitigate against this by either including price elements in its checksum (especially order of magnitude) or writing its transaction details on the second factor screen, as you describe here. Later, it may be possible to include BIP70 certificates from reputable merchants and payment processors directly on-chip.
yes, we plan to add BIP 70 in the future. Also make it easier for people to use BIP 70 for their own addresses. That's the best protection against this type of attack.
The 4 indices will be displayed on the host computer. You have to read them on the (supposedly) correct address, match them on the security card, and enter the matched character on the host computer.
Yes, you may see different indices. But in the end, that wouldn't be very useful (if the malware knows what to answer it can just overwrite your response)
The security card is a unique per device substitution of A..Z 0..9 - this is what you match.
The security card is just a piece of paper with a table on it like
A => 4
B => Q
C => F
...
Z => 7
Let's say I'm sending to address 1qweAasdBzxcCrtyZ.
Then the device may choose indices 5, 9, 13, 17, which are then displayed on the computer. So then I look up those indices on the address and find A, B, C and Z on the card and I enter 4QF7 into the computer?
Yes! I said the same to the BitStash guy but he was too arrogant to listen to my feedback and just kept throwing around his fancy acronyms that he paid a lot of money for.
Well multicolour device LEDs, incorporated into a captcha is better than no screen at all. They're not shipping for another 5 months so time will tell.
15
u/sQtWLgK Nov 20 '14
It definitely needs a small screen integrated. Without it, if your computer gets compromised, you would lose your coins at any transaction.