Skip to content

DOCS-11415: Use TLS to mitigate cleartext passwords #3258

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

Merged
merged 1 commit into from
Mar 9, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 3 additions & 9 deletions source/includes/fact-auth-restrictions-array-contents.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
.. versionadded:: 3.6

The ``authenticationRestrictions`` document can contain the
following fields:
The ``authenticationRestrictions`` document can contain *only* the
following fields. The server throws an error if the
``authenticationRestrictions`` document contains an unrecognized field:

.. list-table::
:header-rows: 1
Expand Down Expand Up @@ -30,13 +31,6 @@ following fields:

.. important::

These are the only fields recognized by the server in the
``authenticationRestrictions`` document. When creating a user,
if the server does not recognize a field contained within the
``authenticationRestrictions`` document, it throws an error.

.. warning::

If a user inherits multiple roles with incompatible authentication
restrictions, that user becomes unusable.

Expand Down
12 changes: 12 additions & 0 deletions source/includes/fact-cleartext-passwords-tls.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
.. warning::

By default, |command| sends all specified data to the MongoDB
instance in cleartext. Use TLS transport encryption to protect
communications between clients and the server,
including the password sent by |command|. For
instructions on enabling TLS transport encryption, see
:doc:`/tutorial/configure-ssl`.

MongoDB does not store the password in cleartext. The password
is only vulnerable in transit between the client and the
server, and only if TLS transport encryption is not enabled.
6 changes: 3 additions & 3 deletions source/reference/command/createUser.txt
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,9 @@ Behavior
Encryption
~~~~~~~~~~

:dbcommand:`createUser` sends password to the MongoDB instance in
cleartext. To encrypt the password in transit, use :doc:`TLS/SSL
</tutorial/configure-ssl>`.
.. |command| replace:: :dbcommand:`createUser`

.. include:: /includes/fact-cleartext-passwords-tls.rst

External Credentials
~~~~~~~~~~~~~~~~~~~~
Expand Down
6 changes: 3 additions & 3 deletions source/reference/command/updateUser.txt
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,9 @@ Authentication Restrictions
Behavior
--------

:dbcommand:`updateUser` sends the password to the MongoDB instance in
cleartext. To encrypt the password in transit, use :doc:`TLS/SSL
</tutorial/configure-ssl>`.
.. |command| replace:: :dbcommand:`updateUser`

.. include:: /includes/fact-cleartext-passwords-tls.rst

Required Access
---------------
Expand Down
7 changes: 7 additions & 0 deletions source/reference/method/db.changeUserPassword.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,13 @@ Required Access

.. include:: /includes/access-change-password.rst

Behavior
--------

.. |command| replace:: :method:`db.changeUserPassword()`

.. include:: /includes/fact-cleartext-passwords-tls.rst

Example
-------

Expand Down
6 changes: 3 additions & 3 deletions source/reference/method/db.createUser.txt
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,9 @@ Behavior
Encryption
~~~~~~~~~~

:method:`db.createUser()` sends password to the MongoDB instance
*without* encryption. To encrypt the password during transmission,
use :doc:`TLS/SSL </tutorial/configure-ssl>`.
.. |command| replace:: :method:`db.createUser()`

.. include:: /includes/fact-cleartext-passwords-tls.rst

External Credentials
~~~~~~~~~~~~~~~~~~~~
Expand Down
6 changes: 3 additions & 3 deletions source/reference/method/db.updateUser.txt
Original file line number Diff line number Diff line change
Expand Up @@ -79,9 +79,9 @@ command.
Behavior
--------

:method:`db.updateUser()` sends password to the MongoDB instance
*without* encryption. To encrypt the password during transmission,
use :doc:`TLS/SSL </tutorial/configure-ssl>`.
.. |command| replace:: :method:`db.updateUser()`

.. include:: /includes/fact-cleartext-passwords-tls.rst

Required Access
---------------
Expand Down