TLS/SSL
MongoDB は、MongoDB のすべてのネットワーク トラフィックを暗号化するために TLS/SSL(Transport Layer Security/Secure Sockets Layer)をサポートしています。TLS/SSL により、MongoDB ネットワーク トラフィックは対象のクライアントのみが読み取れるようになります。
MongoDB 7.0 および 6.0.7 以降では、MongoDB は、次のオペレーティング システムで OpenSSL 3.0 および OpenSSL FIPS プロバイダーをサポートしています。
Red Hat Enterprise Linux 9
Amazon Linux 2023
Ubuntu Linux 22.04
MongoDB 8.0 以降、MongoDB は、OpenSSL 3.0 と Amazon Linux 2023.3 用の OpenSSL FIPS プロバイダーをサポートしています。
配置を TLS を使用するように構成するには、クイックスタートに従ってください。
TLS バージョン
MongoDB は、TLS 1.1 + が利用可能なシステムで TLS 1.0暗号化のサポートを無効にします。
TLS ライブラリ
MongoDB はネイティブ TLS/SSL OS ライブラリを使用します。
プラットフォーム | TLS/SSL ライブラリ |
|---|---|
Windows | セキュア チャネル(Schannel) |
Linux/BSD | OpenSSL |
MacOS | セキュア トランスポート |
TLS/SSL 暗号
MongoDB の TLS/SSL 暗号化では、すべての接続に対して鍵長が 128 ビット以上の強力な TLS/SSL 暗号のみを使用できます。
フォワード シークレシー
フォワード シークレシー暗号スイートは、サーバーの秘密キーで保護されているが送信されない一時的なセッション鍵を作成します。エフェメラル キーを使用すると、サーバーの秘密キーが侵害された場合でも、侵害されたキーで過去のセッションを復号化することはできません。
MongoDB は、エフェメラル ディフィー ヘルマン(DHE)アルゴリズムとエフェメラル楕円曲線ディフィー ヘルマン(ECDHE)アルゴリズムを使用するフォワード シークレシー暗号スイートをサポートしています。
エフェメラル楕円曲線ディフィー ヘルマン(ECDHE)
プラットフォーム | サポート レベル |
|---|---|
Linux | Linux プラットフォームの OpenSSL が自動曲線選択をサポートしている場合、MongoDB はエフェメラル楕円曲線ディフィー ヘルマン(ECDHE)のサポートを有効にします。 それ以外の場合、Linux プラットフォームの OpenSSL が自動曲線選択をサポートしていない場合、MongoDB では名前付き曲線として |
Windows | エフェメラル楕円曲線ディフィー ヘルマン(ECDHE)は、Windows のネイティブ TLS/SSL ライブラリであるセキュア チャネル(Schannel)の使用によって暗黙的にサポートされています。 |
MacOS | エフェメラル楕円曲線ディフィー ヘルマン(ECDHE)は、macOS のネイティブ TLS/SSL ライブラリであるセキュア トランスポートの使用によって暗黙的にサポートされています。 |
ECDHE cipher suites are slower than static RSA cipher suites. For better performance with ECDHE, you can use certificates that use Elliptic Curve Digital Signature Algorithm (ECDSA). See also Forward Secrecy Performance for more information.
エフェメラル ディフィー ヘルマン(DHE)
プラットフォーム | サポート レベル |
|---|---|
Linux | MongoDB でエフェメラル ディフィー ヘルマン(DHE)のサポートを有効にします。
|
Windows | エフェメラル ディフィー ヘルマン(DHE)は、Windows のネイティブ TLS/SSL ライブラリであるセキュア チャネル(Schannel)の使用によって暗黙的にサポートされています。 |
MacOS | エフェメラル ディフィー ヘルマン(DHE)は、macOS のネイティブ TLS/SSL ライブラリであるセキュア トランスポートの使用によって暗黙的にサポートされています。 |
注意
クライアントが DHE と暗号スイートをネゴシエートしても、サーバーが選択したパラメーターを受け入れることができない場合、TLS 接続は失敗します。
強いパラメーター(つまり、サイズが 1024 以上の場合)は、Oracle から延長サポートを購入しない限り、Java 6 および 7 ではサポートされていません。ただし、Java 7 は ECDHE を優先してサポートするため、利用可能であれば ECDHE をネゴシエートします。
DHE (および ECDHE)暗号スイートは静的 RSA 暗号スイートよりもパフォーマンスが遅く、DHE は ECDHE よりも大幅に遅くなります。 詳細については、「フォワード シークレシー パフォーマンス」を参照してください。
フォワード シークレシー パフォーマンス
DHE および ECDHE 暗号スイートは静的 RSA 暗号スイートよりも遅く、DHE は ECDHE よりも大幅に遅くなります。
ECDHE のパフォーマンスを向上させるには、楕円曲線デジタル署名アルゴリズム(ECDSA)を使用する証明書を使用できます。または、次の例(DHE も無効になります)のように、opensslCipherConfig パラメーターを使用して ECDHE 暗号スイートを無効にすることもできます。
mongod --setParameter opensslCipherConfig='HIGH:!EXPORT:!aNULL:!kECDHE:!ECDHE:!DHE:!kDHE@STRENGTH'
パフォーマンス上の理由で DHE 暗号スイートのサポートを無効にする必要がある場合は、次の例のように opensslCipherConfig パラメーターを使用できます。
mongod --setParameter opensslCipherConfig='HIGH:!EXPORT:!aNULL:!DHE:!kDHE@STRENGTH'
証明書
MongoDB で TLS を使用するには、TLS 証明書が必要です。詳細については、TLS サーバー証明書の取得 を参照してください。
証明書の有効期限の警告
mongodmongosX.509 証明書が30 mongod/mongosホスト システム時間から 日以内に期限切れになる場合、 / は接続時に警告を記録します。
OCSP(オンライン証明書ステータスプロトコル)
MongoDB 6 . 0以降では、最初の同期中にocspEnabledがtrueに設定されている場合、すべてのノードがOCSPレスポンダに到達できる必要があります。
ノードが STARTUP2 状態で失敗した場合、tlsOCSPVerifyTimeoutSecs を 5 未満の値に設定します。
証明書の失効を確認するために、MongoDB はデフォルトで OCSP(Online Certificate Status Protocol、オンライン証明書ステータス プロトコル)を有効(enables)にします。OCSP を使用すると、Certificate Revocation List (CRL) を定期的にダウンロードして、アップデートされた CRL を使って mongod や mongos を再起動する必要がなくなります。
注意
Let's Encrypt OCSP の廃止
Let's Encrypt has ended OCSP support for newer certificates. New certificates issued by Let's Encrypt might not include an OCSP responder URL. OCSP revocation checking occurs only when a certificate contains an OCSP URI, so a missing OCSP URL is expected and doesn't necessarily indicate a problem with your MongoDB deployment.
MongoDB は、OCSP サポートの一環として、Linux 上で以下をサポートします。
OCSP stapling. With OCSP stapling,
mongodandmongosinstances attach or "staple" the OCSP status response to their certificates when providing these certificates to clients during the TLS/SSL handshake. OCSP stapling removes the need for clients to make a separate request to retrieve the OCSP status of the provided certificate. The OCSP status response is included with the certificates.OCSP must-staple 拡張機能。OCSP must-staple は、サーバー証明書に追加できる拡張機能であり、TLS/SSL ハンドシェイク中にクライアントが証明書を受信するときに OCSP ステープリングを要求するように指示します。
MongoDB は、次の OCSP 関連のパラメーターも提供します。
Parameter | 説明 |
|---|---|
OCSP サポートを有効または無効にします。 | |
ステープリングされた OCSP ステータス応答をリフレッシュする前に待機する時間を秒単位で指定します。 | |
これらのパラメーターは、setParameter 構成ファイル設定または --setParameter コマンドライン オプションを使用してスタートアップに設定できます。
注意
MongoDB 5.0 以降では、rotateCertificates コマンドと db.rotateCertificates() メソッドによって、ステープリングされた OCSP 応答もリフレッシュされます。
FIPS モード
注意
エンタープライズ機能
MongoDB Enterprise でのみ使用できます。
連邦情報処理標準(FIPS)は、データを安全に暗号化および復号化するソフトウェア モジュールとライブラリを認証するために使用される米国政府のコンピューター セキュリティ標準です。MongoDB は、OpenSSL の FIPS 140-2 認定ライブラリを使用して実行するように構成できます。FIPS をデフォルトで実行するように構成するか、必要に応じてコマンド ラインから実行するように構成します。
例については、「MongoDB を FIPS 用に構成」を参照してください。