From 8131351dc3cb515ae6ced6e5ad740265503c422b Mon Sep 17 00:00:00 2001 From: Stephen L Date: Mon, 24 May 2021 23:49:26 +0200 Subject: [PATCH 1/4] rework instant messenger section according to centralized/decentralized/distributed network typology --- _includes/sections/instant-messenger.html | 69 +++++++---- assets/img/svg/3rd-party/session.svg | 108 +++++++++--------- assets/img/svg/layout/network-centralized.svg | 1 + .../img/svg/layout/network-decentralized.svg | 1 + assets/img/svg/layout/network-distributed.svg | 1 + 5 files changed, 102 insertions(+), 78 deletions(-) create mode 100644 assets/img/svg/layout/network-centralized.svg create mode 100644 assets/img/svg/layout/network-decentralized.svg create mode 100644 assets/img/svg/layout/network-distributed.svg diff --git a/_includes/sections/instant-messenger.html b/_includes/sections/instant-messenger.html index 2503446c..a37d4f80 100644 --- a/_includes/sections/instant-messenger.html +++ b/_includes/sections/instant-messenger.html @@ -6,18 +6,21 @@ -

We only recommend instant messenger programs or apps that support end-to-end encryption (E2EE). When E2EE is used, all transmissions (messages, voice, video, etc.) are encrypted before they are sent from your device. E2EE protects both the authenticity and confidentiality of the transmission as they pass through any part of the network (servers, etc.).

+

We only recommend instant messenger programs or apps that support end-to-end encryption (E2EE). When E2EE is used, all transmissions (messages, voice, video, etc.) are encrypted before they are sent from your device. E2EE protects both the authenticity and confidentiality of the transmission as they pass through any part of the network (servers, etc.).

-

All the client programs/apps we chose are free and open-source software unless otherwise mentioned. This to ensure that the code can be independently verified by experts now and in the future.

+

All the client programs/apps we chose are free and open-source software unless otherwise mentioned. This to ensure that the code can be independently verified by experts now and in the future.

-

We have described the three main types of messaging programs that exist: Centralized, Federated and Peer-to-Peer (P2P), with the advantages and disadvantages of each.

+

We have described the three main types of messaging programs that exist: Centralized, Federated and Peer-to-Peer (P2P), with the advantages and disadvantages of each.

-

- - Centralized -

+

+ + Centralized +

-

Centralized messengers are those where every participant is on the same server or network of servers controlled by the same organization.

+
+ Centralized network +

Centralized messengers are those where every participant is on the same server or network of servers controlled by the same organization.

