1
0
mirror of https://github.com/privacyguides/privacyguides.org.git synced 2025-07-05 11:02:42 +00:00

Compare commits

..

11 Commits
v2.23 ... v2.24

Author SHA1 Message Date
f2162cf28a Add Real-Time Communication Category to Knowledge Base (#1770)
Co-authored-by: Morten Lautrup <44033709+purtual@users.noreply.github.com>
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-09-16 23:17:51 +09:30
4c159a3261 Fix Diceware links (#1772)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-09-16 22:38:10 +09:30
b3a254463d Change hidden to onion, remove F-droid mention (#1771)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-09-16 22:35:10 +09:30
2b58befda4 Change GrapheneOS/CalyxOS comparison page name (#1768)
* use 'or' instead
2022-09-15 19:21:38 +01:00
0b8edd035c Bump crowdin/github-action from 1.4.12 to 1.4.13 (#1766)
Signed-off-by: dependabot[bot] <support@github.com>
2022-09-15 11:33:48 -05:00
9f6cd454a8 Fix TOTP app link (#1767) 2022-09-15 10:24:42 -05:00
8309e56cb3 Add GitHub Releases to Orbot's Downloads (#1765) 2022-09-14 19:20:23 +00:00
c88dc960d2 Add mention of HIBP's Latest Breaches Feed To Passwords Knowledge Base Article (#1761) 2022-09-14 09:17:52 +00:00
2c5707a9ba Update Tails description (#1760)
Co-Authored-By: matchboxbananasynergy <107055883+matchboxbananasynergy@users.noreply.github.com>
2022-09-13 18:20:00 -05:00
cc3bcd9d94 Increase GrapheneOS user profile count to 32 (#1758) 2022-09-13 22:40:29 +00:00
982dc64730 Clarify Qubes OS mention in Tor Page (#1759) 2022-09-13 22:29:55 +00:00
10 changed files with 145 additions and 133 deletions

View File

@ -14,7 +14,7 @@ jobs:
uses: actions/checkout@v3 uses: actions/checkout@v3
- name: crowdin action - name: crowdin action
uses: crowdin/github-action@1.4.12 uses: crowdin/github-action@1.4.13
with: with:
upload_sources: true upload_sources: true
upload_sources_args: '--auto-update --delete-obsolete' upload_sources_args: '--auto-update --delete-obsolete'

View File

@ -1,5 +1,5 @@
--- ---
title: "Why we recommend GrapheneOS over CalyxOS" title: "GrapheneOS or CalyxOS?"
icon: 'material/cellphone-cog' icon: 'material/cellphone-cog'
--- ---
@ -9,7 +9,7 @@ GrapheneOS and CalyxOS are often compared as similar options for people looking
CalyxOS has a track record of being slower to apply security and feature updates to its OS and core applications than other custom Android operating systems. Timely security updates are one of the most important factors to consider when determining whether an OS is secure enough for regular use, which is a requirement for privacy. CalyxOS has a track record of being slower to apply security and feature updates to its OS and core applications than other custom Android operating systems. Timely security updates are one of the most important factors to consider when determining whether an OS is secure enough for regular use, which is a requirement for privacy.
In contrast to that, GrapheneOS manages to stay close to upstream and in some cases even [deliver updates even before the stock OS does](https://grapheneos.org/features#more-complete-patching). In contrast to that, GrapheneOS manages to stay close to upstream and in some cases even [deliver updates before the stock OS does](https://grapheneos.org/features#more-complete-patching).
As an example, [GrapheneOS's first Android 12 release](https://grapheneos.org/releases#2021102020) was in October 2021, whereas [CalyxOS moved to Android 12](https://calyxos.org/news/2022/01/19/android-12-changelog/) in January 2022. As an example, [GrapheneOS's first Android 12 release](https://grapheneos.org/releases#2021102020) was in October 2021, whereas [CalyxOS moved to Android 12](https://calyxos.org/news/2022/01/19/android-12-changelog/) in January 2022.
@ -51,7 +51,7 @@ On the other hand, GrapheneOS officially recommends [Sandboxed Google Play](http
## Profiles ## Profiles
GrapheneOS significantly improves [user profiles](overview.md#user-profiles) in [multiple ways](https://grapheneos.org/features#improved-user-profiles), such as increasing the limit of how many profiles you can create (16 instead of the standard 4), allowing you to log out of user profiles, disabling app installation, and notification forwarding. All of these improvements make it so user profiles can be daily driven without sacrificng too much usability. GrapheneOS significantly improves [user profiles](overview.md#user-profiles) in [multiple ways](https://grapheneos.org/features#improved-user-profiles), such as increasing the limit of how many profiles you can create (32 instead of the standard 4), allowing you to log out of user profiles, disabling app installation, and notification forwarding. All of these improvements make it so user profiles can be daily driven without sacrificng too much usability.
CalyxOS doesn't feature any improvements to user profiles over AOSP, and instead includes a device controller app so that the [work profile](overview.md#work-profile) can be used without needing to download a third party app such as [Shelter](../android.md#shelter). However, work profiles are not nearly as flexible (as you're limited to only one) and don't provide the same amount of isolation and security. CalyxOS doesn't feature any improvements to user profiles over AOSP, and instead includes a device controller app so that the [work profile](overview.md#work-profile) can be used without needing to download a third party app such as [Shelter](../android.md#shelter). However, work profiles are not nearly as flexible (as you're limited to only one) and don't provide the same amount of isolation and security.

View File

@ -15,7 +15,7 @@ This is called [credential stuffing](https://en.wikipedia.org/wiki/Credential_st
### Use randomly generated passwords ### Use randomly generated passwords
==You should **never** rely on yourself to come up with a good password.== We recommend using [randomly generated passwords](#passwords) or [diceware passphrases](#diceware) with sufficient entropy to protect your accounts and devices. ==You should **never** rely on yourself to come up with a good password.== We recommend using [randomly generated passwords](#passwords) or [diceware passphrases](#diceware-passphrases) with sufficient entropy to protect your accounts and devices.
All of our [recommended password managers](../passwords.md) include a built-in password generator that you can use. All of our [recommended password managers](../passwords.md) include a built-in password generator that you can use.
@ -27,7 +27,7 @@ When it comes to passwords that you don't have to remember (such as passwords st
!!! Tip "Checking for data breaches" !!! Tip "Checking for data breaches"
If your password manager lets you check for compromised passwords, make sure to do so and promptly change any password that may have been exposed in a data breach. If your password manager lets you check for compromised passwords, make sure to do so and promptly change any password that may have been exposed in a data breach. Alternatively, you could follow [Have I Been Pwned's Latest Breaches feed](https://feeds.feedburner.com/HaveIBeenPwnedLatestBreaches) with the help of a [news aggregator](../news-aggregators.md).
## Creating strong passwords ## Creating strong passwords
@ -36,7 +36,7 @@ When it comes to passwords that you don't have to remember (such as passwords st
A lot of services impose certain criteria when it comes to passwords, including a minimum or maximum length, as well as which special characters, if any, can be used. You should use your password manager's built-in password generator to create passwords that are as long and complex as the service will allow by including capitalized and lowercase letters, numbers and special characters. A lot of services impose certain criteria when it comes to passwords, including a minimum or maximum length, as well as which special characters, if any, can be used. You should use your password manager's built-in password generator to create passwords that are as long and complex as the service will allow by including capitalized and lowercase letters, numbers and special characters.
If you need a password you can memorize, we recommend a [diceware passphrase](#diceware). If you need a password you can memorize, we recommend a [diceware passphrase](#diceware-passphrases).
### Diceware Passphrases ### Diceware Passphrases
@ -94,13 +94,13 @@ To sum it up, diceware passphrases are your best option when you need something
The best way to store your passwords is by using a password manager. They allow you to store your passwords in a file or in the cloud and protect them with a single master password. That way, you will only have to remember one strong password, which lets you access the rest of them. The best way to store your passwords is by using a password manager. They allow you to store your passwords in a file or in the cloud and protect them with a single master password. That way, you will only have to remember one strong password, which lets you access the rest of them.
There are many good options to choose from, both cloud-based and local. Choose one of our recommended password managers and use it to establish strong passwords across all of your accounts. We recommend securing your password manager with a [diceware](#diceware) passphrase comprised of at least seven words. There are many good options to choose from, both cloud-based and local. Choose one of our recommended password managers and use it to establish strong passwords across all of your accounts. We recommend securing your password manager with a [diceware passphrase](#diceware-passphrases) comprised of at least seven words.
[List of recommended password managers](../passwords.md){ .md-button } [List of recommended password managers](../passwords.md){ .md-button }
!!! Warning "Don't place your passwords and TOTP tokens inside the same password manager" !!! Warning "Don't place your passwords and TOTP tokens inside the same password manager"
If you're using TOTP as a [multi-factor authentication](../multi-factor-authentication.md) method for any of your accounts, do not store these tokens, any backup codes for them, or the TOTP secrets themselves in your password manager, as that negates the benefit of multi-factor authentication. You should use a dedicated [TOTP app](../multi-factor-authentication.md/#authenticator-apps) instead. If you're using TOTP as a [multi-factor authentication](../multi-factor-authentication.md) method for any of your accounts, do not store these tokens, any backup codes for them, or the TOTP secrets themselves in your password manager, as that negates the benefit of multi-factor authentication. You should use a dedicated [TOTP app](../multi-factor-authentication.md#authenticator-apps) instead.
### Backups ### Backups

View File

@ -110,7 +110,7 @@ Nix is a source-based package manager; if theres no pre-built available in th
![Whonix logo](assets/img/linux-desktop/whonix.svg){ align=right } ![Whonix logo](assets/img/linux-desktop/whonix.svg){ align=right }
**Whonix** is based on [Kicksecure](https://www.whonix.org/wiki/Kicksecure), a security-focused fork of Debian. It aims to provide privacy, security, and anonymity on the internet. **Whonix** is based on [Kicksecure](https://www.whonix.org/wiki/Kicksecure), a security-focused fork of Debian. It aims to provide privacy, security, and anonymity on the internet. Whonix is best used in conjunction with [Qubes OS](qubes.md).
[:octicons-home-16: Homepage](https://www.whonix.org/){ .md-button .md-button--primary } [:octicons-home-16: Homepage](https://www.whonix.org/){ .md-button .md-button--primary }
[:octicons-info-16:](https://www.whonix.org/wiki/Documentation){ .card-link title=Documentation} [:octicons-info-16:](https://www.whonix.org/wiki/Documentation){ .card-link title=Documentation}
@ -130,14 +130,14 @@ Whonix is best used [in conjunction with Qubes](https://www.whonix.org/wiki/Qube
![Tails logo](assets/img/linux-desktop/tails.svg){ align=right } ![Tails logo](assets/img/linux-desktop/tails.svg){ align=right }
**Tails** is a live operating system based on Debian that routes all communications through Tor. **Tails** is a live operating system based on Debian that routes all communications through Tor, which can boot on on almost any computer from a DVD, USB stick, or SD card installation. It uses [Tor](tor.md) to preserve privacy and anonymity while circumventing censorship, and it leaves no trace of itself on the computer it is used on after it is powered off.
It can boot on almost any computer from a DVD, USB stick, or SD card. It aims to preserve privacy and anonymity while circumventing censorship and leaving no trace of itself on the computer it is used on.
[:octicons-home-16: Homepage](https://tails.boum.org/){ .md-button .md-button--primary } [:octicons-home-16: Homepage](https://tails.boum.org/){ .md-button .md-button--primary }
[:octicons-info-16:](https://tails.boum.org/doc/index.en.html){ .card-link title=Documentation} [:octicons-info-16:](https://tails.boum.org/doc/index.en.html){ .card-link title=Documentation}
[:octicons-heart-16:](https://tails.boum.org/donate/){ .card-link title=Contribute } [:octicons-heart-16:](https://tails.boum.org/donate/){ .card-link title=Contribute }
By design, Tails is meant to completely reset itself after each reboot. Encrypted [persistent storage](https://tails.boum.org/doc/first_steps/persistence/index.en.html) can be configured to store some data.
Tails is great for counter forensics due to amnesia (meaning nothing is written to the disk); however, it is not a hardened distribution like Whonix. It lacks many anonymity and security features that Whonix has and gets updated much less often (only once every six weeks). A Tails system that is compromised by malware may potentially bypass the transparent proxy allowing for the user to be deanonymized. Tails is great for counter forensics due to amnesia (meaning nothing is written to the disk); however, it is not a hardened distribution like Whonix. It lacks many anonymity and security features that Whonix has and gets updated much less often (only once every six weeks). A Tails system that is compromised by malware may potentially bypass the transparent proxy allowing for the user to be deanonymized.
Tails also installs uBlock Origin in Tor Browser by default, which potentially makes it easier for adversaries to fingerprint Tails users, and increases the attack surface of the browser. For all of these reasons, if your only goal is to browse the internet anonymously, Tails is not as good of a choice as using [Whonix](linux-desktop.md/#whonix) with [Qubes OS](qubes.md), which is much more secure and leakproof. If your goal is to use a computer without leaving any trace afterwards, Tails may be a good solution for you.
By design, Tails is meant to completely reset itself after each reboot. Encrypted [persistent storage](https://tails.boum.org/doc/first_steps/persistence/index.en.html) can be configured to store some data between reboots.

View File

@ -2,6 +2,11 @@
title: "Real-Time Communication" title: "Real-Time Communication"
icon: material/chat-processing icon: material/chat-processing
--- ---
These are our recommendations for encrypted real-time communication.
[Types of Communication Networks :material-arrow-right-drop-circle:](./real-time-communication/communication-network-types.md)
## Cross-Platform Messengers ## Cross-Platform Messengers
### Signal ### Signal
@ -34,7 +39,7 @@ The protocol was independently [audited](https://eprint.iacr.org/2016/1013.pdf)
We have some additional tips on configuring and hardening your Signal installation: We have some additional tips on configuring and hardening your Signal installation:
[Signal Configuration and Hardening :material-arrow-right-drop-circle:](./advanced/signal-configuration-hardening.md) [Signal Configuration and Hardening :material-arrow-right-drop-circle:](./real-time-communication/signal-configuration-hardening.md)
### Element ### Element
@ -129,102 +134,4 @@ The client software was independently [audited](https://briarproject.org/news/20
Briar has a fully [published specification](https://code.briarproject.org/briar/briar-spec). Briar has a fully [published specification](https://code.briarproject.org/briar/briar-spec).
Briar supports perfect forward secrecy by using the Bramble [Handshake](https://code.briarproject.org/briar/briar-spec/blob/master/protocols/BHP.md) and [Transport](https://code.briarproject.org/briar/briar-spec/blob/master/protocols/BTP.md) protocol. Briar supports perfect forward secrecy by using the Bramble [Handshake](https://code.briarproject.org/briar/briar-spec/blob/master/protocols/BHP.md) and [Transport](https://code.briarproject.org/briar/briar-spec/blob/master/protocols/BTP.md) protocol.
## Types of Communication Networks
There are several network architectures commonly used to relay messages between people. These networks can provide different privacy guarantees, which is why it's worth considering your [threat model](https://en.wikipedia.org/wiki/Threat_model) when making a decision about which app to use.
### Centralized Networks
![Centralized networks diagram](assets/img/layout/network-centralized.svg){ align=left }
Centralized messengers are those where all participants are on the same server or network of servers controlled by the same organization.
Some self-hosted messengers allow you to set up your own server. Self-hosting can provide additional privacy guarantees such as no usage logs or limited access to metadata (data about who is talking to whom). Self-hosted centralized messengers are isolated and everyone must be on the same server to communicate.
**Advantages:**
- New features and changes can be implemented more quickly.
- Easier to get started with and to find contacts.
- Most mature and stable features ecosystems, as they are easier to program in a centralized software.
- Privacy issues may be reduced when you trust a server that you're self-hosting.
**Disadvantages:**
- Can include [restricted control or access](https://drewdevault.com/2018/08/08/Signal.html). This can include things like:
- Being [forbidden from connecting third-party clients](https://github.com/LibreSignal/LibreSignal/issues/37#issuecomment-217211165) to the centralized network that might provide for greater customization or a better experience. Often defined in Terms and Conditions of usage.
- Poor or no documentation for third-party developers.
- The [ownership](https://web.archive.org/web/20210729191953/https://blog.privacytools.io/delisting-wire/), privacy policy, and operations of the service can change easily when a single entity controls it, potentially compromising the service later on.
- Self-hosting requires effort and knowledge of how to set up a service.
### Federated Networks
![Federated networks diagram](assets/img/layout/network-decentralized.svg){ align=left }
Federated messengers use multiple, independent, decentralized 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.
When self-hosted, members of a federated server can discover and communicate with members of other servers, although some servers may choose to remain private by being non-federated (e.g., work team server).
**Advantages:**
- Allows for greater control over your own data when running your own server.
- Allows you to choose who to trust your data with by choosing between multiple "public" servers.
- Often allows for third-party clients which can provide a more native, customized, or accessible experience.
- Server software can be verified that it matches public source code, assuming you have access to the server or you trust the person who does (e.g., a family member).
**Disadvantages:**
- Adding new features is more complex, because these features need to be standardized and tested to ensure they work with all servers on the network.
- Due to the previous point, features can be lacking, or incomplete or working in unexpected ways compared to centralized platforms, such as message relay when offline or message deletion.
- Some metadata may be available (e.g., information like "who is talking to whom," but not actual message content if E2EE is used).
- Federated servers generally require trusting your server's administrator. They may be a hobbyist or otherwise not a "security professional," and may not serve standard documents like a privacy policy or terms of service detailing how your data is used.
- Server administrators sometimes choose to block other servers, which are a source of unmoderated abuse or break general rules of accepted behavior. This will hinder your ability to communicate with members of those servers.
### Peer-to-Peer Networks
![P2P diagram](assets/img/layout/network-distributed.svg){ align=left }
P2P messengers connect to a [distributed network](https://en.wikipedia.org/wiki/Distributed_networking) of nodes to relay a message to the recipient without a third-party server.
Clients (peers) usually find each other through the use of a [distributed computing](https://en.wikipedia.org/wiki/Distributed_computing) network. Examples of this include [Distributed Hash Tables](https://en.wikipedia.org/wiki/Distributed_hash_table) (DHT), used by [torrents](https://en.wikipedia.org/wiki/BitTorrent_(protocol)) and [IPFS](https://en.wikipedia.org/wiki/InterPlanetary_File_System) for example. Another approach is proximity based networks, where a connection is established over WiFi or Bluetooth (for example, Briar or the [Scuttlebutt](https://www.scuttlebutt.nz) social network protocol).
Once a peer has found a route to its contact via any of these methods, a direct connection between them is made. Although messages are usually encrypted, an observer can still deduce the location and identity of the sender and recipient.
P2P networks do not use servers, as peers communicate directly between each other and hence cannot be self-hosted. However, some additional services may rely on centralized servers, such as user discovery or relaying offline messages, which can benefit from self-hosting.
**Advantages:**
- Minimal information is exposed to third-parties.
- Modern P2P platforms implement E2EE by default. There are no servers that could potentially intercept and decrypt your transmissions, unlike centralized and federated models.
**Disadvantages:**
- Reduced feature set:
- Messages can only be sent when both peers are online, however, your client may store messages locally to wait for the contact to return online.
- Generally increases battery usage on mobile devices, because the client must stay connected to the distributed network to learn about who is online.
- Some common messenger features may not be implemented or incompletely, such as message deletion.
- Your IP address and that of the contacts you're communicating with may be exposed if you do not use the software in conjunction with a [VPN](vpn.md) or [Tor](tor.md). Many countries have some form of mass surveillance and/or metadata retention.
### Anonymous Routing
![Anonymous routing diagram](assets/img/layout/network-anonymous-routing.svg){ align=left }
A messenger using [anonymous routing](https://doi.org/10.1007/978-1-4419-5906-5_628) hides either the identity of the sender, the receiver or evidence that they have been communicating. Ideally, a messenger should hide all three.
There are [many](https://doi.org/10.1145/3182658) different ways to implement anonymous routing. One of the most famous is [onion routing](https://en.wikipedia.org/wiki/Onion_routing) (i.e. [Tor](https://en.wikipedia.org/wiki/Tor_(anonymity_network))), which communicates encrypted messages through a virtual [overlay network](https://en.wikipedia.org/wiki/Overlay_network) that hides the location of each node as well as the recipient and sender of each message. The sender and recipient never interact directly and only meet through a secret rendezvous node, so that there is no leak of IP addresses nor physical location. Nodes cannot decrypt messages nor the final destination; only the recipient can. Each intermediary node can only decrypt a part that indicates where to send the still encrypted message next, until it arrives at the recipient who can fully decrypt it, hence the "onion layers."
Self-hosting a node in an anonymous routing network does not provide the hoster with additional privacy benefits, but rather contributes to the whole network's resilience against identification attacks for everyone's benefit.
**Advantages:**
- Minimal to no information is exposed to other parties.
- Messages can be relayed in a decentralized manner even if one of the parties is offline.
**Disadvantages:**
- Slow message propagation.
- Often limited to fewer media types, mostly text since the network is slow.
- Less reliable if nodes are selected by randomized 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 get started as the creation and secured backup of a cryptographic private key is required.
- Just like other decentralized platforms, adding features is more complex for developers than on a centralized platform, hence features may be lacking or incompletely implemented, such as offline message relaying or message deletion.

View File

@ -0,0 +1,102 @@
---
title: "Types of Communication Networks"
icon: 'material/transit-connection-variant'
---
There are several network architectures commonly used to relay messages between people. These networks can provide different privacy guarantees, which is why it's worth considering your [threat model](../basics/threat-modeling.md) when deciding which app to use.
[Recommended Instant Messengers](../real-time-communication.md){ .md-button }
## Centralized Networks
![Centralized networks diagram](../assets/img/layout/network-centralized.svg){ align=left }
Centralized messengers are those where all participants are on the same server or network of servers controlled by the same organization.
Some self-hosted messengers allow you to set up your own server. Self-hosting can provide additional privacy guarantees, such as no usage logs or limited access to metadata (data about who is talking to whom). Self-hosted centralized messengers are isolated and everyone must be on the same server to communicate.
**Advantages:**
- New features and changes can be implemented more quickly.
- Easier to get started with and to find contacts.
- Most mature and stable features ecosystems, as they are easier to program in a centralized software.
- Privacy issues may be reduced when you trust a server that you're self-hosting.
**Disadvantages:**
- Can include [restricted control or access](https://drewdevault.com/2018/08/08/Signal.html). This can include things like:
- Being [forbidden from connecting third-party clients](https://github.com/LibreSignal/LibreSignal/issues/37#issuecomment-217211165) to the centralized network that might provide for greater customization or a better experience. Often defined in Terms and Conditions of usage.
- Poor or no documentation for third-party developers.
- The [ownership](https://web.archive.org/web/20210729191953/https://blog.privacytools.io/delisting-wire/), privacy policy, and operations of the service can change easily when a single entity controls it, potentially compromising the service later on.
- Self-hosting requires effort and knowledge of how to set up a service.
## Federated Networks
![Federated networks diagram](../assets/img/layout/network-decentralized.svg){ align=left }
Federated messengers use multiple, independent, decentralized 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.
When self-hosted, members of a federated server can discover and communicate with members of other servers, although some servers may choose to remain private by being non-federated (e.g., work team server).
**Advantages:**
- Allows for greater control over your own data when running your own server.
- Allows you to choose whom to trust your data with by choosing between multiple "public" servers.
- Often allows for third-party clients which can provide a more native, customized, or accessible experience.
- Server software can be verified that it matches public source code, assuming you have access to the server or you trust the person who does (e.g., a family member).
**Disadvantages:**
- Adding new features is more complex because these features need to be standardized and tested to ensure they work with all servers on the network.
- Due to the previous point, features can be lacking, or incomplete or working in unexpected ways compared to centralized platforms, such as message relay when offline or message deletion.
- Some metadata may be available (e.g., information like "who is talking to whom," but not actual message content if E2EE is used).
- Federated servers generally require trusting your server's administrator. They may be a hobbyist or otherwise not a "security professional," and may not serve standard documents like a privacy policy or terms of service detailing how your data is used.
- Server administrators sometimes choose to block other servers, which are a source of unmoderated abuse or break general rules of accepted behavior. This will hinder your ability to communicate with members of those servers.
## Peer-to-Peer Networks
![P2P diagram](../assets/img/layout/network-distributed.svg){ align=left }
P2P messengers connect to a [distributed network](https://en.wikipedia.org/wiki/Distributed_networking) of nodes to relay a message to the recipient without a third-party server.
Clients (peers) usually find each other through the use of a [distributed computing](https://en.wikipedia.org/wiki/Distributed_computing) network. Examples of this include [Distributed Hash Tables](https://en.wikipedia.org/wiki/Distributed_hash_table) (DHT), used by [torrents](https://en.wikipedia.org/wiki/BitTorrent_(protocol)) and [IPFS](https://en.wikipedia.org/wiki/InterPlanetary_File_System) for example. Another approach is proximity based networks, where a connection is established over WiFi or Bluetooth (for example, Briar or the [Scuttlebutt](https://www.scuttlebutt.nz) social network protocol).
Once a peer has found a route to its contact via any of these methods, a direct connection between them is made. Although messages are usually encrypted, an observer can still deduce the location and identity of the sender and recipient.
P2P networks do not use servers, as peers communicate directly between each other and hence cannot be self-hosted. However, some additional services may rely on centralized servers, such as user discovery or relaying offline messages, which can benefit from self-hosting.
**Advantages:**
- Minimal information is exposed to third-parties.
- Modern P2P platforms implement E2EE by default. There are no servers that could potentially intercept and decrypt your transmissions, unlike centralized and federated models.
**Disadvantages:**
- Reduced feature set:
- Messages can only be sent when both peers are online, however, your client may store messages locally to wait for the contact to return online.
- Generally increases battery usage on mobile devices, because the client must stay connected to the distributed network to learn about who is online.
- Some common messenger features may not be implemented or incompletely, such as message deletion.
- Your IP address and that of the contacts you're communicating with may be exposed if you do not use the software in conjunction with a [VPN](vpn.md) or [Tor](tor.md). Many countries have some form of mass surveillance and/or metadata retention.
## Anonymous Routing
![Anonymous routing diagram](../assets/img/layout/network-anonymous-routing.svg){ align=left }
A messenger using [anonymous routing](https://doi.org/10.1007/978-1-4419-5906-5_628) hides either the identity of the sender, the receiver, or evidence that they have been communicating. Ideally, a messenger should hide all three.
There are [many](https://doi.org/10.1145/3182658) different ways to implement anonymous routing. One of the most famous is [onion routing](https://en.wikipedia.org/wiki/Onion_routing) (i.e. [Tor](../basics/tor-overview.md)), which communicates encrypted messages through a virtual [overlay network](https://en.wikipedia.org/wiki/Overlay_network) that hides the location of each node as well as the recipient and sender of each message. The sender and recipient never interact directly and only meet through a secret rendezvous node so that there is no leak of IP addresses nor physical location. Nodes cannot decrypt messages, nor the final destination; only the recipient can. Each intermediary node can only decrypt a part that indicates where to send the still encrypted message next, until it arrives at the recipient who can fully decrypt it, hence the "onion layers."
Self-hosting a node in an anonymous routing network does not provide the hoster with additional privacy benefits, but rather contributes to the whole network's resilience against identification attacks for everyone's benefit.
**Advantages:**
- Minimal to no information is exposed to other parties.
- Messages can be relayed in a decentralized manner even if one of the parties is offline.
**Disadvantages:**
- Slow message propagation.
- Often limited to fewer media types, mostly text, since the network is slow.
- Less reliable if nodes are selected by randomized 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 get started, as the creation and secured backup of a cryptographic private key is required.
- Just like other decentralized platforms, adding features is more complex for developers than on a centralized platform. Hence, features may be lacking or incompletely implemented, such as offline message relaying or message deletion.

View File

@ -21,14 +21,14 @@ Additionally, your Signal PIN can also double as a registration lock that preven
If you haven't set up a Signal PIN, or have previously opted out of setting one up, follow these steps on Android/iOS: If you haven't set up a Signal PIN, or have previously opted out of setting one up, follow these steps on Android/iOS:
- Select :material-dots-vertical: **Settings** > **Account** > **Signal PIN** - Select :material-dots-vertical: > **Settings** > **Account** > **Signal PIN**
- Select **Create new PIN** - Select **Create new PIN**
Signal will prompt you to enter a PIN. We suggest using a strong alphanumeric PIN that can be stored in a [password manager](../passwords.md). Signal will prompt you to enter a PIN. We suggest using a strong alphanumeric PIN that can be stored in a [password manager](../passwords.md).
Once you have done that, or if you already have set up a PIN, make sure that **Registration Lock** is also enabled. Once you have done that, or if you already have set up a PIN, make sure that **Registration Lock** is also enabled.
- Select :material-dots-vertical: **Settings** > **Account** > **Signal PIN** - Select :material-dots-vertical: > **Settings** > **Account** > **Signal PIN**
- [x] Turn on **Registration Lock** - [x] Turn on **Registration Lock**
!!! Important !!! Important
@ -75,7 +75,7 @@ It is good practice to set up disappearing messages in Signal's settings so that
On Android/iOS: On Android/iOS:
- Select :material-dots-vertical: **Settings** > **Privacy** - Select :material-dots-vertical: > **Settings** > **Privacy**
- Under **Disappearing messages**, select **Default timer for new chats** - Under **Disappearing messages**, select **Default timer for new chats**
- Select the desired amount of time and select **Save** - Select the desired amount of time and select **Save**
@ -102,7 +102,7 @@ Your recipient doesn't make any requests unless they open the link on their end.
On Android/iOS: On Android/iOS:
- Select :material-dots-vertical: **Settings** > **Chats** - Select :material-dots-vertical: > **Settings** > **Chats**
- [ ] Turn off **Generate link previews** - [ ] Turn off **Generate link previews**
### Screen Security ### Screen Security
@ -111,12 +111,12 @@ Signal allows you to prevent a preview of the app being shown (i.e., in the app
On Android: On Android:
- Select :material-dots-vertical: **Settings** > **Privacy** - Select :material-dots-vertical: > **Settings** > **Privacy**
- [x] Turn on **Screen Security** - [x] Turn on **Screen Security**
On iOS: On iOS:
- Select :material-dots-vertical: **Settings** > **Privacy** - Select :material-dots-vertical: > **Settings** > **Privacy**
- [x] Turn on **Hide Screen in App Switcher** - [x] Turn on **Hide Screen in App Switcher**
### Screen Lock ### Screen Lock
@ -127,7 +127,7 @@ To mitigate this, you can leverage the Screen Lock option to require additional
On Android/iOS: On Android/iOS:
- Select :material-dots-vertical: **Settings** > **Privacy** - Select :material-dots-vertical: > **Settings** > **Privacy**
- [x] Turn on **Screen Lock** - [x] Turn on **Screen Lock**
### Notification Privacy ### Notification Privacy
@ -138,13 +138,13 @@ On Signal, you have the ability to hide message content and sender name, or just
On Android: On Android:
- Select :material-dots-vertical: **Settings** > **Notifications** - Select :material-dots-vertical: > **Settings** > **Notifications**
- Select **Show** - Select **Show**
- Select **No name or message** or **Name only** respectively. - Select **No name or message** or **Name only** respectively.
On iOS: On iOS:
- Select :material-dots-vertical: **Settings** > **Notifications** - Select :material-dots-vertical: > **Settings** > **Notifications**
- Select **Show** - Select **Show**
- Select **No name or Content** or **Name Only** respectively. - Select **No name or Content** or **Name Only** respectively.
@ -154,7 +154,7 @@ Signal allows you to relay all calls (including video calls) through the Signal
On Android/iOS: On Android/iOS:
- Select :material-dots-vertical: **Settings** > **Privacy** > **Advanced** - Select :material-dots-vertical: > **Settings** > **Privacy** > **Advanced**
- [x] Turn on **Always Relay Calls** - [x] Turn on **Always Relay Calls**
For incoming calls from people who are not in your Contacts app, the call will be relayed through the Signal server regardless of how you've set it up. For incoming calls from people who are not in your Contacts app, the call will be relayed through the Signal server regardless of how you've set it up.
@ -175,7 +175,7 @@ Signal allows you to see your call history from your regular phone app. This all
If you use iCloud and you dont want to share call history on Signal, confirm its turned off: If you use iCloud and you dont want to share call history on Signal, confirm its turned off:
- Select :material-dots-vertical: **Settings** > **Privacy** - Select :material-dots-vertical: > **Settings** > **Privacy**
- [ ] Turn off **Show Calls in Recents** - [ ] Turn off **Show Calls in Recents**
## Signal Hardening ## Signal Hardening

View File

@ -25,7 +25,7 @@ Tor works by routing your internet traffic through those volunteer-operated serv
## Connecting to Tor ## Connecting to Tor
There are a variety of ways to connect to the Tor network from your device, the most commonly used being the **Tor Browser**, a fork of Firefox designed for anonymous browsing for desktop computers and Android. In addition to the apps listed below, there are also operating systems designed specifically to connect to the Tor network such as [Whonix](linux-desktop.md/#whonix) and [Qubes](qubes.md), which provide even greater security and protections than the standard Tor Browser. There are a variety of ways to connect to the Tor network from your device, the most commonly used being the **Tor Browser**, a fork of Firefox designed for anonymous browsing for desktop computers and Android. In addition to the apps listed below, there are also operating systems designed specifically to connect to the Tor network such as [Whonix](linux-desktop.md/#whonix) on [Qubes OS](qubes.md), which provide even greater security and protections than the standard Tor Browser.
### Tor Browser ### Tor Browser
@ -77,6 +77,7 @@ The Tor Browser is designed to prevent fingerprinting, or identifying you based
- [:simple-googleplay: Google Play](https://play.google.com/store/apps/details?id=org.torproject.android) - [:simple-googleplay: Google Play](https://play.google.com/store/apps/details?id=org.torproject.android)
- [:simple-fdroid: F-Droid](https://guardianproject.info/fdroid) - [:simple-fdroid: F-Droid](https://guardianproject.info/fdroid)
- [:simple-github: GitHub](https://github.com/guardianproject/orbot/releases)
- [:simple-appstore: App Store](https://apps.apple.com/us/app/orbot/id1609461599) - [:simple-appstore: App Store](https://apps.apple.com/us/app/orbot/id1609461599)
For resistance against traffic analysis attacks, consider enabling *Isolate Destination Address* in :material-menu: → **Settings****Connectivity**. This will use a completely different Tor Circuit (different middle relay and exit nodes) for every domain you connect to. For resistance against traffic analysis attacks, consider enabling *Isolate Destination Address* in :material-menu: → **Settings****Connectivity**. This will use a completely different Tor Circuit (different middle relay and exit nodes) for every domain you connect to.
@ -85,7 +86,7 @@ For resistance against traffic analysis attacks, consider enabling *Isolate Dest
Orbot can proxy individual apps if they support SOCKS or HTTP proxying. It can also proxy all your network connections using [VpnService](https://developer.android.com/reference/android/net/VpnService) and can be used with the VPN killswitch in :gear: **Settings****Network & internet****VPN** → :gear: → **Block connections without VPN**. Orbot can proxy individual apps if they support SOCKS or HTTP proxying. It can also proxy all your network connections using [VpnService](https://developer.android.com/reference/android/net/VpnService) and can be used with the VPN killswitch in :gear: **Settings****Network & internet****VPN** → :gear: → **Block connections without VPN**.
Orbot is often outdated on the Guardian Project's [F-Droid repository](https://guardianproject.info/fdroid) and [Google Play](https://play.google.com/store/apps/details?id=org.torproject.android), so consider downloading directly from the [GitHub repository](https://github.com/guardianproject/orbot) instead. Orbot is often outdated on the Guardian Project's [F-Droid repository](https://guardianproject.info/fdroid) and [Google Play](https://play.google.com/store/apps/details?id=org.torproject.android), so consider downloading directly from the [GitHub repository](https://github.com/guardianproject/orbot/releases) instead.
All versions are signed using the same signature so they should be compatible with each other. All versions are signed using the same signature so they should be compatible with each other.
@ -109,8 +110,8 @@ For resistance against traffic analysis attacks, consider enabling *Isolate Dest
??? downloads ??? downloads
- [:simple-firefoxbrowser: Firefox](https://addons.mozilla.org/en-US/firefox/addon/torproject-snowflake/){ .card-link title=Firefox } - [:simple-firefoxbrowser: Firefox](https://addons.mozilla.org/en-US/firefox/addon/torproject-snowflake/)
- [:simple-googlechrome: Chrome](https://chrome.google.com/webstore/detail/snowflake/mafpmfcccpbjnhfhjnllmmalhifmlcie){ .card-link title=Chrome } - [:simple-googlechrome: Chrome](https://chrome.google.com/webstore/detail/snowflake/mafpmfcccpbjnhfhjnllmmalhifmlcie)
- [:octicons-browser-16: Web](https://snowflake.torproject.org/embed "Leave this page open to be a Snowflake proxy") - [:octicons-browser-16: Web](https://snowflake.torproject.org/embed "Leave this page open to be a Snowflake proxy")
??? tip "Embedded Snowflake" ??? tip "Embedded Snowflake"

View File

@ -218,7 +218,7 @@ We require all our recommended VPN providers to provide OpenVPN configuration fi
- Support for strong protocols such as WireGuard & OpenVPN. - Support for strong protocols such as WireGuard & OpenVPN.
- Killswitch built in to clients. - Killswitch built in to clients.
- Multihop support. Multihopping is important to keep data private in case of a single node compromise. - Multihop support. Multihopping is important to keep data private in case of a single node compromise.
- If VPN clients are provided, they should be [open-source](https://en.wikipedia.org/wiki/Open_source), like the VPN software they generally have built into them. We believe that [source code](https://en.wikipedia.org/wiki/Source_code) availability provides greater transparency about what your device is actually doing. We like to see these applications [available in F-Droid](https://www.f-droid.org/en/2019/05/05/trust-privacy-and-free-software.html). - If VPN clients are provided, they should be [open-source](https://en.wikipedia.org/wiki/Open_source), like the VPN software they generally have built into them. We believe that [source code](https://en.wikipedia.org/wiki/Source_code) availability provides greater transparency about what your device is actually doing.
**Best Case:** **Best Case:**
@ -293,7 +293,7 @@ Must not have any marketing which is irresponsible:
Responsible marketing that is both educational and useful to the consumer could include: Responsible marketing that is both educational and useful to the consumer could include:
- An accurate comparison to when [Tor](tor.md) should be used instead. - An accurate comparison to when [Tor](tor.md) should be used instead.
- Availability of the VPN provider's website over a .onion [Hidden Service](https://en.wikipedia.org/wiki/.onion) - Availability of the VPN provider's website over a .onion [Onion Service](https://en.wikipedia.org/wiki/.onion)
### Additional Functionality ### Additional Functionality

View File

@ -139,10 +139,12 @@ nav:
- 'linux-desktop/overview.md' - 'linux-desktop/overview.md'
- 'linux-desktop/hardening.md' - 'linux-desktop/hardening.md'
- 'linux-desktop/sandboxing.md' - 'linux-desktop/sandboxing.md'
- 'Real-Time Communication':
- 'real-time-communication/communication-network-types.md'
- 'real-time-communication/signal-configuration-hardening.md'
- 'Advanced': - 'Advanced':
- 'advanced/integrating-metadata-removal.md' - 'advanced/integrating-metadata-removal.md'
- 'advanced/erasing-data.md' - 'advanced/erasing-data.md'
- 'advanced/signal-configuration-hardening.md'
- 'Recommendations': - 'Recommendations':
- 'tools.md' - 'tools.md'
- 'Internet Browsing': - 'Internet Browsing':