Bitcoin Forum

Bitcoin => Project Development => Topic started by: Toporin on March 18, 2015, 03:25:45 PM



Title: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: Toporin on March 18, 2015, 03:25:45 PM
Hello,

Here is a new secure hardware wallet project based on javacard and compatible with 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 support 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 & secret keys in secure memory, or use the chip to perform data encryption and decryption, although some functionalities have been disabled for readability of the code.

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

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 supported in addition to Yubikey (e.g smartcards, 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
-Cheap: possible to buy a compliant smartcard for less than 10$!

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:
-No screen!
-This is still beta code, use with caution!
-The applet could use more testing
-Performances could be improved

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



Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: Toporin on March 18, 2015, 03:36:32 PM
Btw, I have three free smartcards with the SatoChip applet loaded for people willing to test and review the wallet.
(You still need a smartcard reader and some patience/skills to set up the installation on your computer)

If you are interested, send me a PM before tomorrow 11:59 PM.
If I have more than three answers, I will pick three people arbitrarily based on their activity on the forum...
 


Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: Toporin on March 20, 2015, 12:13:25 PM

Tutorial: SatoChip & ScripterRon's BitcoinWallet How to use:

Required:
  • SatoChip loaded on a smartcard or Yubikey
  • BitcoinWallet .jar and lib folder saved on your computer
  • Java Runtime Environment 8

To run BitcoinWallet:

You can run the Wallet by executing the following command:
Code:
 javaw.exe -Xmx256m -Djava.util.logging.config.file=logging.properties -jar BitcoinWallet-3.0.1.jar PROD

Code:
-Djava.util.logging.config.file=logging.properties
is an optional argument usefull to configure the log with the logging.properties file.
By default, the logging.properties file stored in \jre8\lib is used.

- Wallet setup (only once):
At the first execution, the SatoChip wallet will be setup.
First, the program will ask you to define a PIN and a PUK code:

https://i.imgur.com/Ur6DGbY.jpg

https://i.imgur.com/ogpnhIH.png

The PIN code grants the access to the BIP32 wallet and unlock your account: be sure to keep it secret!
Transactions and message signing is not possible without it. Access is granted until the card is removed or until the wallet is closed
The PUK code could be used in case you block the PIN code with a sufficient number of wrong PIN trials (not supported yet).

After PIN setup, the PIN code is asked for confirmation and to grant access to the chip protected functionalities.
https://i.imgur.com/JjO5gzv.png

Once access is granted, the application will ask you to define a BIP32 seed:
https://i.imgur.com/eQyOJbc.png

This seed will be derived to generate all your Wallet private keys.
Be sure to use a sufficiently long password and to securely backup a copy of the seed!
Once the seed is imported in the secure chip, it is impossible to recover it!
Note that seed generation takes around 2 minutes during which the chip derives the master keys from the seed and performs various operations (you can see the Yubikey or smartcard reader blinking).

- Wallet use:
During normal execution, the application always start by requesting you PIN code:
https://i.imgur.com/JjO5gzv.png

After that, the main windows appears:
https://i.imgur.com/PHMK09D.png
Note that the account balance is still 0 for an obvious reason.

We start by generating a first key by clicking on  'View>Receive address' then 'Create' in the pop up windows:
https://i.imgur.com/IBzQHiH.png
You can create as many key as desired. Note that a new key derivation takes around 30 seconds during which the wallet seems iddle... be patient!

Once it is created, it is possible to send money to this new address:
https://i.imgur.com/s4yHAjE.png

- Wallet spending:

To spend the money received, click on 'Actions'>'Send coins', then copy a destination address, amount and fee in the popup windows:
https://i.imgur.com/0VvxM2j.png

And it's done!
https://i.imgur.com/p7vZHUI.png

In the same 'Action' menu, it is also possible to sign and verify messages:
https://i.imgur.com/hhMCId4.png



Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: banksycoin on March 20, 2015, 12:24:20 PM
Amazing. Great work  8)

Might be interested in trying one out if you still have any available.



Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: 2112 on March 20, 2015, 12:31:44 PM
Can your code handle testnet coins?


Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: Toporin on March 20, 2015, 01:22:40 PM
@banksycoin:

Yes I still have smartcard left for testing purpose. You can give me a shipping address by PM and I'll send one to you free of charge!
(Please note that you still need a smartcard reader to use it though)

@2112:

The SatoChip applet on the javacard should support Testcoin, however the BitcoinWallet implementation by ScripterRon only support Bitcoin.
The applet only manages the private keys, it has no knowledge of address or network. So basically any altcoin using the SECP256k1 could be used with it afaik. With minor changes, it should also be able to support NXT coin which uses Curve25519. The main difficulty is to integrate it in a particular wallet client... For testing purpose, there is a simple java library API (https://github.com/Toporin/SatoChipClient) that may provide some starting point...





Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: banksycoin on March 20, 2015, 01:36:02 PM
That is great news :)

