The basics of privacy online go hand in hand with encryption. If you want privacy, encrypt your activity, your inbox, your cloud storage, your hard drive, your chats, and VoIP calls and video conferences.

Since encryption is the ultimate source of frustration for hackers, tech giants and spy agencies alike, it’s no wonder security experts and privacy advocates from Snowden to Assange, Bruce Schneider to Brian Krebs, keep reiterating — encrypt.

But encryption in different online services is not made equal, unfortunately. Providers offering end-to-end encryption in chat, cloud storage or inbox often store their customers’ keys. The apparent reason is to let you reset your password, should you lose it. However, if the provider holds your keys, it can access your data — unencrypt it, view it, hand it over to law enforcement, or trade on the black market.

It’s a question of trust. Can you trust Google, Facebook, and WhatsApp to not snoop on you? Some call it fear mongering and paranoia, but a reasonable degree of suspicion can never hurt. With that in mind, how do you choose a service that offers end-to-end encryption, but does not leave a backdoor open?

Due diligence. There is no way you can trust ads and marketing slogans — verify every single claim. Read Terms of Service, Privacy Policy, check out the provider’s location and the data retention laws applicable in the country.

Contact provider’s support and see if they are responsive, helpful and professional. Read their White Paper, if possible, and question their encryption technology. Namely, inquire if the end-to-end encryption is zero-knowledge.

Now, let’s see why we advocate zero-knowledge encryption for communication apps and storage services.

Encryption

Encryption is, as you probably know, data scrambling that turns your data into ones and zeroes for anyone without a key. You hold the key — you can decrypt the data back into plain text.

With strong encryption, and presently it’s at least AES-256, your data would take ten years for modern computers to brute-force.

Encryption keeps you safe. Encryption protects your financial details and passwords when you bank online. It protects your cell phone conversations from eavesdroppers. If you encrypt your laptop — and I hope you do — it protects your data if your computer is stolen. It protects our money and our privacy. Bruce Schneier

End-to-End

When choosing encryption-enabled services, opt for end-to-end encryption. End-to-end encryption covers all of your traffic and stored data top to bottom:

In transit — while it travels from your devices to the servers

At rest — on the servers, in your inbox, chat, or cloud storage

That way, even if your data travels through servers located in countries that engage in snooping (14 Eyes, or other repressive regimes like China, Russia, Arab Emirates, Iran), the hackers or spy agencies won’t be able to read it or decrypt it.

However, as we mentioned, most mainstream providers still hold your keys, so your privacy and security of your data are not in your hands alone. That’s where the principle of zero-knowledge helps providers ensure only the customer holds the encryption keys and helps the customer rest assured the provider’s claims of 100% privacy aren’t false or opportunist, at best.

Zero-Knowledge

Zero-knowledge encryption locks the service provider out, restricting access to your data only to you and those, with whom you share that data.

The provider is responsible for encrypting the data, for transmitting it encrypted, for storing it encrypted. Thanks to the privacy by design principle, the provider can’t access your data.

All the provider can see on its servers is blocks of encrypted ones and zeroes.

Zero-knowledge platforms aren’t ideal — they are complex and difficult to implement. That’s why you won’t see free services offering zero-knowledge encryption. Such networks require ongoing maintenance, so can’t be free, not with the current state of technology.

On the other hand, zero-knowledge encryption is beneficial for the end user because it enables secure communication, or data storage and file sharing. It is also quite straightforward for the customer since there is no particular prerequisite or a technical skill that you need to master.

The only tangible downside to zero-knowledge encryption is if you lose a password, you lose your data since the provider won’t be able to help you restore your keys.

There is a widespread misconception that strong encryption and security come at the cost of usability. That only tech-advanced users can sort out the complex applications. This misconception takes its roots in history, as encryption and secure communication were difficult, indeed, when PGP first came around.

Currently, the usability barrier has been successfully overcome, and you can enjoy end-to-end, zero-knowledge encryption and two-factor authentication without compromising your productivity or usability.

