Encrypted messaging app ‘Signal’ is popular among privacy-minded users because app does not store any kind of user record, be it contacts, be it conversation list or social graph or location or avatar or profile name or group details (memberships, titles or avatars).
As published on official Signal blog, latest Signal App release brings Signal closer to the aim of hiding another instance of metadata i.e. who is messaging to whom. Signal messages are entirely encrypted while transmitting through Signal’s infrastructure and even Signal servers do not store logs of messages such as who is messaging to whom or when.
Prior to ‘Sealed Sender’, a Signal message includes an authentication process that verifies the sender’s identity to help prevent spoofing and to offer the recipient some guarantee about sender. It also uses the sender’s identity to apply rate limiting as well as abuse protection. To eliminate all these work, Signal has introduced ‘Sealed Sender’ feature.
Initially, Signal allowed sealed sender messages to be transmitted between accounts that have already established trust, such as being in one another’s contact list. Users can also receive sealed sender messages from anyone if they select like open DMs on Twitter.
There are also cryptographic changes that will still recognize a blocked contact so that they cannot message again even if they have used ‘sealed sender’ function. In case, Signal is compromised, attackers will see encrypted messages going to their destinations but not their origin point.
At the time of sending a traditional physical mail, there is an outside package includes the addresses of both the recipient and the sender. A signal message contains the same basic components. The service cannot see into the encrypted message contents but it uses the information available outside of the package to facilitate asynchronous message delivery between users.
An ideal service is required to know recipient’s address whereas it shouldn’t required to know about the sender. It is good if the service could handle packages having destination written outside along with a blank space where the ‘from’ address used to be.
To stop spoofing, clients periodically retrieve a short-lived sender certificate from the service attesting to their identity. This certificate includes the client’s public identity key, phone number and an expiration timestamp. Users can involve the sender certificate when a message is sent, and recipient can easily check its validity.
To prevent abuse, users drive a 96-bit delivery token from their profile key and register it with the service. Service needs client’s acknowledgement in order to transfer ‘sealed sender’ messages to that user.
Signal profiles are end-to-end encrypted whereas profile keys are transmitted using the usual signal protocol. Profiles are shared with users’ contacts, other people or groups who they have approved and in conversations that they create. Building on this existing foundation allows delivery tokens to be seamlessly exchanged behind the scenes.
Since knowledge of a user’s profile key is necessary in order to derive that user’s delivery token, this restricts “sealed sender” messages to contacts who are less likely to require rate limits and other abuse protection. Additionally, blocking a user who has access to a profile key will trigger a profile key rotation.
There is an optional setting by enabling which users can receive incoming “sealed sender” messages from non – contacts and persons with whom they have not shared their profile or delivery token. However, this option may increase risk of abuse, but allows for every incoming message to be sent with “sealed sender,” without requiring any normal message traffic to first discover a profile key.
Process of Sending a “Sealed Sender” Message
The process of sending a “sealed sender” message looks like this –
The recipient of the message can then decrypt the envelope, validate that the identity key which was used to encrypt the envelope matches the sender certificate, and continue processing as normal.
Once and for all, Signal’s ‘Sealed Sender’ has given the renowned encrypted messaging app an important security boost by hiding metadata around who sent the given message.