[廚餘回收] 遠端桌面連線:發生驗證錯誤,不支援要求的功能,這可能是因為 CredSSP 加密預示修復/加密 Oracle 補救措施。

小時候換新電腦都會感到興奮,覺得又有新玩具可以玩了,除了感受新硬體設備帶來的速度快感之外,還能體驗新作業系統帶來的新鮮感,有了一定的年紀之後,電腦變成工作用的工具,就只有希望它好好的不要出事,而且對於換新電腦也沒有什麼動力,因為習慣的軟體及配置,就要重新安裝跟設定,這幾天在替新電腦設定工作環境的時候,遇到了這個錯誤:

這個錯誤是在測試遠端桌面連線的時候跳出來的,在幾年前曾經遇過,當時解決之後想說應該不會再碰到了,沒想到又遇上了,寫一篇文章記錄一下。

會發生這個錯誤的原因是因為,Windows 的遠端桌面在之前有一個 CVE-2018-0886 CredSSP 遠端執行程式碼弱點,遠端連線的目標電腦沒有落實更新,導致來源電腦要進行更安全的連線時,造成錯誤。

一勞永逸的方法其實是去把更新裝一裝,但是世界上不信邪的人還是很多,也有可能機器不是我們管理的,或者是其他的限制導致沒有安裝更新,應急的替代方案就是我們在來源電腦的「本機群組原則編輯器」裡面,去把關於「加密預示修復」的設定給啟用。

我們在「執行」的視窗,輸入 gpedit.msc

接著進入到「電腦設定」->「系統管理範本」->「系統」->「認證妥派」底下,有一個「加密預示修復」設為「已啟用」。

這樣子雖然暫時可以進行遠端桌面連線,但是目標電腦也處於容易受到攻擊的狀態,我們應該還是要想辦法把安全更新裝一裝。

2022-05-17 更新

感謝網友王圓外在留言區的分享,如果我們無法使用 GUI 界面來設定的朋友,可以改用執行指令修改登錄檔的方式,指令如下:

reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters\ /v AllowEncryptionOracle /t REG_DWORD /d 2

reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle

相關資源

C# 指南
ASP.NET 教學
ASP.NET MVC 指引
Azure SQL Database 教學
SQL Server 教學
Xamarin.Forms 教學