Pages:
Author

Topic: [NOW AVAILABLE] BTChip / Ledger HW1 : Bitcoin Hardware Wallet in a USB smartcard - page 5. (Read 62567 times)

hero member
Activity: 623
Merit: 500
CTO, Ledger
Integrated U2F is probably not going to happen for the Nano, as that would mean starting a new production run and have people buy the new one. So not very interesting. We're not working on a new Nano, we want to keep this one up to date with as many new features as we can.

We expect to have a Blue design available by the end of the year, beginning of the next, including U2F (and UAF if the specification is stable enough)

In the meantime the public TEE application beta should start in a few weeks (for Samsung Galaxy S6, Note 4 N910C/N910H owners), and probably another surprise during summer.
hero member
Activity: 692
Merit: 500
Are you at liberty to share whether we can expect a HW-2 or Nano-2 with upgraded specs, and perhaps integrated U2F support ?
hero member
Activity: 623
Merit: 500
CTO, Ledger
Thanks, in reference to the above; Not specific to Ledger but a general note. I noticed CoinKite starts its default at 1 ... going forward with more implementation and users being able to select which Subkey (at CK) on BIP44 path one could end up with clashes where addresses are being reused (say across multiple wallets using different implementations etc). Any thoughts on that?

Sorry, missed your post. Yes, some implementations can reuse key paths. I don't think it's a major problem as that would happen in multisignature use cases with different signers.

Now for the good news, I should have finally fixed Windows support properly and added some updated build instructions on https://github.com/LedgerHQ/btchip-python - also Electrum 2.3.2 binaries should work fine (when they're out)

Electrum 2.3.2 also supports Ledger Security Card validation, allowing you to use it after a regular Ledger Wallet initialization.
hero member
Activity: 821
Merit: 1000
3. What Key Derivation Paths are used by Ledger Wallet direct and Coinkite? should for example one need to manually pull those keys if said service is down etc.

Ledger Wallet uses standard BIP 44 on account 0 for the time being, Coinkite let you pick your own derivation path on the imported xpub then derives incrementally each key. I think you should be able to retrieve the current index on their signing page.

Thanks, in reference to the above; Not specific to Ledger but a general note. I noticed CoinKite starts its default at 1 ... going forward with more implementation and users being able to select which Subkey (at CK) on BIP44 path one could end up with clashes where addresses are being reused (say across multiple wallets using different implementations etc). Any thoughts on that?

hero member
Activity: 623
Merit: 500
CTO, Ledger
Couple of questions...

1. How much more secure in the mobile app for second factor compared to the security card? (I can see the potential concern with the security card; is the Ledger team confident that the mobile app provides sufficient protection?)

the mobile app lets you verify the full transaction (including amount) so it's definitely better than the security card. Regarding its security a malware would have to compromise both the host and the phone simultaneously to trick you into signing something you didn't want to.

2. I understand the second auth is not available if the nano/hw1 is used for multi-sig .. any plans to support that or is this a design decision?

it's a design decision for this product as it'd make things awkward if for example you use your phone and the Ledger Nano for multi signature. On our next products supporting a screen (Trustlet, Blue) we'll be able to consistently verify the transaction.

3. What Key Derivation Paths are used by Ledger Wallet direct and Coinkite? should for example one need to manually pull those keys if said service is down etc.

Ledger Wallet uses standard BIP 44 on account 0 for the time being, Coinkite let you pick your own derivation path on the imported xpub then derives incrementally each key. I think you should be able to retrieve the current index on their signing page.

Keep up the great work Smiley

thanks, we'll do exactly that Smiley

I just got a nano, it should come in the mail tomorrow and I am pretty excited about it.

I have a suggestion, I would like to see the support of altcoins, several different types of wallets, etc on the same device.  I know maybe this is a hard thing to do but I am throwing it out there as and idea perhaps for a future product.

we plan to make it easier for people to support altcoins in the next firmware for third party wallets, if we get enough code space for that. Some people already worked on it with the current firmware, but it's not deployed yet.
sr. member
Activity: 322
Merit: 250
I just got a nano, it should come in the mail tomorrow and I am pretty excited about it.

I have a suggestion, I would like to see the support of altcoins, several different types of wallets, etc on the same device.  I know maybe this is a hard thing to do but I am throwing it out there as and idea perhaps for a future product.
hero member
Activity: 821
Merit: 1000
Couple of questions...

