หลังจากติดตั้งอัปเดตความปลอดภัยของ Windows ที่ออกหลังเดือนพฤษภาคม 2018 คุณอาจเจอข้อผิดพลาด CredSSP encryption oracle remediation ระหว่างการเชื่อมต่อ RDP ไปยังเซิร์ฟเวอร์หรือคอมพิวเตอร์ Windows ระยะไกลในกรณีต่อไปนี้:
- คุณกำลังพยายามเชื่อมต่อกับเดสก์ท็อประยะไกลของคอมพิวเตอร์ที่ติดตั้ง Windows เวอร์ชันเก่าไว้เมื่อเร็วๆ นี้ (เช่น Windows 10 RTM, หรือบิลด์ 1709 หรือเก่ากว่า, Windows Server 2012 R2, Windows Server 2016) ซึ่งไม่ได้ติดตั้งอัปเดตความปลอดภัยล่าสุดของ Windows;
- คุณกำลังพยายามเชื่อมต่อผ่าน RDP ไปยังคอมพิวเตอร์ที่ไม่ได้ติดตั้งอัปเดต Microsoft มานาน;
- คอมพิวเตอร์ระยะไกลบล็อกการเชื่อมต่อ RDP เนื่องจากอัปเดตความปลอดภัยที่จำเป็นขาดหายไปบนคอมพิวเตอร์ของคุณ
มาลองเข้าใจว่าข้อผิดพลาด RDP CredSSP encryption oracle remediation หมายถึงอะไรและวิธีแก้ไขอย่างไร
ดังนั้น เมื่อพยายามเชื่อมต่อกับ RemoteApp บนเซิร์ฟเวอร์ RDS ที่รัน Windows Server 2016/2012 R2/2008 R2, หรือเดสก์ท็อประยะไกลของผู้ใช้คนอื่นโดยใช้โปรโตคอล RDP (บน Windows 10, 8.1 หรือ 7) ข้อผิดพลาดจะปรากฏ:
Remote Desktop connection
An authentication error has occurred.
The function is not supported.
Remote Computer: hostname
This could be due to CredSSP encryption oracle remediation.

