Yubico Forum

...visit our web-store at store.yubico.com
It is currently Tue Jan 30, 2018 9:08 pm

All times are UTC + 1 hour




Post new topic Reply to topic  [ 2 posts ] 
Author Message
PostPosted: Mon Mar 16, 2015 12:54 pm 
Offline

Joined: Tue Sep 02, 2014 11:16 am
Posts: 10
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!


Top
 Profile  
Reply with quote  

Share On:

Share on Facebook FacebookShare on Twitter TwitterShare on Tumblr TumblrShare on Google+ Google+

PostPosted: Mon Mar 16, 2015 12:55 pm 
Offline

Joined: Tue Sep 02, 2014 11:16 am
Posts: 10
New demo on youtube:
https://www.youtube.com/watch?v=ADWikh8Fxdk

Now with full Bip32 support and improved key derivation performance!


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 2 posts ] 

All times are UTC + 1 hour


Who is online

Users browsing this forum: Google [Bot] and 7 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group