في asp.net2.0، توجد وظيفة جديدة لتشفير بعض البيانات في web.config. يمكنك استخدام RSAProtectedConfigurationProvider وDPAPIProtectedConfigurationProvider للتشفير.
1. حدد أولاً ما إذا كان يمكن تشفير قسم التكوين في web.config المراد تشفيره أم لا
2. قم بإنشاء حاوية مفاتيح RSA
3. حدد حاوية المفاتيح التي سيتم استخدامها في web.config
4. قم بتشفير web.config
5. امنح أذونات الوصول إلى حاوية مفتاح RSA
الخطوة 1: حدد أولاً ما إذا كان من الممكن تشفير قسم التكوين في web.config المراد تشفيره
يدعم ASP.NET 2.0 تشفير بعض أقسام التكوين في Web.config. لا يمكن تشفير البيانات الموجودة في أقسام التكوين التالية:
<processModel>
<وقت التشغيل>
<مسكورليب>
<بدء التشغيل>
<system.runtime.remoting>
<configProtectedData>
<تجميعات الأقمار الصناعية>
<إعدادات التشفير>
<cryptoNameMapping>
<فئات التشفير>
الخطوة 2: إنشاء حاوية مفتاح RSA لإنشاء حاوية مفتاح RSA، يرجى استخدام أداة تسجيل ASP.NET IIS (Aspnet_regiis.exe) ومفتاح التبديل –pc. يجب عليك إعطاء حاوية المفاتيح اسمًا يحدد حاوية المفاتيح المستخدمة بواسطة RsaProtectedConfigurationProvider المحدد في قسم configProtectedData في ملف Web.config الخاص بالتطبيق. للتأكد من إمكانية تصدير حاوية مفتاح RSA التي تم إنشاؤها حديثًا، يجب تضمين الخيار -exp.
على سبيل المثال، يقوم الأمر التالي بإنشاء حاوية مفتاح RSA تسمى ABeenKeys، وهي عبارة عن حاوية مفاتيح قابلة للتصدير على مستوى الجهاز.
aspnet_regiis -pc "ABeenKeys" –
الخطوة 3: تعديل web.config لتحديد حاوية المفاتيح
قم بتحرير ملف Web.config لتحديد حاوية المفاتيح المراد استخدامها.
أضف <configProtectedData> إلى web.config لتكوين حاوية المفاتيح على مستوى الجهاز والتي تسمى ABeenKeys، أضف سمة xmlns إلى <configuration>.
<configuration xmlns=" http://schemas.microsoft.com/.NetConfiguration/v2.0 ">saProtectedConfigurationProvider باستخدام حاوية مفتاح RSA على مستوى الجهاز تسمى ABeenKeys.
<configProtectedData > <providers> <add name="ABeenProvider" type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0,Culture=محايد,processorArchitecture=MSIL" keyContainerName="ABeenKeys"/> </providers > </configProtectedData>
الخطوة 4: قم بتشفير قسم <connectionStrings> في ملف web.config الخاص بك
قم بتشفير قسم التكوين في ملف web.config الخاص بك
> aspnet_regiis -pe "connectionStrings" -app "/connectionTest"
الخطوة 5: يمكن تحديد منح الوصول إلى حاوية مفتاح RSA من خلال التعليمة البرمجية التالية التي يجب منح أذونات المستخدم لها
Response.Write(System.Security.Principal.WindowsIdentity.GetCurrent().Name);
بشكل افتراضي، تكون حاويات مفاتيح RSA محمية بإحكام بواسطة قائمة التحكم في الوصول إلى NTFS (ACL) الموجودة على الخادم حيث توجد. يؤدي هذا إلى زيادة أمان المعلومات المشفرة عن طريق تحديد من يمكنه الوصول إلى مفاتيح التشفير. قبل أن يتمكن ASP.NET من استخدام حاوية مفتاح RSA، يجب منح هوية عملية تطبيق ASP.NET حق الوصول للقراءة إلى حاوية مفتاح RSA. يمكنك استخدام أداة Aspnet_regiis.exe مع رمز التبديل -pa لمنح إذن قراءة هوية تطبيق ASP.NET لحاوية مفتاح RSA. على سبيل المثال، يمنح الأمر التالي حساب Windows Server 2003 NETWORK SERVICE حق الوصول للقراءة إلى حاوية مفتاح RSA على مستوى الجهاز تسمى ABeenKeys:
aspnet_regiis -pa "ABeenKeys" "NT AUTHORITYNETWORK SERVICE"
يلاحظ:
إذا كانت حاوية مفتاح RSA عبارة عن حاوية على مستوى المستخدم، فيجب عليك تسجيل الدخول باعتبارك المستخدم الذي يحتوي ملف تعريف Windows الخاص به على المفتاح المخزن، ويجب عليك تضمين خيار -pku لمنح الوصول إلى حاوية مفتاح RSA على مستوى المستخدم.
لاستخدام RsaProtectedConfigurationProvider الافتراضي المحدد في تكوين الكمبيوتر، يجب عليك أولاً منح هوية Windows الخاصة بالتطبيق حق الوصول إلى حاوية مفتاح الكمبيوتر المسماة NetFrameworkConfigurationKey، وهي حاوية المفاتيح المحددة للموفر الافتراضي. على سبيل المثال، يمنح الأمر التالي حساب NETWORK SERVICE حق الوصول إلى حاوية مفتاح RSA المستخدمة بواسطة RsaProtectedConfigurationProvider الافتراضي.
aspnet_regiis -pa "NetFrameworkConfigurationKey" "خدمة NT AUTHORITYNETWORK"
حاوية مفتاح NetFrameworkConfigurationKey RSA هي حاوية المفاتيح الافتراضية للأوامر الصادرة عن أداة Aspnet_regiis.exe. لذلك يمكن أيضًا إصدار الأمر أعلاه على النحو التالي:
تنزيل رمز
aspnet_regiis -pa "NT AUTHORITYNETWORK SERVICE"