Docs Menu
Docs Home
/
MongoDBマニュアル
/

TLS/SSL (トランスポート暗号化)

項目一覧

  • TLS/SSL
  • TLS/SSL 暗号
  • 証明書
  • 本人認証
  • FIPS モード

MongoDB は、MongoDB のすべてのネットワーク トラフィックを暗号化するために TLS/SSL(Transport Layer Security/Secure Sockets Layer)をサポートしています。TLS/SSL により、MongoDB ネットワーク トラフィックは対象のクライアントのみが読み取れるようになります。

MongoDB は、TLS 1.1 + が利用可能なシステムで TLS 1.0暗号化のサポートを無効にします。

MongoDB はネイティブ TLS/SSL OS ライブラリを使用します。

プラットフォーム
TLS/SSL ライブラリ
Windows
セキュア チャネル(Schannel)
Linux/BSD
OpenSSL
MacOS
セキュア トランスポート

MongoDB の TLS/SSL 暗号化では、すべての接続に対して鍵長が 128 ビット以上の強力な TLS/SSL 暗号のみを使用できます。

フォワード シークレシー暗号スイートは、サーバーの秘密キーで保護されているが送信されない一時的なセッション鍵を作成します。エフェメラル キーを使用すると、サーバーの秘密キーが侵害された場合でも、侵害されたキーで過去のセッションを復号化することはできません。

MongoDB は、エフェメラル ディフィー ヘルマン(DHE)アルゴリズムとエフェメラル楕円曲線ディフィー ヘルマン(ECDHE)アルゴリズムを使用するフォワード シークレシー暗号スイートをサポートしています。

プラットフォーム
サポート レベル
Linux

Linux プラットフォームの OpenSSL が自動曲線選択をサポートしている場合、MongoDB はエフェメラル楕円曲線ディフィー ヘルマン(ECDHE)のサポートを有効にします。

それ以外の場合、Linux プラットフォームの OpenSSL が自動曲線選択をサポートしていない場合、MongoDB では名前付き曲線として prime256v1を使用して ECDHE サポートの有効化が試行されます。

Windows
エフェメラル楕円曲線ディフィー ヘルマン(ECDHE)は、Windows のネイティブ TLS/SSL ライブラリであるセキュア チャネル(Schannel)の使用によって暗黙的にサポートされています。
MacOS
エフェメラル楕円曲線ディフィー ヘルマン(ECDHE)は、macOS のネイティブ TLS/SSL ライブラリであるセキュア トランスポートの使用によって暗黙的にサポートされています。

ECDHE 暗号スイートは静的 RSA 暗号スイートよりも動作が遅くなります。ECDHE のパフォーマンスを向上させるには、楕円曲線デジタル署名アルゴリズム(ECDSA)を使用する証明書を使用できます。詳細については、「フォワード シークレシー パフォーマンス」も参照してください

プラットフォーム
サポート レベル
Linux

MongoDB でエフェメラル ディフィー ヘルマン(DHE)のサポートを有効にします。

  • 起動時(ECDHE が有効か無効を問わず)に opensslDiffieHellmanParameters が設定されている場合。

  • それ以外の場合、opensslDiffieHellmanParameters パラメータが設定されていないが ECDHE が有効になっている場合、MongoDB はffdhe3072 RFC-7919 #appendix-A2 で定義されているように、 パラメータを使用して 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)を使用する証明書を使用できます。あるいは、次の例のように opensslCipherConfig パラメーターを使用して ECDHE 暗号スイートを無効にすることもできます(これによりDHEも無効になります)。

mongod --setParameter opensslCipherConfig='HIGH:!EXPORT:!aNULL:!kECDHE:!ECDHE:!DHE:!kDHE@STRENGTH'

パフォーマンス上の理由で DHE 暗号スイートのサポートを無効にする必要がある場合は、次の例のように opensslCipherConfig パラメーターを使用できます。

mongod --setParameter opensslCipherConfig='HIGH:!EXPORT:!aNULL:!DHE:!kDHE@STRENGTH'

MongoDB で TLS/SSL を使用するには、連結された証明書コンテナである PEM ファイルとして TLS/SSL 証明書が必要です。

MongoDB は認証局によって発行された有効な TLS/SSL 証明書、または自己署名の証明書を使用できます。本番環境で使用する場合、MongoDB の配置には、同一の認証局によって生成および署名された有効な証明書を使用する必要があります。独立した認証局を作成して維持することも、サードパーティの TLS ベンダーによって生成された証明書を使用することもできます。

信頼できる認証局によって署名された証明書を使用することで、MongoDB ドライバーはサーバーの身元を確認できるようになります。

例については、「クライアントの TLS/SSL 構成」を参照してください。

が x を表示した場合、 mongod / mongosは接続時に警告を記録します。 509証明書はmongod/mongosホスト システム時間から30日以内に期限切れになります。

証明書の失効を確認するために、MongoDB はデフォルトで OCSP(Online Certificate Status Protocol、オンライン証明書ステータス プロトコル)を有効(enables)にします。OCSP を使用すると、Certificate Revocation List (CRL) を定期的にダウンロードして、アップデートされた CRL を使って mongodmongos を再起動する必要がなくなります。

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 ステータス応答をリフレッシュする前に待機する時間を秒単位で指定します。
mongod / mongosインスタンスが証明書の OCSP ステータス応答を受信するまで待機する最大秒数を指定します。
クライアント証明書を検証するときに、 mongod / mongosが OCSP 応答を待機する最大秒数を指定します。

これらのパラメーターは、setParameter 構成ファイル設定または --setParameter コマンドライン オプションを使用してスタートアップに設定できます。

注意

MongoDB 5.0 以降では、rotateCertificates コマンドと db.rotateCertificates() メソッドによって、ステープリングされた OCSP 応答もリフレッシュされます。

TLS/SSL では、接続の暗号化に加えて、クライアント認証、およびレプリカセットおよびシャーディングされたクラスターのノードの内部認証の両方で、証明書を使用した認証が可能になります。

詳細については、以下を参照してください。

注意

エンタープライズ機能

MongoDB Enterprise でのみ使用できます。

連邦情報処理標準(FIPS)は、データを安全に暗号化および復号化するソフトウェア モジュールとライブラリを認証するために使用される米国政府のコンピューター セキュリティ標準です。MongoDB は、OpenSSL の FIPS 140-2 認定ライブラリを使用して実行するように構成できます。FIPS をデフォルトで実行するように構成するか、必要に応じてコマンド ラインから実行するように構成します。

例については、「MongoDB を FIPS 用に構成」を参照してください。

戻る

クライアントの認証