اَبرِ دیجیتال، مرکز تخصصی ارائه سرویس های ابری، سرور مجازی/اختصاصی، هاست و دامنه

اَبرِ دیجیتال، مرکز تخصصی ارائه سرویس های ابری

دریافت مشاوره رایگان

7 روش حل خطای CredSSP Encryption در ریموت دسکتاپ

در ادامه یک راهنمای کامل، گام‌به‌گام و توضیحی دربارهٔ خطای CredSSP هنگام اتصال به سرور ویندوزی RDP (پیغام: “An authentication error has occurred. The function requested is not supported. Remote computer: This could be due to CredSSP encryption oracle remediation”) ارائه شده است. این راهنما شامل توضیح علت خطا، ریسک‌ها، سه روش رفع (سریع رجیستری با CMD، گرافیکی با Local Group Policy Editor، و راهکار سازمانی با GPO/PowerShell)، نکات پس از رفع، و دستورالعمل برگشت به وضعیت امن پس از به‌روزرسانی‌هاست.

 

هشدار امنیتی مختصر

 

– تغییر این تنظیمات برای بازگرداندن سازگاری (مقدار Vulnerable) آسیب‌پذیری MITM یا رلهٔ اعتبارنامه را افزایش می‌دهد. این روش‌ها موقتی و مناسب برای رفع سریع دسترسی‌اند؛ راه‌حل دائم نصب پچ‌های مایکروسافت و سپس اعمال حالت Force Updated (بالاترین امنیت) است.

 

1) چرا این خطا رخ می‌دهد — خلاصه فنی و مفهوم

 

– مشکل مربوط به آسیب‌پذیری CredSSP (CVE-2018-0886) است که مایکروسافت در به‌روزرسانی May 8, 2018 آن را اصلاح کرد. CredSSP مسئول انتقال امن فرآیند احراز هویت (Credential Delegation) است که در RDP برای فرستادن اعتبارنامه از کلاینت به سرور مجازی ایران استفاده می‌شود.

– بعد از پچ، ویندوزها قابلیت ارزیابی «سطح حفاظت» را اضافه کردند تا در برابر حملات نوع encryption oracle / MITM مقاومت کنند. اگر یکی از طرفین (کلاینت یا سرور) به‌روزرسانی شده باشد و طرف مقابل قدیمی، تنظیمات جدید جلوی تکمیل اتصال را می‌گیرند و خطای مذکور نمایش داده می‌شود.

– برای سازگاری موقت، می‌توان سطح protection را کاهش داد (Vulnerable) تا اتصال برقرار شود، ولی این باعث کاهش امنیت می‌شود.

 

 

2) پیغام خطا و موقع بروز

 

– پیغام معمول:

“An Authentication error has occurred. The function requested is not supported. Remote computer: This could be due to CredSSP encryption oracle remediation.”

– معمولاً پس از وارد کردن نام کاربری/پسورد یا هنگام شروع نشست RDP و پس از نصب پچ May 8, 2018 یا مشابه رخ می‌دهد.

 

3) سه حالت پالیسی و مقادیر رجیستری

 

– کلید رجیستری:

  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters

 

مقدار: AllowEncryptionOracle (DWORD)

– معادل‌ها:

– 0 = Force Updated (Require Updated Clients) — سخت‌گیرانه‌ترین، امن.

– 1 = Mitigated — حالت میانه.

– 2 = Vulnerable — حالت سازگار/ناامن (برای رفع سریع مشکلات سازگاری).

 

4) روش اول — سریع از طریق Command Prompt (حدود 30 ثانیه)

 

هدف: تنظیم مقدار رجیستری به Vulnerable (2) برای بازگرداندن سازگاری فوری.

 

گام‌ها:

1. منوی Start را باز کنید، cmd را تایپ کنید.

2. روی “Command Prompt” راست‌کلیک و “Run as administrator” را انتخاب کنید. (ضروری)

3. در پنجرهٔ CMD این دستور دقیقاً را پیست و Enter بزنید:

   REG ADD HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters\ /v AllowEncryptionOracle /t REG_DWORD /d 2 /f

 

(یا با انتهای /f برای اجبار بدون پرسش)

4. در صورت موفقیت پیام “The operation completed successfully.” را خواهید دید.

