I am wondering if it's a theoretical limitation that all messaging services I use support end-to-end encryption only for one device per user or more accurately only between two devices.

Since all of my devices are online, can't there be a mechanism that verifies all message on all devices using some sort of public key / private key mechanism without involving a central server that holds keys?

  • yes, you can use pubkeys, but they are slow and you would have to encode separately for each user. – dandavis Jul 25 '16 at 20:02

It is just application developer's choice. Their idea of end2end encryption consist on an assumption that at some time two devices generate some symmetric key and encrypt the data. Keys are stored on particular device and is kept in secret. This model is pretty simple and easy to maintain.

In order to support more devices you own, there is a need to share keys between all your deivices from which you want to access the data. It is not wise to allow end user to manage keys, because users of such applications (for example, Telegram messenger) may not be enough educated to keep the secret in privacy. It would require programming ways to exchange key between devices. This immediately raise a lot of questions. For example, source device is ready to move the key to another device you own:

  1. is the target device your device?
  2. do you possess required permissions to retrieve the key?
  3. is there a secure channel between devices to prevent from MiTM?
  4. ...

and others.

Of course, it is certainly doable, but would require assymetric cryptography along with complete, working and reliable public key infrastructure (PKI). Each application user (not device) recieves its own public key certificate (private key is held by the user) from a certification authority (CA) and user installs this certificate to all devices he/she owns. And this certificate would solve all question regarding user/device authentication, key transfer privacy and the rest.

This procedure is similar to common S/MIME, when you insert a smart card with S/MIME certificate to the reader on each system where you want to access encrypted emails. When done, the card is removed and email access is blocked.

The problem with this solution is that it is relatively expensive, requires reasonable investments, requires too much efforts from application vendor on implementing and maintaining the PKI infrastructure.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.