リモートデスクトップの「CredSSP 暗号化オラクル~」エラーの対処法

AG_Exposed / Pixabay

こんにちは。不可思議絵の具です。

今まで普通に使えていたリモートデスクトップ(RDP接続)がある日突然、

  • CredSSP 暗号化オラクルの修復である可能性があります。
  • 認証エラーが発生しました。
    要求された関数はサポートされていません。
  • 認証エラーが発生しました。
    この関数に提供されたトークンは無効です。

などのエラーメッセージが表示されるようになり、接続できなくなってしまった方に向けて対処方法を解説します。

「うーん、なんか現象が違うな…」という方。こちらの記事はどうでしょうか?
Windows10のリモートデスクトップ(RDP接続)を許可したのに、接続できない。 そんな時は「ネットワークの場所」を【プライベートネットワーク】に変更すると繋がるようになるかもしれません。

ハッキリ言って、この問題に関する情報はMicrosoftによるこの記事↓

が一番正確かつ網羅されており、これさえ読めば一発なのですが、読んでも頭に入ってこない方、Microsoftの記事を読む前に予習しておきたい方に向けて

「要するに、何をしたら良いの?」

という点に重点を置いて説明します。

スポンサーリンク

原因

リモートデスクトップで使われているCredSSP(Credential Security Support Provider)という認証の仕組みに脆弱性が発見されました。

参照 CVE-2018-0886 | CredSSP のリモートでコードが実行される脆弱性 (Microsoft)

この脆弱性は2018年3月、4月、5月のWindows Updateにて段階的に対処されているのですが、リモートデスクトップの接続元(以下クライアント)・接続先(以下サーバー)の双方で歩調を揃えて更新しておかないと、接続が上手くいきません。

ありがちなパターンは、

クライアントは常にWindows Updateしていて最新になっているけれど、
サーバーはWindows Updateしていないので古いまま

というオチです。

説明は省きますが、2018年5月9日のゴールデン・ウイーク明けに問題が表面化するWindows Updateが公開されたため、休み明けに仕事を再開してアタフタしている方も居られるのではないでしょうか?

対処方法

スポンサーリンク

「じゃあ、どうしたら良いんだよ!?」という所ですが、4つ選択肢があります。

上からオススメの順になっています。

①サーバーを最新状態にする

一番確実なのは、サーバーをWindows Updateして最新状態にすることです。

理由の説明は省きますが、クライアント側が未パッチでも接続できるようになります。
(=クライアント側はパッチ当て不要)

個人管理のサーバーなら、真っ先に採るべき方法でしょう。

しかし、サーバーの再起動が必要で、初期状態から一気に更新するのはかなりリスキーです。

企業内のサーバーなら、二の足を踏みますよね。
(SEの嘆き「バックアップ機準備して、夜間作業かよ……ッたく!」)

②サーバーに特定のパッチを当てる

次に低リスクで少工数なのは、サーバーにCredSSPの修正パッチだけ当てることです。

理由の説明は省きますが、クライアント側が未パッチでも接続できるようになります。
(=クライアント側はパッチ当て不要)

下記ページの「影響を受ける製品」に、各Windowsバージョンに適用すべき修正パッチ(KB番号)の一覧がありますので、最適な物を選んでサーバーにインストールすれば良いです。

参照 CVE-2018-0886 | CredSSP のリモートでコードが実行される脆弱性 (Microsoft)

再起動が必要な場合がありますが(バージョンによる)、メンテされていない企業サーバーではこれが一番無難な対処方法でしょう。

③サーバーのセキュリティポリシーを緩める

次に筋が悪いですが少工数なのは、サーバーのセキュリティポリシーを緩めることです。

↑の記事の【4-3. リモート デスクトップ接続先 (サーバー) での回避策】を参考に、ローカルグループポリシーエディターで設定を変更します。

ただし、サーバーに脆弱性が残されたままになるのでオススメはしません。

関連記事 ローカルグループポリシーエディターを起動する方法(Windows10 Pro)

④クライアントのセキュリティポリシーを緩める

一番筋が悪く、全くオススメできないのは、クライアント側のセキュリティポリシーを緩めることです。

↑の記事の

【4-1. リモート デスクトップ接続元 (クライアント) での回避策 1】
【4-2. リモート デスクトップ接続元 (クライアント) での回避策 2】

を参考に、ローカルグループポリシーエディター又はREG ADDコマンドで設定を変更します。
(HOMEエディションにはポリシーエディターが無いのでREG ADDコマンドで対処)

関連記事 ローカルグループポリシーエディターを起動する方法(Windows10 Pro)

しかし、以下の観点から全くオススメしません

  1. サーバーに脆弱性が残されたまま
  2. クライアントが大量だと作業が大変
    今後増えるクライアントにも都度設定してゆく必要がある
  3. いずれポリシー設定は元に戻すべきだが、絶対戻し忘れる

サーバーを絶対に弄りたくない、Active Directory導入済みでスクリプト配布が苦にならない……こういった強い理由が無ければ採るべきではないでしょう。

あくまで、個人が「とりあえず問題回避」するのには良いとは思いますが……。

まとめ

以上、リモートデスクトップがある日突然「CredSSP 暗号化オラクル~」エラーで繋がらなくなった時の対処法でした。

一番良いのはサーバー・クライアント共に最新状態にしておくことですが、現場の事情で難しい場合もありますよね。

適宜、最適な方法をチョイスするための参考になればと思います。

では(^O^)/