Windows 10で脆弱な暗号を削除すると、発信RDPが破損します


16

TrustWaveの脆弱性スキャナーは、RDPを実行しているWindows 10マシンが原因でスキャンに失敗します。

Sweet32(CVE-2016-2183)として知られる64ビットのブロックサイズ(DESや3DESなど)の誕生日攻撃のブロック暗号アルゴリズム

注:RDP(リモートデスクトッププロトコル)を実行しているWindows 7/10システムでは、無効にする必要がある脆弱な暗号には「TLS_RSA_WITH_3DES_EDE_CBC_SHA」というラベルが付いています。

IIS Crypto(Nartac)を使用して、「ベストプラクティス」テンプレートとPCI 3.1テンプレートを適用しようとしましたが、どちらにも安全でない暗号(TLS_RSA_WITH_3DES_EDE_CBC_SHA)が含まれています。

CipherScreen

この暗号を無効にするとこのコンピューターから多くのWindowsステーションへのRDP が機能しなくなります(一部の2008 R2および2012 R2サーバーでも機能します)。RDPクライアントは、単に「内部エラーが発生しました」とイベントログを提供します。

TLSクライアント資格情報の作成中に致命的なエラーが発生しました。内部エラー状態は10013です。

いずれかのサーバーのサーバーイベントログを確認し、これら2つのメッセージを確認しました

リモートクライアントアプリケーションからTLS 1.2接続要求を受信しましたが、クライアントアプリケーションでサポートされている暗号スイートはいずれもサーバーでサポートされていません。SSL接続要求が失敗しました。

次の致命的なアラートが生成されました:40。内部エラー状態は1205です。

発信RDPを中断せずにセキュリティの脆弱性を修正するにはどうすればよいですか?

または、上記が不可能な場合、各RDPホストで実行できることはありますか?

--- 更新#1 ---

Windows 10マシンでTLS_RSA_WITH_3DES_EDE_CBC_SHAを無効にした後、複数のRDPホストに接続しようとしました(それらの半分は「内部エラー...」で失敗しました)。そこで、接続できるホストの1つと接続できないホストの1つを比較しました。両方とも2008 R2です。両方に同じRDPバージョンがあります(6.3.9600、RDPプロトコル8.1がサポートされています)。

テンプレートファイルを比較できるように、IIS Cryptoを使用して現在の設定で「テンプレートの保存」を行うことにより、TLSプロトコルと暗号を比較しました。それらは同一でした!したがって、問題が何であれ、ホスト上の欠けているスイートの問題ではないようです。以下は、Beyond Compareのファイルのスクリーンショットです。

暗号比較

この問題の原因となる2つのRDPホストとその修正方法の違いは何ですか?


NetMonまたはWiresharkを使用してクライアントhello / server helloをキャプチャし、接続が成功したときと失敗したときで実際にネゴシエートされている暗号スイートを確認できますか?
ライアンリース

@RyanRies:すでにやりましたが、実際のTLSハンドシェイクに到達することはありません。クライアントは「TPKT、継続」パッケージを送信し、サーバーは「RST、ACK」で応答します。
ゼック

回答:


3

IIS Cryptoには、サーバー側(着信)とクライアント側(発信)の両方のオプションを設定するオプションがあります。互換性のために、クライアント側で有効にしておく必要がある暗号がいくつかあります。

あなたが望むことをするために、私は個人的に次のように行きます:

  • 3.1テンプレートを適用
  • すべての暗号スイートを有効のままにします
  • クライアントとサーバーの両方に適用します(チェックボックスをオンにします)。
  • 「適用」をクリックして変更を保存します

必要に応じてここで再起動します(マシンに物理的にアクセスできます)。

  • 3.1テンプレートを適用
  • すべての暗号スイートを有効のままにします
  • サーバーに適用します(チェックボックスはオフ)。
  • 3DESオプションのチェックを外します

ここで再起動すると、正しい終了状態になります。

