Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduction to Passwords Knowledge Base Article #1708

Merged
merged 77 commits into from
Sep 6, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
57cff9a
"Introduction to Passwords" guide (#1708)
matchboxbananasynergy Aug 31, 2022
5c3b9a5
Update docs/basics/passwords-overview.en.md
matchboxbananasynergy Sep 2, 2022
b70b931
Merge branch 'privacyguides:main' into pr-passwords-knowledgebase
matchboxbananasynergy Sep 2, 2022
619a28e
Initial password manager section
matchboxbananasynergy Sep 2, 2022
5904205
re-structure basics nav menu order
matchboxbananasynergy Sep 2, 2022
24cbfe3
First draft of the page
matchboxbananasynergy Sep 2, 2022
b9ce6ba
small tidbit in diceware section
matchboxbananasynergy Sep 2, 2022
817f001
Remove best practices section in password manager page
matchboxbananasynergy Sep 2, 2022
d7e0f73
Update docs/basics/passwords-overview.en.md
matchboxbananasynergy Sep 2, 2022
896a02d
Update docs/basics/passwords-overview.en.md
matchboxbananasynergy Sep 2, 2022
5fa921c
small heading fix
matchboxbananasynergy Sep 3, 2022
1d25221
Some additions
matchboxbananasynergy Sep 3, 2022
0aa60b8
fixes
matchboxbananasynergy Sep 3, 2022
0ea0e08
fix
matchboxbananasynergy Sep 3, 2022
13823f4
diceware additions
matchboxbananasynergy Sep 3, 2022
e8074d8
highlight and other minor fixes
matchboxbananasynergy Sep 3, 2022
66a8ca2
TOTP
matchboxbananasynergy Sep 3, 2022
e881cb1
fix
matchboxbananasynergy Sep 3, 2022
99f49fc
diceware section improvements
matchboxbananasynergy Sep 4, 2022
8d9d291
tiny fix
matchboxbananasynergy Sep 4, 2022
fdadd7c
fix
matchboxbananasynergy Sep 4, 2022
5d9bcd5
polish
matchboxbananasynergy Sep 4, 2022
4f9a90d
adjust amount of recommended diceware words
matchboxbananasynergy Sep 4, 2022
00910af
do not re-roll diceware
matchboxbananasynergy Sep 4, 2022
3339191
Diceware polish and added brief explanation of entropy
matchboxbananasynergy Sep 4, 2022
ad89fea
typo
matchboxbananasynergy Sep 4, 2022
7695011
plural
matchboxbananasynergy Sep 4, 2022
5309043
add example of what a diceware passphrase looks like
matchboxbananasynergy Sep 4, 2022
8afddcf
Polish intro paragraph
matchboxbananasynergy Sep 4, 2022
a02edcf
seven
matchboxbananasynergy Sep 4, 2022
44fa797
add diceware link
matchboxbananasynergy Sep 4, 2022
a5eba53
Mention existence of non-English wordlists
matchboxbananasynergy Sep 4, 2022
36c7eb3
add new section
matchboxbananasynergy Sep 4, 2022
a44abd2
fix
matchboxbananasynergy Sep 4, 2022
162b2af
Flesh out backup section
matchboxbananasynergy Sep 4, 2022
ba04744
tiny fix
matchboxbananasynergy Sep 4, 2022
1ea1838
re-order sections
matchboxbananasynergy Sep 4, 2022
b3e29a0
refactoring
matchboxbananasynergy Sep 4, 2022
711f34b
More fixes
matchboxbananasynergy Sep 4, 2022
23d2339
Changes
matchboxbananasynergy Sep 4, 2022
71e226f
wording
matchboxbananasynergy Sep 4, 2022
7ca324a
spacing
matchboxbananasynergy Sep 4, 2022
cf4bc42
generated to derived
matchboxbananasynergy Sep 4, 2022
50a7b30
More fixes
matchboxbananasynergy Sep 4, 2022
654bfb1
slight wording change
matchboxbananasynergy Sep 4, 2022
db73d96
change data breach tooltip
matchboxbananasynergy Sep 4, 2022
d1158a1
Remove duplicate and
matchboxbananasynergy Sep 4, 2022
3c8c985
phrasing fix in credential stuffing portion
matchboxbananasynergy Sep 4, 2022
e8d5257
fix die
matchboxbananasynergy Sep 4, 2022
4c5efcb
backup section fix
matchboxbananasynergy Sep 4, 2022
74b21d0
tiny fixes
matchboxbananasynergy Sep 4, 2022
284718f
typo
matchboxbananasynergy Sep 5, 2022
4a2bff6
fix multi-factor
matchboxbananasynergy Sep 5, 2022
c280f55
modify password rotation section
matchboxbananasynergy Sep 5, 2022
4fbe00e
Expand on entropy paragraph
matchboxbananasynergy Sep 5, 2022
6f94387
polish maybe
matchboxbananasynergy Sep 5, 2022
d00f0c3
changes
matchboxbananasynergy Sep 5, 2022
41f0897
more polish
matchboxbananasynergy Sep 5, 2022
da360f7
Remove bold from numbers
matchboxbananasynergy Sep 5, 2022
2a45cd6
flesh out diceware section
matchboxbananasynergy Sep 5, 2022
a704083
small wording change
matchboxbananasynergy Sep 5, 2022
62f7bd6
fix mathjax
matchboxbananasynergy Sep 5, 2022
6efd67d
collapse entropy section
matchboxbananasynergy Sep 5, 2022
1ffb8d2
bold percent
matchboxbananasynergy Sep 5, 2022
8a0ec43
make numbers in tooltip bold
matchboxbananasynergy Sep 5, 2022
16adb86
Format numbers as mathjax - test
matchboxbananasynergy Sep 5, 2022
3800a54
revert mathjax test
matchboxbananasynergy Sep 5, 2022
1ffe99e
Modify intro sentence in pw manager page
matchboxbananasynergy Sep 5, 2022
8373048
Link to encryption page
matchboxbananasynergy Sep 5, 2022
ac19620
Update docs/basics/passwords-overview.en.md
matchboxbananasynergy Sep 6, 2022
65253f8
Update docs/basics/passwords-overview.en.md
matchboxbananasynergy Sep 6, 2022
edf3f26
Update docs/basics/passwords-overview.en.md
matchboxbananasynergy Sep 6, 2022
85daa8a
Update docs/basics/passwords-overview.en.md
matchboxbananasynergy Sep 6, 2022
64135af
Try to fix mathjax
matchboxbananasynergy Sep 6, 2022
16eedb9
finalize mathjax fix
matchboxbananasynergy Sep 6, 2022
0789e1f
fix one more
matchboxbananasynergy Sep 6, 2022
13ff0f0
final fix i promise
matchboxbananasynergy Sep 6, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
107 changes: 107 additions & 0 deletions docs/basics/passwords-overview.en.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
---
title: "Introduction to Passwords"
icon: 'material/shield-key-outline'
---

Passwords are an essential part of our everyday digital lives. We use them to protect our accounts, our devices and our secrets. Despite often being the only thing between us and an adversary who's after our private information, not a lot of thought is put into them, which often leads to people using passwords that can be easily guessed or brute-forced.

## Best Practices

### Use unique passwords for every service

Imagine this; you sign up for an account with the same e-mail and password on multiple online services. If one of those service providers is malicious, or their service has a data breach that exposes your password in an unencrypted format, all a bad actor would have to do is try that e-mail and password combination across multiple popular services until they get a hit. It doesn't matter how strong that one password is, because they already have it.

This is called [credential stuffing](https://en.wikipedia.org/wiki/Credential_stuffing), and it is one of the most common ways that your accounts can be compromised by bad actors. To avoid this, make sure that you never re-use your 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.

All of our [recommended password managers](../passwords.md) include a built-in password generator that you can use.

matchboxbananasynergy marked this conversation as resolved.
Show resolved Hide resolved
### Rotating Passwords

You should avoid changing passwords that you have to remember (such as your password manager's master password) too often unless you have reason to believe it has been compromised, as changing it too often exposes you to the risk of forgetting it.

When it comes to passwords that you don't have to remember (such as passwords stored inside your password manager), if your [threat model](threat-modeling.md) calls for it, we recommend going through important accounts (especially accounts that don't use multi-factor authentication) and changing their password every couple of months, in case they have been compromised in a data breach that hasn't become public yet. Most password managers allow you to set an expiry date for your password to make this easier to manage.

!!! 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.


## Creating strong passwords
matchboxbananasynergy marked this conversation as resolved.
Show resolved Hide resolved

### Passwords

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).

### Diceware Passphrases

Diceware is a method for creating passphrases which are easy to remember, but hard to guess.

Diceware passphrases are a great option when you need to memorize or manually input your credentials, such as for your password manager's master password or your device's encryption password.

An example of a diceware passphrase is `viewable fastness reluctant squishy seventeen shown pencil`.

To generate a diceware passphrase using real dice, follow these steps:

!!! Note

These instructions assume that you are using [EFF's large wordlist](https://www.eff.org/files/2016/07/18/eff_large_wordlist.txt) to generate the passphrase, which requires five dice rolls per word. Other wordlists may require more or less rolls per word, and may require a different amount of words to achieve the same entropy.

1. Roll a six-sided die five times, noting down the number after each roll.

2. As an example, let's say you rolled `2-5-2-6-6`. Look through the [EFF's large wordlist](https://www.eff.org/files/2016/07/18/eff_large_wordlist.txt) for the word that corresponds to `25266`.

3. You will find the word `encrypt`. Write that word down.

4. Repeat this process until your passphrase has as many words as you need, which you should separate with a space.

!!! Warning "Important"

You should **not** re-roll words until you get a combination of words that appeal to you. The process should be completely random.

If you don't have access to or would prefer to not use real dice, you can use your password manager's built-in password generator, as most of them have the option to generate diceware passphrases in addition to regular passwords.

We recommend using [EFF's large wordlist](https://www.eff.org/files/2016/07/18/eff_large_wordlist.txt) to generate your diceware passphrases, as it offers the exact same security as the original list, while containing words that are easier to memorize. There are also other wordlists in different languages, if you do not want your passphrase to be in English.

??? Note "Explanation of entropy and strength of diceware passphrases"

To demonstrate how strong diceware passphrases are, we'll use the aforementioned seven word passphrase (`viewable fastness reluctant squishy seventeen shown pencil`) and [EFF's large wordlist](https://www.eff.org/files/2016/07/18/eff_large_wordlist.txt) as an example.

One metric to determine the strength of a diceware passphrase is how much entropy it has. The entropy per word in a diceware passphrase is calculated as $\text{log}_2(\text{WordsInList})$ and the overall entropy of the passphrase is calculated as $\text{log}_2(\text{WordsInList}^\text{WordsInPhrase})$.

Therefore, each word in the aforementioned list results in ~12.9 bits of entropy ($\text{log}_2(7776)$), and a seven word passphrase derived from it has ~90.47 bits of entropy ($\text{log}_2(7776^7)$).

The [EFF's large wordlist](https://www.eff.org/files/2016/07/18/eff_large_wordlist.txt) contains 7776 unique words. To calculate the amount of possible passphrases, all we have to do is $\text{WordsInList}^\text{WordsInPhrase}$, or in our case, $7776^7$.

Let's put all of this in perspective: A seven word passphrase using [EFF's large wordlist](https://www.eff.org/files/2016/07/18/eff_large_wordlist.txt) is one of ~1,719,070,799,748,422,500,000,000,000 possible passphrases.

On average, it takes trying 50% of all the possible combinations to guess your phrase. With that in mind, even if your adversary is capable of ~1,000,000,000,000 guesses per second, it would still take them ~27,255,689 years to guess your passphrase. That is the case even if the following things are true:

- Your adversary knows that you used the diceware method.
- Your adversary knows the specific wordlist that you used.
- Your adversary knows how many words your passphrase contains.

To sum it up, diceware passphrases are your best option when you need something that is both easy to remember *and* exceptionally strong.

matchboxbananasynergy marked this conversation as resolved.
Show resolved Hide resolved
## Storing Passwords

### Password Managers

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.

matchboxbananasynergy marked this conversation as resolved.
Show resolved Hide resolved
[List of recommended password managers](../passwords.md){ .md-button }

!!! 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.

### Backups

You should store an [encrypted](../encryption.md) backup of your passwords on multiple storage devices or a cloud storage provider. This can help you access your passwords if something happens to your primary device or the service you are using.
8 changes: 2 additions & 6 deletions docs/passwords.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,9 @@
title: "Password Managers"
icon: material/form-textbox-password
---
Stay safe and secure online with an encrypted and open-source password manager.
Password managers allow you to securely store and manage passwords and other credentials with the use of a master password.

## Password Best Practices

- Always use unique passwords. Don't make yourself a victim of "[credential stuffing](https://en.wikipedia.org/wiki/Credential_stuffing)"
- Store an exported backup of your passwords in an [encrypted container](encryption.md) on another storage device. This can be useful if something happens to your device or the service you are using
- If possible, store TOTP tokens in a separate [TOTP app](basics/multi-factor-authentication.md#authenticator-apps) and not your password manager. TOTP codes are generated from a "[shared secret](https://en.wikipedia.org/wiki/Time-based_one-time_password#Security)." If the secret is obtained by an adversary, he can generate TOTP values. Typically, mobile platforms have better app isolation and more secure methods for storing sensitive credentials
[Introduction to Passwords :hero-arrow-circle-right-fill:](./basics/passwords-overview.md)

## Local Storage

Expand Down
1 change: 1 addition & 0 deletions includes/abbreviations.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,3 +88,4 @@
*[hypervisor]: A hypervisor is computer software, firmware, or hardware that allows partitioning the resource of a CPU among multiple operating systems or independent programs.
*[rolling release]: An update release cycle in which updates are released very frequently, instead of at set intervals.
*[walled garden]: A walled garden (or closed platform) is one in which the service provider has control over applications, content, and/or media, and restricts convenient access to non-approved applicants or content.
*[entropy]: Password entropy is a measurement of how unpredictable a password is.
5 changes: 3 additions & 2 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -121,12 +121,13 @@ nav:
- 'The Basics':
- 'basics/threat-modeling.md'
- 'basics/common-threats.md'
- 'basics/account-deletion.md'
- 'basics/passwords-overview.md'
- 'basics/multi-factor-authentication.md'
- 'basics/account-deletion.md'
- 'basics/email-security.md'
- 'basics/vpn-overview.md'
- 'basics/tor-overview.md'
- 'basics/dns-overview.md'
- 'basics/email-security.md'
- 'Android':
- 'android/overview.md'
- 'android/grapheneos-vs-calyxos.md'
Expand Down