こんにちは。不可思議絵の具です。
今まで普通に使えていたリモートデスクトップ(RDP接続)がある日突然、
- CredSSP 暗号化オラクルの修復である可能性があります。
- 認証エラーが発生しました。
要求された関数はサポートされていません。 - 認証エラーが発生しました。
この関数に提供されたトークンは無効です。
などのエラーメッセージが表示されるようになり、接続できなくなってしまった方に向けて対処方法を解説します。
※ちなみに、本件の「暗号化オラクル」はOracle Databaseとは関係ありません。
「うーん、なんか現象が違うな…」という方。こちらの記事はどうでしょうか?
ハッキリ言って、この問題に関する情報はMicrosoftによる👇の記事
が一番正確かつ網羅されており、これさえ読めば一発なのですが、読んでも頭に入ってこない方、Microsoftの記事を読む前に予習しておきたい方に向けて
「要するに、何をしたら良いの?」
という点に重点を置いて説明します。
原因
リモートデスクトップで使われているCredSSP(Credential Security Support Provider)という認証の仕組みに脆弱性が発見されました。
この脆弱性は2018年3月、4月、5月のWindows Updateにて段階的に対処されているのですが、リモートデスクトップの接続元(以下クライアント)・接続先(以下サーバー)の双方で歩調を揃えて更新しておかないと、接続が上手くいきません。
ありがちなパターンは、
クライアントは常にWindows Updateしていて最新になっているけれど、
サーバーはWindows Updateしていないので古いまま
というオチです。
説明は省きますが、2018年5月9日のゴールデン・ウイーク明けに問題が表面化するWindows Updateが公開されたため、休み明けに仕事を再開してアタフタしている方も居られるのではないでしょうか?
対処方法
「じゃあ、どうしたら良いんだよ!?」という所ですが、4つ選択肢があります。
上からオススメの順になっています。
①サーバーを最新状態にする
一番確実なのは、サーバーをWindows Updateして最新状態にすることです。
理由の説明は省きますが、クライアント側が未パッチでも接続できるようになります。
(=クライアント側はパッチ当て不要)
個人管理のサーバーなら、真っ先に採るべき方法でしょう。
しかし、サーバーの再起動が必要で、今まで保守の都合上アップデートしていない場合、初期状態から一気に最新状態にするのは、かなりリスキーです。
企業内のサーバーなら、二の足を踏みますよね。
(SEの嘆き「バックアップ機準備して、夜間作業かよ……ッたく!」)
②サーバーに特定のパッチを当てる
次に低リスクで少工数なのは、サーバーにCredSSPの修正パッチだけ当てることです。
理由の説明は省きますが、クライアント側が未パッチでも接続できるようになります。
(=クライアント側はパッチ当て不要)
下記ページの「セキュリティ更新プログラム」に、各Windowsバージョンに適用すべき修正パッチ(KB番号)の一覧がありますので、最適な物を選んでサーバーにインストールすれば良いです。
(2022/02/12更新:Article欄がKB番号です)
再起動が必要な場合がありますが(バージョンによる)、メンテされていない企業サーバーではこれが一番無難な対処方法でしょう。
③サーバーのセキュリティポリシーを緩める
次に筋が悪いですが少工数なのは、サーバーのセキュリティポリシーを緩めることです。
👆の記事の【4-3. リモート デスクトップ接続先 (サーバー) での回避策】を参考に、ローカルグループポリシーエディターで設定を変更します。
ただし、サーバーに脆弱性が残されたままになるのでオススメはしません。
④クライアントのセキュリティポリシーを緩める
一番筋が悪く、全くオススメできないのは、クライアント側のセキュリティポリシーを緩めることです。
👆の記事の
【4-1. リモート デスクトップ接続元 (クライアント) での回避策 1】
【4-2. リモート デスクトップ接続元 (クライアント) での回避策 2】
を参考に、ローカルグループポリシーエディター又はREG ADDコマンドで設定を変更します。
(HOMEエディションにはポリシーエディターが無いのでREG ADDコマンドで対処)
しかし、以下の観点から全くオススメしません。
- サーバーに脆弱性が残されたまま
- クライアントが大量だと作業が大変
今後増えるクライアントにも都度設定してゆく必要がある - いずれポリシー設定は元に戻すべきだが、絶対戻し忘れる
サーバーを絶対に弄りたくない、Active Directory導入済みでスクリプト配布が苦にならない……こういった強い理由が無ければ採るべきではないでしょう。
あくまで、個人が「とりあえず問題回避」するのには良いとは思いますが……。
まとめ
以上、リモートデスクトップがある日突然「CredSSP 暗号化オラクル~」エラーで繋がらなくなった時の対処法でした。
一番良いのはサーバー・クライアント共に最新状態にしておくことですが、現場の事情で難しい場合もありますよね。
適宜、最適な方法をチョイスするための参考になればと思います。
では(^O^)/