PM sent.



Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: Toporin on March 21, 2015, 09:28:44 PM
@banksycoin

The card was sent this morning!
Expect a few days to receive it (sent from Europe)...


Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: Jouke on March 21, 2015, 10:04:27 PM
Great work. I have a Neo lying around and I am going to free time this week to test this!


Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: btchip on March 23, 2015, 07:13:33 AM
Congrats, nice to see that people are actually reading and using my code :) Retrieving the public key by using the "half" key agreement is a nice trick too.

On our side, we've not given up on Java Card and will be releasing in the coming weeks a SHA512 version that'll be significantly faster (about /10 so far)

I'd also suggest you relicense to AGPL - considering you use part of my code released under this license, and it's also a great way to make sure that the source code of improved versions always stays available.


Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: Tibuxx on March 23, 2015, 02:27:55 PM
Hi !

May I ask you a smartcard for testing purpose ?
BTW, it's realy a good project.

I will test it as soon as I get the card.

 8)


Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: Toporin on March 23, 2015, 07:41:01 PM

@btchip:
You are right about the AGPL license. I'm still struggling with the intricacies of code licenses but I will correct that!
Thanks by the way for the great work!

@Tibuxx:
Yes I still have smartcards left. Send me your address by PM and I'll ship one to you :-)


Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: Tibuxx on March 24, 2015, 08:36:31 AM
@Toporin

Pm send yesterday. I'm living in EU, hope I'll recieve it fast ...
Keep in touch !  8)


Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: Tibuxx on March 25, 2015, 08:12:47 AM
Hi Toporin.

Thank you ! I've received the simcard this morning.  :P
But it's a white one ... Need some skin tweak before I test the card.

What do you think :  8)

First print (blank test card)

https://i.imgur.com/oJynDUQ.jpg?1

https://i.imgur.com/VCm6cNn.jpg?1

Second run on the simcard

https://i.imgur.com/r9nUbRl.jpg?1

I'll start the tests tomorrow ...


Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: Mitchell on March 25, 2015, 08:41:44 AM
If you have one left, I would love to try it out, if not, I'll buy one once I have some BTC. Everything is locked up in cold storage and trades.


Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: Tibuxx on March 25, 2015, 10:48:12 AM
If you have one left, I would love to try it out, if not, I'll buy one once I have some BTC. Everything is locked up in cold storage and trades.

Of course, cold storage is the best storage you could find !
Physical coins, paper wallet, etc. use pre-print private key to store the crypto-value.
Of course it's better than an online trade plateform but if you lose your paper/coin, you lose your BTC !

With this card, the simlock is a great shield against hackers, plus a good software implementation to deal with the blockchain.

Furthermore, with this new design, the card's looking gorgeous  ::)


Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: zetaray on March 25, 2015, 11:02:19 AM
$10 is a very good price for a hardware wallet. But this JavaCard and Yubi key costs more than $10 and this need a special Yubi key that is not available. Not many people can test this project.


Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: soowein on March 25, 2015, 12:36:13 PM
Can your code handle testnet coins?


Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: Tibuxx on March 25, 2015, 01:45:37 PM
$10 is a very good price for a hardware wallet. But this JavaCard and Yubi key costs more than $10 and this need a special Yubi key that is not available. Not many people can test this project.

Javacard is cheap compair with the YubiKey ...


Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: Toporin on March 26, 2015, 10:32:21 AM

Thanks Tibux for the design, this looks nice!

If you have one left, I would love to try it out, if not, I'll buy one once I have some BTC. Everything is locked up in cold storage and trades.
Mitchełł, yes I still have one card (last one!). You can give me your address by PM and I will send it to you!

Can your code handle testnet coins?
While the javacard applet should support testoin, the simple java client that I use does not. It should be possible to do the tests using the java interface library directly (https://github.com/Toporin/SatoChipClient), although it is much less convenient. I will try to improve that as it's obviously a very important point. 

$10 is a very good price for a hardware wallet. But this JavaCard and Yubi key costs more than $10 and this need a special Yubi key that is not available. Not many people can test this project.
Indeed testing is not very easy for the moment but this project is still very experimental. Also, I would not recommend using it with serious amount of Bitcoin yet until it has been tested more seriously. If someone is interested to test the card and have trouble with the setup, he can contact me by PM and we will find a way...

   


Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: banksycoin on March 28, 2015, 11:21:34 AM
Mine has not arrived yet but eagerly awaiting :)

