Hacker News new | ask | show | jobs
by lttlrck 4376 days ago
the sender can do that.
1 comments

What if the sender is offline when the receiver signs back on? Does the message not get sent?
You'd use a basic store/forward protocol. Sender sends message to a zero-knowledge server. If the sender has no network the encrypted message is stored locally, on the client device until the server can be reached.

Similarly, the recipient polls the server for new messages only when online. Any messages accumulated by the server since the last sync are downloaded. That's the easy part. More interesting is the key exchange that needs to take place between sender and recipient for them to exchange messages securely. The idea being that both parties each create a public/private key pair for each other, and then use each others public key to encrypt the symmetric key that decrypts messages.

Straight-forward enough. The problem here is when you want to exchange messages with Bob, you need to know that you have the real Bob's public key, and not an imposter's key. While an in-person, meatspace exchange will give you the assurance you need, that's not always practical.

Here's a bit more detail on how you might engineer the key exchange: http://en.m.wikipedia.org/wiki/Needham-Schroeder_protocol