diff --git a/src/current/cockroachcloud/cmek.md b/src/current/cockroachcloud/cmek.md index fc8046d9170..97170a16946 100644 --- a/src/current/cockroachcloud/cmek.md +++ b/src/current/cockroachcloud/cmek.md @@ -16,11 +16,7 @@ You can manage your CMEK keys using one or more of the following services: To learn more, visit [Managing Customer-Managed Encryption Keys (CMEK) for CockroachDB {{ site.data.products.advanced }}]({% link cockroachcloud/managing-cmek.md %}). -CockroachDB {{ site.data.products.advanced }} includes support for referring to CMEK keys in [HashiCorp Vault Secrets Manager](https://www.vaultproject.io/docs/secrets/key-management), which can distribute keys stored in multiple KMS systems, as long as the actual keys are stored in AWS KMS, GCP KMS, or Azure Key Vault. - -{{site.data.alerts.callout_success}} -You can learn more about the [supported integrations between CockroachDB and HashiCorp Vault]({% link {{site.current_cloud_version}}/hashicorp-integration.md %}). -{{site.data.alerts.end}} +CockroachDB {{ site.data.products.advanced }} includes support for referring to CMEK keys in [HashiCorp Vault Secrets Manager](https://www.vaultproject.io/docs/secrets/key-management), which can distribute keys stored in multiple KMS systems, as long as the actual keys are stored in AWS KMS, GCP KMS, or Azure Key Vault. Learn more about the [supported integrations between CockroachDB and HashiCorp Vault]({% link {{site.current_cloud_version}}/hashicorp-integration.md %}). CockroachDB {{ site.data.products.cloud }} communicates with the KMS platform using the KMS platform's API, and you manage CockroachDB {{ site.data.products.cloud }}'s access to the CMEK key using the KMS platform's identity and access management (IAM) system. The CMEK key is never present in a cluster and CockroachDB {{ site.data.products.cloud }} never has direct access to the CMEK key material. When CMEK is enabled, the CMEK key must be available before the cluster can start and the cluster's newly-written data at rest can be accessed. @@ -170,6 +166,10 @@ CMEK has the following limitations: - If you add a new region to a cluster with CMEK enabled, you must configure a CMEK for the new region to protect its data. - If the CMEK is not available due to a misconfiguration or a KMS outage, a cluster's managed backups will begin to fail, but no customer notification is sent from CockroachDB {{ site.data.products.cloud }} via email. However, Cockroach Labs support is notified if such a failure occurs. +The following is a limitation associated with Azure Key Vault: + +- Azure Key Vault currently uses the RSA-OAEP-256 encryption algorithm for key wrapping, which is not quantum-resistant. Microsoft's Quantum Safe Program includes Azure Key Vault in its roadmap for post-quantum cryptography (PQC) adoption, but no specific timeline has been published. + ## See also - [Managing Customer-Managed Encryption Keys (CMEK) for CockroachDB {{ site.data.products.advanced }}]({% link cockroachcloud/managing-cmek.md %}) diff --git a/src/current/v26.2/authentication.md b/src/current/v26.2/authentication.md index 96d4d1092f2..7164799d5e6 100644 --- a/src/current/v26.2/authentication.md +++ b/src/current/v26.2/authentication.md @@ -324,6 +324,16 @@ The following cipher suites are rejected by default because they are not recomme {% include common/tls-cipher-suites.md list='disabled' %} +## Supported key exchange mechanisms + +CockroachDB supports all elliptic curves provided by Go 1.25. + +{% include_cached new-in.html version="v26.2" %} For TLS 1.3 connections specifically, CockroachDB supports `X25519MLKEM768`. This is a hybrid post-quantum cryptography (PQC) algorithm that combines `X25519` (an elliptic curve Diffie-Hellman algorithm) and `ML-KEM-768` (a quantum-resistant key encapsulation mechanism standardized as [FIPS 203](https://csrc.nist.gov/pubs/fips/203/final)). + +The hybrid PQC key exchange is enabled by default for TLS 1.3 connections and requires no configuration. Negotiation is fully automatic: if both client and server support `X25519MLKEM768`, it will be used; otherwise, the connection falls back to other supported curves. + +For more information, refer to [Post-quantum cryptography support in CockroachDB]({% link {{ page.version.version }}/security-reference/transport-layer-security.md %}#post-quantum-cryptography-support-in-cockroachdb). + ## See also - [Client Connection Parameters]({% link {{ page.version.version }}/connection-parameters.md %}) diff --git a/src/current/v26.2/encryption.md b/src/current/v26.2/encryption.md index 04f5c156eab..58d6cb1f57e 100644 --- a/src/current/v26.2/encryption.md +++ b/src/current/v26.2/encryption.md @@ -9,7 +9,7 @@ This page outlines several procedures necessary for managing encryption in Cockr ## Generating store key files -Cockroach determines which encryption algorithm to use based on the size of the key file. The key file must contain random data making up the key ID (32 bytes) and the actual key (16, 24, or 32 bytes depending on the encryption algorithm). +Cockroach determines which encryption algorithm to use based on the size of the key file. The key file must contain random data making up the key ID (32 bytes) and the actual key (16, 24, or 32 bytes depending on the encryption algorithm). Review the recommendations for [Encryption at Rest]({% link {{ page.version.version }}/security-reference/encryption.md %}#cockroachdb-self-hosted-clusters) when deciding which algorithm to use. | Algorithm | Key size | Key file size | |-|-|-| diff --git a/src/current/v26.2/security-reference/encryption.md b/src/current/v26.2/security-reference/encryption.md index b227872f0ff..4453b05486c 100644 --- a/src/current/v26.2/security-reference/encryption.md +++ b/src/current/v26.2/security-reference/encryption.md @@ -97,6 +97,7 @@ A few other recommendations apply for best security practices: - Do not switch from encrypted to plaintext, this leaks data keys. When plaintext is selected, all previously encrypted data must be considered reachable. - Do not copy the encrypted files, as the data keys are not easily available. - If encryption is desired, start a node with it enabled from the first run, without ever running in plaintext. +- To maximize post-quantum security, use AES-256 to encrypt data. {{site.data.alerts.callout_danger}} Note that backups taken with the [`BACKUP`]({% link {{ page.version.version }}/backup.md %}) statement **are not encrypted** even if Encryption at Rest is enabled. Encryption at Rest only applies to the CockroachDB node's data on the local disk. If you want encrypted backups, you will need to encrypt your backup files using your preferred encryption method. diff --git a/src/current/v26.2/security-reference/security-overview.md b/src/current/v26.2/security-reference/security-overview.md index ede3fa9c6cd..664c55df4d8 100644 --- a/src/current/v26.2/security-reference/security-overview.md +++ b/src/current/v26.2/security-reference/security-overview.md @@ -98,13 +98,20 @@ docs_area: reference.security