web-dev-qa-db-ja.com

RDPを壊さずにTLS 1.0を無効にするにはどうすればよいですか?

私たちのクレジットカードプロセッサは最近、2016年6月30日以降、PCIに準拠するためにTLS 1.0を 無効にする必要があることを通知しました 。私はWindows Server 2008 R2マシンでTLS 1.0を無効にすることで事前対応を試みましたが、再起動直後はリモートデスクトッププロトコル(RDP)を介して完全に接続できないことがわかりました。いくつかの調査の結果、RDPはTLS 1.0のみをサポートしているようです( こちら または こちら を参照)、または少なくともその方法は明確ではありませんRDP over TLS 1.1またはTLS 1.2を有効にします。 RDPを壊さずにWindows Server 2008 R2でTLS 1.0を無効にする方法を誰かが知っていますか?マイクロソフトはRDP over TLS 1.1またはTLS 1.2のサポートを計画していますか?

注: RDPセキュリティレイヤーを使用するようにサーバーを構成する方法があるようです が、 ネットワークレベル認証を無効にします 、これはある悪を別の悪と交換するようなものです。

更新1:マイクロソフトは現在、この問題に対処しています。関連するサーバーの更新については、以下の 回答 を参照してください。

UPDATE 2:Microsoftは PCIのSQL Serverサポートに関するチュートリアルをリリースしましたDSS 3.1

49
Mike

マイクロソフトはこの問題に対するパッチをリリースしました2015年9月15日

https://support.Microsoft.com/en-us/kb/3080079 を参照してください

19
Eric Winn

TLS 1.0を無効にする必要があるPCI-DSS 3.1に準拠する必要があるため、私はこれを数日間検討してきました。

また、主要なセキュリティ問題であるRDPセキュリティレイヤーにフォールバックしたくありません。

ようやく、TLS 1.1とTLS 1.2がRDPでサポートされていることを確認するドキュメントを見つけることができました。このドキュメントは SChannel logging および RDPの非常に詳細な仕様 に隠されています。

Technetやその他のMicrosoftサイトにはメインストリームのドキュメントが完全に不足しています。

提供されたリンクからの関連する抜粋:

MSDNリンクから:

"RDP supports four External Security Protocols: TLS 1.0 ([RFC2246]) TLS 1.1 ([RFC4346])<39>, TLS 1.2 ([RFC5246])<40>"

RDP仕様PDFから:

"When Enhanced RDP Security is used, RDP traffic is no longer protected by using the techniques
described in section 5.3. Instead, all security operations (such as encryption and decryption, data
integrity checks, and Server Authentication) are implemented by one of the following External
Security Protocols:
TLS 1.0 (see [RFC2246])
TLS 1.1 (see [RFC4346])
TLS 1.2 (see [RFC5246])
CredSSP (see [MS-CSSP])"

"<39> Section 5.4.5: TLS 1.1 is not supported by Windows NT, Windows 2000 Server, Windows XP,
Windows Server 2003, Windows Vista and Windows Server 2008.
<40> Section 5.4.5:  TLS 1.2 is not supported by Windows NT, Windows 2000 Server, Windows XP,
Windows Server 2003, Windows Vista, and Windows Server 2008"

したがって、このドキュメントによると、Windows Server 2008 R2でTLS 1.1または1.2を使用できると結論付けます。

ただし、TLS 1.0が無効で、RDPセキュリティオプションがTLS 1.0を要求するように設定されている場合、Windows 7 RDPクライアント(バージョン6.3.9600)では動作しないことがテストで判明しています。

これはもちろん、2008R2でデフォルトでオフになっているTLS 1.1および1.2を有効にするだけでなく、偶然にも非常に便利な Nartac SoftwareのIIS暗号ツール を使用してこれを行っています。

この問題を確認するときは、SChannelロギングを有効にして、セッションが開いたときに何が起こっているかを詳しく確認すると便利です。

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\EventLoggingキーを5に変更して再起動することで、 SChannel logging を設定できます。

これが完了すると、RDP接続が確立されたときに使用されているTLSバージョンを示すSChannelイベントを観察できます。ログを有効にすると、RDPクライアントがTLS 1.0を無効にしてWindows 2008 R2で接続を確立しようとしたときに、SChannelエラーを確認できます。

