Previous Topic

Next Topic

Book Contents

Book Index

データベース - TLS 1.2 を介して MS SQL に接続

このセクションは、リモートで MS SQL Server を実行する場合や、性能の低いプロトコル (SSL 3.0、TLS 1.0-1.1など) で既存の MS SQL Server が稼働している場合に重要です。多くのデータセキュリティ標準 (DSS) (たとえば PCI 3.1 など) では、データのプライバシーと整合性を確保するために TLS 1.2 の使用を求めています。

important 始める前の注意事項以下の手順には、MOVEit Transfer の外部でユーザーまたは MS SQL 管理者が実行する手順が含まれています。Ipswitch では、Microsoft またはその他のサードパーティベンダーに由来するドキュメント、オンラインリソース、ホストされているソフトウェアに対する変更について責任を負わないものとします。以下のドキュメントは、MOVEit Transfer の本リリースの時点で正確です。

Why TLS 1.2 を使用する理由

PCI 3.1 には、後方互換性や「フォールバック」接続のないエンドツーエンドの TLS 1.2 が必要です。たとえば、サーバーで SSL/TLS バージョンの範囲がサポートされており、クライアントが TLS 1.2 より安全性の低い旧バージョンのプロトコルで実行されている場合、クライアントとサーバー間の「フォールバック」接続をネゴシエートする必要があります。

MS SQL Server など、MOVEit Transfer Server とはホストが異なるデータベースサーバーを実行している場合、MS SQL Server で適切なレベルのセキュリティがトランザクションに適用されていることを確認する必要があります。

MS SQL Server での MOVEit Transfer データベーストランザクションが、TLS 1.2 上で実行されていることを確認するには、以下を行う必要があります。

手順の概要

TLS 1.2 接続上で SQL Server を実行するには、以下の手順を行います。

注: これらの変更に伴う、セキュリティと可用性のトレードオフ、タイミング、影響を常に考慮してください。厳しいエンドポイントセキュリティポリシーを適用すると、準拠していない、または仕様を満たさないクライアントへの接続が拒否される可能性があります。

  1. MOVEit Transfer Server に変更を適用して、TLS 1.2 接続を有効にします。(エンドユーザークライアントが TLS 1.2 で接続することを必須にするに、MOVEit Transfer Server で TLS 1.2 をサポートすることをお勧めします)。
  2. MOVEit Client に対して TLS 1.2 の使用を必須にします。MOVEit Transfer Configuration ユーティリティで TLS 1.2 を選択できます。この設定は、MOVEit Transfer Server で開始される TCP 接続で強制されます。
  3. MS SQL Server で TLS 1.2 を適用し、制限します。こうすることで、TLS 1.2 接続 (MOVEit Transfer との暗号化トランザクション) が強制されます。
  4. 変更内容を検証し、監視します。Nmap などポートスキャナーや、Wireshark などのトラフィックキャプチャツールを使用して暗号が使用されていることを確認することをお勧めします。WhatsUp Gold などのツールを使用すると定期的に監視できます。

    リモート MS SQL Server を使用して設定された MOVEit Transfer

ステップ 1: MOVEit Transfer Server で TLS 1.2 を有効にします。

以下の方法を使用すると、MOVEit Transfer Server で TLS 1.2 を使用して、リモート MS SQL Server に (SQL クライアントで) 接続することができます。これは制限措置ではありません。(この設定を最初に適用することで、ステップ 3 -- MS SQL Server ホストで通信を制限した後でも確実に接続できるようになります)。

MOVEit Transfer Server には Windows Server が必要です。このサーバーは SSPI (Security Support Provider Interface) の一部として、デフォルトで Schannel Library (Schannel.dll) を使用します。これらの手順には、実行時設定として Schannel が想定するレジストリキー値を適用する方法の詳細が記載されています (TLS/SSL 接続)。

  1. MS SQL Server を実行中の Windows Server で、Windows レジストリをバックアップします。(Microsoft サポートのバックアップとリストアの方法)
  2. Windows Server レジストリエディター (regedit) を起動します。
  3. 次のレジストリキーを見つけます。

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

  4. TLS 1.2 を有効にし、これをデフォルトに設定します。Schannel プロトコルのサブキーを確認します。例を次に示します。

    Subkeys

ステップ 2: MOVEit エンドユーザークライアントに対して TLS 1.2 の使用を必須にします。

TLS 1.2 で HTTPS と FTPS を使用するように MOVEit エンドユーザークライアント接続を制限するには、MOVEit Transfer Configuration ユーティリティを使用します。TLS 1.2 が有効になっていることを確認しますが、性能の低いプロトコルは選択を解除することができます (MOVEit Transfer Configuration ユーティリティは、MOVEit Transfer Server ホスト上で実行されます)。

