Protocol for sharing the repeater with contacts
We need a protocol to inform contacts that a user started running a repeater.
Start of protocol: Alice started running a repeater and wants to let her contact Bob know about it.
End: Bob is able to communicate securely with Alice's repeater.
The most promising approach we discussed so far:
sequenceDiagram
Alice-X+Repeater: Add contact
Repeater--X-Alice: repeater's public key, timestamp
Alice-X+Bob: repeater's public key, timestamp
Bob--X-Alice: Bob's public key, timestamp, mac
Alice-X+Repeater: Bob's public key, timestamp, mac
Repeater->>Repeater: shared secret (ECDHE)
Repeater->>Repeater: create sym. key from shared secret
Repeater->>Repeater: derive transport keys
Repeater--X-Alice: repeater's mac, contact id, transport properties
Alice-XBob: repeater's mac, transport properties
activate Bob
Bob->>Bob: shared secret (ECDHE)
Bob->>Bob: create sym. key from shared secret
Bob->>-Bob: derive transport keys
Bob-->Repeater: Secure communication
The asymmetric keys are newly created ephemeral keys.
Actions by Alice and Bob need to be implemented in Briar.