-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
21 changed files
with
150 additions
and
30 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -119,6 +119,7 @@ | |
"picture", | ||
"pre", | ||
"source", | ||
"span", | ||
"summary", | ||
"ul" | ||
] | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
--- | ||
title: Recommended Cipher Suites | ||
description: Reduce the attack surface of your website by enabling secure handshakes | ||
layout: learn-single | ||
|
||
--- | ||
|
||
## Summary | ||
|
||
<p class="not-prose text-xl py-4 font-semibold">The 2010s were a terrible decade for TLS security.</p> | ||
|
||
In [TLS Vulnerabilities]({{% relref "vulns" %}}), we list a number of known vulnerabilities in cipher suites — most of which were discovered between 2010–2019. This triggered the need to radically shift how we approach security on the web. | ||
|
||
Rather than continuing to allow access to older cipher suites with outdated security in order to allow older clients and web browsers to connect, the lessons from the 2010s taught us that it's the _future or bust_. | ||
|
||
## Recommended settings | ||
|
||
### TLS versions | ||
|
||
* ✅ <span class="ui-badge-success-wrap">TLS 1.3</span> + <span class="ui-badge-success-wrap">TLS 1.2</span>. | ||
|
||
* ❌ <span class="ui-badge-error-wrap">TLS 1.1</span>, <span class="ui-badge-error-wrap">TLS 1.0</span>, <span class="ui-badge-error-wrap">SSLv3</span>, and <span class="ui-badge-error-wrap">SSLv2</span>. | ||
|
||
### TLS 1.3 cipher suites | ||
|
||
In order to simplify configuration and increase security, **TLS 1.3** has three cipher suites which are meant to be non-configurable. | ||
|
||
1. <span class="ui-badge-success-wrap">TLS_AES_128_GCM_SHA256</span> | ||
|
||
1. <span class="ui-badge-success-wrap">TLS_AES_256_GCM_SHA384</span> | ||
|
||
1. <span class="ui-badge-success-wrap">TLS_CHACHA20_POLY1305_SHA256</span> | ||
|
||
### TLS 1.2 cipher suites | ||
|
||
#### Recommended | ||
|
||
**TLS 1.2** carried-forward the habit of allowing administrators to configure which cipher suites to support, which led to _several_ security vulnerabilies being exposed during the 2010s. | ||
|
||
As a result, these are the only cipher suites with no known vulnerabilities left, and are likely to work with most server software. | ||
|
||
1. <span class="ui-badge-success-wrap">TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256</span> | ||
|
||
1. <span class="ui-badge-success-wrap">TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384</span> | ||
|
||
1. <span class="ui-badge-success-wrap">TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256</span> | ||
|
||
These are equivalent to the cipher suite identifiers used in **TLS 1.3**. The only difference being that they specify the key exchange (`ECDHE`) and the authenticating signing mechanism (`ECDSA`). | ||
|
||
#### Tolerable | ||
|
||
The following cipher suites are also **secure**, however they aren't **recommended** |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,25 +1,50 @@ | ||
--- | ||
title: Elliptic Curve Digital Signature Algorithm (ECDSA) | ||
description: Secure authentication signing | ||
description: ✅ Secure authentication signing | ||
layout: learn-single | ||
|
||
tls_part: auth-sig | ||
|
||
learn_more: | ||
- text: 'ECDSA: The digital signature algorithm of a better internet' | ||
url: https://blog.cloudflare.com/ecdsa-the-digital-signature-algorithm-of-a-better-internet/ | ||
source: Cloudflare | ||
|
||
- text: 'Standards for Efficient Cryptography: Elliptic Curve Cryptography' | ||
url: https://www.secg.org/sec1-v2.pdf | ||
source: Standards for Efficient Cryptography Group | ||
|
||
- text: 'A Brief History of the U.S. Trying to Add Backdoors Into Encrypted Data' | ||
url: https://www.atlasobscura.com/articles/a-brief-history-of-the-nsa-attempting-to-insert-backdoors-into-encrypted-data | ||
source: Atlas Obscura | ||
|
||
--- | ||
|
||
## Summary | ||
|
||
[ECDSA] is a digital signature algorithm using elliptic curve cryptography, offering a more secure alternative to traditional [DSA]({{% relref "DSS" %}}). It involves key generation, signature creation, and verification, with a focus on the importance of randomness in the signing process. While ECDSA offers security advantages, vulnerabilities in implementation, such as static random number generation, have been exploited in real-world attacks. | ||
[ECDSA] is a digital signature algorithm using elliptic curve cryptography, offering a more secure alternative to traditional [DSA]({{% relref "DSS" %}}). It involves key generation, signature creation, and verification, with a focus on the importance of randomness in the signing process. | ||
|
||
It is based on the underlying mathematical concepts of [Elliptic-curve cryptography][ECC]. | ||
|
||
## Concerns | ||
|
||
While ECDSA offers security advantages, vulnerabilities in poor implementations (such as static random number generation) have been exploited in real-world attacks (e.g., jailbreaking Sony’s PlayStation 3). | ||
|
||
There have been political concerns about the trustworthiness of U.S. NIST-produced curves, after revelations were made that [the NSA willingly inserts backdoors into software][backdoors], hardware components and published standards. | ||
|
||
@TODO | ||
Well-known cryptographers (including [Bruce Schneier]) have expressed doubts about [how the NIST curves were designed][P-curves], and voluntary tainting [has already been proven][tainting] in the past. Nevertheless, a proof that the named NIST curves exploit a rare weakness is missing yet. | ||
|
||
## Information | ||
|
||
| Field | Value | | ||
|--------------|------------------------| | ||
| Kind | Authentication signing | | ||
| Invented | 1991 | | ||
| Deprecated | 2023 | | ||
| Related tech | | | ||
| Field | Value | | ||
|------------|------------------------| | ||
| Kind | Authentication signing | | ||
| Proposed | 1992 | | ||
| Deprecated | - | | ||
|
||
[backdoors]: https://www.theguardian.com/us-news/2015/feb/23/nsa-director-defends-backdoors-into-technology-companies | ||
[Bruce Schneier]: https://www.schneier.com/blog/archives/2013/09/the_nsa_is_brea.html | ||
[ECC]: https://en.wikipedia.org/wiki/Elliptic-curve_cryptography | ||
[ECDSA]: https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm | ||
[P-curves]: https://safecurves.cr.yp.to/rigid.html | ||
[tainting]: https://www.scientificamerican.com/article/nsa-nist-encryption-scandal/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
--- | ||
title: GOLDENDOODLE | ||
description: | ||
layout: vuln | ||
|
||
year: 2019 | ||
classes: | ||
- Data leakage | ||
|
||
learn_more: | ||
- text: 'Introducing Zombie POODLE and GOLDENDOODLE' | ||
url: https://www.tripwire.com/state-of-security/zombie-poodle-goldendoodle | ||
source: Tripwire | ||
|
||
- text: 'TLS CBC Padding Oracles in 2019' | ||
url: https://www.tripwire.com/state-of-security/tls-cbc-padding-oracles | ||
source: Tripwire | ||
|
||
- text: 'TLS CBC Padding Oracle Checker' | ||
url: https://github.com/Tripwire/padcheck | ||
source: GitHub | ||
|
||
--- | ||
|
||
## Overview | ||
|
||
The [GOLDENDOODLE] attack is a type of TLS CBC padding oracle vulnerability (like [POODLE]({{% relref "POODLE" %}})). | ||
|
||
GOLDENDOODLE can be used to hijack authenticated TLS sessions if the server reveals the padding validity of application data records in such a way that a Man-in-the-Middle (MITM) attacker can recognize well-formed padding independently of a valid Message Authentication Code (MAC). | ||
|
||
The best way to avoid this vulnerability is to _only_ allow TLS 1.2 (with recommended cipher suites) and TLS 1.3. | ||
|
||
## Information | ||
|
||
| Field | Value | | ||
|--------------------------|---------------------| | ||
| Vulnerability discovered | {{% param-year %}} | | ||
| Vulnerability class | {{% param-class %}} | | ||
|
||
[GOLDENDOODLE]: https://www.tripwire.com/state-of-security/goldendoodle-attack |
Submodule dst2024
updated
6 files