1. How much more secure in the mobile app for second factor compared to the security card? (I can see the potential concern with the security card; is the Ledger team confident that the mobile app provides sufficient protection?)
2. I understand the second auth is not available if the nano/hw1 is used for multi-sig .. any plans to support that or is this a design decision?
3. What Key Derivation Paths are used by Ledger Wallet direct and Coinkite? should for example one need to manually pull those keys if said service is down etc.

Keep up the great work Smiley

Thanks
hero member
Activity: 560
Merit: 509
I prefer Zakir over Muhammed when mentioning me!
@Muhammed Zakir:
Quote
It is working good for me. Was it broken after you made an commit(if any)?

In my case under Win7 64 bit btchip-python is unstable, can't be used together with Electrum.

Did you use libusb-win32-bin-1.2.6.0?
Did you compile cython with Microsoft Visual C++ VCForPython27?
Or you used a MinGW environment?

Yes, I use libusb but don't remember the version and I installed Cython using Python setup.py command and it used Visual C++.
newbie
Activity: 37
Merit: 0
@Muhammed Zakir:
Quote
It is working good for me. Was it broken after you made an commit(if any)?

In my case under Win7 64 bit btchip-python is unstable, can't be used together with Electrum.

Did you use libusb-win32-bin-1.2.6.0?
Did you compile cython with Microsoft Visual C++ VCForPython27?
Or you used a MinGW environment?

hero member
Activity: 560
Merit: 509
I prefer Zakir over Muhammed when mentioning me!

Please help! How to go on?

The Python API is broken on Windows, and I didn't have the opportunity to have a look yet.

It is working good for me. Was it broken after you made an commit(if any)?
hero member
Activity: 623
Merit: 500
CTO, Ledger

Please help! How to go on?


The Python API is broken on Windows, and I didn't have the opportunity to have a look yet.
newbie
Activity: 37
Merit: 0
I tried to install btchip-python under Win 7, 64 bit.

- installed python-2.7.9.amd64.msi
- added to PATH C:\Python27\;C:\Python27\Scripts\
- installed Microsoft Visual C++ VCForPython27.msi
- pip install cython
- pip install hidapi
- downloaded https://github.com/walac/pyusb/archive/pyusb-master.zip
- cd pyusb-master
- python setup.py install
- downloaded https://github.com/LedgerHQ/btchip-python/archive/btchip-python-master.zip
- cd btchip-python-master
- python setup.py install
- cd samples
- python getFirmwareVersion.py
[hang up]

I tried to run pyusb again:
cd pyusb-master\tests
python testall.py
PyUSB ValueError: No backend available

I Googled to this error, and found: http://stackoverflow.com/questions/5152133/pyusb-backend-not-accessible
It said that "You need to install libusb-1.0, libusb-0.1, or openusb as a backend to pyusb."

I downloaded libusb-win32-bin-1.2.6.0
cd libusb-win32-bin-1.2.6.0\bin
inf-wizard.exe

created a driver kit for
Vendor ID        Product ID      Description
0x2581            0x2B7C          Plug-up

Then installed the created driver.

Now pyusb tests run without errors.
Also, btchip-python is operational, gets back the firmware version, but not always:

btchip-python-master\samples>python getFirmwareVersion.py
=> e0c4000000
<= 010001040e014e9000
1.4.14

btchip-python-master\samples>python getFirmwareVersion.py
=> e0c4000000
Traceback (most recent call last):
  File "getFirmwareVersion.py", line 25, in
.
.
    timeout
  File "C:\Python27\lib\site-packages\usb\backend\libusb0.py", line 381, in _che
ck
    raise USBError(errmsg, ret)
usb.core.USBError: [Errno None] libusb0-dll:err [_usb_reap_async] reaping reques
t failed, win error: "A device connected to the system doesn't operate properly"

The next test runs only ONCE conrrectly, then gives an error, then gangs up.
After pwercycle, the same...

\btchip-python-master\tests>python testConnectivity.py
btchip firmware version:
=> e0c4000000
<= 010001040e014e9000
{'compressedKeys': True, 'version': '1.4.14', 'specialVersion': 0}
some random number from the dongle:
=> e0c0000014
<= f673c10e1ce482848366cbc75fe42cd61f41ea3f9000
['0xf6', '0x73', '0xc1', '0xe', '0x1c', '0xe4', '0x82', '0x84', '0x83', '0x66',
'0xcb', '0xc7', '0x5f', '0xe4', '0x2c', '0xd6', '0x1f', '0x41', '0xea', '0x3f']

