Skip to content

Commit 6a81d05

Browse files
DOCSP-38147 "Choosing an In Use Encryption Approach" crypto team review backport v7.2 (#7427)
* Merge fixes * Backing out restructure specific links * Backing out restructure specific links * Whitespace reverts * Typo * ref fix
1 parent dd8b6d0 commit 6a81d05

File tree

6 files changed

+87
-1
lines changed

6 files changed

+87
-1
lines changed

source/core/csfle.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,17 @@ You can set up {+csfle-abbrev+} using the following mechanisms:
2929
specify the logic for encryption with this library throughout your
3030
application.
3131

32+
Considerations
33+
--------------
34+
35+
When implementing an application that uses {+csfle+}, consider the points listed in :ref:`Security Considerations <csfle-security-considerations>`.
36+
37+
For limitations, see :ref:`{+csfle-abbrev+} limitations
38+
<csfle-reference-encryption-limits>`.
39+
40+
Compatibility
41+
~~~~~~~~~~~~~
42+
3243
The following table shows which MongoDB server products support which {+csfle-abbrev+}
3344
mechanisms:
3445

source/core/csfle/features.txt

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,34 @@ read and write the encrypted data fields.
5656
To learn more about why you should use a remote KMS, see
5757
:ref:`csfle-reasons-to-use-remote-kms`.
5858

59+
.. _csfle-security-considerations:
60+
61+
Security Considerations
62+
-----------------------
63+
64+
* {+csfle-abbrev+} doesn't provide any cryptographic integrity
65+
guarantees against adversaries with access to your {+cmk-long+} or
66+
{+dek-long+}s.
67+
68+
* {+csfle-abbrev+} doesn't provide any cryptographic integrity
69+
guarantees against adversaries with arbitrary write access to collections
70+
containing encrypted data.
71+
72+
* MongoDB uses :ref:`schema validation <schema-validation-overview>` to enforce
73+
encryption of specific fields in a collection. Without a client-side schema,
74+
the client downloads the server-side schema for the collection to determine
75+
which fields to encrypt. To avoid this issue, use client-side schema validation.
76+
77+
Because {+csfle-abbrev+} doesn't provide a mechanism to verify
78+
the integrity of a schema, relying on a server-side schema means
79+
trusting that the server's schema has not been tampered with. If an adversary
80+
compromises the server, they can modify the schema so that a previously
81+
encrypted field is no longer labeled for encryption. This causes the client
82+
to send plaintext values for that field.
83+
84+
For an example of {+csfle-abbrev+} configuration for client and server-side
85+
schemas, see :ref:`CSFLE Server-Side Field Level Encryption Enforcement <field-level-encryption-automatic-remote-schema>`.
86+
5987
.. _csfle-feature-comparison:
6088

6189
Other Security Mechanisms
@@ -124,7 +152,7 @@ Comparison of Features
124152
The following diagram lists security features MongoDB supports
125153
and the potential security vulnerabilities that they address:
126154

127-
.. image:: /images/CSFLE_Security_Feature_Chart.png
155+
.. image:: /images/QE_Security_Feature_Chart.png
128156
:alt: Diagram that describes MongoDB security features and the potential vulnerabilities that they address
129157

130158
.. important:: Use the Mechanisms Together

source/core/csfle/reference/limitations.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
.. meta::
2+
:keywords: CSFLE, in-use encryption, security, supported operations
3+
14
.. _csfle-reference-encryption-limits:
25

36
=================
@@ -12,6 +15,13 @@ CSFLE Limitations
1215
:depth: 1
1316
:class: singlecol
1417

18+
Overview
19+
--------
20+
Consider these limitations and restrictions before you enable {+csfle-abbrev+}.
21+
Some operations are unsupported, and others behave differently.
22+
23+
For compatibility limitations, see :ref:`<csfle-compatibility-reference>`.
24+
1525
Read and Write Operation Support
1626
--------------------------------
1727

source/core/queryable-encryption.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,12 @@ You can set up {+qe+} using the following mechanisms:
4949
Considerations
5050
--------------
5151

52+
When implementing an application that uses {+qe+}, consider the points listed
53+
in :ref:`Security Considerations <qe-security-considerations>`.
54+
55+
For other limitations, see :ref:`{+qe+} limitations
56+
<qe-reference-encryption-limits>`.
57+
5258
Compatibility
5359
~~~~~~~~~~~~~
5460

source/core/queryable-encryption/features.txt

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,34 @@ that can use :ref:`Deterministic Encryption <csfle-deterministic-encryption>`,
3737
These schemes produce different encrypted output values even when given
3838
the same cleartext input.
3939

40+
.. _qe-security-considerations:
41+
42+
Security Considerations
43+
-----------------------
44+
45+
* {+qe+} doesn't provide any cryptographic integrity
46+
guarantees against adversaries with access to your {+cmk-long+} or
47+
{+dek-long+}s.
48+
49+
* {+qe+} doesn't provide any cryptographic integrity
50+
guarantees against adversaries with arbitrary write access to collections
51+
containing encrypted data.
52+
53+
* MongoDB uses :ref:`schema validation <schema-validation-overview>` to enforce
54+
encryption of specific fields in a collection. Without a client-side schema,
55+
the client downloads the server-side schema for the collection to determine
56+
which fields to encrypt. To avoid this issue, use client-side schema validation.
57+
58+
Because {+qe+} doesn't provide a mechanism to verify
59+
the integrity of a schema, relying on a server-side schema means
60+
trusting that the server's schema has not been tampered with. If an adversary
61+
compromises the server, they can modify the schema so that a previously
62+
encrypted field is no longer labeled for encryption. This causes the client
63+
to send plaintext values for that field.
64+
65+
For an example of configuration for client and server-side
66+
schemas, see the {+csfle-abbrev+} example at :ref:`CSFLE Server-Side Field Level Encryption Enforcement <field-level-encryption-automatic-remote-schema>`.
67+
4068
How {+qe+} Works
4169
------------------------------
4270

source/core/queryable-encryption/reference/limitations.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
.. meta::
2+
:keywords: Queryable Encryption, in-use encryption, security, contention, redaction, topology support, supported operations
3+
14
.. _qe-reference-encryption-limits:
25

36
===========

0 commit comments

Comments
 (0)