5. اتصال RDP را دوباره امتحان کنید.

 

توضیحات:

– این روش مقدار رجیستری را به 2 (Vulnerable) تغییر می‌دهد که سازگاری کامل را بازمی‌گرداند اما امنیت کمتری دارد.

– اگر پیام خطا ادامه داشت، سیستم را ری‌استارت کنید و دوباره تست کنید. همچنین اطمینان حاصل کنید که دستور با دسترسی ادمین اجرا شده است.

 

ریسک و توصیه:

– فقط موقت؛ پس از برطرف شدن نیاز فوری، به‌روزرسانی‌ها را نصب کنید و مقدار را به 0 یا 1 برگردانید.

 

5) روش دوم — گرافیکی با Local Group Policy Editor (بدون CMD)

 

مناسب برای Windows Pro/Enterprise (در Home پیش‌فرض gpedit.msc وجود ندارد مگر نصب شده باشد).

 

گام‌ها مرحله‌ای:

1. Win + R را فشار دهید، بنویسیدmsc و Enter بزنید.

2. در پنجرهٔ Local Group Policy Editor مسیر زیر را دنبال کنید:

   Computer Configuration → Administrative Templates → System → Credentials Delegation → Encryption Oracle Remediation

3. روی “Encryption Oracle Remediation” دوبار کلیک کنید تا پنجره تنظیمات باز شود.

4. گزینه “Enabled” را انتخاب کنید.

5. در قسمت “Protection Level” یک منوی کشویی وجود دارد؛ آن را روی “Vulnerable” قرار دهید.

6. روی Apply و سپس OK کلیک کنید.

7. (اختیاری) سیستم را ری‌استارت کنید یا از حساب خارج و دوباره وارد شوید. سپس اتصال RDP را آزمایش کنید.

 

توضیح:

– این کار معادل رجیستری AllowEncryptionOracle=2 است.

– اگر می‌خواهید حالت متوسط (Mitigated) را انتخاب کنید، Protection Level را روی Mitigated بگذارید (معادل 1). برای بیشترین امنیت، پس از اطمینان از به‌روزرسانی همه، Protection Level را روی Force Updated قرار دهید (معادل 0).

 

6) روش سوم — برای شبکه‌های سازمانی (GPO مرکزی + PowerShell/WSUS/SCCM)

 

برای سازمان‌ها توصیه می‌شود به‌روزرسانی‌ها را نصب و سپس از طریق GPO مرکزی وضعیت را مدیریت کنید.

 

گام‌های کلی عملیاتی:

A) توزیع پچ‌ها:

– از WSUS، SCCM یا Microsoft Update Catalog بسته‌های مربوط به CVE-2018-0886 را برای نسخهٔ ویندوزهای کلاینت و سرور پیدا و منتشر کنید.

– برنامه زمانی rollout تعریف کنید: محیط تست → گروه پایلوت → همه محیط.

– تایید نصب: با PowerShell یا ابزار مدیریت، لیست پچ‌ها را بررسی کنید.

 

B) اعمال GPO مرحله‌ای:

– در Domain Controller، یک GPO جدید بسازید یا یک GPO موجود را ویرایش کنید.

– آدرس در GPO ادیتور دامنه:

Computer Configuration → Administrative Templates → System → Credentials Delegation → Encryption Oracle Remediation

 

– برای rollout مرحله‌ای:

  1. ابتدا Protection Level = Vulnerable یا Mitigated را فقط برای یک OU تستی اعمال کنید.
  2. پس از تأیید سازگاری و نصب پچ‌ها، Protection Level را به Force Updated تغییر دهید و آن را به تمام OU های هدف اعمال کنید.

 

 

C) اسکریپت PowerShell نمونه برای تنظیم رجیستری از راه دور

(برای اجرا با مجوز مدیریتی و دسترسی PowerShell Remoting فعال):

 

PowerShell نمونه:

$computers = Get-Content -Path "computers.txt"
foreach ($c in $computers) {
  Invoke-Command -ComputerName $c -ScriptBlock {
    $path = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters"
    if (-not (Test-Path $path)) { New-Item -Path $path -Force | Out-Null }
    Set-ItemProperty -Path $path -Name AllowEncryptionOracle -Value 2 -Type DWord
    "Set AllowEncryptionOracle=2 on $env:COMPUTERNAME"
  } -ErrorAction Continue
}

 

 