A fatal error occurred while creating an SSL server credential. The internal error state is 10013.

Windows Server 2012および2012 R2でTLS 1.0を無効にすることもテストしました。これは、Windows 7 RDPクライアントを使用して完全に機能することを確認できます。 SChannelログエントリは、TLS 1.2が使用されていることを示しています。

An SSL server handshake completed successfully. The negotiated cryptographic parameters are as follows.

   Protocol: TLS 1.2
   CipherSuite: 0xC028
   Exchange strength: 256

これが明確化を求めている人に役立つことを願っています。

Windows Server 2008 R2でTLS 1.1およびTLS 1.2を介してRDPを機能させる方法を引き続き探します。

更新:2015-AUG-05

再現手順を含むマイクロソフトのサポートにより、RDPがServer 2008 R2で機能しない問題を提起しました。

数週間の逆方向および順方向転送の後、本日サポートチームから最終的に電話を受信しました。実際にそれを再現でき、これはバグとして分類されています。更新パッチがリリースされます。現時点では、これは2015年10月に予定されています。KB記事やその他の詳細情報が入り次第、この投稿に追加します。

Windows Server 2008 R2で立ち往生している人が、パッチがリリースされたら、2016年6月の締め切りまでに少なくともこれを解決できることを願っています。

更新:2015年9月19日

マイクロソフトはついにこれについてのKBサポート記事 ここ をリリースしました。問題なく動作することを確認できました。

16
CarlR

ドキュメントで推奨されているように、代わりにIPsecを使用します。「最初に強力に暗号化されたセッションを設定し(IPsecトンネルなど)、次にセキュアトンネル内でSSLを介してデータを送信します」

RDP用にTLSを構成するよりもこれを行う主な理由は、ファイアウォールポリシーのコンプライアンスの監査が容易であり(レジストリの変更の多くが準拠していることを証明する)、IPsecをWindowsで構成するのが非常に簡単であるためです。

完全なスイートBコンプライアンスが必要な場合は、tls 1.0を使用したIPSECが、適切な証明書の長さに適用できる唯一の方法です。

8
Jim B

これは質問に対する回答ではなく、サブ質問「物理的なアクセスなしでTLS 1.0を無効にした仮想マシンへのリモートアクセスを復元するにはどうすればよいですか」に対する回答です。

IISCryptoを使用してTLS 1.0を無効にしました。これにより、RDPがTLSに設定されている場合にRDPが機能しなくなるという副作用についての有用な警告が表示されました。だから私はチェックインしました:

Admin Tools\Remote Desktop Services\Remote Desktop Session Host Configuration, RDP-Tcp, General Tab, Security Layer

セキュリティレベルは「交渉」に設定されていました。これは、TLSが利用できない場合、RDPセキュリティに正常に低下することを意味すると想定しました。

しかし、いいえ、Negotiateはそのようには機能しません。 TLS 1.0を無効にする前に、セキュリティレベルをネゴシエートではなくRDPセキュリティに設定する必要があります。

そのため、AWSインスタンスにリモート接続する機能を失いました!

再接続するには、別のAWSインスタンスを使用しました。

  1. SecurityGroupを更新して、そのマシンから「失われた」マシンへのファイアウォール接続を許可しました。
  2. 私はDOSで管理ネットワーク共有を開き、管理者ユーザーとパスワードを入力しました。

Net Use \\lost_machine_ip\c$

  1. 次に、Regeditを開き、[ファイル]メニューで[ネットワークレジストリに接続]を選択して、 "失われた"サーバーのIPを入力します。リモートサーバーレジストリが表示されます。に行く:

\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\

SecurityLayerの値を0に設定します(0はRDPセキュリティです)。

その後、リモート接続し、必要に応じてIISCryptoでTLS 1.0を再度有効にすることができます。

8
Thierry_S

Windows 7コンピューターとWindows Server 2008 R2サーバーにRDP 8.0をインストールしてから、ローカルコンピューターポリシーまたはグループポリシーでRDP 8.0を有効にする必要があります。

これは、RDP 8.0のMicrosoft KBです。 https://support.Microsoft.com/en-us/kb/2592687