ข้อผิดพลาดนี้เกิดขึ้นเนื่องจากว่าอัปเดตความปลอดภัยของ Windows (อย่างน้อยตั้งแต่มีนาคม 2018) ไม่ได้ติดตั้งบนอินสแตนซ์ Windows ระยะไกลที่คุณพยายามเชื่อมต่อผ่าน RDP
ข้อผิดพลาดนี้อาจมีลักษณะดังนี้: An authentication error has occurred. The function requested is not supported.
ในเดือนมีนาคม 2018 Microsoft เปิดตัวอัปเดตที่บล็อกการดำเนินการโค้ดระยะไกลโดยใช้ช่องโหว่ในโปรโตคอล CredSSP (Credential Security Support Provider) (บุลเลติน CVE-2018-0886) ในเดือนพฤษภาคม 2018 อัปเดตเพิ่มเติมได้รับการเผยแพร่ ซึ่งตามค่าเริ่มต้นป้องกันไคลเอนต์ Windows จากการเชื่อมต่อกับเซิร์ฟเวอร์ RDP ระยะไกลที่มีเวอร์ชัน CredSSP ที่เปราะบาง (ไม่ได้รับการแก้ไข)
ดังนั้น หากคุณไม่ได้ติดตั้งอัปเดตความปลอดภัยสะสมบนเซิร์ฟเวอร์ RDS/RDP (คอมพิวเตอร์) ของคุณตั้งแต่มีนาคม 2018 และติดตั้งอัปเดตพฤษภาคม 2018 (หรือใหม่กว่า) บนไคลเอนต์ RDP แล้ว เมื่อคุณพยายามเชื่อมต่อกับเซิร์ฟเวอร์ RDS ที่มีเวอร์ชัน CredSSP ที่ไม่ได้รับการแก้ไข ข้อผิดพลาดจะปรากฏ: This could be due to CredSSP encryption oracle remediation
ข้อผิดพลาด RDP บนไคลเอนต์ปรากฏหลังจากติดตั้งอัปเดตความปลอดภัยต่อไปนี้:
- Windows 7 / Windows Server 2008 R2 — KB4103718
- Windows 8.1 / Windows Server 2012 R2 — KB4103725
- Windows Server 2016 — KB4103723
- Windows 10 1803 — KB4103721
- Windows 10 1709 — KB4103727
- Windows 10 1703 — KB4103731
- Windows 10 1609 — KB4103723
รายการนี้แสดงหมายเลข KB จากพฤษภาคม 2018 ณ ปัจจุบันคุณต้องดาวน์โหลดและติดตั้งแพ็กเกจอัปเดตสะสมล่าสุดสำหรับรุ่น Windows ของคุณ คุณสามารถรับอัปเดตความปลอดภัยล่าสุดผ่าน Windows Update จากเซิร์ฟเวอร์ Microsoft, จากเซิร์ฟเวอร์ WSUS ท้องถิ่น, หรือดาวน์โหลดไฟล์ hotfix *.msu ด้วยตนเองจาก Microsoft Update Catalog (https://www.catalog.update.microsoft.com/Home.aspx) ตัวอย่างเช่น เพื่อค้นหาอัปเดต สิงหาคม 2019 สำหรับ Windows 10 1803 คุณต้องใช้คำค้นหาต่อไปนี้: windows 10 1803 x64 8/*/2019 ดาวน์โหลดและติดตั้งอัปเดตสะสมของ Windows (ในตัวอย่างของผม คือ "2019-08 Cumulative Update for Windows 10 Version 1803 for x64-based Systems (KB4512509)"

เพื่อกู้คืนการเชื่อมต่อเดสก์ท็อประยะไกล คุณสามารถถอนการติดตั้งอัปเดตความปลอดภัยที่ระบุบนคอมพิวเตอร์ระยะไกล (แต่ ไม่แนะนำ และคุณไม่ควรทำเช่นนี้ มีโซลูชันที่ปลอดภัยและถูกต้องกว่า)
เพื่อแก้ไขปัญหาการเชื่อมต่อ คุณต้อง ชั่วคราว ปิดใช้งานการตรวจสอบเวอร์ชัน CredSSP บนคอมพิวเตอร์ที่คุณเชื่อมต่อผ่าน RDP สามารถทำได้โดยใช้ Local Group Policy editor
- รัน Local GPO editor: gpedit.msc;
- ไปที่ส่วน GPO Computer Configuration -> Administrative Templates -> System -> Credentials Delegation;

- ค้นหานโยบายชื่อ Encryption Oracle Remediation เปิดใช้นโยบายและตั้งค่าระดับการป้องกันเป็น Vulnerable;

- อัปเดตการตั้งค่านโยบายบนคอมพิวเตอร์ (รันคำสั่ง
gpupdate /force) และลองเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลผ่าน RDP ด้วยนโยบาย Oracle Remediation Encryption ตั้งค่าเป็น Vulnerable แอปพลิเคชันไคลเอนต์ที่รองรับ CredSSP จะสามารถเชื่อมต่อกับเอนด์พอยต์ RDS/RDP ที่ไม่ได้รับการแก้ไขได้
นโยบาย Encryption Oracle Remediation เสนอค่า 3 ค่าที่พร้อมใช้งานเพื่อป้องกันช่องโหว่ CredSSP:
- Force Updated Clients — ระดับการป้องกันสูงสุดเมื่อเซิร์ฟเวอร์ RDP บล็อกการเชื่อมต่อจากไคลเอนต์ที่ไม่ได้รับการแก้ไข ปกติแล้วนโยบายนี้ควรเปิดใช้งานหลังจากที่คุณอัปเดตโครงสร้างพื้นฐานทั้งหมดเสร็จสมบูรณ์และเพิ่มอัปเดตความปลอดภัยล่าสุดลงในอิมเมจการติดตั้ง Windows สำหรับเซิร์ฟเวอร์และเวิร์กสเตชัน;
- Mitigated — ในโหมดนี้ การเชื่อมต่อ RDP อาออกไปยังเซิร์ฟเวอร์ RDP ที่มีเวอร์ชัน CredSSP ที่เปราะบางถูกบล็อก อย่างไรก็ตาม บริการอื่นๆ ที่ใช้ CredSSP ทำงานได้ดี;
- Vulnerable — ระดับการป้องกันต่ำสุด เมื่ออนุญาตให้เชื่อมต่อกับเซิร์ฟเวอร์ RDP ที่มีเวอร์ชัน CredSSP ที่เปราะบาง
หากคุณไม่มี Local GPO editor (เช่นในรุ่น Windows Home) คุณสามารถเปลี่ยนแปลงรีจิสทรีโดยตรงซึ่งอนุญาตให้เชื่อมต่อ RDP กับเซิร์ฟเวอร์ที่มีเวอร์ชัน CredSSP ที่ไม่ได้รับการแก้ไข:
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters /v AllowEncryptionOracle /t REG_DWORD /d 2

คุณสามารถเปลี่ยนพารามิเตอร์รีจิสทรี AllowEncryptionOracle บนคอมพิวเตอร์หลายเครื่องใน AD โดยใช้ GPO โดเมน หรือด้วยสคริปต์ PowerShell ดังนี้ (คุณสามารถรับรายการคอมพิวเตอร์ในโดเมนโดยใช้ cmdlet Get-ADComputer จากโมดูล RSAT-AD-PowerShell):
$computers = (Get-ADComputer -Filter *).DNSHostName
Foreach ($computer in $computers) {
Invoke-Command -ComputerName $computer -ScriptBlock {
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters /v AllowEncryptionOracle /t REG_DWORD /d 2
}
}
หลังจากเชื่อมต่อกับเซิร์ฟเวอร์ RDP ระยะไกล (คอมพิวเตอร์) สำเร็จ คุณต้องติดตั้งอัปเดตความปลอดภัยล่าสุดผ่าน Windows Update (ตรวจสอบว่าบริการ wuauserv เปิดใช้งาน) หรือด้วยตนเอง ดาวน์โหลดและติดตั้งอัปเดตสะสม Windows ล่าสุดจากเว็บไซต์ Microsoft Update Catalog ตามที่แสดงด้านบน หากข้อผิดพลาด "The update is not applicable to your computer" ปรากฏเมื่อติดตั้งอัปเดต MSU อ่านบทความโดยใช้ลิงก์ด้านบน
สำหรับ Windows XP/Windows Server 2003 ที่ไม่ได้รับการสนับสนุนแล้ว คุณต้องติดตั้งอัปเดตสำหรับ Windows Embedded POSReady 2009 ตัวอย่างเช่น: https://support.microsoft.com/en-us/help/4056564
หลังจากติดตั้งอัปเดตและรีบูทเซิร์ฟเวอร์ อย่าลืมปิดใช้นโยบายบนไคลเอนต์ (สลับเป็น Force Updated Clients) หรือคืนค่าพารามิเตอร์รีจิสทรี AllowEncryptionOracle เป็น 0 ในกรณีนี้ คอมพิวเตอร์ของคุณจะไม่มีความเสี่ยงต่อการเชื่อมต่อกับโฮสต์ที่ไม่ได้รับการป้องกัน CredSSP และการใช้ประโยชน์จากช่องโหว่
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters /v AllowEncryptionOracle /t REG_DWORD /d 0
มีอีกสถานการณ์หนึ่งที่อัปเดตไม่ได้ติดตั้งบนคอมพิวเตอร์ของคุณ ตัวอย่างเช่น เซิร์ฟเวอร์ RDP ได้รับการอัปเดต แต่มีนโยบายที่บล็อกการเชื่อมต่อ RDP จากคอมพิวเตอร์ที่มีเวอร์ชัน CredSSP ที่เปราะบาง (การตั้งค่านโยบาย Force Updated Clients) ในกรณีนี้ คุณก็จะเห็นข้อผิดพลาดการเชื่อมต่อ RDP "This could be due to CredSSP encryption oracle remediation" เช่นกัน
ตรวจสอบวันที่ติดตั้งอัปเดต Windows ล่าสุดบนคอมพิวเตอร์ของคุณโดยใช้โมดูล PSWindowsUpdate หรือผ่านคำสั่ง WMI ในคอนโซล PowerShell:
gwmi win32_quickfixengineering |sort installedon -desc

ตัวอย่างนี้แสดงว่าอัปเดตความปลอดภัยล่าสุดของ Windows ถูกติดตั้งเมื่อวันที่ 17 มิถุนายน 2018 ดาวน์โหลดและติดตั้งไฟล์ MSU อัปเดตสะสมใหม่กว่าสำหรับรุ่น Windows ของคุณ (ดูด้านบน)