Credssp 認証で、共通プロトコル バージョンのネゴシエーションが失敗しました。

2018/5/16 ネットワーク, パソコン

  • LINE!

こんにちは。雪坊主です。

2018年5月のWindows Update適用後、次のようなエラーが出てリモートデスクトップが出来ないという事例があったので対処法を説明します。

Credssp 認証で、共通プロトコル バージョンのネゴシエーションが失敗しました。

認証エラーが発生しました。
要求された関数はサポートされていません。
原因はCredSSP 暗号化オラクルの修復である可能性があります。
詳細については、https://go.microsoft.com/fwlink/?linkid=866660 を参照してください

目次

  • 1 対処法
    • 1.1 ローカルグループポリシーを変更する
    • 1.2 サーバー側に更新プログラムを適用する
  • 2 そもそも原因は何?
  • 3 最後に

対処法

ローカルグループポリシーを変更する

グループポリシーを変更し一時的にセキュリティレベルを下げて接続する方法です。

セキュリティレベルが下がってしまうので根本的な原因が解決出来たら必ず元に戻しましょう!

Win+Rを押して、「ファイル名を指定して実行」を起動しましょう。

Credssp 認証で、共通プロトコル バージョンのネゴシエーションが失敗しました。

名前欄に「gpedit.msc」と入力してEnterを押してください。

「ローカルグループポリシーエディター」が起動するのでそこから

「コンピューターの構成>システム>資格情報の委任」と順番に辿り、「暗号化オラクルの修復」をダブルクリックして下さい。

そこで次の2箇所を変更しOKを押してて下さい

Credssp 認証で、共通プロトコル バージョンのネゴシエーションが失敗しました。

構成:有効
保護レベル:脆弱

これでリモートデスクトップが接続出来るようになったかと思います。

サーバー側に更新プログラムを適用する

根本的な原因としてサーバー側(リモートデスクトップをされる側)のセキュリティが低い(更新プログラムを適用していない)こので今回のエラーが起きているので、サーバー側にも更新プログラムを適用しましょう。

難しい場合はとりあえず前述のグループポリシーを変更する方法でしのぎ、後からサーバー側の更新を忘れずに行いましょう。

※サーバーへ更新プログラムを適用後、忘れずにグループポリシーを元の設定に戻しましょう!

そもそも原因は何?

5月の更新プログラムにて、セキュリティレベルが上がったのが原因だそうです。

既に5月の更新プログラムが適用された端末から、まだ更新プログラムが適用されていないサーバー等に接続する時にこのエラーが出るようです。

端末のWindows Updateは頻繁に行うけど、サーバーのWindows Updateはあまり行っていないという方が多いということですね。

弊社でも完全に同じ状態で、更新プログラムが適用された端末が軒並み同じエラーでリモートデスクトップがつながらなくなりました。

最後に

Windows10では更新が強制的に適用されてしまうので、特に企業でのWindows10はWSUSの導入は必須ですね。

そのうちWSUSについても書いていこうと思います。

最後まで読んでいただき、ありがとうございました!

2018-05-12

5月9日のWindows Update後、一部のサーバーにリモートデスクトップでアクセスできなくなった。

 

Credssp 認証で、共通プロトコル バージョンのネゴシエーションが失敗しました。

認証エラーが発生しました。
要求された関数はサポートされていません

リモート コンピューター: <コンピュータ名>
原因は CredSSP 暗号化オラクルの修復である可能性があります。
詳細については、https://go.microsoft.com/fwlink/?linkid=866660 を参照してください

原因

CredSSPという認証プロトコルの脆弱性対策で、クライアント側に2018年5月9日公開のWindows Updateのパッチが適用されると、セキュリティの要求レベルがあがるため。3月にリリースされたパッチがサーバー側で未適用の場合、リモートデスクトップ接続ができなくなる。

解決方法

1. サーバーとクライアントのWindows Updateを両方最新にする

これが一番理想。少なくともサーバー側に2018年3月の更新プログラムが適用されていればよい。
 

2. ローカルセキュリティポリシーで回避

クライアント側で下記の設定を行うことでも回避できる。しかし、セキュリティリスクは高まるので注意。

ローカルグループポリシー エディター(gpedit.msc)で、次の設定を行う。

[コンピューターの構成]
- [管理用テンプレート]
- [システム]
- [資格情報の委任]
- [暗号化オラクルの修復] を開く
→「有効」にチェックを入れて「保護レベル : 脆弱」にして「適用」

Credssp 認証で、共通プロトコル バージョンのネゴシエーションが失敗しました。

Credssp 認証で、共通プロトコル バージョンのネゴシエーションが失敗しました。

3. レジストリ変更で回避

これもクライアント側で下記の設定を行うことでも回避できる。
セキュリティリスクは高まるのは2と同じ。
クライアント側で下記レジストリもしくは REG ADD コマンドで追加する。

●レジストリ
レジストリパス : HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters
値 : AllowEncryptionOracle
データの種類 : DWORD
値 : 2

●コマンド
REG ADD HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters /v AllowEncryptionOracle /t REG_DWORD /d 2

※ レジストリ変更後に再起動は必要なし。

 
他にも、リモートデスクトップ接続先で NLA (Network Level Authentication) を強制しないようにすることで接続可能となる方法もあるが、Microsoftが推奨していないので割愛。

参考

2018 年 5 月の更新プログラム適用によるリモート デスクトップ接続への影響


暗号化オラクルの修復の英語は?

なお、「暗号化オラクルの修復/Encryption Oracle Remediation」という名称は、CVE-2018-0886の脆弱性に由来するものだとは思いますが、詳しいところは分かりません。

CredSSPの脆弱性は?

パッチが適用されていないバージョンの CredSSP にリモートでコードが実行される脆弱性が存在します。 この脆弱性の悪用に成功した攻撃者は、ユーザーの資格情報を中継し、標的のシステムでコードを実行する可能があります。 認証のために CredSSP に依存しているアプリケーションは、このような攻撃に対して脆弱です。