Blockchain Security

2nd April 2019

Sharing is caring...

BACK TO BLOG

Zubair Bukhari

2nd April 2019

Kinesis Wallet Security

In response to comments being made around the Kinesis Wallet Security, our CTO, Nigel Owens is pleased to provide further information.

We would like to remind you that Kinesis currencies are digital ownership of gold and silver on the blockchain; inherently there are processes and methodologies that need to exist in order to align with the core principles fundamental to operating on the blockchain.

SECURE CODEBASE, RUNTIME & HOSTING

1) Encryption Everywhere:

User details such as private keys are encrypted at rest using AES 256-bit cipher encryption and all traffic (both to serve the wallet app and communicate with the blockchain) takes place over secure HTTPS. This protects users in the event of their devices becoming compromised as well as against ‘man in the middle attacks’.
Furthermore, the password created by a user and used for browser-based (eWallet) decryption is not stored anywhere.

What does this mean to me?

If someone attempts to fake the Kinesis Blockchain Network and get the app running in the browser to communicate with it, it will fail

If malicious JavaScript attempts to load into the running eWallet on the user’s machine, the stored user details are not readable since they are encrypted with the user’s password

If someone compromises the user’s machine and somehow finds the browser data where the user’s data is stored (which is itself encrypted), the user’s private keys are encrypted using their password, making it unreadable/usable.

2. Distributed by design for better security:

The eWallet user details such as their ‘name’, ‘contacts’ as well as encrypted private & public keys are stored in the browser. No eWallet user details or keys are stored centrally by Kinesis and this is by design.

By not storing details centrally, it makes large scale attacks that target Kinesis users very difficult since there is no server or data store that contains all user data, i.e. anyone that has an eWallet. Furthermore, browsers are not addressable (i.e. they don’t have an IP address) that remote attackers can use to target.

Finally, it is worth bearing in mind that this design is intended to protect the Kinesis community as a whole, since as the Kinesis user base numbers increase, so does the scale of this problem for attackers attempting to perform malicious acts; the more Kinesis users, the harder it is to perform a large scale attack to get user data.

What does this mean to me?

If a user decides to use password managers, air-gapped laptops, encrypted hard drive storage or any other manner of increased security policies, then the Kinesis wallet benefits as a result and an attackers ability to attack the whole network reduces.

Remember, Kinesis is here to allow you to become your own Central Bank — one where you should be able to find a way to securely store your own private key.

3. Blockchain = auditable & extendable by design:

Since Kinesis runs over a public API, custom third-party monitoring tools can be used by users should they want to monitor transactions emanating from an account.

What does this mean to me?

Our blockchain uses the standard Stellar Horizon API and is entirely public. If users want to augment their own individual security postures, e.g. extra things like multi-signature, then they should, by all means, be allowed to do so. Users can use third-party integrations/monitoring solutions (or even build their own) to watch their accounts and alert them in the event that transactions occur that they are unfamiliar with.

4. Some common questions:

What if my machine is compromised?

The security of a users machine is their responsibility and something that Kinesis (nor any other website) will ever be able to fully take responsibility for. The scope of what is compromised and how is simply too great.

With Kinesis there is no central database of usernames & passwords waiting to be compromised. In the present day, this is the far more common security liability

No plain text stored API tokens for communicating with backend systems are cached. With Kinesis, only the personal key is stored in the user browser, but it is encrypted and decrypted by the user-supplied password on every interaction with the blockchain

There is no ability to “Remember me” with the wallet. If a laptop is found on a train, they will still need to log in with a password

Should a user use a standalone/air-gapped/locked-down/another laptop to store wallet funds?

Any additional security the user wants to place around their wallet should be encouraged.

The wallet is secure at an application & infrastructure level, but enhanced security and practices by the user should always be encouraged. This is analogous to using password managers, or IT security policies around locking down sensitive data on laptops.

Disclaimer: The content of this Kinesis Wallet Security article is provided for general information only. It is not intended to amount to advice on which you should rely. You must obtain professional or specialist advice before taking, or refraining from, any action on the basis of the content in this article.
We make no representations, warranties or guarantees, whether express or implied, that the content of the article is accurate, complete or up to date.