Bitcoin Forum
December 13, 2024, 12:57:32 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 [31] 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 ... 265 »
  Print  
Author Topic: [ESHOP launched] Trezor: Bitcoin hardware wallet  (Read 966226 times)
hazek
Legendary
*
Offline Offline

Activity: 1078
Merit: 1003


View Profile
June 18, 2013, 07:21:36 AM
Last edit: June 18, 2013, 07:50:02 AM by hazek
 #601

By the way, I was talking to Chris (of BitSafe) at the conference and he brought up a good point we haven't considered before.

The combination of TREZOR/BitSafe and the payment protocol means you can get money out of the device safely, assuming the entity you're paying is signing their payment requests. But how do you get money into it? If your computer is compromised, this is hard.

Not really? Why would it be hard? The same way the device asks you to authorize a transaction it should be able to ask you to authorize a signature for a certain address. And if you are signing for a public key that a virus put there instead of the real public key, the hardware wallet signature wont be valid with that public key.

The virus could send his own signature to the exchange. You would confirm something on Trezor but its signature would never even reach the exchange.

Without getting the correct signature the exchange would not send to that public key.

My personality type: INTJ - please forgive my weaknesses (Not naturally in tune with others feelings; may be insensitive at times, tend to respond to conflict with logic and reason, tend to believe I'm always right)

If however you enjoyed my post: 15j781DjuJeVsZgYbDVt2NZsGrWKRWFHpp
VeeMiner
Hero Member
*****
Offline Offline

Activity: 752
Merit: 500


bitcoin hodler


View Profile
June 18, 2013, 07:28:08 AM
 #602

Stop trying to get customers and merchants hacked.

What he's saying is that the device could be attacked - obviously not by design, it's designed to not allow the private key to be read by issuing commands to the Trezor. But depending on the chip they've chosen, physical possession of the Trezor by an attacker would allow him to run other types of attacks (power analysis, etc.) to extract the private keys from the memory.

I don't really expect any merchant to allow you to just randomly walk in and plug a device (_any_ device) into an USB port on their computer. Especially one that implements the HID protocol (presents itself as a keyboard). See http://hakshop.myshopify.com/products/usb-rubber-ducky for an example of what I mean.

As far as I understand, the Trezor is meant to keep your private keys secure in case your computer is infected with malware. It's not something you would use at a merchant.

you could use it at a merchant with no worries

I don't want anyone to get hacked, all I'm saying is that trezor is safe to plug in to whichever computer (even full of malware and keyloggers) and send your bitcoins to whomever you want from it. If you understood the concept of Trezor then you would agree with me.

The thing is that you are only signing the transaction with your trezor and the only way that it can be done is by pressing the hardware button. So you are spreading fud by saying Trezor is not safe. Read and research more on this topic before making more claims please.
firefop
Sr. Member
****
Offline Offline

Activity: 420
Merit: 250


View Profile
June 18, 2013, 07:52:16 AM
 #603

Just watching and waiting...

caveden
Legendary
*
Offline Offline

Activity: 1106
Merit: 1004



View Profile
June 18, 2013, 07:56:19 AM
 #604

Not really? Why would it be hard? The same way the device asks you to authorize a transaction it should be able to ask you to authorize a signature for a certain address. And if you are signing for a public key that a virus put there instead of the real public key, the hardware wallet signature wont be valid with that public key.

The virus could send his own signature to the exchange. You would confirm something on Trezor but its signature would never even reach the exchange.

Without getting the correct signature the exchange would not send to that public key.

But what would be a correct signature? How would the exchange know that the address really belongs to you? The signature could be provided by the virus, using the attacker's private key.
hazek
Legendary
*
Offline Offline

Activity: 1078
Merit: 1003


View Profile
June 18, 2013, 09:23:17 AM
 #605

Not really? Why would it be hard? The same way the device asks you to authorize a transaction it should be able to ask you to authorize a signature for a certain address. And if you are signing for a public key that a virus put there instead of the real public key, the hardware wallet signature wont be valid with that public key.

The virus could send his own signature to the exchange. You would confirm something on Trezor but its signature would never even reach the exchange.

Without getting the correct signature the exchange would not send to that public key.

But what would be a correct signature? How would the exchange know that the address really belongs to you? The signature could be provided by the virus, using the attacker's private key.

Steps:
1: tell exchange your public key which then gets locked in
2: exchanges shows you which public key you submitted and to submit a message signed with the corresponding private key
2a: if you see some other address you abort
2b: if you see the correct address proceed to signing the message
3: send the signed message to exchange + 2FA time based PIN to authorize the withdrawal (hell, the message could be the PIN)
4: exchange sends bitcoins to the public key

What this does?
It prevents a virus from replacing the address you submit to an exchange as a destination for a withdrawal with an attackers address

What this doesn't do?
Helps you in anyway if an attacker has access to your account, obviously.

My personality type: INTJ - please forgive my weaknesses (Not naturally in tune with others feelings; may be insensitive at times, tend to respond to conflict with logic and reason, tend to believe I'm always right)

If however you enjoyed my post: 15j781DjuJeVsZgYbDVt2NZsGrWKRWFHpp
neoranga
Newbie
*
Offline Offline

Activity: 50
Merit: 0


View Profile
June 18, 2013, 09:35:49 AM
 #606

I have a doubt about the construction of the operation and confirming the information on the Trezor.
The images and videos I saw so far show that Trezor displays the address you send money to and the amount you send, but there are several things in that transaction that a malicious client (modified by an attacker) can modify and I need to review in the Trezor in order to accept the transaction.

My doubt is, how do I know when signing on the Trezor that the fee is not incredibly high or the change address is not mine (attacker redirecting the founds to another address)?
jackjack
Legendary
*
Offline Offline

Activity: 1176
Merit: 1280


May Bitcoin be touched by his Noodly Appendage


View Profile
June 18, 2013, 10:08:10 AM
 #607

I have a doubt about the construction of the operation and confirming the information on the Trezor.
The images and videos I saw so far show that Trezor displays the address you send money to and the amount you send, but there are several things in that transaction that a malicious client (modified by an attacker) can modify and I need to review in the Trezor in order to accept the transaction.

My doubt is, how do I know when signing on the Trezor that the fee is not incredibly high or the change address is not mine (attacker redirecting the founds to another address)?
I think, and hope that Trezor would display all inputs and all outputs

Own address: 19QkqAza7BHFTuoz9N8UQkryP4E9jHo4N3 - Pywallet support: 1AQDfx22pKGgXnUZFL1e4UKos3QqvRzNh5 - Bitcointalk++ script support: 1Pxeccscj1ygseTdSV1qUqQCanp2B2NMM2
Pywallet: instructions. Encrypted wallet support, export/import keys/addresses, backup wallets, export/import CSV data from/into wallet, merge wallets, delete/import addresses and transactions, recover altcoins sent to bitcoin addresses, sign/verify messages and files with Bitcoin addresses, recover deleted wallets, etc.
Mike Hearn
Legendary
*
Offline Offline

Activity: 1526
Merit: 1134


View Profile
June 18, 2013, 11:25:39 AM
 #608

Steps:
1: tell exchange your public key which then gets locked in

Remember that the threat model here is a compromised computer. So how do you tell the exchange your public key? Through their website? Not going to work. Phone them up and read it out over the phone? Could work, but hardly user friendly.

The simplest way is to just order the hardware from the exchange company itself. This is good for everyone - the exchange gets a new way to make a bit of money, TREZOR gets free advertising and a new source of orders, users are made aware of the availability of the security hardware and have a one-click purchasing option that automatically sets up their exchange account with the correct public key.

Hence - reverse payment protocol, which is what Chris suggested.

Neoranga, the device shows you the fee, I believe. There's some stuff in the protocol so it can calculate that. The device won't sign the transaction if the change address doesn't belong to itself.

The real risk is of course that the address you see in your web browser and on the device are identical, but not actually owned by the person/company you think you're paying (they were both substituted by a virus). That's what the payment protocol is for.
chrisrico
Hero Member
*****
Offline Offline

Activity: 496
Merit: 500


View Profile
June 18, 2013, 11:44:17 AM
 #609

Maybe because the Trezor protocol requires the computer to be able to build transactions and thus know the contents of your wallet, including your root public key and so your balance + past/future transactions ?

Come on stick. You know as well as I do that Trezor does not mean "you don't have to trust the computer". It means "the computer cannot steal your money". That is NOT the same thing. The computer still gets to have a lot of private, sensitive financial data that I wouldn't want random coffee shop baristas to have.

I hadn't considered this aspect of using the Trezor in such a way. I agree that it makes this use case pretty unlikely to occur. Though people happily hand their credit cards over to total strangers, giving them all the information they would need to empty their checking accounts...

In order to get the full benefits of the (normal) payment protocol, does the Trezor itself need to understand it, or can the host computer (even possibly infected) do so an reliably pass the payment information to the Trezor? I'm thinking it wouldn't be useful to the Trezor since it can't independently grab and verify the X509 certificate. Is that correct?
caveden
Legendary
*
Offline Offline

Activity: 1106
Merit: 1004



View Profile
June 18, 2013, 12:36:46 PM
 #610

Steps:
1: tell exchange your public key which then gets locked in
2: exchanges shows you which public key you submitted and to submit a message signed with the corresponding private key
2a: if you see some other address you abort
2b: if you see the correct address proceed to signing the message

The virus can just put itself in the middle of the communication. It sends the attacker's key to the exchange, but display your own to you.

If the exchange uses a second channel (like SMS) to confirm the public key, then perhaps it might work safely enough, as we can consider it unlikely for the attacker to control both channels.

What this doesn't do?
Helps you in anyway if an attacker has access to your account, obviously.

We're always assuming the user's system is under control of an attacker, so yeah, the attacker is in control of your account in the exchange as well.
hazek
Legendary
*
Offline Offline

Activity: 1078
Merit: 1003


View Profile
June 18, 2013, 01:42:21 PM
 #611

Steps:
1: tell exchange your public key which then gets locked in

Remember that the threat model here is a compromised computer. So how do you tell the exchange your public key? Through their website? Not going to work. Phone them up and read it out over the phone? Could work, but hardly user friendly.

The simplest way is to just order the hardware from the exchange company itself. This is good for everyone - the exchange gets a new way to make a bit of money, TREZOR gets free advertising and a new source of orders, users are made aware of the availability of the security hardware and have a one-click purchasing option that automatically sets up their exchange account with the correct public key.

Well you go ahead and offer your solution, I don't accept it because I do not want you or anyone else to know my private key.

My personality type: INTJ - please forgive my weaknesses (Not naturally in tune with others feelings; may be insensitive at times, tend to respond to conflict with logic and reason, tend to believe I'm always right)

If however you enjoyed my post: 15j781DjuJeVsZgYbDVt2NZsGrWKRWFHpp
hazek
Legendary
*
Offline Offline

Activity: 1078
Merit: 1003


View Profile
June 18, 2013, 01:44:31 PM
 #612

Steps:
1: tell exchange your public key which then gets locked in
2: exchanges shows you which public key you submitted and to submit a message signed with the corresponding private key
2a: if you see some other address you abort
2b: if you see the correct address proceed to signing the message

The virus can just put itself in the middle of the communication. It sends the attacker's key to the exchange, but display your own to you.

If the exchange uses a second channel (like SMS) to confirm the public key, then perhaps it might work safely enough, as we can consider it unlikely for the attacker to control both channels.

What this doesn't do?
Helps you in anyway if an attacker has access to your account, obviously.

We're always assuming the user's system is under control of an attacker, so yeah, the attacker is in control of your account in the exchange as well.

But then this is a non issue since he can already withdraw to any address he wishes. I mean if that's the case I don't even understand what threat we are talking about anymore. In case you didn't notice, I work for an exchange and we don't have problems with people getting their Bitcoin addresses swapped right under their noses, we do have a problem when occasionally users get their account access information compromised and an attacker logs into their account robbing them, something 2FA and now email confirmation deal with very effectively.


Anyway.. I would never ever buy and use a hardware wallet for which the seed wasn't generated by me. Period.

My personality type: INTJ - please forgive my weaknesses (Not naturally in tune with others feelings; may be insensitive at times, tend to respond to conflict with logic and reason, tend to believe I'm always right)

If however you enjoyed my post: 15j781DjuJeVsZgYbDVt2NZsGrWKRWFHpp
nimda
Hero Member
*****
Offline Offline

Activity: 784
Merit: 1000


0xFB0D8D1534241423


View Profile
June 18, 2013, 01:54:31 PM
 #613

I have a doubt about the construction of the operation and confirming the information on the Trezor.
The images and videos I saw so far show that Trezor displays the address you send money to and the amount you send, but there are several things in that transaction that a malicious client (modified by an attacker) can modify and I need to review in the Trezor in order to accept the transaction.

My doubt is, how do I know when signing on the Trezor that the fee is not incredibly high or the change address is not mine (attacker redirecting the founds to another address)?
I think, and hope that Trezor would display all inputs and all outputs
I'd hope for Trezor to spit out the signed raw transaction, without the computer automatically publishing it, so you can decoderawtransaction just to make sure. Of course the software would display it in a very user-friendly way, so the grandmas wouldn't have to actually use the debug console / bitcoind.
Mike Hearn
Legendary
*
Offline Offline

Activity: 1526
Merit: 1134


View Profile
June 18, 2013, 02:03:57 PM
 #614

In order to get the full benefits of the (normal) payment protocol, does the Trezor itself need to understand it, or can the host computer (even possibly infected) do so an reliably pass the payment information to the Trezor? I'm thinking it wouldn't be useful to the Trezor since it can't independently grab and verify the X509 certificate. Is that correct?

The payment protocol was designed with Trezor in mind - it embeds the X.509 chain into the payment request itself. The host device streams the entire request to the device which can then verify all the signatures itself.

Quote from: hazek
But then this is a non issue since he can already withdraw to any address he wishes. I mean if that's the case I don't even understand what threat we are talking about anymore. In case you didn't notice, I work for an exchange and we don't have problems with people getting their Bitcoin addresses swapped right under their noses, we do have a problem when occasionally users get their account access information compromised and an attacker logs into their account robbing them, something 2FA and now email confirmation deal with very effectively.

Obviously in a world in which exchanges sell Trezor's, you would not be able to withdraw to any address you want. It'd have to be a Trezor address.

You can still generate your own private key. All that is required is that the Trezor has its own certificate signed by the manufacturer, and that this cert chain was snapshotted by the exchange prior to shipping. You can generate or provide your own seed after receiving it, no problem. When the Trezor takes part in the reverse payment protocol it simply provides its certificate chain proving that it contains the private key for the address in question.

I'm sure that currently you don't have such problems. Currently we don't seem to have problems with local encrypted wallets getting stolen either, even though we've known since the feature was first shipped that all it does is raise the bar. But we will have these problems sooner or later. As the amount of money in the Bitcoin community gets higher and higher, even 2-factor authentication as practiced today won't be sufficient. We know this without a doubt because banks already experience such attacks on a routine basis.

Trezor and the payment protocol are long term, high-difficulty projects that the community is putting in place because we know what's coming.
caveden
Legendary
*
Offline Offline

Activity: 1106
Merit: 1004



View Profile
June 18, 2013, 02:30:15 PM
 #615

Anyway.. I would never ever buy and use a hardware wallet for which the seed wasn't generated by me. Period.

You're confusing bitcoin keys with the certificate and key used for the address verification protocol. They are not the same. You'd still generate the bitcoin seed yourself.
Delver
Newbie
*
Offline Offline

Activity: 11
Merit: 4



View Profile
June 19, 2013, 12:56:23 AM
 #616

I'm confused as to why the PIN code is entered into the wallet application, rather than the device itself - surely that increases the risk of a successful physical theft. Assuming the PIN code is not changed on a regular basis, using the device on an infected workstation would essentially render the PIN code useless if attacked through a combination of both digital and physical means. On the other hand, if the code was to be entered on the Trezor itself, such a scenario is not possible unless the PIN code is provided by the owner under duress.
farlack
Legendary
*
Offline Offline

Activity: 1310
Merit: 1000



View Profile
June 19, 2013, 02:28:28 AM
 #617

What happens if you lose it?
bitpop
Legendary
*
Offline Offline

Activity: 2912
Merit: 1060



View Profile WWW
June 19, 2013, 02:32:32 AM
 #618

You make a new one with the seed you wrote down.

What happens if you lose it?

neoranga
Newbie
*
Offline Offline

Activity: 50
Merit: 0


View Profile
June 19, 2013, 07:15:35 AM
 #619

I'm confused as to why the PIN code is entered into the wallet application, rather than the device itself - surely that increases the risk of a successful physical theft. Assuming the PIN code is not changed on a regular basis, using the device on an infected workstation would essentially render the PIN code useless if attacked through a combination of both digital and physical means. On the other hand, if the code was to be entered on the Trezor itself, such a scenario is not possible unless the PIN code is provided by the owner under duress.

I recommend watching this speech from Bitcoin 2013 conference https://www.youtube.com/watch?v=3t18a-wXBnw
The guy explains the Trezor and shows how the PIN code works and why it's there.
Delver
Newbie
*
Offline Offline

Activity: 11
Merit: 4



View Profile
June 19, 2013, 02:09:49 PM
 #620

I recommend watching this speech from Bitcoin 2013 conference https://www.youtube.com/watch?v=3t18a-wXBnw
The guy explains the Trezor and shows how the PIN code works and why it's there.

Unfortunately the speech does nothing to alleviate my concerns. In fact, it is what triggered them in the first place. Antonin merely demonstrates that the PIN code is entered on the computer, claiming it is a safety measure in case the device gets stolen. The scenario I mentioned is not discussed in the presentation.

Quote from: Antonin Hildebrand, Bitcoin 2013 Conference
/.../ and PIN is another protection for case when you lose this device or it's stolen. This gives you some time to reconstruct this wallet in some software and send money out of this wallet into some safe place and do it more quickly than someone who found this device and tried all PIN combinations.

That does not explain why the PIN code is not entered on the Trezor itself, as suggested in my original post.
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 [31] 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 ... 265 »
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!