\btchip-python-master\tests>python testConnectivity.py
btchip firmware version:
=> e0c4000000
Traceback (most recent call last):
  File "testConnectivity.py", line 29, in
    print(app.getFirmwareVersion())
  File "C:\Python27\lib\site-packages\btchip_python-0.1.14-py2.7.egg\btchip\btch
ip.py", line 363, in getFirmwareVersion
    response = self.dongle.exchange(bytearray(apdu))
  File "C:\Python27\lib\site-packages\btchip_python-0.1.14-py2.7.egg\btchip\btch
ipComm.py", line 79, in exchange
    self.device.write(0x02, tmp[offset:offset + 64], 0)
  File "C:\Python27\lib\site-packages\usb\core.py", line 898, in write
    self.__get_timeout(timeout)
  File "C:\Python27\lib\site-packages\usb\backend\libusb0.py", line 499, in intr
_write
    timeout)
  File "C:\Python27\lib\site-packages\usb\backend\libusb0.py", line 552, in __wr
ite
    timeout
  File "C:\Python27\lib\site-packages\usb\backend\libusb0.py", line 381, in _che
ck
    raise USBError(errmsg, ret)
usb.core.USBError: [Errno None] libusb0-dll:err [_usb_reap_async] reaping reques
t failed, win error: Egy rendszerhez csatlakoztatott eszk÷z nem műk÷dik.

btchip-python-master\tests>python testConnectivity.py
btchip firmware version:
=> e0c4000000
[HANG UP]



Please help! How to go on?
hero member
Activity: 560
Merit: 509
I prefer Zakir over Muhammed when mentioning me!
Hi can I use the same wallet I use for my other ledger products on this easily?

If you backup the seed, you can restore it in any of your HW.1.
hero member
Activity: 819
Merit: 1000
Hi can I use the same wallet I use for my other ledger products on this easily?
hero member
Activity: 623
Merit: 500
CTO, Ledger
Now i've a bricked btchip and one that is working flawlessy Cheesy

I was able to unbrick a HW-1 with a firmware downgrade

won't work here. That's why I'm asking the guy to contact support.

Still waiting to hear back from the Ledger Chrome Wallet devs.....
http://www.reddit.com/r/Bitcoin/comments/344sdl/ive_bricked_my_btchip_hw1/#cqvqy58

I'll re-ping. Sorry, it's a bit difficult to get hold of people in France in May (about 2-3 bank holidays per week all month)
hero member
Activity: 692
Merit: 500
Now i've a bricked btchip and one that is working flawlessy Cheesy

I was able to unbrick a HW-1 with a firmware downgrade

https://fupbeta.hardwarewallet.com

Followed by a firmware upgrade on OSX using ledger chrome wallet

Running the Ledger Chrome Wallet upgrade on Odroid Arm Ubuntu 14.04 fails every time.

Still waiting to hear back from the Ledger Chrome Wallet devs.....
http://www.reddit.com/r/Bitcoin/comments/344sdl/ive_bricked_my_btchip_hw1/#cqvqy58
legendary
Activity: 3766
Merit: 1742
Join the world-leading crypto sportsbook NOW!
With which software ? On which OS ?

Electrum + ubuntu 15.04

Now i've a bricked btchip and one that is working flawlessy Cheesy

But my major concern is this (also posted on github):

Quote
I've set my btchip in relaxed wallet mode, and now i should be able to sign transactions with how many outputs i want. But when i try to load a CSV range of address + amounts with the dedicated feature in electrum, the button "Sign" just does not appear.



There is an already aviable tool that allows a complete use of the relaxed/developer mode?
hero member
Activity: 623
Merit: 500
CTO, Ledger
With which software ? On which OS ?

on https://github.com/LedgerHQ any API should do - the C version being the most documented
legendary
Activity: 3766
Merit: 1742
Join the world-leading crypto sportsbook NOW!
Can you describe very precisely all steps you followed to end up with that and your system configuration ? (on Ledger support mail preferably). I've been tracking this one down and unable to reproduce it yet.

Thanks

Successfull firmware update > Setup with the internal seed generator > Backup the seed > Stuck

Can i also ask a good APDU tool to communicate with the btchip? (for low level tweaking)
hero member
Activity: 623
Merit: 500
CTO, Ledger
Can you describe very precisely all steps you followed to end up with that and your system configuration ? (on Ledger support mail preferably). I've been tracking this one down and unable to reproduce it yet.

Thanks
Pages:
Jump to: