Yubico Forum
https://forum.yubico.com/

[Bitcoin] SatoChip:Open-Source Hardware wallet with Yubikey
https://forum.yubico.com/viewtopic.php?f=26&t=1790
Page 1 of 1

Author:  bobo [ Mon Mar 16, 2015 12:54 pm ]
Post subject:  [Bitcoin] SatoChip:Open-Source Hardware wallet with Yubikey

Hello,

Here is a new secure hardware wallet project based on the YubiKey NEO. The sources and building instructions are available on https://github.com/Toporin/SatoChipApplet

This project is fully open source and consists of a javacard applet that is to be loaded on a Yubikey (or any smartcard supporting the required functionalities: ECDSA-SHA256). Beside the applet, a java client is provided in the form of a light java library to simplify integration on existing applications (as the yubikey obviously needs to interact with a client application): https://github.com/Toporin/SatoChipClient.

A simple client java application is also provided as a proof-of-work. This application is a fork based on the BitcoinWallet from ScripterRon: https://github.com/Toporin/BitcoinWallet

The SatoChip has partial BIP32 supports but due to technical limitations of current javacards, only hardened keys are supported (i.e. child keys using indices 2^31 through 2^32-1). Using SatoChip, an initial BIP32 seed is imported in the javacard and private keys are derived as requested by an external application. Private keys are never exported outside of the secure chip.

The Satochip also supports the import of regular (non-BIP32 keys) such as vanity keys. Here again, private keys cannot be exported outside of the secure chip. Up to 16 regular keys can be imported on the chip. In any case, the private keys can be used to sign transactions and Bitcoin messages, if sufficient credentials are provided.

Access to private keys (creation, derivation and signature) is enforced through the use of PIN code. This access control is based on the MUSCLE framework on which the applet is built. As part of this framework, it is also possible to securely store and retrieve data objects in secure memory, or use the chip to perform data encryption and decryption, although some functionalities have been disabled.

Please note that this implementation is currently under development: Use at your own risk!
I cannot be held responsible for any loss incurred by the use of this application (and don't forget to backup the seed as it is not possible to recover it afterward!)...

Important remark: the Yubikeys currently sold by Yubico are configured for production only and it is not possible to load the applet on these dongles (see this link for more details: https://www.yubico.com/2014/07/yubikey-neo-updates/). Only the development Yubikeys (with serial number below 3,000,000) are suitable for this use!

Advantages:
-Code is free and open source
-Code should be easy to read and maintain (java card is a subset of java)
-Multiple form factor could be supported in addition to Yubikey (e.g sim cards)
-Plug and play
-Smartcards have a long experience in dealing with physical security
-Can be easily used or extended for other crypto-currencies


Also, when used with a Yubikey Neo:
-Yubikey has minimimal size and is practically indestructible
-Yubico is a reliable company that is not going anywhere anytime soon!
-Many other functionalities: Yubikey OTP, U2F, PGP support...
-Possibility to support NFC

Limitations:
-This is still experimental code, use with caution!
-The applet could use more testing
-Performances are still poor (derive a new key takes about 30 seconds!)
-Building the applet is a bit tricky currently
-Debugging can be painful
-Although transactions are parsed by the applet, not much is currently done to protect against MITM attacks
-The software implementation of HMAC-SHA512 could have an potential impact on the physical security against side-channel attacks (for attackers with physical access to the chip)
-Currently no secure channel

Let me know how it works for you and if you have trouble using it!
I am open to suggestions/corrections/improvements... Remember, this is a work in progress!

Author:  bobo [ Mon Mar 16, 2015 12:55 pm ]
Post subject:  Re: [Bitcoin] SatoChip:Open-Source Hardware wallet with Yubi

New demo on youtube:
https://www.youtube.com/watch?v=ADWikh8Fxdk

Now with full Bip32 support and improved key derivation performance!

Page 1 of 1 All times are UTC + 1 hour
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/