事実上、3DESインバウンドのみを無効にし、上記の暗号スイートのアウトバウンド使用を許可します。


それは有望に思えます!しかし、3DES 168を無効にするのは間違いだったようです。もう接続できません。これが処理されたら、サーバー側でのみ暗号化を無効にして、回答を報告/受理します。
ゼック

1)「ベストプラクティス」を適用し、サーバーとクライアントの両方に適用してから、2)TLS_RSA_WITH_3DES_EDE_CBC_SHA暗号と「クライアント側プロトコルの設定」のチェックを外して、再度適用してから、もちろん再起動します。このマシンからのRDPingの問題は引き続き存在します。追加の提案を歓迎します。
ゼック

1
@Zek奇妙な...私はまったく同じ手法を使用して動作します。
ティムブリガム

@Zek私はそれを書いた方法に大きな間違いを犯したことに気付いた。それに応じて更新します。
ティムブリガム

これを試してみました。1)3.1テンプレートを選択し、すべての暗号スイートを現状のままにします+「クライアント側プロトコルの設定」を有効にします+ TLS 1.0を確認します(SQLなどはTLS 1.0なしで壊れます)+適用して再起動します。2)3.1テンプレートを選択し、すべての暗号スイートを現状のままにします+「クライアント側プロトコルの設定」をオフにします+ 3DESをオフにします+ TLS 1.0をチェックします+適用して再起動します。「内部エラーが発生しました」と接続できなくなりました(サーバーは3DESをサポートする必要があると思います)。Windows 10マシンから接続しています。
ゼック

1

同じ問題がありました。サーバーにKB3080079パッチをインストールすると、tls 1.1および1.2のサポートが有効になります。

Windows 7クライアントの場合、rdpクライアントアップデート(KB2830477)をインストールする必要があります。インストールしないと、Windows 8以降のみが接続できます。


1
ダブルチェックを行っただけで、それらの更新プログラムは既にインストールされています(既に標準のWindows更新プログラムに含まれていると思われます)ので、それは問題ではありません。
ゼック

1

編集(2018-09-26):2012R2で3DESを無効にしてもRDPが壊れないことを発見しましたが、2008 R2では壊れています。サポートされるオプションは、カーネル間で異なるようです。


TechNet スレッドからの回答を共有しますが、最初はBLUFです。

Serverfaultの結論:ほとんどの場合、システム間に他の違いがあります。異なるOSバージョン間で接続している場合、1つのシステムでFIPSが有効になっており、他のシステムでは有効になっていない、またはの下に異なる暗号制限がありHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphersます。使用中の暗号を判別するために機能するシステムで、SCHANNELロギングを確実に有効にします。どういうわけかRDPを別の暗号で動作させるようになったら、ぜひご連絡ください。

投稿のコピー:

動作するようになりました!

どうやら2008および2012には構文の問題があり、2008/7では末尾に/ 168が必要です。2012 / 8.1 / 10はサポートしていません。

2008年のキーは次のようになります。 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\Triple DES 168/168

2012年のキーは次のようになります。 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\Triple DES 168

「トリプルDES 168/168」を使用しても、システムで3DESが無効にならないことを確認できます。プロトコルスキャナー(Nessusなど)を使用するか、SCHANNELロギングを有効にすることで、これを自分で証明できます。

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL] "EventLogging"=dword:00000007

これにより、たとえばSYSTEMログにイベントが記録されます。

SSLクライアントのハンドシェイクが正常に完了しました。ネゴシエートされた暗号化パラメーターは次のとおりです。

プロトコル:TLS 1.0 CipherSuite:0x2f交換強度:1024

私にとっては、結果は0xaであり、これはTLS_RSA_WITH_3DES_EDE_CBC_SHAとしてGoogleが明らかにします。

「トリプルDES 168」(/ 168なし)を使用すると、システムイベントID 36880が表示されず、RDPセッションがブロックされます。

記事ごと:システム暗号化:暗号化、ハッシュ、および署名にFIPS準拠のアルゴリズムを使用する

