Keystonelatest release: B-2.5 ( 11th November 2021 ) last analysed 8th December 2021 No source for current release found
Help spread awareness for build reproducibility
Please help us spread the word discussing transparency with Keystone via their Twitter!
Do your own research!
Try out searching for "lost bitcoins", "stole my money" or "scammers" together with the wallet's name, even if you think the wallet is generally trustworthy. For all the bigger wallets you will find accusations. Make sure you understand why they were made and if you are comfortable with the provider's reaction.
The Analysis ¶
Note: Cobovault has been renamed to Keystone, previously product were known as Cobovault Essential, Cobovault Pro and Cobovault Ultimate.
This hardware wallet has a companion app:
Interface - ✔️
Keystone resembles a smartphone and has a 4” touchscreen.
Private keys can be created offline - ✔️
Hardware wallets isolate your private keys from the internet because physical attacks cost significantly more than remote attacks. In terms of how air-gapped your hardware wallet is and how costly it is for a hacker to steal your assets, it’s crucial how the hardware wallet connects to a companion app. Using QR codes or microSD cards for data transmission has significant advantages for air-gapping your keys compared to USB and Bluetooth, which have larger attack surfaces because they are interactive connections.
Private keys are not shared - ✔️
Keystone claims to be “Verifiably Air-Gapped” on the frontpage.
Information on EAL 5+ Secure Element:
A proprietary bank-grade Secure Element ensures your private keys never leave the Keystone. The Secure Element generates a true random number for your private keys and is vital to ensuring your crypto assets are stored in the safest way possible. Our BIP32, BIP39, and BIP44 compliant firmware is also open source.
Device displays receive address for confirmation - ✔️
We found an article in the user guide that states Keystone will verify receive addresses.
A video review about this product confirms that the device displays receive addresses for confirmation.
The provider had an audit done in June 2020. They published the full report. In this report, several issues, including of critical and high severity were revealed, all of which were fixed quickly after. While this audit was not designed to reveal if the provider under duress could put the users funds at risk, their conclusion reads very positive:
In this audit, we thoroughly analyzed the Cobo Vault documentation and implementation. The audited system does involve various intricacies in both design and implementation. The current code base is well organized and those identified issues are promptly confirmed and fixed.
We emphasize that using a hardware wallet alone does not make you invincible against social engineering, physical threats or human errors. As always, users need to use common sense, and apply basic security principles to protect their valuable assets.
Code and Reproducibility
Keystone claims to be open source, so we checked their GitHub for relevant repositories. These look promising:
In the former we read:
Keystone runs as a standalone application on customized hardware and Android 8.1 Oreo (Go Edition)
which begs the question in how far the operating system can be trusted. Where is the repository of the “Android 8.1” they used? Is this reproducible? Does the hardware have any radio devices that could leak key material? It absolutely can do harm by patching any binary brought onto the device prior to installation. As essential component to the security of the device, we have to find out what was used here. Above quote can also be read as the Android having been customized, too.
Searching for answers we stumbled onto this paragraph from the Keystone-system repository:
Due to copyright, some vendors’ code cannot be made public, and we have removed some of the code from the source code. Therefore this open source code cannot be compiled. However, we can share this part of code under an NDA if you want to fully verify the code and reproduce it.
This means their software stack cannot be independently verified without signing an NDA. Signing an NDA means one may not disclose details found, which makes the effort pointless for us.
For the time being we have to consider this product not verifiable.
Without public source of the reviewed release available, this product cannot be verified!
As part of our Methodology, we ask:Is the source code publicly available? If not, we tag it No Source!
A wallet that claims to not give the provider the means to steal the users’ funds might actually be lying. In the spirit of “Don’t trust - verify!” you don’t want to take the provider at his word, but trust that people hunting for fame and bug bounties could actually find flaws and back-doors in the wallet so the provider doesn’t dare to put these in.
Back-doors and flaws are frequently found in closed source products but some remain hidden for years. And even in open source security software there might be catastrophic flaws undiscovered for years.
An evil wallet provider would certainly prefer not to publish the code, as hiding it makes audits orders of magnitude harder.
For your security, you thus want the code to be available for review.
If the wallet provider doesn’t share up to date code, our analysis stops there as the wallet could steal your funds at any time, and there is no protection except the provider’s word.
“Up to date” strictly means that any instance of the product being updated without the source code being updated counts as closed source. This puts the burden on the provider to always first release the source code before releasing the product’s update. This paragraph is a clarification to our rules following a little poll.
We are not concerned about the license as long as it allows us to perform our analysis. For a security audit, it is not necessary that the provider allows others to use their code for a competing wallet.
Share onTwitter Facebook LinkedIn
Or embed a widget in your website
<iframe src="https://walletscrutiny.com/widget/#appId=hardware/cobovaultessential&theme=auto&style=short" name="_ts" style="min-width:180px;border:0;border-radius:10px;max-width:280px;min-height:30px;"> </iframe>
<iframe src="https://walletscrutiny.com/widget/#appId=hardware/cobovaultessential&theme=auto&style=long" style="max-width:100%;width:342px;border:0;border-radius:10px;min-height:290px;"> </iframe>