+
{% include cardv2.html @@ -64,10 +67,13 @@

- Federated + Federated (decentralized)

-

Federated messengers use multiple, independent servers that are able to talk to each other (email is one example of a federated service). Federation allows system administrators to control their own server and still be a part of the larger communications network.

+
+ Decentralized network +

Federated messengers use multiple, independent servers that are able to talk to each other (email is one example of a federated service). Federation allows system administrators to control their own server and still be a part of the larger communications network.

+
{% include cardv2.html @@ -120,12 +126,28 @@
  • Status.im - Encrypted instant messenger with an integrated Ethereum wallet (cryptocurrency) that also includes support for DApps (decentralized apps) (web apps in a curated store). Uses the Waku protocol (a fork of Whisper) for P2P communication. Only available for iOS and Android.
  • -

    - - Peer to Peer (P2P) +

    + + Distributed

    -

    Peer-to-Peer instant messengers connect directly to each other without requiring third-party servers. Clients (peers) usually find each other through the use of a distributed computing network. Examples of this include DHT (distributed hash table) (used with technologies like torrents and IPFS, for example). Another approach is proximity based networks, where a connection is established over WiFi or Bluetooth (for example, Briar or the Scuttlebutt social networking protocol). Once a peer has found a route to its contact via any of these methods, a direct connection between them is made.

    +
    +

    + Distributed network + Distributed network messengers connect through a network of nodes that relay messages to the recipient without a third-party server. Connection can then be established directly as with peer-to-peer networks, or indirectly through a rendez-vu node as in onion routing networks. +

    + +

    Peer-to-Peer instant messengers connect directly to each other without requiring third-party servers. Clients (peers) usually find each other through the use of a distributed computing network. Examples of this include DHT (distributed hash table) (used with technologies like torrents and IPFS, for example). Another approach is proximity based networks, where a connection is established over WiFi or Bluetooth (for example, Briar or the Scuttlebutt social networking protocol). Once a peer has found a route to its contact via any of these methods, a direct connection between them is made.

    + +

    Non peer-to-peer distributed networks route encrypted messages through a network of user operated nodes. The sender and recipient never interact directly, and hence there is no leak of IP addresses. With onion routing (eg, Tor), nodes cannot decrypt messages, only the recipient can. Another example is blockchain technology, although there is no guarantee of anonymity.

    + +

    Softwares can combine multiple approaches, such as Briar using peer-to-peer for local network and Tor for remote connections over the internet, whereas Session always uses onion routing over a blockchain to incentivize nodes.

    +
    + +

    + + Peer-to-Peer (P2P) +

    {% include cardv2.html @@ -181,19 +203,16 @@
    -
    -

    - - Nodal -

    - -

    Nodal networks route encrypted messages through a network of user operated nodes. The nodes cannot decrypt messages, only the recipient can decrypt. Examples of this include Onion routing (used with technologies like Tor) and Blockchains. A direct connection is never made, ensuring that the recipient cannot access the sender's metadata (eg, IP address). If the network uses onion routing, then the nodes can't either.

    +

    + + Non Peer-to-Peer +

    {% include cardv2.html title="Session" image="/assets/img/svg/3rd-party/session.svg" - description="Encrypted instant messenger using 3-hop onion routing to transmit communications via Oxen blockchain's nodes that are distributed worldwide. All communications are E2EE encrypted by default, supporting 1-on-1, private group and public group textual chatrooms. The protocol was independently audited (whitepaper)." + description="Encrypted instant messenger using 3-hop onion routing to transmit communications via Oxen blockchain's nodes that are distributed worldwide. All communications are E2EE encrypted by default, supporting 1-on-1, private group and public group textual chatrooms. The protocol was independently audited (whitepaper)." website="https://getsession.org/" privacy-policy="https://getsession.org/privacy-policy/" github="https://github.com/oxen-io/session-desktop" @@ -209,16 +228,16 @@

    Advantages

      -
    • Minimal to no information is exposed to third parties.
    • +
    • Minimal to no information is exposed to other parties, including recipients.
    • Messages can be relayed even if one of the parties is offline.

    Disadvantages

      -
    • Slow transfers and messages propagation.
    • +
    • Slow messages propagation.
    • Less reliable due to the random nodes routing, some nodes may be very far from the sender and receiver, adding latency or even failing to transmit messages if one of the nodes goes offline.
    • -
    • More complex to use as it requires the creation and backup of a private key.
    • +
    • More complex to use as it requires the creation and secured backup of a cryptographic private key.
    diff --git a/assets/img/svg/3rd-party/session.svg b/assets/img/svg/3rd-party/session.svg index 3cc36ec7..e7971bbe 100644 --- a/assets/img/svg/3rd-party/session.svg +++ b/assets/img/svg/3rd-party/session.svg @@ -1,6 +1,4 @@ - - image/svg+xml \ No newline at end of file + id="g20" + transform="translate(0.0044,25.541)" + style="fill:#808080;fill-opacity:1"> diff --git a/assets/img/svg/layout/network-centralized.svg b/assets/img/svg/layout/network-centralized.svg new file mode 100644 index 00000000..8a7c6eeb --- /dev/null +++ b/assets/img/svg/layout/network-centralized.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/svg/layout/network-decentralized.svg b/assets/img/svg/layout/network-decentralized.svg new file mode 100644 index 00000000..aca84898 --- /dev/null +++ b/assets/img/svg/layout/network-decentralized.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/svg/layout/network-distributed.svg b/assets/img/svg/layout/network-distributed.svg new file mode 100644 index 00000000..47555b17 --- /dev/null +++ b/assets/img/svg/layout/network-distributed.svg @@ -0,0 +1 @@ + \ No newline at end of file From 99c017c16e520d21fd6d90aff688cc032b4126c0 Mon Sep 17 00:00:00 2001 From: Stephen L Date: Tue, 25 May 2021 00:06:07 +0200 Subject: [PATCH 2/4] more margin for images Signed-off-by: Stephen L. --- assets/img/svg/layout/network-centralized.svg | 2 +- assets/img/svg/layout/network-decentralized.svg | 2 +- assets/img/svg/layout/network-distributed.svg | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/assets/img/svg/layout/network-centralized.svg b/assets/img/svg/layout/network-centralized.svg index 8a7c6eeb..16d2e4c3 100644 --- a/assets/img/svg/layout/network-centralized.svg +++ b/assets/img/svg/layout/network-centralized.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/img/svg/layout/network-decentralized.svg b/assets/img/svg/layout/network-decentralized.svg index aca84898..1d4a63e1 100644 --- a/assets/img/svg/layout/network-decentralized.svg +++ b/assets/img/svg/layout/network-decentralized.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/img/svg/layout/network-distributed.svg b/assets/img/svg/layout/network-distributed.svg index 47555b17..78b9d0e2 100644 --- a/assets/img/svg/layout/network-distributed.svg +++ b/assets/img/svg/layout/network-distributed.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file From 0fa2d742dec94e0955874af10248353972a80c69 Mon Sep 17 00:00:00 2001 From: Stephen L Date: Sun, 30 May 2021 00:04:21 +0200 Subject: [PATCH 3/4] update svg to be optimized and 128x128 Signed-off-by: Stephen L. --- assets/img/svg/layout/network-centralized.svg | 3 ++- assets/img/svg/layout/network-decentralized.svg | 3 ++- assets/img/svg/layout/network-distributed.svg | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/assets/img/svg/layout/network-centralized.svg b/assets/img/svg/layout/network-centralized.svg index 16d2e4c3..6ca7ea09 100644 --- a/assets/img/svg/layout/network-centralized.svg +++ b/assets/img/svg/layout/network-centralized.svg @@ -1 +1,2 @@ - \ No newline at end of file + + diff --git a/assets/img/svg/layout/network-decentralized.svg b/assets/img/svg/layout/network-decentralized.svg index 1d4a63e1..c7da6860 100644 --- a/assets/img/svg/layout/network-decentralized.svg +++ b/assets/img/svg/layout/network-decentralized.svg @@ -1 +1,2 @@ - \ No newline at end of file + + diff --git a/assets/img/svg/layout/network-distributed.svg b/assets/img/svg/layout/network-distributed.svg index 78b9d0e2..5d8e5fef 100644 --- a/assets/img/svg/layout/network-distributed.svg +++ b/assets/img/svg/layout/network-distributed.svg @@ -1 +1,2 @@ - \ No newline at end of file + + From 8bda231ca09b5ac3ab83f62b1b648553806c62c0 Mon Sep 17 00:00:00 2001 From: Stephen L Date: Sun, 30 May 2021 03:10:30 +0200 Subject: [PATCH 4/4] generalize explanation (distributed ledger technology with blockchain being an example) Signed-off-by: Stephen L. --- _includes/sections/instant-messenger.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/sections/instant-messenger.html b/_includes/sections/instant-messenger.html index a37d4f80..8d39d69f 100644 --- a/_includes/sections/instant-messenger.html +++ b/_includes/sections/instant-messenger.html @@ -139,7 +139,7 @@

    Peer-to-Peer instant messengers connect directly to each other without requiring third-party servers. Clients (peers) usually find each other through the use of a distributed computing network. Examples of this include DHT (distributed hash table) (used with technologies like torrents and IPFS, for example). Another approach is proximity based networks, where a connection is established over WiFi or Bluetooth (for example, Briar or the Scuttlebutt social networking protocol). Once a peer has found a route to its contact via any of these methods, a direct connection between them is made.

    -

    Non peer-to-peer distributed networks route encrypted messages through a network of user operated nodes. The sender and recipient never interact directly, and hence there is no leak of IP addresses. With onion routing (eg, Tor), nodes cannot decrypt messages, only the recipient can. Another example is blockchain technology, although there is no guarantee of anonymity.

    +

    Non peer-to-peer distributed networks route encrypted messages through a network of user operated nodes. The sender and recipient never interact directly, and hence there is no leak of IP addresses. With onion routing (e.g., Tor), nodes cannot decrypt messages, only the recipient can. Another example is distributed ledger technology (e.g., blockchains), although there is no guarantee of anonymity.

    Softwares can combine multiple approaches, such as Briar using peer-to-peer for local network and Tor for remote connections over the internet, whereas Session always uses onion routing over a blockchain to incentivize nodes.