Eliminating Opportunistic Providers

Encryption has been a buzz word in mainstream media ever since Snowden spilled the beans about mass surveillance. So tech giants jumped on the bandwagon and started enabling end-to-end encryption for services that have a long track record of user tracking and profiling.

It’s as if encryption is an absolution of all privacy-invasive practices these companies have been engaging in the past, present, and future.

For average users, perhaps, but for the reasonable paranoid who’ve jumped ship and quit using social media for private communication, it was a weak statement.

Mainstream providers still want you to put your blind trust in their good intentions. Even with end-to-end encryption where they hold the keys and implement “design features” that trigger “backdoor” flags among security experts.

Suppose you trust them, that’s your choice. But there’s another issue with encryption-enabled services that aren’t zero-knowledge — they get hacked, too.

Assuming your Dropbox encrypted file storage is protected by a strong cryptographic key, which would take years to brute-force. In which case, persistent individuals can still gain access to your data by hacking the provider’s master key. In which case, it doesn’t matter if your password was good.

Likewise, persistent individuals could just gain a warrant and a gag order, and the non-zero-knowledge provider would hand over your key and your data without ever notifying you.

Zero-Knowledge Proof

What is it that makes zero-knowledge so secure? The concept of zero-knowledge proof is the foundation of any zero-knowledge architecture.

Without zero-knowledge:

As you log in, you need to prove to the server you are you by submitting your password.

The server either keeps an encoded version of your password or worse, keeps it in plain text.

The server matches your input with the saved password/login and grants you access.

In zero-knowledge architecture, user authorization is possible when the server doesn’t have your password. This is the Zero-Knowledge Proof principle developed by MIT researchers. Rackoff, McMicali, and Goldwasser.

In this case, you need to prove to the provider’s server that you have the authentic password without disclosing the password. The requisites that make such a transaction are difficult to implement, but yet possible and actively deployed by security providers:

Your password consists of mathematically interconnected keys -private and public. You have the private key. The provider has the public key. As you log in, the server matches this mathematical link between your private key and its public key and authenticates you as the legitimate account holder.

Importantly, the service provider, in this case, can not generate your private key based on its knowledge about this mathematical link.

In this case, hackers or spy agencies have no business in targeting your service provider to obtain your private key.

In layman terms, zero-knowledge encryption relies on the following:

As you input your password, the browser hashes it.

The keys that encrypt your data are generated in your browser.

These keys are encrypted with your password.

These keys are transmitted to the server via an encrypted connection.

These keys are stored on the server.

Only you can decrypt these keys in your browser with your password.

Each operation uses a different set of keys.

So two RSA key pairs are generated when you register — one set for encryption, the other for signature.

The two private RSA keys are also encrypted with a randomly generated intermediate AES 256-bit key.

Your two private keys for encrypting and signing are also encrypted with the intermediate key.

Therefore, the server only stores the 64-character cryptographic hash of your private key. The server uses the PBKDF2 algorithm, SHA-256, and 5000 rounds of hashing to store the hash of your private password.

The good news is the end user does not have to go through extra steps to authenticate — it’s the usual login process, only zero-knowledge. You can add two-factor authentication for an even better security.

Summary

Wrapping up the above, if you are looking for a secure provider that doesn’t make false claims about complete encryption and privacy, check the following:

Is your data encrypted at rest and in transit?

Is encryption strong?

Does the provider operate on the zero-knowledge principle?

If yes, how do they implement it?

Where is the provider headquartered?

What data retention laws apply in this country?

Are ToS and Privacy Policy transparent?

Is there a White Paper published?

Is the provider accessible? Can you reach their support when you need it?

Check Chapter 1 of our Online Privacy 101 for more information on data retention laws, 14 Eyes, mass and corporate surveillance.

Please also join our Telegram group and visit our Facebook page and Twitter page for more inspiration.