リモートデスクトップサービス(RDS)リモートデスクトップサービスネットワーク通信を暗号化するために、このポリシー設定はトリプルDES暗号化アルゴリズムのみをサポートします。

記事ごと:「システム暗号化:暗号化、ハッシュ、および署名にFIPS準拠のアルゴリズムを使用する」Windows XPおよびそれ以降のバージョンのWindowsのセキュリティ設定の影響

この設定は、Windows Server 2003およびそれ以降のバージョンのWindowsのターミナルサービスにも影響します。効果は、TLSがサーバー認証に使用されているかどうかによって異なります。

TLSがサーバー認証に使用されている場合、この設定によりTLS 1.0のみが使用されます。

既定では、TLSが使用されておらず、クライアントまたはサーバーでこの設定が有効になっていない場合、サーバーとクライアント間のリモートデスクトッププロトコル(RDP)チャネルは、128ビットのRC4アルゴリズムを使用して暗号化されますキーの長さ。Windows Server 2003ベースのコンピューターでこの設定を有効にすると、次のことが当てはまります。RDPチャネルは、168ビットキー長の暗号ブロックチェーン(CBC)モードで3DESアルゴリズムを使用して暗号化されます。SHA-1アルゴリズムは、メッセージダイジェストの作成に使用されます。クライアントは、RDP 5.2クライアントプログラムまたはそれ以降のバージョンを使用して接続する必要があります。

したがって、これらは両方とも、RDPは3DESのみを利用できるという考えをサポートしています。ただし、この記事では、より広い範囲の暗号が利用可能であることを示唆しています。FIPS140検証

リモートデスクトッププロトコル(RDP)サーバーが使用する一連の暗号化アルゴリズムのスコープは次のとおりです。-CALG_RSA_KEYX-RSA公開キー交換アルゴリズム-CALG_3DES-トリプルDES暗号化アルゴリズム-CALG_AES_128-128ビットAES-CALG_AES_256-256ビットAES-CALG_SHA1- SHAハッシュアルゴリズム-CALG_SHA_256-256ビットSHAハッシュアルゴリズム-CALG_SHA_384-384ビットSHAハッシュアルゴリズム-CALG_SHA_512-512ビットSHAハッシュアルゴリズム

最終的に、FIPSモードが有効になっているときにRDPが非3DESプロトコルをサポートできるかどうかは明確ではありませんが、証拠ではサポートされていないことが示唆されます。

Server 2012 R2がServer 2008 R2と異なる機能を発揮するという証拠はありませんが、Server 2008 R2はFIPS 140-1準拠に基づいており、Server 2012 R2はFIPS 140-2に準拠しているため、Server 2012 R2が完全にサポートされる可能性があります追加のプロトコル。FIPS 140検証リンクの追加プロトコルに注意してください。

結論として、 Server 2008 R2は、3DESを無効にしたFIPSモードでRDPをサポートできないと思います。私の推奨事項は、システムがSWEET32攻撃の条件を満たしているか(1回のセッションで768GBを超える送信)、3DESを無効にすることでRDP機能を削除する価値があるかどうかを確認することです。特に仮想化が非常に一般的に行われている世界では、RDP以外のサーバーを管理する他のユーティリティが存在します。


0

どうやら2008および2012には構文の問題があり、2008/7では末尾に/ 168が必要です。2012 / 8.1 / 10はサポートしていません。

2008のキーは次のようになります。HKEY_LOCAL_MACHINE\ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ Ciphers \ Triple DES 168/168

**一部のWindows 2008 R2ドメインコントローラーでまったく同じ問題が発生したことがわかりました。奇妙なことに、メンバーの2008R2サーバーは問題ないように思えます... 2012R2サーバーも正常に動作します。これらの古いDCをデコミュレートする必要があります:)


私のバージョンの2008R2設定では168、Windows 2012レジストリと同じ構文を追加する必要はなく、受け入れることができます。2008年のレジストリ設定がうまくいかなかった場合は
参考に
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.