Compare commits
7 Commits
2024.05.22
...
jonaharago
Author | SHA1 | Date | |
---|---|---|---|
85199e0497
|
|||
2b97f64f3b | |||
c19f554b77
|
|||
66847abdaf | |||
32e65cf3e8 | |||
87aa1586f3 | |||
9ed7abb972 |
@ -2,13 +2,14 @@
|
||||
title: Traffic Statistics
|
||||
---
|
||||
<!-- markdownlint-disable MD051 -->
|
||||
We self-host [Umami](https://umami.is) to create a nice visualization of our traffic statistics, which are public at the link below. With this process:
|
||||
We self-host [Umami](https://umami.is) to create a nice visualization of our traffic statistics, which are public at the link below.
|
||||
|
||||
[View Statistics](https://stats.privacyguides.net/share/nVWjyd2QfgOPBhMF/www.privacyguides.org){ .md-button .md-button--primary }
|
||||
|
||||
With this process:
|
||||
|
||||
- Your information is never shared with a third-party, it stays on servers we control
|
||||
- Your personal data is never saved, we only collect data in aggregate
|
||||
- No client-side JavaScript is required
|
||||
- No client-side JavaScript is used
|
||||
|
||||
Because of these facts, keep in mind our statistics may be inaccurate. It is a useful tool to compare different dates with each other and analyze overall trends, but the actual numbers may be far off from reality. They're *precise* statistics, but not *accurate* statistics.
|
||||
|
||||
[View Statistics](https://stats.privacyguides.net/share/nVWjyd2QfgOPBhMF/www.privacyguides.org){ .md-button .md-button--primary }
|
||||
[Opt-Out](#__consent){ .md-button }
|
||||
Because of these facts, keep in mind our statistics may be inaccurate. It is a useful tool to compare different dates with each other and analyze overall trends, but the actual numbers may be far off from reality. In other words they're *precise* statistics, but not *accurate* statistics.
|
||||
|
@ -35,7 +35,7 @@ Unlike [WebAuthn](#fido-fast-identity-online), TOTP offers no protection against
|
||||
|
||||
An adversary could set up a website to imitate an official service in an attempt to trick you into giving out your username, password and current TOTP code. If the adversary then uses those recorded credentials they may be able to log into the real service and hijack the account.
|
||||
|
||||
Although not perfect, TOTP is secure enough for most people, and when [hardware security keys](../multi-factor-authentication.md#hardware-security-keys) are not supported [authenticator apps](../multi-factor-authentication.md#authenticator-apps) are still a good option.
|
||||
Although not perfect, TOTP is secure enough for most people, and when [hardware security keys](../security-keys.md) are not supported [authenticator apps](../multi-factor-authentication.md) are still a good option.
|
||||
|
||||
### Hardware security keys
|
||||
|
||||
@ -101,7 +101,7 @@ When configuring your MFA method, keep in mind that it is only as secure as your
|
||||
|
||||
You should always have backups for your MFA method. Hardware security keys can get lost, stolen or simply stop working over time. It is recommended that you have a pair of hardware security keys with the same access to your accounts instead of just one.
|
||||
|
||||
When using TOTP with an authenticator app, be sure to back up your recovery keys or the app itself, or copy the "shared secrets" to another instance of the app on a different phone or to an encrypted container (e.g. [VeraCrypt](../encryption.md#veracrypt)).
|
||||
When using TOTP with an authenticator app, be sure to back up your recovery keys or the app itself, or copy the "shared secrets" to another instance of the app on a different phone or to an encrypted container (e.g. [VeraCrypt](../encryption.md#veracrypt-disk)).
|
||||
|
||||
### Initial Set Up
|
||||
|
||||
@ -119,10 +119,6 @@ If you use SMS MFA, use a carrier who will not switch your phone number to a new
|
||||
|
||||
Beyond just securing your website logins, multi-factor authentication can be used to secure your local logins, SSH keys or even password databases as well.
|
||||
|
||||
### Windows
|
||||
|
||||
Yubico has a dedicated [Credential Provider](https://learn.microsoft.com/windows/win32/secauthn/credential-providers-in-windows) that adds Challenge-Response authentication for the username + password login flow for local Windows accounts. If you have a YubiKey with Challenge-Response authentication support, take a look at the [Yubico Login for Windows Configuration Guide](https://support.yubico.com/hc/articles/360013708460-Yubico-Login-for-Windows-Configuration-Guide), which will allow you to set up MFA on your Windows computer.
|
||||
|
||||
### macOS
|
||||
|
||||
macOS has [native support](https://support.apple.com/guide/deployment/intro-to-smart-card-integration-depd0b888248/web) for authentication with smart cards (PIV). If you have a smartcard or a hardware security key that supports the PIV interface such as the YubiKey, we recommend that you follow your smartcard/hardware security vendor's documentation and set up second factor authentication for your macOS computer.
|
||||
|
@ -164,7 +164,7 @@ There are many good options to choose from, both cloud-based and local. Choose o
|
||||
<div class="admonition warning" markdown>
|
||||
<p class="admonition-title">Don't place your passwords and TOTP tokens inside the same password manager</p>
|
||||
|
||||
When using TOTP codes as [multi-factor authentication](../multi-factor-authentication.md), the best security practice is to keep your TOTP codes in a [separate app](../multi-factor-authentication.md#authenticator-apps).
|
||||
When using TOTP codes as [multi-factor authentication](../multi-factor-authentication.md), the best security practice is to keep your TOTP codes in a [separate app](../multi-factor-authentication.md).
|
||||
|
||||
Storing your TOTP tokens in the same place as your passwords, while convenient, reduces the accounts to a single factor in the event that an adversary gains access to your password manager.
|
||||
|
||||
|
@ -10,7 +10,8 @@ Calendars contain some of your most sensitive data; use products that implement
|
||||
|
||||
<div class="admonition recommendation" markdown>
|
||||
|
||||
{ align=right }
|
||||
{ align=right }
|
||||
{ align=right }
|
||||
|
||||
**Tuta** offers a free and encrypted calendar across their supported platforms. Features include: automatic E2EE of all data, sharing features, import/export functionality, multi-factor authentication, and [more](https://tuta.com/calendar-app-comparison).
|
||||
|
||||
@ -27,9 +28,9 @@ Multiple calendars and extended sharing functionality is limited to paid subscri
|
||||
|
||||
- [:simple-googleplay: Google Play](https://play.google.com/store/apps/details?id=de.tutao.tutanota)
|
||||
- [:simple-appstore: App Store](https://apps.apple.com/app/id922429609)
|
||||
- [:simple-windows11: Windows](https://tuta.com/blog/posts/desktop-clients)
|
||||
- [:simple-apple: macOS](https://tuta.com/blog/posts/desktop-clients)
|
||||
- [:simple-linux: Linux](https://tuta.com/blog/posts/desktop-clients)
|
||||
- [:simple-windows11: Windows](https://tuta.com/blog/desktop-clients)
|
||||
- [:simple-apple: macOS](https://tuta.com/blog/desktop-clients)
|
||||
- [:simple-linux: Linux](https://tuta.com/blog/desktop-clients)
|
||||
- [:simple-flathub: Flathub](https://flathub.org/apps/com.tutanota.Tutanota)
|
||||
- [:octicons-browser-16: Web](https://app.tuta.com)
|
||||
|
||||
|
@ -214,13 +214,13 @@ Using these apps is insufficient to determine that a device is "clean", and not
|
||||
|
||||
Hypatia is particularly good at detecting common stalkerware: If you suspect you are a victim of stalkerware, you should [visit this page](https://stopstalkerware.org/information-for-survivors) for advice.
|
||||
|
||||
### iVerify (iOS)
|
||||
### iVerify Basic (iOS)
|
||||
|
||||
<div class="admonition recommendation" markdown>
|
||||
|
||||
{ align=right }
|
||||
|
||||
**iVerify** is an iOS app which automatically scans your device to check configuration settings, patch level, and other areas of security. It also checks your device for indicators of compromise by jailbreak tools or spyware such as Pegasus.
|
||||
**iVerify Basic** is an iOS app which can scan your device to check configuration settings, patch level, and other areas of security. It also checks your device for indicators of compromise by jailbreak tools or spyware such as Pegasus.
|
||||
|
||||
[:octicons-home-16: Homepage](https://iverify.io/consumer){ .md-button .md-button--primary }
|
||||
[:octicons-eye-16:](https://iverify.io/privacy-policy){ .card-link title="Privacy Policy" }
|
||||
@ -235,8 +235,10 @@ Hypatia is particularly good at detecting common stalkerware: If you suspect you
|
||||
|
||||
</div>
|
||||
|
||||
Like all iOS apps, iVerify is restricted to what it can observe about your device from within the iOS App Sandbox. It will not provide nearly as robust analysis as a full-system analysis tool like [MVT](#mobile-verification-toolkit). Its primary function is to detect whether your device is jailbroken, which it is effective at, however a hypothetical threat which is *specifically* designed to bypass iVerify's checks would likely succeed at doing so.
|
||||
Previously, iVerify would scan your device for threats automatically in the background and notify you if one is found, but this is [no longer the case](https://discuss.privacyguides.net/t/iverify-basic-is-now-available-on-android/18458/11) following their rebrand of the consumer app to *iVerify Basic* in May 2024. You can still run manual scans within the app. Automatic background scanning is now only available in iVerify's enterprise product which is unavailable to consumers.
|
||||
|
||||
iVerify is **not** an "antivirus" tool, and will not detect non-system-level malware such as malicious custom keyboards or malicious Wi-Fi Sync configurations, for example.
|
||||
Like all iOS apps, iVerify Basic is restricted to what it can observe about your device from within the iOS App Sandbox. It will not provide nearly as robust analysis as a full-system analysis tool like [MVT](#mobile-verification-toolkit). Its primary function is to detect whether your device is jailbroken, which it is effective at, however a hypothetical threat which is *specifically* designed to bypass iVerify's checks would likely succeed at doing so.
|
||||
|
||||
In addition to device scanning, iVerify also includes a number of additional security utilities which you may find useful, including device reboot reminders, iOS update notifications (which are often faster than Apple's staggered update notification rollout), some basic privacy and security guides, and a DNS over HTTPS tool which can connect your device's [DNS](dns.md) queries securely to Quad9, Cloudflare, or Google.
|
||||
iVerify Basic is **not** an "antivirus" tool, and will not detect non-system-level malware such as malicious custom keyboards or malicious Wi-Fi Sync configurations, for example.
|
||||
|
||||
In addition to device scanning, iVerify Basic also includes a number of additional security utilities which you may find useful, including device [reboot reminders](os/ios-overview.md#before-first-unlock), iOS update notifications (which are often faster than Apple's staggered update notification rollout), and some basic privacy and security guides.
|
||||
|
@ -178,7 +178,7 @@ These providers store your emails with zero-knowledge encryption, making them gr
|
||||
|
||||
<div class="grid cards" markdown>
|
||||
|
||||
- { .twemoji } [Tuta](email.md#tuta)
|
||||
- { .twemoji loading=lazy }{ .twemoji loading=lazy } [Tuta](email.md#tuta)
|
||||
|
||||
</div>
|
||||
|
||||
@ -186,7 +186,8 @@ These providers store your emails with zero-knowledge encryption, making them gr
|
||||
|
||||
<div class="admonition recommendation" markdown>
|
||||
|
||||
{ align=right }
|
||||
{ align=right }
|
||||
{ align=right }
|
||||
|
||||
**Tuta** is an email service with a focus on security and privacy through the use of encryption. Tuta has been in operation since **2011** and is based in Hanover, Germany. Free accounts start with 1GB of storage.
|
||||
|
||||
@ -211,7 +212,7 @@ These providers store your emails with zero-knowledge encryption, making them gr
|
||||
|
||||
</div>
|
||||
|
||||
Tuta doesn't support the [IMAP protocol](https://tuta.com/faq/#imap) or the use of third-party [email clients](email-clients.md), and you also won't be able to add [external email accounts](https://github.com/tutao/tutanota/issues/544#issuecomment-670473647) to the Tuta app. [Email import](https://github.com/tutao/tutanota/issues/630) is not currently supported either, though this is [due to be changed](https://tuta.com/blog/posts/kickoff-import). Emails can be exported [individually or by bulk selection](https://tuta.com/support#generalMail) per folder, which may be inconvenient if you have many folders.
|
||||
Tuta doesn't support the [IMAP protocol](https://tuta.com/support#imap) or the use of third-party [email clients](email-clients.md), and you also won't be able to add [external email accounts](https://github.com/tutao/tutanota/issues/544#issuecomment-670473647) to the Tuta app. [Email import](https://github.com/tutao/tutanota/issues/630) is not currently supported either, though this is [due to be changed](https://tuta.com/blog/kickoff-import). Emails can be exported [individually or by bulk selection](https://tuta.com/support#generalMail) per folder, which may be inconvenient if you have many folders.
|
||||
|
||||
#### :material-check:{ .pg-green } Custom Domains and Aliases
|
||||
|
||||
@ -219,7 +220,7 @@ Paid Tuta accounts can use either 15 or 30 aliases depending on their plan and u
|
||||
|
||||
#### :material-information-outline:{ .pg-blue } Private Payment Methods
|
||||
|
||||
Tuta only directly accepts credit cards and PayPal, however [cryptocurrency](cryptocurrency.md) can be used to purchase gift cards via their [partnership](https://tuta.com/faq/#cryptocurrency) with Proxystore.
|
||||
Tuta only directly accepts credit cards and PayPal, however [cryptocurrency](cryptocurrency.md) can be used to purchase gift cards via their [partnership](https://tuta.com/support/#cryptocurrency) with Proxystore.
|
||||
|
||||
#### :material-check:{ .pg-green } Account Security
|
||||
|
||||
@ -239,7 +240,7 @@ Tuta will [delete inactive free accounts](https://tuta.com/support#inactive-acco
|
||||
|
||||
#### :material-information-outline:{ .pg-blue } Additional Functionality
|
||||
|
||||
Tuta offers the business version of [Tuta to non-profit organizations](https://tuta.com/blog/posts/secure-email-for-non-profit) for free or with a heavy discount.
|
||||
Tuta offers the business version of [Tuta to non-profit organizations](https://tuta.com/blog/secure-email-for-non-profit) for free or with a heavy discount.
|
||||
|
||||
Tuta doesn't offer a digital legacy feature.
|
||||
|
||||
|
@ -340,7 +340,7 @@ gpg --quick-gen-key alice@example.com future-default
|
||||
<div class="admonition note" markdown>
|
||||
<p class="admonition-title">Note</p>
|
||||
|
||||
We suggest [Canary Mail](email-clients.md#canary-mail) for using PGP with email on iOS devices.
|
||||
We suggest [Canary Mail](email-clients.md#canary-mail-ios) for using PGP with email on iOS devices.
|
||||
|
||||
</div>
|
||||
|
||||
@ -348,7 +348,7 @@ We suggest [Canary Mail](email-clients.md#canary-mail) for using PGP with email
|
||||
|
||||
{ align=right }
|
||||
|
||||
**GPG Suite** provides OpenPGP support for [Apple Mail](email-clients.md#apple-mail) and macOS.
|
||||
**GPG Suite** provides OpenPGP support for [Apple Mail](email-clients.md#apple-mail-macos) and macOS.
|
||||
|
||||
We recommend taking a look at their [First steps](https://gpgtools.tenderapp.com/kb/how-to/first-steps-where-do-i-start-where-do-i-begin-setup-gpgtools-create-a-new-key-your-first-encrypted-email) and [Knowledge base](https://gpgtools.tenderapp.com/kb) for support.
|
||||
|
||||
@ -372,7 +372,7 @@ We recommend taking a look at their [First steps](https://gpgtools.tenderapp.com
|
||||
|
||||
{ align=right }
|
||||
|
||||
**OpenKeychain** is an Android implementation of GnuPG. It's commonly required by mail clients such as [K-9 Mail](email-clients.md#k-9-mail) and [FairEmail](email-clients.md#fairemail) and other Android apps to provide encryption support. Cure53 completed a [security audit](https://openkeychain.org/openkeychain-3-6) of OpenKeychain 3.6 in October 2015. Technical details about the audit and OpenKeychain's solutions can be found [here](https://github.com/open-keychain/open-keychain/wiki/cure53-Security-Audit-2015).
|
||||
**OpenKeychain** is an Android implementation of GnuPG. It's commonly required by mail clients such as [K-9 Mail](email-clients.md#k-9-mail-android) and [FairEmail](email-clients.md#fairemail-android) and other Android apps to provide encryption support. Cure53 completed a [security audit](https://openkeychain.org/openkeychain-3-6) of OpenKeychain 3.6 in October 2015. Technical details about the audit and OpenKeychain's solutions can be found [here](https://github.com/open-keychain/open-keychain/wiki/cure53-Security-Audit-2015).
|
||||
|
||||
[:octicons-home-16: Homepage](https://openkeychain.org){ .md-button .md-button--primary }
|
||||
[:octicons-eye-16:](https://openkeychain.org/help/privacy-policy){ .card-link title="Privacy Policy" }
|
||||
|
@ -1,115 +1,28 @@
|
||||
---
|
||||
title: "Multi-Factor Authenticators"
|
||||
title: "Multi-Factor Authentication"
|
||||
icon: 'material/two-factor-authentication'
|
||||
description: These tools assist you with securing your internet accounts with Multi-Factor Authentication without sending your secrets to a third-party.
|
||||
cover: multi-factor-authentication.webp
|
||||
---
|
||||
## Hardware Security Keys
|
||||
|
||||
### YubiKey
|
||||
<div class="admonition note" markdown>
|
||||
<p class="admonition-title">Hardware Keys</p>
|
||||
|
||||
<div class="admonition recommendation" markdown>
|
||||
|
||||

|
||||
|
||||
The **YubiKeys** are among the most popular security keys. Some YubiKey models have a wide range of features such as: [Universal 2nd Factor (U2F)](https://en.wikipedia.org/wiki/Universal_2nd_Factor), [FIDO2 and WebAuthn](basics/multi-factor-authentication.md#fido-fast-identity-online), [Yubico OTP](basics/multi-factor-authentication.md#yubico-otp), [Personal Identity Verification (PIV)](https://developers.yubico.com/PIV), [OpenPGP](https://developers.yubico.com/PGP), [TOTP and HOTP](https://developers.yubico.com/OATH) authentication.
|
||||
|
||||
One of the benefits of the YubiKey is that one key can do almost everything (YubiKey 5), you could expect from a hardware security key. We do encourage you to take the [quiz](https://yubico.com/quiz) before purchasing in order to make sure you make the right choice.
|
||||
|
||||
[:octicons-home-16: Homepage](https://yubico.com){ .md-button .md-button--primary }
|
||||
[:octicons-eye-16:](https://yubico.com/support/terms-conditions/privacy-notice){ .card-link title="Privacy Policy" }
|
||||
[:octicons-info-16:](https://docs.yubico.com){ .card-link title=Documentation}
|
||||
|
||||
</details>
|
||||
[Hardware security key recommendations](security-keys.md) have been moved to their own category here.
|
||||
|
||||
</div>
|
||||
|
||||
The [comparison table](https://yubico.com/store/compare) shows the features and how the YubiKeys compare. We highly recommend that you select keys from the YubiKey 5 Series.
|
||||
|
||||
YubiKeys can be programmed using the [YubiKey Manager](https://yubico.com/support/download/yubikey-manager) or [YubiKey Personalization Tools](https://yubico.com/support/download/yubikey-personalization-tools). For managing TOTP codes, you can use the [Yubico Authenticator](https://yubico.com/products/yubico-authenticator). All of Yubico's clients are open source.
|
||||
|
||||
For models which support HOTP and TOTP, there are 2 slots in the OTP interface which could be used for HOTP and 32 slots to store TOTP secrets. These secrets are stored encrypted on the key and never expose them to the devices they are plugged into. Once a seed (shared secret) is given to the Yubico Authenticator, it will only give out the six-digit codes, but never the seed. This security model helps limit what an attacker can do if they compromise one of the devices running the Yubico Authenticator and make the YubiKey resistant to a physical attacker.
|
||||
|
||||
<div class="admonition warning" markdown>
|
||||
<p class="admonition-title">Warning</p>
|
||||
|
||||
The firmware of YubiKey is not open source and is not updatable. If you want features in newer firmware versions, or if there is a vulnerability in the firmware version you are using, you would need to purchase a new key.
|
||||
|
||||
</div>
|
||||
|
||||
### Nitrokey
|
||||
|
||||
<div class="admonition recommendation" markdown>
|
||||
|
||||
{ align=right }
|
||||
|
||||
**Nitrokey** has a security key capable of [FIDO2 and WebAuthn](basics/multi-factor-authentication.md#fido-fast-identity-online) called the **Nitrokey FIDO2**. For PGP support, you need to purchase one of their other keys such as the **Nitrokey Start**, **Nitrokey Pro 2** or the **Nitrokey Storage 2**.
|
||||
|
||||
[:octicons-home-16: Homepage](https://nitrokey.com){ .md-button .md-button--primary }
|
||||
[:octicons-eye-16:](https://nitrokey.com/data-privacy-policy){ .card-link title="Privacy Policy" }
|
||||
[:octicons-info-16:](https://docs.nitrokey.com){ .card-link title=Documentation}
|
||||
|
||||
</details>
|
||||
|
||||
</div>
|
||||
|
||||
The [comparison table](https://nitrokey.com/#comparison) shows the features and how the Nitrokey models compare. The **Nitrokey 3** listed will have a combined feature set.
|
||||
|
||||
Nitrokey models can be configured using the [Nitrokey app](https://nitrokey.com/download).
|
||||
|
||||
For the models which support HOTP and TOTP, there are 3 slots for HOTP and 15 for TOTP. Some Nitrokeys can act as a password manager. They can store 16 different credentials and encrypt them using the same password as the OpenPGP interface.
|
||||
|
||||
<div class="admonition warning" markdown>
|
||||
<p class="admonition-title">Warning</p>
|
||||
|
||||
While Nitrokeys do not release the HOTP/TOTP secrets to the device they are plugged into, the HOTP and TOTP storage is **not** encrypted and is vulnerable to physical attacks. If you are looking to store HOTP or TOTP secrets, we highly recommend that you use a YubiKey instead.
|
||||
|
||||
</div>
|
||||
|
||||
<div class="admonition warning" markdown>
|
||||
<p class="admonition-title">Warning</p>
|
||||
|
||||
Resetting the OpenPGP interface on a Nitrokey will also make the password database [inaccessible](https://docs.nitrokey.com/pro/linux/factory-reset).
|
||||
|
||||
</div>
|
||||
|
||||
The Nitrokey Pro 2, Nitrokey Storage 2, and the upcoming Nitrokey 3 supports system integrity verification for laptops with the [Coreboot](https://coreboot.org) + [Heads](https://osresearch.net) firmware.
|
||||
|
||||
Nitrokey's firmware is open source, unlike the YubiKey. The firmware on modern NitroKey models (except the **NitroKey Pro 2**) is updatable.
|
||||
|
||||
### Criteria
|
||||
|
||||
**Please note we are not affiliated with any of the projects we recommend.** In addition to [our standard criteria](about/criteria.md), we have developed a clear set of requirements to allow us to provide objective recommendations. We suggest you familiarize yourself with this list before choosing to use a project, and conduct your own research to ensure it's the right choice for you.
|
||||
|
||||
#### Minimum Requirements
|
||||
|
||||
- Must use high quality, tamper resistant hardware security modules.
|
||||
- Must support the latest FIDO2 specification.
|
||||
- Must not allow private key extraction.
|
||||
- Devices which cost over $35 must support handling OpenPGP and S/MIME.
|
||||
|
||||
#### Best-Case
|
||||
|
||||
Our best-case criteria represents what we would like to see from the perfect project in this category. Our recommendations may not include any or all of this functionality, but those which do may rank higher than others on this page.
|
||||
|
||||
- Should be available in USB-C form-factor.
|
||||
- Should be available with NFC.
|
||||
- Should support TOTP secret storage.
|
||||
- Should support secure firmware updates.
|
||||
|
||||
## Authenticator Apps
|
||||
|
||||
Authenticator Apps implement a security standard adopted by the Internet Engineering Task Force (IETF) called **Time-based One-time Passwords**, or **TOTP**. This is a method where websites share a secret with you which is used by your authenticator app to generate a six (usually) digit code based on the current time, which you enter while logging in for the website to check. Typically these codes are regenerated every 30 seconds, and once a new code is generated the old one becomes useless. Even if a hacker gets one six-digit code, there is no way for them to reverse that code to get the original secret or otherwise be able to predict what any future codes might be.
|
||||
**Multi-Factor Authentication Apps** implement a security standard adopted by the Internet Engineering Task Force (IETF) called **Time-based One-time Passwords**, or **TOTP**. This is a method where websites share a secret with you which is used by your authenticator app to generate a six (usually) digit code based on the current time, which you enter while logging in for the website to check. Typically these codes are regenerated every 30 seconds, and once a new code is generated the old one becomes useless. Even if a hacker gets one six-digit code, there is no way for them to reverse that code to get the original secret or otherwise be able to predict what any future codes might be.
|
||||
|
||||
We highly recommend that you use mobile TOTP apps instead of desktop alternatives as Android and iOS have better security and app isolation than most desktop operating systems.
|
||||
|
||||
### ente Auth
|
||||
## Ente Auth
|
||||
|
||||
<div class="admonition recommendation" markdown>
|
||||
|
||||
{ align=right }
|
||||
{ align=right }
|
||||
|
||||
**ente Auth** is a free and open-source app which stores and generates TOTP tokens. It can be used with an online account to backup and sync your tokens across your devices (and access them via a web interface) in a secure, end-to-end encrypted fashion. It can also be used offline on a single device with no account necessary.
|
||||
**Ente Auth** is a free and open-source app which stores and generates TOTP tokens. It can be used with an online account to backup and sync your tokens across your devices (and access them via a web interface) in a secure, end-to-end encrypted fashion. It can also be used offline on a single device with no account necessary.
|
||||
|
||||
[:octicons-home-16: Homepage](https://ente.io/auth){ .md-button .md-button--primary }
|
||||
[:octicons-eye-16:](https://ente.io/privacy){ .card-link title="Privacy Policy" }
|
||||
@ -127,7 +40,7 @@ We highly recommend that you use mobile TOTP apps instead of desktop alternative
|
||||
|
||||
</div>
|
||||
|
||||
### Aegis Authenticator (Android)
|
||||
## Aegis Authenticator (Android)
|
||||
|
||||
<div class="admonition recommendation" markdown>
|
||||
|
||||
@ -152,7 +65,7 @@ We highly recommend that you use mobile TOTP apps instead of desktop alternative
|
||||
</div>
|
||||
|
||||
<!-- markdownlint-disable-next-line -->
|
||||
### Criteria
|
||||
## Criteria
|
||||
|
||||
**Please note we are not affiliated with any of the projects we recommend.** In addition to [our standard criteria](about/criteria.md), we have developed a clear set of requirements to allow us to provide objective recommendations. We suggest you familiarize yourself with this list before choosing to use a project, and conduct your own research to ensure it's the right choice for you.
|
||||
|
||||
|
@ -6,14 +6,14 @@ cover: photo-management.webp
|
||||
---
|
||||
Most cloud photo management solutions like Google Photos, Flickr, and Amazon Photos don't secure your photos against being accessed by the cloud storage provider themselves. These options keep your personal photos private, while allowing you to share them only with family and trusted people.
|
||||
|
||||
## ente
|
||||
## Ente Photos
|
||||
|
||||
<div class="admonition recommendation" markdown>
|
||||
|
||||
{ align=right }
|
||||
{ align=right }
|
||||
{ align=right }
|
||||
{ align=right }
|
||||
|
||||
**ente** is an end-to-end encrypted photo backup service which supports automatic backups on iOS and Android. Their code is fully open-source, both on the client side and on the server side. It is [self-hostable](https://github.com/ente-io/ente/tree/main/server#self-hosting). It underwent an [audit by Cure53](https://ente.io/blog/cryptography-audit) in March 2023 and by [Fallible](https://ente.io/reports/Fallible-Audit-Report-19-04-2023.pdf) in April 2023. The free trial offers 1GB of storage, for a year.
|
||||
**Ente Photos** is an end-to-end encrypted photo backup service which supports automatic backups on iOS and Android. Their code is fully open-source, both on the client side and on the server side. It is [self-hostable](https://github.com/ente-io/ente/tree/main/server#self-hosting). It underwent an [audit by Cure53](https://ente.io/blog/cryptography-audit) in March 2023 and by [Fallible](https://ente.io/reports/Fallible-Audit-Report-19-04-2023.pdf) in April 2023. The free trial offers 5GB of storage, for a year.
|
||||
|
||||
[:octicons-home-16: Homepage](https://ente.io){ .md-button .md-button--primary }
|
||||
[:octicons-eye-16:](https://ente.io/privacy){ .card-link title="Privacy Policy" }
|
||||
|
96
docs/security-keys.md
Normal file
@ -0,0 +1,96 @@
|
||||
---
|
||||
title: "Security Keys"
|
||||
icon: 'material/key-chain'
|
||||
description: These tools assist you with securing your internet accounts with Multi-Factor Authentication without sending your secrets to a third-party.
|
||||
cover: multi-factor-authentication.webp
|
||||
---
|
||||
A physical **security key** adds a very strong layer of protection to your online accounts. Compared to [authenticator apps](multi-factor-authentication.md), the FIDO2 security key protocol is immune to phishing, and cannot be compromised without physical possession of the key itself. Many services support FIDO2/WebAuthn as a multi-factor authentication option for securing your account, and some services allow you to use a security key as a strong single-factor authenticator with passwordless authentication.
|
||||
|
||||
## Yubico Security Key
|
||||
|
||||
<div class="admonition recommendation" markdown>
|
||||
|
||||
<figure markdown="span">
|
||||
{ width="315" }
|
||||
</figure>
|
||||
|
||||
The **Yubico Security Key** series is the most cost-effective hardware security key with FIDO Level 2 certification. It supports FIDO2/WebAuthn and FIDO U2F, and works out of the box with most services that support a security key as a second factor, as well as many password managers.
|
||||
|
||||
[:octicons-home-16: Homepage](https://www.yubico.com/products/security-key/){ .md-button .md-button--primary }
|
||||
[:octicons-eye-16:](https://yubico.com/support/terms-conditions/privacy-notice){ .card-link title="Privacy Policy" }
|
||||
[:octicons-info-16:](https://docs.yubico.com){ .card-link title=Documentation}
|
||||
|
||||
</details>
|
||||
|
||||
</div>
|
||||
|
||||
These keys are available in both USB-C and USB-A variants, and both options support NFC for use with a mobile device as well.
|
||||
|
||||
This key provides only basic FIDO2 functionality, but for most people that is all you will need. Some notable features the Security Key series does **not** have include:
|
||||
|
||||
- [Yubico Authenticator](https://www.yubico.com/products/yubico-authenticator/)
|
||||
- CCID Smart Card support (PIV-compatibile)
|
||||
- OpenPGP
|
||||
|
||||
If you need any of those features, you should consider their higher-end [YubiKey](#yubikey) of products instead.
|
||||
|
||||
<div class="admonition warning" markdown>
|
||||
<p class="admonition-title">Warning</p>
|
||||
|
||||
The firmware of Yubico's Security Keys is not updatable. If you want features in newer firmware versions, or if there is a vulnerability in the firmware version you are using, you would need to purchase a new key.
|
||||
|
||||
</div>
|
||||
|
||||
## YubiKey
|
||||
|
||||
<div class="admonition recommendation" markdown>
|
||||
|
||||
<figure markdown="span">
|
||||
{ width="400" }
|
||||
</figure>
|
||||
|
||||
The **YubiKey** series from Yubico are among the most popular security keys. The YubiKey 5 Series has a wide range of features such as: [Universal 2nd Factor (U2F)](https://en.wikipedia.org/wiki/Universal_2nd_Factor), [FIDO2 and WebAuthn](basics/multi-factor-authentication.md#fido-fast-identity-online), [Yubico OTP](basics/multi-factor-authentication.md#yubico-otp), [Personal Identity Verification (PIV)](https://developers.yubico.com/PIV), [OpenPGP](https://developers.yubico.com/PGP), [TOTP and HOTP](https://developers.yubico.com/OATH) authentication.
|
||||
|
||||
[:octicons-home-16: Homepage](https://www.yubico.com/products/yubikey-5-overview/){ .md-button .md-button--primary }
|
||||
[:octicons-eye-16:](https://yubico.com/support/terms-conditions/privacy-notice){ .card-link title="Privacy Policy" }
|
||||
[:octicons-info-16:](https://docs.yubico.com){ .card-link title=Documentation}
|
||||
|
||||
</details>
|
||||
|
||||
</div>
|
||||
|
||||
The [comparison table](https://yubico.com/store/compare) shows the features and how the YubiKeys compare to each other and to Yubico's [Security Key](#yubico-security-key) series. One of the benefits of the YubiKey series is that one key can do almost everything you could expect from a hardware security key. We encourage you to take their [quiz](https://yubico.com/quiz) before purchasing in order to make sure you make the right choice.
|
||||
|
||||
The Yubikey 5 series has FIDO Level 1 certification, which is the most common. However, some governments or other organizations may require a key with Level 2 certification, in which case you'll have to purchase a [Yubikey 5 **FIPS** series](https://www.yubico.com/products/yubikey-fips/) key, or a [Yubico Security Key](#yubico-security-key). Most people do not have to worry about this distinction.
|
||||
|
||||
YubiKeys can be programmed using the [YubiKey Manager](https://yubico.com/support/download/yubikey-manager) or [YubiKey Personalization Tools](https://yubico.com/support/download/yubikey-personalization-tools). For managing TOTP codes, you can use the [Yubico Authenticator](https://yubico.com/products/yubico-authenticator). All of Yubico's clients are open source.
|
||||
|
||||
For models which support HOTP and TOTP, there are 2 slots in the OTP interface which could be used for HOTP and 32 slots to store TOTP secrets. These secrets are stored encrypted on the key and never expose them to the devices they are plugged into. Once a seed (shared secret) is given to the Yubico Authenticator, it will only give out the six-digit codes, but never the seed. This security model helps limit what an attacker can do if they compromise one of the devices running the Yubico Authenticator and make the YubiKey resistant to a physical attacker.
|
||||
|
||||
<div class="admonition warning" markdown>
|
||||
<p class="admonition-title">Warning</p>
|
||||
|
||||
The firmware of YubiKey is not updatable. If you want features in newer firmware versions, or if there is a vulnerability in the firmware version you are using, you would need to purchase a new key.
|
||||
|
||||
</div>
|
||||
|
||||
## Criteria
|
||||
|
||||
**Please note we are not affiliated with any of the projects we recommend.** In addition to [our standard criteria](about/criteria.md), we have developed a clear set of requirements to allow us to provide objective recommendations. We suggest you familiarize yourself with this list before choosing to use a project, and conduct your own research to ensure it's the right choice for you.
|
||||
|
||||
### Minimum Requirements
|
||||
|
||||
- Must be a [FIDO Certified](https://fidoalliance.org/certification/fido-certified-products/) product
|
||||
- Must use high quality, tamper resistant hardware security modules.
|
||||
- Must support the latest FIDO2 specification.
|
||||
- Must not allow private key extraction.
|
||||
- Devices which cost over $35 must support handling OpenPGP and S/MIME.
|
||||
|
||||
### Best-Case
|
||||
|
||||
Our best-case criteria represents what we would like to see from the perfect project in this category. Our recommendations may not include any or all of this functionality, but those which do may rank higher than others on this page.
|
||||
|
||||
- Should be available in USB-C form-factor.
|
||||
- Should be available with NFC.
|
||||
- Should support TOTP secret storage.
|
||||
- Should support secure firmware updates.
|
@ -103,7 +103,7 @@ We [recommend](dns.md#recommended-providers) a number of encrypted DNS servers b
|
||||
|
||||
</div>
|
||||
|
||||
[Learn more :material-arrow-right-drop-circle:](dns.md#self-hosted-solutions)
|
||||
[Learn more :material-arrow-right-drop-circle:](dns.md#self-hosted-dns-filtering)
|
||||
|
||||
### Email
|
||||
|
||||
@ -111,7 +111,7 @@ We [recommend](dns.md#recommended-providers) a number of encrypted DNS servers b
|
||||
|
||||
- { .twemoji loading=lazy } [Proton Mail](email.md#proton-mail)
|
||||
- { .twemoji loading=lazy } [Mailbox.org](email.md#mailboxorg)
|
||||
- { .twemoji loading=lazy } [Tuta](email.md#tuta)
|
||||
- { .twemoji loading=lazy }{ .twemoji loading=lazy } [Tuta](email.md#tuta)
|
||||
|
||||
</div>
|
||||
|
||||
@ -166,7 +166,7 @@ We [recommend](dns.md#recommended-providers) a number of encrypted DNS servers b
|
||||
|
||||
<div class="grid cards" markdown>
|
||||
|
||||
- { .twemoji loading=lazy }{ .twemoji loading=lazy } [Ente](photo-management.md#ente)
|
||||
- { .twemoji loading=lazy }{ .twemoji loading=lazy } [Ente Photos](photo-management.md#ente-photos)
|
||||
- { .twemoji loading=lazy }{ .twemoji loading=lazy } [Stingle](photo-management.md#stingle)
|
||||
- { .twemoji loading=lazy } [PhotoPrism](photo-management.md#photoprism)
|
||||
|
||||
@ -218,7 +218,7 @@ If you're looking for added **security**, you should always ensure you're connec
|
||||
|
||||
<div class="grid cards" markdown>
|
||||
|
||||
- { .twemoji loading=lazy } [Tuta](calendar.md#tuta)
|
||||
- { .twemoji loading=lazy }{ .twemoji loading=lazy } [Tuta](calendar.md#tuta)
|
||||
- { .twemoji loading=lazy } [Proton Calendar](calendar.md#proton-calendar)
|
||||
|
||||
</div>
|
||||
@ -274,7 +274,7 @@ If you're looking for added **security**, you should always ensure you're connec
|
||||
|
||||
For encrypting your operating system drive, we typically recommend using whichever encryption tool your operating system provides, whether that is **BitLocker** on Windows, **FileVault** on macOS, or **LUKS** on Linux. These tools are included with the operating system and typically use hardware encryption elements such as a TPM that other full-disk encryption software like VeraCrypt do not. VeraCrypt is still suitable for non-operating system disks such as external drives, especially drives that may be accessed from multiple operating systems.
|
||||
|
||||
[Learn more :material-arrow-right-drop-circle:](encryption.md##operating-system-included-full-disk-encryption-fde)
|
||||
[Learn more :material-arrow-right-drop-circle:](encryption.md#os-full-disk-encryption)
|
||||
|
||||
</details>
|
||||
|
||||
@ -334,11 +334,11 @@ For encrypting your operating system drive, we typically recommend using whichev
|
||||
|
||||
### Multi-Factor Authentication Tools
|
||||
|
||||
**Note:** [Hardware security keys](#security-keys) have been moved to their own category.
|
||||
|
||||
<div class="grid cards" markdown>
|
||||
|
||||
- { .twemoji loading=lazy } [YubiKey](multi-factor-authentication.md#yubikey)
|
||||
- { .twemoji loading=lazy } [Nitrokey](multi-factor-authentication.md#nitrokey)
|
||||
- { .twemoji loading=lazy } [ente Auth](multi-factor-authentication.md#ente-auth)
|
||||
- { .twemoji loading=lazy } [Ente Auth](multi-factor-authentication.md#ente-auth)
|
||||
- { .twemoji loading=lazy } [Aegis Authenticator (Android)](multi-factor-authentication.md#aegis-authenticator-android)
|
||||
|
||||
</div>
|
||||
@ -421,6 +421,19 @@ For encrypting your operating system drive, we typically recommend using whichev
|
||||
|
||||
[Learn more :material-arrow-right-drop-circle:](real-time-communication.md)
|
||||
|
||||
## Hardware
|
||||
|
||||
### Security Keys
|
||||
|
||||
<div class="grid cards" markdown>
|
||||
|
||||
- { .twemoji loading=lazy } [Yubico Security Key](security-keys.md#yubico-security-key)
|
||||
- { .twemoji loading=lazy } [YubiKey](security-keys.md#yubikey)
|
||||
|
||||
</div>
|
||||
|
||||
[Learn more :material-arrow-right-drop-circle:](security-keys.md)
|
||||
|
||||
## Operating Systems
|
||||
|
||||
### Mobile
|
||||
@ -501,7 +514,7 @@ These tools may provide utility for certain individuals. They provide functional
|
||||
- { .twemoji loading=lazy } [iMazing (iOS)](device-integrity.md#imazing-ios)
|
||||
- { .twemoji loading=lazy }{ .twemoji loading=lazy } [Auditor (Android)](device-integrity.md#auditor-android)
|
||||
- { .twemoji loading=lazy }{ .twemoji loading=lazy } [Hypatia (Android)](device-integrity.md#hypatia-android)
|
||||
- { .twemoji loading=lazy } [iVerify (iOS)](device-integrity.md#iverify-ios)
|
||||
- { .twemoji loading=lazy } [iVerify Basic (iOS)](device-integrity.md#iverify-basic-ios)
|
||||
|
||||
</div>
|
||||
|
||||
|
@ -71,7 +71,7 @@ We also think it's better for the security of the VPN provider's private keys if
|
||||
|
||||
#### :material-check:{ .pg-green } Independently Audited
|
||||
|
||||
As of January 2020, Proton VPN has undergone an independent audit by SEC Consult. SEC Consult found some medium and low risk vulnerabilities in Proton VPN's Windows, Android, and iOS applications, all of which were "properly fixed" by Proton VPN before the reports were published. None of the issues identified would have provided an attacker remote access to your device or traffic. You can view individual reports for each platform at [protonvpn.com](https://protonvpn.com/blog/open-source). In April 2022 Proton VPN underwent [another audit](https://protonvpn.com/blog/no-logs-audit) and the report was [produced by Securitum](https://protonvpn.com/blog/wp-content/uploads/2022/04/securitum-protonvpn-nologs-20220330.pdf). A [letter of attestation](https://proton.me/blog/security-audit-all-proton-apps) was provided for Proton VPN's apps on 9th November 2021 by [Securitum](https://research.securitum.com).
|
||||
As of January 2020, Proton VPN has undergone an independent audit by SEC Consult. SEC Consult found some medium and low risk vulnerabilities in Proton VPN's Windows, Android, and iOS applications, all of which were "properly fixed" by Proton VPN before the reports were published. None of the issues identified would have provided an attacker remote access to your device or traffic. You can view individual reports for each platform at [protonvpn.com](https://protonvpn.com/blog/open-source). In April 2022 Proton VPN underwent [another audit](https://protonvpn.com/blog/no-logs-audit). A [letter of attestation](https://proton.me/blog/security-audit-all-proton-apps) was provided for Proton VPN's apps on 9th November 2021 by [Securitum](https://research.securitum.com).
|
||||
|
||||
#### :material-check:{ .pg-green } Open-Source Clients
|
||||
|
||||
|
@ -1,14 +1,9 @@
|
||||
ANALYTICS_CONSENT_BODY="We collect anonymous statistics about your visits to help us improve the site. We do not track you across other websites. If you disable this, we will not know when you have visited our site. We will save a single cookie in your browser to remember your preference."
|
||||
ANALYTICS_CONSENT_TITLE="Contribute anonymous statistics"
|
||||
ANALYTICS_COOKIE_GITHUB="GitHub API"
|
||||
ANALYTICS_COOKIE_UMAMI="Self-Hosted Analytics"
|
||||
ANALYTICS_FEEDBACK_NEGATIVE_NAME="This page could be improved"
|
||||
ANALYTICS_FEEDBACK_NEGATIVE_NOTE='Thanks for your feedback! If you want to let us know more, please leave a post on our <a href="https://discuss.privacyguides.net/c/site-development/7" target="_blank" rel="noopener">forum</a>.'
|
||||
ANALYTICS_FEEDBACK_POSITIVE_NAME="This page was helpful"
|
||||
ANALYTICS_FEEDBACK_POSITIVE_NOTE="Thanks for your feedback!"
|
||||
ANALYTICS_FEEDBACK_TITLE="Was this page helpful?"
|
||||
DESCRIPTION_HOMEPAGE="A socially motivated website which provides information about protecting your online data privacy and security."
|
||||
FOOTER_ANALYTICS="Anonymous statistics preferences."
|
||||
FOOTER_COPYRIGHT_AUTHOR="Privacy Guides and contributors."
|
||||
FOOTER_INTRO="<b>Privacy Guides</b> is a non-profit, socially motivated website that provides information for protecting your data security and privacy."
|
||||
FOOTER_NOTE="We do not make money from recommending certain products, and we do not use affiliate links."
|
||||
|
22
mkdocs.yml
@ -56,7 +56,6 @@ extra:
|
||||
- fontawesome/brands/creative-commons
|
||||
- fontawesome/brands/creative-commons-by
|
||||
- fontawesome/brands/creative-commons-sa
|
||||
analytics: !ENV [FOOTER_ANALYTICS, "Anonymous statistics preferences."]
|
||||
homepage:
|
||||
description:
|
||||
!ENV [
|
||||
@ -235,24 +234,6 @@ extra:
|
||||
data: 0
|
||||
note:
|
||||
!ENV [ANALYTICS_FEEDBACK_NEGATIVE_NOTE, "Thanks for your feedback!"]
|
||||
consent:
|
||||
title: !ENV [ANALYTICS_CONSENT_TITLE, "Contribute anonymous statistics"]
|
||||
description:
|
||||
!ENV [
|
||||
ANALYTICS_CONSENT_BODY,
|
||||
"We use cookies to collect anonymous usage statistics. You can opt out if you wish.",
|
||||
]
|
||||
cookies:
|
||||
analytics:
|
||||
name: !ENV [ANALYTICS_COOKIE_UMAMI, "Self-Hosted Analytics"]
|
||||
checked: true
|
||||
github:
|
||||
name: !ENV [ANALYTICS_COOKIE_GITHUB, "GitHub API"]
|
||||
checked: true
|
||||
actions:
|
||||
- reject
|
||||
- accept
|
||||
- manage
|
||||
|
||||
repo_url:
|
||||
!ENV [BUILD_REPO_URL, "https://github.com/privacyguides/privacyguides.org"]
|
||||
@ -303,7 +284,6 @@ extra_css:
|
||||
- assets/stylesheets/extra.css?v=2
|
||||
extra_javascript:
|
||||
- assets/javascripts/randomize-element.js?v=1
|
||||
- assets/javascripts/resolution.js?v=1
|
||||
- assets/javascripts/feedback.js?v=1
|
||||
|
||||
watch:
|
||||
@ -434,6 +414,8 @@ nav:
|
||||
- "passwords.md"
|
||||
- "productivity.md"
|
||||
- "real-time-communication.md"
|
||||
- !ENV [NAV_HARDWARE, "Hardware"]:
|
||||
- "security-keys.md"
|
||||
- !ENV [NAV_OPERATING_SYSTEMS, "Operating Systems"]:
|
||||
- "android.md"
|
||||
- "desktop.md"
|
||||
|
1
theme/assets/img/email/tuta-dark.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867" xmlns="http://www.w3.org/2000/svg"><g fill="#00d2a7" stroke-width=".91795"><path d="m2.6793 0.33879 5.7992 5.8589c0.13565 0.13531 0.27131 0.16931 0.47479 0.16931h24.451c0.16955 0 0.27134-0.20331 0.10172-0.37254l-5.7313-5.7911c-0.13565-0.13565-0.27134-0.20331-0.5426-0.20331h-24.418c-0.23741 0-0.27131 0.20331-0.13565 0.33861z"/><path d="m1.8315 33.596c-0.034 0.13565 0.034 0.27096 0.20348 0.27096h24.112c0.23738 0 0.3391-0.10165 0.40693-0.30461l7.2913-23.503c0.06783-0.23696-0.034-0.30461-0.23738-0.30461h-24.18c-0.20341 0-0.27127 0.067653-0.3391 0.23696z"/><path d="m1.5914e-4 26.822c0 0.27096 0.33913 0.27096 0.40696 0l5.5279-17.983c0.067827-0.20331 0.067827-0.33861-0.10172-0.50802l-5.4939-5.4525c-0.13565-0.13565-0.33913-0.067653-0.33913 0.10165z"/></g></svg>
|
After Width: | Height: | Size: 836 B |
@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 257 237"><defs><path id="a" d="M22.875.003C10.235.003 0 10.249 0 22.875v211.23c0 .801.046 1.608.123 2.388 8.5-3.167 17.524-6.629 27.054-10.436 66.336-26.48 120.57-48.994 120.62-74.415 0-.814-.056-1.636-.172-2.458-3.43-25.098-63.407-32.879-63.324-44.381.007-.611.18-1.25.548-1.889 7.205-12.619 35.743-12.015 46.253-12.907 10.519-.913 35.206-.724 36.399-8.244.035-.232.057-.463.057-.695.028-6.987-16.977-9.726-16.977-9.726s20.635 3.083 20.579 11.11c0 .393-.048.8-.158 1.214-2.222 8.624-20.379 10.246-32.386 10.835-11.356.569-28.648 1.861-28.707 7.408-.007.323.049.66.165 1.004 2.71 8.11 66.09 12.015 106.64 33.061 23.335 12.099 34.94 32.422 40.263 53.418V22.872C256.977 10.246 246.734 0 234.108 0H22.878l-.003.003Z"/></defs><use xlink:href="#a" fill="#A01E20" fill-rule="evenodd"/></svg>
|
||||
<svg width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867" xmlns="http://www.w3.org/2000/svg"><g fill="#850122" stroke-width=".91795"><path d="m2.6792 0.33866 5.7992 5.8589c0.13565 0.13548 0.27131 0.16934 0.47479 0.16934h24.452c0.16955 0 0.27134-0.2032 0.10172-0.37253l-5.7313-5.7912c-0.13565-0.13548-0.27134-0.2032-0.5426-0.2032h-24.418c-0.23741 0-0.27131 0.2032-0.13565 0.33865z"/><path d="m1.8314 33.596c-0.034 0.13548 0.034 0.27089 0.20348 0.27089h24.113c0.23738 0 0.3391-0.10152 0.40693-0.30476l7.2914-23.503c0.06783-0.23703-0.034-0.30475-0.23738-0.30475h-24.18c-0.20341 0-0.27127 0.067758-0.3391 0.23703z"/><path d="m5.3925e-5 26.822c0 0.27089 0.33914 0.27089 0.40696 0l5.5279-17.983c0.067827-0.2032 0.067827-0.33865-0.10172-0.508l-5.494-5.4525c-0.13565-0.13548-0.33914-0.067723-0.33914 0.10158z"/></g></svg>
|
||||
|
Before Width: | Height: | Size: 881 B After Width: | Height: | Size: 828 B |
@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 124 140"><g fill="#D0013B" fill-rule="nonzero"><path d="m72.37 84.938-28.68 16.6a4.1 4.1 0 0 1-5.58-1.5l-15.34-26.57a4.09 4.09 0 0 1 1.5-5.53L53 51.338l19.37 33.6ZM57.48 54.188 72 79.368l28.75-16.61-14.51-25.17-28.76 16.6Zm14.36-3a1 1 0 0 1 .35-1.34l2.81-1.66a1 1 0 0 1 1.34.35l2.41 4.14a1 1 0 0 1-.36 1.34l-2.84 1.65a1 1 0 0 1-1.34-.35l-2.41-4.14.04.01Zm14.22 15.93-2.84 1.66a1 1 0 0 1-1.34-.35l-2.41-4.14a1 1 0 0 1 .35-1.34l2.85-1.65a1 1 0 0 1 1.34.35l2.4 4.13a1 1 0 0 1-.35 1.34Z"/><path d="M61.66 139.798c-1.528 0-3.041-.292-4.46-.86-37.79-15.12-53.52-50.44-56.29-57.37a12.392 12.392 0 0 1-.91-4.71v-43.49a12.4 12.4 0 0 1 7.5-11.43l49.5-21a12 12 0 0 1 9.3 0l49.51 21a12.361 12.361 0 0 1 7.52 11.48v43.44a12.75 12.75 0 0 1-.91 4.69c-2.78 7-18.51 42.27-56.3 57.39-1.418.568-2.932.86-4.46.86Zm0-128.77a1 1 0 0 0-.37.08L11.8 32.018a1.472 1.472 0 0 0-.8 1.35v43.49c0 .198.036.395.11.58 2.49 6.25 16.55 37.83 50.18 51.29a1 1 0 0 0 .75 0c33.62-13.46 47.68-45 50.16-51.24.08-.201.125-.414.13-.63v-43.49a1.44 1.44 0 0 0-.78-1.34L62 11.108a.903.903 0 0 0-.37-.08h.03Z"/></g></svg>
|
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 5.6 KiB |
Before Width: | Height: | Size: 335 B After Width: | Height: | Size: 335 B |
BIN
theme/assets/img/security-keys/yubico-security-key.webp
Normal file
After Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 322 KiB After Width: | Height: | Size: 322 KiB |
@ -1,78 +0,0 @@
|
||||
function setCookie(cname, cvalue, exdays) {
|
||||
const d = new Date();
|
||||
d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
|
||||
let expires = "expires="+d.toUTCString();
|
||||
document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
|
||||
}
|
||||
|
||||
function getCookie(cname) {
|
||||
let name = cname + "=";
|
||||
let ca = document.cookie.split(';');
|
||||
for(let i = 0; i < ca.length; i++) {
|
||||
let c = ca[i];
|
||||
while (c.charAt(0) == ' ') {
|
||||
c = c.substring(1);
|
||||
}
|
||||
if (c.indexOf(name) == 0) {
|
||||
return c.substring(name.length, c.length);
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
var consent = __md_get("__consent")
|
||||
if (!consent) {
|
||||
__md_set("__consent", {"analytics":true,"github":true});
|
||||
if (getCookie('resolution') == '') {
|
||||
const resolution = `${window.screen.width}x${window.screen.height}`;
|
||||
setCookie('resolution', resolution, 30);
|
||||
}
|
||||
}
|
||||
|
||||
if (consent && consent.analytics) {
|
||||
if (getCookie('resolution') == '') {
|
||||
const resolution = `${window.screen.width}x${window.screen.height}`;
|
||||
setCookie('resolution', resolution, 30);
|
||||
}
|
||||
setCookie('umami', 'true', 0);
|
||||
} else {
|
||||
setCookie('umami', 'false', 365);
|
||||
setCookie('resolution', "0x0", 0);
|
||||
}
|
||||
|
||||
var consent = __md_get("__consent")
|
||||
if (consent) {
|
||||
for (var input of document.forms.consent.elements)
|
||||
if (input.name)
|
||||
input.checked = consent[input.name] || false
|
||||
|
||||
/* Show consent with a small delay, but not if browsing locally */
|
||||
} else if (location.protocol !== "file:") {
|
||||
setTimeout(function() {
|
||||
var el = document.querySelector("[data-md-component=consent]")
|
||||
el.hidden = false
|
||||
}, 250)
|
||||
}
|
||||
|
||||
/* Intercept submission of consent form */
|
||||
var form = document.forms.consent
|
||||
for (var action of ["submit", "reset"])
|
||||
form.addEventListener(action, function(ev) {
|
||||
ev.preventDefault()
|
||||
|
||||
/* Reject all cookies */
|
||||
if (ev.type === "reset")
|
||||
for (var input of document.forms.consent.elements)
|
||||
if (input.name)
|
||||
input.checked = false
|
||||
|
||||
/* Grab and serialize form data */
|
||||
__md_set("__consent", Object.fromEntries(
|
||||
Array.from(new FormData(form).keys())
|
||||
.map(function(key) { return [key, true] })
|
||||
))
|
||||
|
||||
/* Remove anchor to omit consent from reappearing and reload */
|
||||
location.hash = '';
|
||||
location.reload()
|
||||
})
|
@ -35,9 +35,6 @@
|
||||
{% endfor %}
|
||||
</a>
|
||||
{{ copyright.copyright.date }} {{ copyright.copyright.author }}
|
||||
<a href='#__consent'>
|
||||
{{ copyright.analytics }}
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
@ -1 +0,0 @@
|
||||
<!-- moved to assets/javascripts/resolution.js -->
|