D) مانیتورینگ و گزارش‌گیری:

– با ابزارهای مدیریتی وضعیت پچ‌ها و مقدار AllowEncryptionOracle را بررسی کنید.

– Event Viewer را برای ارورهای CredSSP و TLS بررسی نمایید.

 

7) عیب‌یابی در صورت پابرجا بودن خطا

 

– مطمئن شوید که CMD یا GPO با دسترسی ادمین اعمال شده است.

– مقدار رجیستری را از طریق regedit یا PowerShell کنترل کنید:

  Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" -Name AllowEncryptionOracle

 

– اگر در سمت سرور یا کلاینت پچ نصب نشده، حتی تغییری در رجیستری ممکن است پاسخ ندهد؛ بررسی نصب آپدیت‌ها ضروری است.

– پیام خطا ممکن است ناشی از تنظیمات امنیتی دیگر مثل Network Level Authentication (NLA) یا مسائل گواهی TLS باشد؛ آن‌ها را نیز بررسی کنید.

– در محیط دامنه، ممکن است GPO ای سطح رجیستری را بازنویسی کند؛ از gpresult /r برای بررسی استفاده کنید.

 

8) بازگرداندن به وضعیت امن پس از پایان فوریت

 

پس از اینکه همهٔ کلاینت‌ها و سرورها را به‌روزرسانی کردید، باید مقدار را به وضعیت امن برگردانید:

 

گزینهٔ امن: Force Updated (AllowEncryptionOracle = 0)

– از طریق CMD (Run as admin):

  REG ADD HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters\ /v AllowEncryptionOracle /t REG_DWORD /d 0 /f

 

– یا از طریق Local/GPO: Encryption Oracle Remediation → Enabled → Protection Level = Force Updated

 

میانجی امن: Mitigated (AllowEncryptionOracle = 1)

– این حالت در مواردی کاربرد دارد که بخواهید با سطحی از محافظت سازگاری محدود را حفظ کنید.

 

توصیه اجرای استاندارد:

 

1. نصب پچ‌ها روی همه ماشین‌ها.

2. اعمال Protection Level = Force Updated در GPO مرکزی.

3. نظارت برای خطاها و برگشت سریع در صورت مشکل (اما ترجیحاً مشکل را برطرف کنید نه تنظیم را کاهش دهید).

 

9) نکات تکمیلی و بهترین شیوه‌ها

 

– اگر از Windows Home استفاده می‌کنید و gpedit.msc ندارید، از روش رجیستری/CMD یا اسکریپت استفاده کنید.

– در شبکه‌های عمومی یا اینترنتی از VPN یا RDP Gateway استفاده کنید تا احتمال MITM کاهش یابد.

– محدود کردن دسترسی RDP با Firewall، فهرست‌های مجاز IP و استفاده از MFA در لایه‌های دیگر توصیه می‌شود.

– لاگ‌ها را در Event Viewer بررسی و از SIEM برای تشخیص حملات احتمالی استفاده کنید.

– اسناد مایکروسافت و KB‌های مرتبط را برای شناسهٔ دقیق KB آپدیت‌ها براساس نسخهٔ ویندوز چک کنید.

 

10) جمع‌بندی سریع (اقدامات فوری و بلندمدت)

 

– اقدام فوری (در مواقعی که نیاز فوری به اتصال دارید): با دسترسی ادمین AllowEncryptionOracle=2 تنظیم کنید (CMD یا gpedit)، سپس اتصال RDP برقرار می‌شود. این راه حل موقت است.

– اقدام میان‌مدت: نصب به‌روزرسانی‌های مایکروسافت روی کلاینت‌ها و سرورها و تغییر Policy به Mitigated یا Force Updated بسته به وضعیت.

– اقدام بلندمدت: پیاده‌سازی Patch Management، محدودیت RDP، VPN/RDG و مانیتورینگ لاگ‌ها؛ نهایتاً Force Updated را در سراسر شبکه اعمال کنید.

به این مطلب امتیاز بدهید:

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *


18 + 18

قوانین

قوانین ارسال دیدگاه

لطفاً در ارسال دیدگاه از کلمات مناسب استفاده کنید. ارسال اسپم ممنوع است.