Postal people are sometimes slow :(



Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: freemind1 on March 29, 2015, 10:00:28 AM
Great job Toporin also an affordable price. The operation of SatoChip is simple as you explain. It would be possible to order from European countries?

Thank you.


Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: Toporin on March 29, 2015, 08:35:15 PM
Great job Toporin also an affordable price. The operation of SatoChip is simple as you explain. It would be possible to order from European countries?

Thank you.

Actually, I am not really selling the hardware wallet myself. It is possible to order blank smartcards here for 6.5$ each: http://www.javacardsdk.com/Index.aspx?p0=AAT1P0000012&p1=1&p2=1&p3=1&p4=0&p5=1
However, the minimum order quantity is 5 and you need to upload the applet on the card yourself...

To make things easier, I can send a test card with the applet pre-loaded for 10$ in btc (that's including the shipping fee). However, this comes with absolutely no guarantee, and I can't even promise any decent level of support (even if I will try to help). Again, the goal of the test card is mainly to play with the concept. If you are looking for a reliable hardware wallet for serious use, I suggest you to try the Ledger Wallet or the Trezor. 

That being said, feel free to contact me by PM if you are still interested :-)


Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: dasource on March 31, 2015, 12:21:00 AM
Interesting project, looking forward to seeing this develop.


Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: achow101 on March 31, 2015, 12:56:58 AM
I love this design and I hope to own this one ;)
Keep working good maker!


Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: ninjaboon on March 31, 2015, 03:23:02 AM
Cool project. I can buy the cards and customize them from http://www.javacardsdk.com/Index.aspx?p0=AAT1P0000012&p1=1&p2=1&p3=1&p4=0&p5=1

Then load the java app onto the card and sell to our crypto groups.

Cool.


Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: Toporin on April 02, 2015, 03:30:57 PM
I like the idea but the only issues is getting wallets to support them, I mean trezor is just NOW getting really supported on electrum and HDmultibit just left beta group only.

I think there is still room for more than one hw wallet.
But you are right, it's not gonna happen overnight!

Integrating a new hardware wallet into an existing client is not easy... Volunteers are welcome :-)




Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: Mitchell on April 02, 2015, 03:35:49 PM
I just received my SatoChip, going to try it out after this weekend. ;D


Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: banksycoin on April 03, 2015, 12:48:52 PM
I like the idea but the only issues is getting wallets to support them, I mean trezor is just NOW getting really supported on electrum and HDmultibit just left beta group only.
My request for the card was because we plan on making this compatible with ArtsyCoin :)




Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: freemind1 on April 03, 2015, 01:41:32 PM
I am translating the thread to post it on the Spanish forum and then speak with Toporin to see if he wants to sell some SatoChip  ;D


Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: Toporin on April 13, 2015, 08:22:45 AM
To facilitate testing, a built release is now available here: https://github.com/Toporin/BitcoinWallet/releases/tag/v3.0.1

So no need to rebuild the app from sources, simply unzip the target.zip file in a folder and follow the instructions...



Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: btchip on May 29, 2015, 04:04:40 PM
We finally got our Java Card HD update done. You can have a look at https://github.com/LedgerHQ/ledger-javacard-eligibility and https://github.com/LedgerHQ/ledger-javacard and should enjoy the performance boost when borrowing this SHA 512 implementation ;D


Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: BG4 on May 29, 2015, 08:44:14 PM
Can you tell me if this will work with Schlumberger  java cards..... I have a case of 500 of these cards .. they are probable 12 years old.. never used...

Or is this card specific..????


Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: btchip on May 30, 2015, 06:09:58 AM
Can you tell me if this will work with Schlumberger  java cards..... I have a case of 500 of these cards .. they are probable 12 years old.. never used...

Or is this card specific..????

your card needs at least to support Elliptic Curve Cryptography to work with any of those Java Card Hardware Wallet applets.

I'd say that it's pretty much sure that a 12 years old card will not support that. It's not well implemented, even with recent cards.


Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: Toporin on June 15, 2015, 05:35:13 PM
New demonstration video of Satochip!
https://www.youtube.com/watch?v=ADWikh8Fxdk

Now with full Bip32 support and improved key derivation performance :-)





Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: Tibu on September 04, 2019, 02:29:01 PM
This topic is linked with : https://bitcointalk.org/index.php?topic=5181719.msg52357835#msg52357835

Currently, the team is focused on the coin integration. So far, we support :

- Bitcoin through the use of Electrum Bitcoin client (with the Satochip plugin)
- Bitcoin Cash through the use of Electron Cash client (with the Satochip plugin)

https://i.imgur.com/e4LGNB0.png



Title: Re: [ANN] SatoChip: Open-Source Hardware wallet for less than 10$!
Post by: Tibu on December 16, 2019, 02:56:20 PM

This topic is linked with : https://bitcointalk.org/index.php?topic=5181719.msg52357835#msg52357835

Currently, the team is focused on the coin integration. So far, we support :

- Bitcoin through the use of Electrum Bitcoin client (with the Satochip plugin)
- Bitcoin Cash through the use of Electron Cash client (with the Satochip plugin)


News :

- Support of LTC through Electrum Litecoin
- Native support on Electron cash since v 4.0.11
- Native support on Electron Cash SLP since v 3.6.1