rfc/content/docs/rfcs/55
Aaryamann Challani 7738ea0b0c
Port 5/SECURE-TRANSPORT to vac research (#569)
* feat(53,54/X3DH): port 5/secure-transport to vac research

* fix: x3dh case

* fix: split spec further, and add to index

* feat: add status-1to1-chat spec

* fix: fmt

* fix: s/protobuf/reference wire format/g

* fix: add additional steps of key exchange flow

* fix(53/WAKU2-X3DH): address comments

* fix(53/WAKU2-X3DH): change background to motivation

* fix(54/WAKU2-X3DH-SESSIONS): address comments

* fix: refs

* fix(55/STATUS-1TO1-CHAT): refs

* fix: move specs to raw

* fix: convert to draft, add info about prekey bundle discovery
2023-02-21 17:18:15 +05:30
..
README.md Port 5/SECURE-TRANSPORT to vac research (#569) 2023-02-21 17:18:15 +05:30

README.md

slug title name status category tags editor contributors
55 55/STATUS-1TO1-CHAT Status 1-to-1 Chat draft Standards Track waku-application Aaryamann Challani <aaryamann@status.im>
Andrea Piana <andreap@status.im>
Pedro Pombeiro <pedro@status.im>
Corey Petty <corey@status.im>
Oskar Thorén <oskar@status.im>
Dean Eigenmann <dean@status.im>

Abstract

This specification describes how the Status 1-to-1 chat protocol is implemented on top of the Waku v2 protocol. This protocol can be used to send messages to a single recipient.

Background

This document describes how 2 peers communicate with each other to send messages in a 1-to-1 chat, with privacy and authenticity guarantees.

Specification

Overview

This protocol MAY use any key-exchange mechanism previously discussed -

  1. 53/WAKU2-X3DH
  2. 35/WAKU2-NOISE

This protocol can provide end-to-end encryption to give peers a strong degree of privacy and security. Public chat messages are publicly readable by anyone since there's no permission model for who is participating in a public chat.

Flow

Negotiation of a 1:1 chat

There are two phases in the initial negotiation of a 1:1 chat:

  1. Identity verification (e.g., face-to-face contact exchange through QR code, Identicon matching). A QR code serves two purposes simultaneously - identity verification and initial key material retrieval;
  2. Asynchronous initial key exchange

For more information on account generation and trust establishment, see 2/ACCOUNT

Post Negotiation

After the peers have shared their public key material, a 1:1 chat can be established using the methods described in the key-exchange protocols mentioned above.

Session management

The 1:1 chat is made robust by having sessions between peers. It is handled by the key-exchange protocol used. For example,

  1. 53/WAKU2-X3DH, the session management is described in 54/WAKU2-X3DH-SESSIONS

  2. 35/WAKU2-NOISE, the session management is described in 37/WAKU2-NOISE-SESSIONS

Security Considerations

  1. Inherits the security considerations of the key-exchange mechanism used, e.g., 53/WAKU2-X3DH or 35/WAKU2-NOISE

Copyright

Copyright and related rights waived via CC0.

References

  1. 2/ACCOUNT
  2. 53/WAKU2-X3DH
  3. 35/WAKU2-NOISE
  4. 10/WAKU2