これが完了すると、このTechnet記事の指示に従ってレジストリを編集することにより、コンピューターとサーバーでTLS 1.0を無効にできるようになります。 https://technet.Microsoft.com/en-us/library/dn786418.aspx

RDP 8.0をインストールした後、RDP 8.1もインストールできますが、RDP 8.1をインストールする前にRDP 8.0をインストールする必要があります。 RDP 8.0にはクライアント側とサーバー側の両方のプロトコルコンポーネントが含まれていますが、RDP 8.1にはクライアントのみが含まれています。 RDP 8.1のMicrosoft KBはKB2830477です。

私はWindows 7ワークステーションの1つでこれらの変更を行い、「リモート(RDP)接続には特定のセキュリティレイヤーの使用を要求する」グループポリシー設定を有効にし、「SSL(TLS 1.0)」に設定してRDP接続をテストしました。 RDP暗号化にフォールバックしません。

2015年6月19日更新:

ようやくWindows Server 2008 R2サーバーの1つでこれをテストする機会があり、サーバーへのRDP接続が確実に切断されます。 RDP 8.0サーバー側コンポーネントはWindows 7コンピューターにのみインストールされ、Windows Server 2008 R2サーバーにはインストールされないようです。

3
Kenny R

サーバー2012 R2のRemoteAppを中断せずにTLS 1.0を無効にする方法 ですが、そのリンクを監視していない可能性があるユーザーのために、ここに再投稿します。

ほぼ1年後、ようやく、RDPとリモートデスクトップサービスの接続を切断してRemoteAppを起動することなく、TLS 1.0/1.1を無効にするための実用的なソリューションを見つけました。

IISCryptoを実行し、TLS 1.0、TLS 1.1、およびすべての不正な暗号を無効にします。

ゲートウェイの役割を実行しているリモートデスクトップサービスサーバーで、ローカルセキュリティポリシーを開き、[セキュリティオプション-システム暗号化]に移動します。暗号化、ハッシュ、署名にFIPS準拠アルゴリズムを使用します。セキュリティ設定を変更します変更を有効にするために再起動します。

場合によっては(特にServer 2012 R2で自己署名証明書を使用する場合)、セキュリティポリシーオプションの[ネットワークセキュリティ:LAN Manager認証レベル]を[NTLMv2応答のみを送信する]に設定する必要がある場合があります。

3
cardiothoracics

他の誰かがそれに関する情報を探しているなら、これについての最新情報。私のWindows 7 64ビットボックスでは、KB2574819(最初)とKB2592687(2番目)をインストールする必要がありました。これらの2つのパッケージをインストールするには、Windows 7にSP1をインストールする必要があります。私のようにSP1のインストールに問題がある場合は、まずKB958830をアンインストールしてから、SP1をインストールする必要がありました。

私のWindows Server 2008 R2ボックスでは、KB3080079をインストールする必要がありました。これを行い、安全な通信のためのすべての適切な設定を行うと、TLS 1.2が使用されます。Wiresharkを使用して2つのボックス間の通信のキャプチャを実行することで確認できます。

2
Seth Dunn

既存の回答でカバーされていない1つのケース:RDPゲートウェイを介して接続するWindows 7クライアントは、ゲートウェイへの接続時に引き続きTLS 1.0を使用し、ゲートウェイがTLS 1.0をサポートしていない場合、適用後も失敗します KB3080079このTechNetフォーラムスレッドで確認

RDPゲートウェイ経由の接続にTLS 1.2を使用するには、 KB3140245 がインストールされていることを確認し、次のレジストリキーを追加します(.reg拡張子のファイルに保存してインポートします)。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp]
"DefaultSecureProtocols"=dword:00000800

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp]
"DefaultSecureProtocols"=dword:00000800

KB3140245 に記載されているように、これはWINHTTP_OPTION_SECURE_PROTOCOLSをオーバーライドして、デフォルトでTLS 1.2(およびTLS 1.2のみ)を使用します。したがって、RDPクライアントだけでなく、それ以上の影響があることに注意してください。

(注:下位互換性が必要な場合は、dword:00000800dword:00000A00またはdword:00000A80に変更して、それぞれTLS 1.1および1.0を含めることができます)

0
Kevinoid

Linuxでこの問題を回避するためにrdesktop( http://www.rdesktop.org )を正常に使用しました。

0
Steven B