データベース - TLS 1.2 を介して MS SQL に接続
- Last Updated: November 21, 2024
- 12 minute read
- MOVEit Transfer
- Version 2024.1
- Version 2024
- Documentation
このセクションは、リモートで MS SQL Server を実行する場合や、性能の低いプロトコル (SSL 3.0、TLS 1.0-1.1など) で既存の MS SQL Server が稼働している場合に重要です。多くのデータセキュリティ標準 (DSS) (たとえば PCI 3.1 など) では、データのプライバシーと整合性を確保するために TLS 1.2 の使用を求めています。
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 上で実行されていることを確認するには、以下を行う必要があります。
- MOVEit Transfer を有効にして、ネイティブ SQL クライアントから TLS 1.2 を使用できるようにします。(これは MOVEit Transfer サーバーの設定を使用して行います。)
- TLS 1.2 を厳密に使用するために、MS SQL Server ホストを設定します。(注:該当する場合、これはリモート SQL Server を使用した他のアプリケーション/ミドルウェアに影響を及ぼす可能性があります。)
- 定期的な監視または設定監査を適用して、期待されるレベルの暗号サポートが操作中に確実に維持されるようにします (たとえば、SQL Active Monitor か、WhatsUp Gold の PowerShell モニタを使用します)。
手順の概要
TLS 1.2 接続上で SQL Server を実行するには、以下の手順を行います。
- MOVEit Transfer Server に変更を適用して、TLS 1.2 接続を有効にします。(エンドユーザークライアントが TLS 1.2 で接続することを必須にする前に、MOVEit Transfer Server で TLS 1.2 をサポートすることをお勧めします)。
- MOVEit Client に対して TLS 1.2 の使用を必須にします。MOVEit Transfer Configuration ユーティリティで TLS 1.2 を選択できます。この設定は、MOVEit Transfer Server で開始される TCP 接続で強制されます。
- MS SQL Server で TLS 1.2 を適用し、制限します。こうすることで、TLS 1.2 接続 (MOVEit Transfer との暗号化トランザクション) が強制されます。
- 変更内容を検証し、監視します。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 接続)。
- MS SQL Server を実行中の Windows Server で、Windows レジストリをバックアップします。(Microsoft サポートのバックアップとリストアの方法)
- Windows Server レジストリエディター (regedit) を起動します。
- 次のレジストリキーを見つけます。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL - TLS 1.2 を有効にし、これをデフォルトに設定します。Schannel プロトコルのサブキーを確認します。例:

ステップ 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 のデフォルト接続設定を構成します。
- SQL Server ネットワーク設定を構成して、暗号化を強制します。
Schannel の接続設定を構成します。
MS SQL Server には Windows Server が必要です。このサーバーは SSPI (Security Support Provider Interface) の一部として、デフォルトで Schannel Library (Schannel.dll) を使用します。これらの手順には、実行時設定として Schannel が想定するレジストリキー値を適用する方法の詳細が記載されています (TLS/SSL 接続)。
- MS SQL Server を実行中の Windows Server で、Windows レジストリをバックアップします。(Microsoft サポートのバックアップとリストアの方法)
- Windows Server レジストリエディター (regedit) を起動します。
- 次のレジストリキーを見つけます。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL - Schannel プロトコルのサブキーを確認します。例:
SCHANNEL\Protocols\TLS 1.2\ClientSCHANNEL\Protocols\TLS 1.2\ServerMS SQL ホストマシンで、DWORD DisabledByDefault エントリの値が "TLS 1.2\Server" サブキーに対してゼロ
(0x0)、つまり false に設定されており、TLS 1.2 がデフォルトで Schannel で使用されることが示されていることを確認します。TLS 1.2\Server\DisabledByDefaultサブキーの場合。
- TLS 1.2 以外のプロトコルバージョンのレジストリエントリ (TLS 1.1、TLS 1.1、SSL 2.0、 ...) は、
DisabledByDefault = 1およびEnabled = 0となるように設定してください。
SQL Server ネットワーク設定を構成して、暗号化を強制します (DB Server を再起動します)。
次に、リモートデータベースホストで SQL Server 設定マネージャーを開き、SQL クライアントが暗号化を使用して接続するように接続ポリシーを変更します。
Microsoft SQL Server 設定マネージャー (バージョン 2014 を表示)
MS SQL Server ホストマシンで以下を実行します。
- SQL Server 設定マネージャーを開きます。
- [SQL Server ネットワーク構成] を選択します。
- <my-sql-server-db> の [プロトコル] を選択し、[プロパティ] を選択します。
--ここで <my-sql-server-db> はお使いの Microsoft SQL Server DB サーバーの名前になります。
- [フラグ] タブと [暗号化を強制] ドロップダウンリストをクリックし、[はい] を選択して [適用] をクリックします。

[適用] をクリックすると、変更を有効にするにはデータベースサーバーの再起動が必要であることを再確認するポップアップダイアログが表示されます。
- 左画面で [SQL Server サービス] を選択し、[SQL Server (<my-sql-server-db>]) を右クリックして [再起動] を選択します。
ステップ 4:SQL クライアント (MOVEit Transfer Server 上で実行) とリモートの MS SQL Server との間のトラフィックを確認します。
最後のステップとして、MOVEit Transfer クライアントを使用して MOVEit Transfer Server との要求トラフィックを生成し、トランザクションをリモート MS SQL データベースに送信します。
- MOVEit Transfer クライアント (REST API、Web UI、MOVEit Client など) を開きます。
- MOVEit Transfer サーバーか、MOVEit Transfer サーバーと同じサブネット上のデスクトップに Wireshark をインストールします。
- Wireshark で、MS SQL Server の IP アドレスでフィルタ処理します。
ip.addr == <transfer-server-ip-address> - MOVEit Transfer クライアントを使用して、MOVEit Transfer Server が、ファイルのアップロードなど MS SQL Server データベースと接続することが必要になるアクションを実行します。
- 表示されたプレゼンテーション層プロトコルが TLS 1.2 であることを確認します。
MOVEit Transfer Server ホストと MS SQL Server 間の TDS 交換 (SQL クエリなど) に、TLS プロトコルデータユニット情報の TDS トラフィックが表示されます (SQL クエリとバッチクエリは読み取れません)。
nmap --script ssl-enum-ciphers -p 1433 <my-sql-server-host> では、TLS のバージョンが警告と一緒に返されます (該当する場合)。