
اطمینان از تنظیم MachineKey validation method – .Net 4.5 (Scored)
Profile Applicability
• Level 1 – IIS 10
Description
عنصر machineKey مربوط به ASP.NET web.config، الگوریتم و کلیدهایی که ASP.NET برای رمزگذاری استفاده میکند را مشخص میکند. با استفاده از ویژگی machine key میتوان تنظیمات hashing و رمزگذاری را برای سرویسهای اپلیکیشن مانند View state، Forms Authentication، membership and roles و anonymous identification مشخص کرد.
روشهای اعتبار سنجی زیر موجود است:
• Advanced Encryption Standard (AES): اجرای نسبتاً آسان است و به حافظه کمی احتیاج دارد. AES دارای اندازه کلیدی 128 ، 192 یا 256 بیت است. این روش از همان کلید خصوصی برای رمزگذاری و رمزگشایی دادهها استفاده میکند، در حالی که یک روش public-key باید از یک جفت کلید استفاده کند.
• Message Digest 5 (MD5): برای امضای دیجیتال برنامهها استفاده میشود. این روش یک message digest ،128 بیتی تولید میکند ، که فرم فشردهای از دادههای اصلی است.
• Secure Hash Algorithm (SHA1): از MD5 ایمنتر به حساب میآید زیرا باعث تولید message digest، 160 بیتی میشود.
• Triple Data Encryption Standard (TripleDES): یک تغییر جزئی از Data Encryption Standard (DES) است. سه برابر کندتر از DES معمولی است اما میتواند از امنیت بیشتری برخوردار باشد زیرا دارای اندازه کلیدی 192 بیت است. اگر performance برای شما اهمیت چندانی ندارد، استفاده از TripleDES را در نظر بگیرید.
• Secure Hash Algorithm (SHA-2): یک خانواده از دو عملکرد هش مشابه با اندازههای مختلف بلوکهای معروف به SHA-256 و SHA-512 میباشد. آنها در اندازه کلمه متفاوت هستند؛ SHAS-256 از کلمات 32 بیتی استفاده کرده و SHA-512 از کلمات 64 بیتی استفاده میکند.
مستند امن سازی IIS 10 – بخش بیست و دوم
توصیه میشود که روش SHA2 برای استفاده در سطح global پیکربندی شود.
Rationale
SHA-2 قویترین الگوریتم Hashing است که توسط ویژگی validation پشتیبانی میشود بنابراین باید از آن به عنوان روش اعتبار سنجی برای MachineKey در .Net 4.5 استفاده شود.
Audit
برای تأیید روش اعتبار سنجی Machine Key با استفاده از IIS Manager:
1- IIS Manager را باز کنید و به سطحی که پیکربندی شده، WEBROOT یا سرور در این مورد بروید.
2- در Features View روی machine key دوبار کلیلک کنید.
3- در صفحه machine key تایید کنید که HMACSHA256 به عنوان متد validation انتخاب شده است.
یا
برای تایید از طریق PowerShell دستور زیر را وارد کنید:
Get-WebConfigurationProperty -pspath ‘MACHINE/WEBROOT’ -filter “system.web/machineKey” -name “validation”
Remediation
رمزگذاری machine key با استفاده از UI، اجرا کردن دستورات AppCmd.exe، با edit کردن مستقیم فایل های پیکربندی یا با نوشتن اسکریپتهای WMI تنظیم میشوند. برای تنظیم رمزگذاری machine key در سطح global از طریق appcmd.exe از دستور زیر استفاده نمایید:
%systemroot%\system32\inetsrv\appcmd set config /commit:WEBROOT /section:machineKey /validation:HMACSHA256
نکته:
وقتی از Appcmd.exe برای پیکربندی عنصر در سطح Global در IIS استفاده میشود، سوئیچ /commit: WEBROOT باید گنجانده شود تا تغییرات پیکربندی شده به جای فایل ApplicationHost.config در فایل Root، web.config ایجاد شود.
یا
دستور زیر را در PowerShell برای پیکربندی وارد کنید:
Set-WebConfigurationProperty -pspath ‘MACHINE/WEBROOT’ -filter “system.web/machineKey” -name “validation” -value “AES”
Default Value
متد پیشفرض اعتبار سنجی machine key، SHA256 است.
منبع:
www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-aspnet-configuration-management
مطالب این بخش توسط جناب آقای نوربخش تهیه شده است.