Ready’s processes for messaging and file transfer/storage are based on the proven Signal protocol and, thus, are secure, transparent, and sophisticated.
It should be emphasized that the following descriptions are simplified versions of the actual algorithms/protocols.
Mutually Authenticate Conversation Partners (with the Extended Triple Diffie-Hellman Key Exchange Protocol)
The fundamentals of secured communication are that the messages go to the intended recipient and that the conversation itself is closed to outsiders. Ready fulfills both of these requirements by using the Extended Triple Diffie-Hellman key exchange protocol at the start of any conversation.
- All users publish their identity, signed keys, and signatures to Ready’s key servers.
- User A wants to talk to User B.
- User A retrieves User B’s identity
, signed keys , and signatures from the servers.
- User A verifies the signatures to ensure that the identity and keys genuinely belong to User B.
- User A generates a temporary key
to create a secret key composed of the aforementioned temporary key , User A and B’s identities and , and one of User B’s signed keys .
- User A encrypts an initial message with this secret key and sends it to User B, along with User A’s identity
and the temporary key .
- User B has his own identity (I_B) and the key used by User A (SPK_B), so he can now construct an identical secret key.
- Both users share the same secret key that can now provide the basis for further communication.
Send and Receive End-to-End Encrypted, Forward Secured Messages (with the Double Ratchet Algorithm)
The Double Ratchet Algorithm provides post-compromise security by encrypting each message with a different key derived from the previous, making a compromised key non-functional for future communication.
- Once two users establish a conversation, they share a secret key that is used to generate two key chains: one for sending and one for receiving.
- When User A sends User B a message, User A’s sending chain generates a key to encrypt the message.
- On User B’s side, his receiving chain also generates a key to decrypt User A’s message.
- This process is continuously repeated, in which each new sending/receiving key is derived from the previous one.
Implement Ready’s Messaging Protocol in a Group Setting
In a group setting, both X3DH and Double Ratchet are applied to every possible pair of users.
- Establish secret keys between users with X3DH.
- Send and receive encrypted messages, pairwise, with Double Ratchet.