specs/x4.md

27 lines
2.2 KiB
Markdown
Raw Normal View History

2019-08-26 13:19:21 +00:00
# Data Sync Layer
2019-08-26 13:21:26 +00:00
[MVDS](https://specs.vac.dev/mvds.html) is used for 1:1 and group chats, however it is currently not in use for public chats.
2019-08-26 13:19:21 +00:00
# Conversational Security Layer
2019-08-26 13:25:05 +00:00
Conversational Security Layer provides various cryptographic properties:
2019-06-24 06:58:42 +00:00
2019-08-26 13:19:21 +00:00
1. **Confidentiality** - Ensure only intended recipients are able to read a message.
2. **Integrity** - No honest party will accept a message modified in the transit.
2019-08-26 13:23:51 +00:00
3. **Authentication** - Each participant in the conversation receives a proof of possession of a known long-term secret from all other participants. In addition, each participant is able to verify that a message was sent from the claimed source.
This assumes trust has already been established, see [Initial Trust Establishment Specification](x5.md).
2019-08-26 13:33:09 +00:00
4. **Forward secrecy** - Also known as perfect forward secrecy (PFS), gives assurance that session keys will not be compromised even if the private key is compromised. Also, compromising one session key will not result in compromising other sessions.
Please refer to [Initial Conversational Security Specification](x6.md) for more details.
2019-06-24 06:58:42 +00:00
# Transport privacy layer
2019-06-24 06:58:42 +00:00
The purpose of the transport privacy layer is to hide metadata (provide darkness) that are always sent when communicating over the internet. In some cases, leaked metadata might be as dangerous as leaking the actual payload so it's important to reduce that.
The Status Protocol uses [Whisper in version 6](https://github.com/ethereum/wiki/wiki/Whisper) as a privacy protection protocol. Whisper routes messages by broadcasting them to all connected peers so that identifying of the recipient is almost impossible (the sender is not equally protected, though). [Read more](https://github.com/ethereum/go-ethereum/wiki/Achieving-Darkness) about how Whisper achieves darkness.
Note: there is one more cross-layer dependency in the Status Protocol between the privacy and data layers. Whisper uses topics to reduce traffic and preliminarily filter out messages. However, selecting a topic depends on the type of the message that is a topic for 1-1 chat will be different from a topic for a public chat.
Please refer to [Initial Transport Privacy through Whisper Specification](x7.md) for more details.