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
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 暗号スイートは静的 RSA 暗号スイートよりも低速です。ECDHE のパフォーマンスを向上させるには、楕円曲線デジタル署名アルゴリズム(ECDSA)を使用する証明書を使用できます。詳細については、「フォワード シークレシー パフォーマンス」も参照してください。
エフェメラル ディフィー ヘルマン(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 は新しい証明書の OCSP サポートを終了しました。Let's Encrypt が発行した新しい証明書に OCSP 応答者 URL が含まれていない場合があります。OCSP 失効チェックは、証明書に OCSP URI が含まれている場合にのみ発生するため、OCSP URL がないことは予想され、MongoDB 配置に必ずしも問題があることを意味しません。
MongoDB は、OCSP サポートの一環として、Linux 上で以下をサポートします。
OCSP ステープリング。OCSP ステープリングを使用すると、
mongodインスタンスとmongosインスタンスは、TLS/SSL ハンドシェイク中にこれらの証明書をクライアントに提供するときに、証明書に OCSP ステータス応答を添付、つまり「ステープリング(ホチキス止め)」します。OCSP ステープリングにより、提供された証明書の OCSP ステータスを検索するためにクライアントが別のリクエストを行う必要がなくなります。OCSP ステータス応答は証明書に含まれています。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 用に構成」を参照してください。