From 67458337682e8736bde145fac87e34347ebb467a Mon Sep 17 00:00:00 2001 From: Sarah Jamie Lewis Date: Tue, 31 May 2022 14:15:36 -0700 Subject: [PATCH] better layout --- docs/chat/introduction.md | 20 +++++++++++++++- docs/groups/introduction.md | 10 ++++++++ docs/intro.md | 43 ++--------------------------------- docs/profiles/introduction.md | 7 +++++- 4 files changed, 37 insertions(+), 43 deletions(-) diff --git a/docs/chat/introduction.md b/docs/chat/introduction.md index 4419db45..ffbfa341 100644 --- a/docs/chat/introduction.md +++ b/docs/chat/introduction.md @@ -2,4 +2,22 @@ sidebar_position: 1 --- -# An Introduction to Cwtch P2P Chat \ No newline at end of file +# An Introduction to Cwtch P2P Chat + +Cwtch uses Tor v3 Onion Services to establish anonymous, peer-to-peer connections between Profiles. + +## How P2P Chat Works Under the Hood + +In order to chat with your friends in a peer-to-peer conversation both must be online. + +After a successful connection both parties engage in an **authentication protocol** which: + +* Asserts that each party has access to the private key associated with their public identity. +* Generates an ephemeral session key used to encrypt all further communication during the session. + +This exchange (documented in further detail in [authentication protocol](https://docs.openprivacy.ca/cwtch-security-handbook/authentication_protocol.html)) is *offline deniable* +i.e. it is possible for any party to forge transcripts of this protocol exchange after the fact, and as such - after the +fact - it is impossible to definitely prove that the exchange happened at all. + +One the authentication process is successful then both you and your friend can communicate away assured that no one else +can learn anything about the contents or the metadata if your conversation. diff --git a/docs/groups/introduction.md b/docs/groups/introduction.md index 5028ee71..c13947ec 100644 --- a/docs/groups/introduction.md +++ b/docs/groups/introduction.md @@ -4,9 +4,15 @@ sidebar_position: 1 # An Introduction to Cwtch Groups +**Note: Metadata Resistant Group Communication is still an active research area and what is documented here +will likely change in the future.** + By default, Cwtch only supports peer-to-peer, online, chat. In order to support multi-party conversations, and offline delivery, an (untrusted) third-party is required. We call these entities ["servers"](/docs/servers) +These servers can be set up by anyone and are intended to be always online. Most importantly, all communication with a +server is designed such that the server learns as little information as possible about the contents or metadata. + In many respects communication with a server is identical to communication with a regular Cwtch peer, all the same steps are taken however the server always acts as the inbound peer, and the outbound peer always uses newly generated **ephemeral keypair** - so that each server session is disconnected. @@ -14,6 +20,10 @@ peer always uses newly generated **ephemeral keypair** - so that each server ses As such, peer-server conversations only differ in the *kinds* of messages that are sent between the two parties, with the server storing all messages that it receives and thus allowing any client to query for older messages. +The risk model associated with servers is more complicated that peer-to-peer communication, as such we currently +require people who want to use servers within cwtch to [opt-in to the Group Chat experiment](/docs/groups/enable-experiment) +in order to add, manage and create groups on untrusted servers. + ## How Groups Work Under the Hood When a person wants to start a group conversation they first randomly generate a secret `Group Key`. All group communication will be encrypted using this key. diff --git a/docs/intro.md b/docs/intro.md index 729414e5..729af970 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -16,48 +16,9 @@ Cwtch (/kʊtʃ/ - a Welsh word roughly translating to “a hug that creates a sa For a more in depth look at the security, privacy and underlying encryption technology used in Cwtch, please consult our [Security Handbook](https://docs.openprivacy.ca/cwtch-security-handbook/) -## Identity, or What exactly is a Cwtch Profile? - -With Cwtch you can create one of more **Profiles**. Each profile generates a random ed25519 keypair compatible with -the Tor Network. - -This is the identifier that you can give out to people and that they can use to contact you via Cwtch - -** See also: [Create a profile](/docs/profiles/create-a-profile)** - -## Peer to Peer, 2-party Conversions - -![](/img/BASE_3.png) - -In order to chat with your friends in a peer-to-peer conversation both must be online. - -After a successful connection both parties engage in an **authentication protocol** which: - -* Asserts that each party has access to the private key associated with their public identity. -* Generates an ephemeral session key used to encrypt all further communication during the session. - -This exchange (documented in further detail in [authentication protocol](https://docs.openprivacy.ca/cwtch-security-handbook/authentication_protocol.html)) is *offline deniable* -i.e. it is possible for any party to forge transcripts of this protocol exchange after the fact, and as such - after the -fact - it is impossible to definitely prove that the exchange happened at all. - -One the authentication process is successful then both you and your friend can communicate away assured that no one else -can learn anything about the contents or the metadata if your conversation. - -## Offline Delivery via Untrusted Routing Servers, and Group Conversations - -**Note: Metadata Resistant Group Communication is still an active research area and what is documented here -will likely change in the future.** - -In order to get around the limitation of being always-online, Cwtch has built in support for hosting -conversations on **Untrusted Servers**. - -These servers can be set up by anyone and are intended to be always online. Most importantly, all communication with a -server is designed such that the server learns as little information as possible about the contents or metadata. - -The risk model associated with servers is more complicated that peer-to-peer communication, as such we currently -require people who want to use servers within cwtch to [opt-in to the Group Chat experiment](/docs/groups/enable-experiment) -in order to add, manage and create groups on untrusted servers. +# Getting Started +You can download the latest version of Cwtch from [https://cwtch.im/download/](https://cwtch.im/download/) ### Install diff --git a/docs/profiles/introduction.md b/docs/profiles/introduction.md index 0e8b9a2a..45341eaf 100644 --- a/docs/profiles/introduction.md +++ b/docs/profiles/introduction.md @@ -2,4 +2,9 @@ sidebar_position: 1 --- -# An Introduction to Cwtch Profiles \ No newline at end of file +# An Introduction to Cwtch Profiles + +With Cwtch you can create one of more **Profiles**. Each profile generates a random ed25519 keypair compatible with +the Tor Network. + +This is the identifier that you can give out to people and that they can use to contact you via Cwtch. \ No newline at end of file