Skip to content

Commit

Permalink
remove what's in SPEC
Browse files Browse the repository at this point in the history
  • Loading branch information
ahdinosaur committed Nov 30, 2023
1 parent 92aae9c commit e9530f4
Showing 1 changed file with 0 additions and 19 deletions.
19 changes: 0 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,25 +8,6 @@ A protocol for a secure message stream, after you've done a [secure key exchange

(Note: This protocol has not been audited to be safe. Use at your own risk.)

## Pre-requisites

- The channel must be reliable and ordered: i.e. TCP.
- Each channel key must be an ephemeral key for a single channel and discarded when the channel ends.
- To get a channel key, do a secure key exchange first: e.g. [Noise](https://noiseprotocol.org/noise.html) or [Secret Handshake](https://dominictarr.github.io/secret-handshake-paper/shs.pdf).
- Each channel has one sender (encrypter) and one receiver (decrypter).
- For a duplex (bi-directional) connection between peers, create two secret channels (with two separate keys), one in each direction.
- A (key, nonce) pair must NEVER be re-used.

## Security Guarantees

Secret Channel protects the stream from:

- Stream truncation: avoided by checking for "end-of-stream" as the final chunk.
- Chunk removal: the wrong nonce would be used, producing an AEAD decryption error.
- Chunk reordering: the wrong nonce would be used, producing an AEAD decryption error.
- Chunk duplication: the wrong nonce would be used, producing an AEAD decryption error.
- Chunk modification: this is what an AEAD is designed to detect.

## Specification

See [SPEC.md](./SPEC.md)
Expand Down

0 comments on commit e9530f4

Please sign in to comment.