اطمینان از تنظیم MachineKey validation method – .Net 3.5 (Scored)
Profile Applicability
• Level 2 – 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 را در نظر بگیرید.
مستند امن سازی IIS 10 – بخش بیست و یکم
توصیه می شود که روشهای AES یا SHA1 برای استفاده در سطح global پیکربندی شوند.
Rationale
تنظیم ویژگی validation به AES، محافظت از محرمانگی و integrity را برای viewstate فراهم میکند. AES قویترین الگوریتم رمزگذاری است که توسط ویژگی validation پشتیبانی میشود. تنظیم ویژگی validation در SHA1 باعث حفاظت از integrity در viewstate میشود. SHA1 قویترین الگوریتم Hashing است که توسط ویژگی validation پشتیبانی میشود.
Audit
برای تأیید روش اعتبار سنجی Machine Key با استفاده از IIS Manager:
1- IIS Manager را باز کنید و به سطحی که پیکربندی شده، WEBROOT یا سرور در این مورد بروید.
2- در Features View روی machine key دوبار کلیلک کنید
3- در صفحه machine key تایید کنید که SHA1 به عنوان متد 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:SHA1
نکته:
وقتی از Appcmd.exe برای پیکربندی عنصر در سطح Global در IIS استفاده میشود، سوئیچ/commit: WEBROOT باید گنجانده شود تا تغییرات پیکربندی شده به جای فایل ApplicationHost.config در فایل Root، web.config ایجاد شود.
Default Value
متد پیشفرض اعتبار سنجی machine key، SHA1 است.
منابع:
technet.microsoft.com/en-us/library/cc772271%28WS.10%29.aspx
technet.microsoft.com/en-us/library/cc772287%28WS.10%29.aspx