ステップ 3: MS SQL Server およびホストで TLS 1.2 を有効にし、強制します。

Schannel の接続設定を構成します。

MS SQL Server には Windows Server が必要です。このサーバーは SSPI (Security Support Provider Interface) の一部として、デフォルトで Schannel Library (Schannel.dll) を使用します。これらの手順には、実行時設定として Schannel が想定するレジストリキー値を適用する方法の詳細が記載されています (TLS/SSL 接続)。

  1. MS SQL Server を実行中の Windows Server で、Windows レジストリをバックアップします。(Microsoft サポートのバックアップとリストアの方法)
  2. Windows Server レジストリエディター (regedit) を起動します。
  3. 次のレジストリキーを見つけます。

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

  4. Schannel プロトコルのサブキーを確認します。例を次に示します。

    MS SQL ホストマシンで、DWORD DisabledByDefault エントリの値が "TLS 1.2\Server" サブキーに対してゼロ (0x0)、つまり false に設定されており、TLS 1.2 がデフォルトで Schannel で使用されることが示されていることを確認します。TLS 1.2\Server\DisabledByDefault サブキーの場合。

  5. TLS 1.2 以外のプロトコルバージョンのレジストリエントリ (TLS 1.1、TLS 1.1、SSL 2.0、 ...) は、DisabledByDefault = 1 および Enabled = 0 となるように設定してください。

    注: 特定範囲の SSL プロトコルが MS SQL Server ホストで有効になっている場合、一方の暗号化された接続で再度ネゴシエートやダウングレードができるほか、接続単位でクライアントホスト上で実行されている性能の低いプロトコルに合わせて調整することができます。この動作を防ぐためには、MS SQL サーバーホストで暗号化を必須にし、性能の低いセキュリティプロトコルの使用を明示的にデフォルトで false 状態にする必要があります。

    TransferTip TLS 1.2 を有効にするための詳細が記載された Microsoft KB 記事の全文はこちらからご覧いただけます。

SQL Server ネットワーク設定を構成して、暗号化を強制します (DB Server を再起動します)。

次に、リモートデータベースホストで SQL Server 設定マネージャーを開き、SQL クライアントが暗号化を使用して接続するように接続ポリシーを変更します。

Microsoft SQL Server 設定マネージャー (バージョン 2014 を表示)

SQLServerConfigManager

MS SQL Server ホストマシンで以下を実行します。

  1. SQL Server 設定マネージャーを開きます。
  2. [SQL Server ネットワーク構成] を選択します。
  3. <my-sql-server-db> [プロトコル] を選択し、[プロパティ] を選択します。

    --ここで <my-sql-server-db> はお使いの Microsoft SQL Server DB サーバーの名前になります。

  4. [フラグ] タブと [暗号化を強制] ドロップダウンリストをクリックし、[はい] を選択して [適用] をクリックします。

    ForceEncryption

    [適用] をクリックすると、変更を有効にするにはデータベースサーバーの再起動が必要であることを再確認するポップアップダイアログが表示されます。

  5. 左画面で [SQL Server サービス] を選択し、[SQL Server (<my-sql-server-db>]) を右クリックして [再起動] を選択します。

ステップ 4:SQL クライアント (MOVEit Transfer Server 上で実行) とリモートの MS SQL Server との間のトラフィックを確認します。

最後のステップとして、MOVEit Transfer クライアントを使用して MOVEit Transfer Server との要求トラフィックを生成し、トランザクションをリモート MS SQL データベースに送信します。

  1. MOVEit Transfer クライアント (REST API、Web UI、MOVEit Client など) を開きます。
  2. MOVEit Transfer サーバーか、MOVEit Transfer サーバーと同じサブネット上のデスクトップに Wireshark をインストールします。
  3. Wireshark で、MS SQL Server の IP アドレスでフィルタ処理します。

    ip.addr == <transfer-server-ip-address>

  4. MOVEit Transfer クライアントを使用して、MOVEit Transfer Server が、ファイルのアップロードなど MS SQL Server データベースと接続することが必要になるアクションを実行します。
  5. 表示されたプレゼンテーション層プロトコルが TLS 1.2 であることを確認します。

    MOVEit Transfer Server ホストと MS SQL Server 間の TDS 交換 (SQL クエリなど) に、TLS プロトコルデータユニット情報の TDS トラフィックが表示されます (SQL クエリとバッチクエリは読み取れません)。

    TransferTip TDS トラフィックが TLS で暗号化されていることを確認したら、MS SQL Server ホストで使用できる暗号が厳密に TLS バージョン 1.2 であることを確認します。これは Nmap などのポートスキャナーを使用して行うことができます。たとえば、コマンド: nmap --script ssl-enum-ciphers -p 1433 <my-sql-server-host> では、TLS のバージョンが警告と一緒に返されます (該当する場合)。