الإطار الأمني: البيانات الحساسة | التخفيفات

المنتج /الخدمة مقالة
حد ثقة الجهاز
تطبيق ويب
قاعدة بيانات
واجهة برمجة تطبيقات الويب
Azure Cosmos DB
حد ثقة جهاز Azure IaaS الظاهري
حدود الثقة في Service Fabric
Dynamics CRM
تخزين Azure
عميل الجوال
WCF

تأكد من التعتيم على الثنائيات إذا كانت تحتوي على معلومات حساسة

‏‫العنوان التفاصيل
المكون حد ثقة الجهاز
مرحلة SDL التوزيع
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع ‏‫غير متوفر‬
الخطوات تأكد من التعتيم على الثنائيات إذا كانت تحتوي على معلومات حساسة مثل البيانات السرية التجارية ومنطق العمل الحساس الذي لا ينبغي عكسه. هذا لوقف الهندسة العكسية للتجمعات. يمكن استخدام أدوات مثل CryptoObfuscator لهذا الغرض.

ضع في اعتبارك استخدام نظام تشفير الملفات (EFS) الذي يُستخدم لحماية البيانات السرية الخاصة بالمستخدم

‏‫العنوان التفاصيل
المكون حد ثقة الجهاز
مرحلة SDL إنشاء
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع ‏‫غير متوفر‬
الخطوات ضع في اعتبارك استخدام نظام تشفير الملفات (EFS) الذي يُستخدم لحماية البيانات السرية الخاصة بالمستخدم من الخصوم الذين لديهم وصول مادي إلى الكمبيوتر.

تأكد من تشفير البيانات الحساسة المخزنة بواسطة التطبيق على نظام الملفات

‏‫العنوان التفاصيل
المكون حد ثقة الجهاز
مرحلة SDL التوزيع
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع ‏‫غير متوفر‬
الخطوات تأكد من أن البيانات الحساسة المخزنة بواسطة التطبيق على نظام الملفات مشفرة (على سبيل المثال، باستخدام DPAPI)، إذا كان لا يمكن فرض EFS

تأكد من عدم تخزين المحتوى الحساس في ذاكرة التخزين المؤقت على المتصفح

‏‫العنوان التفاصيل
المكون تطبيق ويب
مرحلة SDL إنشاء
التقنيات المعمول بها عام، نماذج الويب، MVC5، MVC6
السمات ‏‫غير متوفر‬
المراجع ‏‫غير متوفر‬
الخطوات يمكن للمتصفحات تخزين المعلومات لأغراض التخزين المؤقت والمحفوظات. يتم تخزين هذه الملفات المخزنة مؤقتاً في مجلد، مثل مجلد Temporary Internet Files في حالة Internet Explorer. عندما تتم إحالة هذه الصفحات مرة أخرى، يعرضها المستعرض من ذاكرة التخزين المؤقت الخاصة به. إذا تم عرض معلومات حساسة للمستخدم (مثل العنوان أو تفاصيل بطاقة الائتمان أو رقم الضمان الاجتماعي أو اسم المستخدم)، يمكن تخزين هذه المعلومات في ذاكرة التخزين المؤقت للمتصفح، وبالتالي يمكن استردادها من خلال فحص ذاكرة التخزين المؤقت للمتصفح أو ببساطة عن طريق الضغط على زر "الخلف" بالمتصفح. عيّن قيمة رأس استجابة التحكم في ذاكرة التخزين المؤقت على "no-store" لجميع الصفحات.

مثال

<configuration>
  <system.webServer>
   <httpProtocol>
    <customHeaders>
        <add name="Cache-Control" value="no-store" />
        <add name="Pragma" value="no-cache" />
        <add name="Expires" value="-1" />
    </customHeaders>
  </httpProtocol>
 </system.webServer>
</configuration>

مثال

يمكن تنفيذ ذلك من خلال مرشح. يمكن استخدام المثال التالي:

public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            if (filterContext == null || (filterContext.HttpContext != null && filterContext.HttpContext.Response != null && filterContext.HttpContext.Response.IsRequestBeingRedirected))
            {
                //// Since this is MVC pipeline, this should never be null.
                return;
            }

            var attributes = filterContext.ActionDescriptor.GetCustomAttributes(typeof(System.Web.Mvc.OutputCacheAttribute), false);
            if (attributes == null || **Attributes**.Count() == 0)
            {
                filterContext.HttpContext.Response.Cache.SetNoStore();
                filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);
                filterContext.HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1));
                if (!filterContext.IsChildAction)
                {
                    filterContext.HttpContext.Response.AppendHeader("Pragma", "no-cache");
                }
            }

            base.OnActionExecuting(filterContext);
        }

تشفير أقسام ملفات تكوين تطبيقات الويب التي تحتوي على بيانات حساسة

‏‫العنوان التفاصيل
المكون تطبيق ويب
مرحلة SDL إنشاء
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع كيفية: تشفير أقسام التكوين في ASP.NET 2.0 باستخدام DPAPI، تحديد موفر تكوين محمي، استخدام Azure Key Vault لحماية بيانات سرية التطبيق
الخطوات غالباً ما تُستخدم ملفات التكوين مثل Web.config وappsettings.json للاحتفاظ بالمعلومات الحساسة، بما في ذلك أسماء المستخدمين وكلمات المرور وسلاسل اتصال قاعدة البيانات ومفاتيح التشفير. إذا لم تقم بحماية هذه المعلومات، فإن التطبيق الخاص بك يكون عرضة للمهاجمين أو المستخدمين الضارين الذين يحصلون على معلومات حساسة مثل أسماء المستخدمين وكلمات المرور وأسماء قواعد البيانات وأسماء الخوادم. استناداً إلى نوع التوزيع (azure/on-prem)، قم بتشفير الأقسام الحساسة لملفات التكوين باستخدام DPAPI أو خدمات مثل Azure Key Vault.

تعطيل سمة HTML للإكمال التلقائي بشكل صريح في النماذج والإدخالات الحساسة

‏‫العنوان التفاصيل
المكون تطبيق ويب
مرحلة SDL إنشاء
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع MSDN: autocomplete attribute, استخدام AutoComplete في HTML والثغرات في تحصين HTML وAutocomplete.,again?!
الخطوات تحدد سمة الإكمال التلقائي ما إذا كان يجب تشغيل الإكمال التلقائي للنموذج أو إيقاف تشغيله. عند تشغيل الإكمال التلقائي، يكمل المتصفح تلقائياً القيم بناءً على القيم التي أدخلها المستخدم من قبل. على سبيل المثال، عند إدخال اسم وكلمة مرور جديدين في نموذج وتقديم النموذج، يسأل المتصفح عما إذا كان يجب حفظ كلمة المرور، وبعد ذلك عند عرض النموذج، يتم ملء الاسم وكلمة المرور تلقائياً أو يتم إكمالهما باسم تم إدخال الاسم. يمكن للمهاجم الذي لديه وصول محلي الحصول على كلمة مرور النص الواضح من ذاكرة التخزين المؤقت للمتصفح. بشكل افتراضي، يتم تمكين الإكمال التلقائي، ويجب تعطيله بشكل صريح.

مثال

<form action="Login.aspx" method="post " autocomplete="off" >
      Social Security Number: <input type="text" name="ssn" />
      <input type="submit" value="Submit" />    
</form>

تأكد من إخفاء البيانات الحساسة المعروضة على شاشة المستخدم

‏‫العنوان التفاصيل
المكون تطبيق ويب
مرحلة SDL إنشاء
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع ‏‫غير متوفر‬
الخطوات يجب إخفاء البيانات الحساسة مثل كلمات المرور وأرقام بطاقات الائتمان وSSN وما إلى ذلك عند عرضها على الشاشة. هذا لمنع الأفراد غير المصرح لهم من الوصول إلى البيانات (على سبيل المثال، كلمات مرور تصفح الكتف، وموظفي الدعم الذين يشاهدون عدد مستخدمي SSN). تأكد من أن عناصر البيانات هذه غير مرئية في نص عادي وأنها مقنعة بشكل مناسب. يجب توخي الحذر عند قبولها كمدخلات (على سبيل المثال، نوع الإدخال = "كلمة المرور") بالإضافة إلى عرضها مرة أخرى على الشاشة (على سبيل المثال، عرض آخر 4 أرقام فقط من رقم بطاقة الائتمان).

تنفيذ إخفاء البيانات الديناميكية للحد من تعرض البيانات الحساسة للمستخدمين غير المتميزين

‏‫العنوان التفاصيل
المكون قاعدة البيانات
مرحلة SDL إنشاء
التقنيات المعمول بها Sql Azure, OnPrem
السمات إصدار SQL - V12، إصدار SQL - MsSQL2016
المراجع Dynamic Data Masking
الخطوات الغرض من إخفاء البيانات الديناميكي هو الحد من تعرض البيانات الحساسة، ومنع المستخدمين الذين لا ينبغي أن يكون لديهم حق الوصول إلى البيانات من عرضها. لا يهدف إخفاء البيانات الديناميكي إلى منع مستخدمي قاعدة البيانات من الاتصال مباشرة بقاعدة البيانات وتشغيل استعلامات شاملة تعرض أجزاء من البيانات الحساسة. يُعد إخفاء البيانات الديناميكي مكملاً لميزات أمان SQL Server الأخرى (التدقيق والتشفير والأمان على مستوى الصف ...) ويوصى بشدة باستخدام هذه الميزة جنباً إلى جنب معهم بالإضافة إلى حماية البيانات الحساسة في قاعدة البيانات بشكل أفضل. يرجى ملاحظة أن هذه الميزة مدعومة فقط بواسطة SQL Server بدءاً من 2016 وAzure SQL Database.

تأكد من تخزين كلمات المرور بتنسيق تشفير الرسالة العشوائي

‏‫العنوان التفاصيل
المكون قاعدة البيانات
مرحلة SDL إنشاء
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع تجزئة كلمة المرور باستخدام .NET Crypto APIs
الخطوات لا يجب تخزين كلمات المرور في قواعد بيانات مخزن المستخدم المخصص. يجب تخزين تجزئات كلمة المرور مع قيم الملح بدلاً من ذلك. تأكد من أن الملح للمستخدم فريد دائماً وأنك تقوم بتطبيق b-crypt أو s-crypt أو PBKDF2 قبل تخزين كلمة المرور، مع حد أدنى لعدد تكرار عامل العمل يبلغ 150000 حلقة للقضاء على إمكانية التأثير الغاشم.

تأكد من تشفير البيانات الحساسة في أعمدة قاعدة البيانات

‏‫العنوان التفاصيل
المكون قاعدة البيانات
مرحلة SDL إنشاء
التقنيات المعمول بها العام
السمات إصدار SQL - الكل
المراجع تشفير البيانات الحساسة في خادم SQL، كيفية: تشفير عمود من البيانات في SQL Server، التشفير بالشهادة
الخطوات يجب تشفير البيانات الحساسة مثل أرقام بطاقات الائتمان في قاعدة البيانات. يمكن تشفير البيانات باستخدام تشفير على مستوى العمود أو بواسطة وظيفة تطبيق باستخدام وظائف التشفير.

تأكد من تمكين التشفير على مستوى قاعدة البيانات (TDE)

‏‫العنوان التفاصيل
المكون قاعدة البيانات
مرحلة SDL إنشاء
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع التعرف على تشفير البيانات الشفافة Microsoft SQL Server (TDE)
الخطوات تساعد ميزة تشفير البيانات الشفافة (TDE) في خادم SQL في تشفير البيانات الحساسة في قاعدة البيانات وحماية المفاتيح المستخدمة لتشفير البيانات بشهادة. هذا يمنع أي شخص دون المفاتيح من استخدام البيانات. تحمي TDE البيانات "غير المستقرة"، أي البيانات وملفات السجل. يوفر القدرة على الامتثال للعديد من القوانين واللوائح والمبادئ التوجيهية الموضوعة في مختلف الصناعات.

تأكد من تشفير النسخ الاحتياطية لقاعدة البيانات

‏‫العنوان التفاصيل
المكون قاعدة البيانات
مرحلة SDL إنشاء
التقنيات المعمول بها SQL Azure, OnPrem
السمات إصدار SQL - V12، إصدار SQL - MsSQL2014
المراجع تشفير النسخ الاحتياطي لـ SQL Database
الخطوات SQL Server لديه القدرة على تشفير البيانات أثناء إنشاء نسخة احتياطية. من خلال تحديد خوارزمية التشفير والتشفير (شهادة أو مفتاح غير متماثل) عند إنشاء نسخة احتياطية، يمكن للمرء إنشاء ملف نسخ احتياطي مشفر.

تأكد من عدم تخزين البيانات الحساسة ذات الصلة بواجهة برمجة تطبيقات الويب في تخزين المتصفح

‏‫العنوان التفاصيل
المكون واجهة API للويب
مرحلة SDL إنشاء
التقنيات المعمول بها MVC 5، MVC 6
السمات موفر الهوية - ADFS، موفر الهوية - معرف Microsoft Entra
المراجع ‏‫غير متوفر‬
الخطوات

في بعض التطبيقات، يتم تخزين الأدوات الحساسة ذات الصلة بمصادقة Web API في التخزين المحلي للمتصفح. على سبيل المثال، عناصر مصادقة Microsoft Entra مثل adal.idtoken، adal.nonce.idtoken، adal.access.token.key، adal.token.keys، adal.state.login، adal.session.state، adal.expiration.key وما إلى ذلك.

كل هذه البيانات الاصطناعية متاحة حتى بعد تسجيل الخروج أو إغلاق المتصفح. إذا تمكن الخصم من الوصول إلى هذه البيانات الاصطناعية، يمكنه/يمكنها إعادة استخدامها للوصول إلى الموارد المحمية (واجهات برمجة التطبيقات). تأكد من عدم تخزين جميع البيانات الاصطناعية الحساسة المتعلقة بواجهة برمجة تطبيقات الويب في تخزين المتصفح. في الحالات التي يكون فيها التخزين من جانب العميل أمراً لا مفر منه (على سبيل المثال، تطبيقات الصفحة الواحدة (SPA) التي تستفيد من تدفقات OpenIdConnect/OAuth الضمنية التي تحتاج إلى تخزين رموز الوصول محلياً)، استخدم خيارات التخزين مع عدم وجود ثبات. على سبيل المثال، تفضل SessionStorage إلى LocalStorage.

مثال

مقتطف JavaScript أدناه هو من مكتبة مصادقة مخصصة تخزن البيانات الاصطناعية المصادقة في التخزين المحلي. يجب تجنب مثل هذه التطبيقات.

ns.AuthHelper.Authenticate = function () {
window.config = {
instance: 'https://login.microsoftonline.com/',
tenant: ns.Configurations.Tenant,
clientId: ns.Configurations.AADApplicationClientID,
postLogoutRedirectUri: window.location.origin,
cacheLocation: 'localStorage', // enable this for Internet Explorer, as sessionStorage does not work for localhost.
};

تشفير البيانات الحساسة المخزنة في Azure Cosmos DB

‏‫العنوان التفاصيل
المكون Azure Cosmos DB
مرحلة SDL إنشاء
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع ‏‫غير متوفر‬
الخطوات تشفير البيانات الحساسة على مستوى التطبيق قبل تخزينها في قاعدة بيانات المستند أو تخزين أي بيانات حساسة في حلول التخزين الأخرى مثل Azure Storage أو Azure SQL

استخدام تشفير قرص Azure لتشفير الأقراص المستخدمة من قبل الأجهزة الظاهرية

‏‫العنوان التفاصيل
المكون حد ثقة جهاز Azure IaaS الظاهري
مرحلة SDL التوزيع
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع استخدام تشفير قرص Azure لتشفير الأقراص التي تستخدمها أجهزتك الظاهرية
الخطوات

يعد تشفير قرص Azure ميزة جديدة في الإصدار الأولي حالياً. تتيح لك هذه الميزة تشفير أقراص نظام التشغيل وأقراص البيانات المستخدمة بواسطة جهاز IaaS الظاهري. على سبيل Windows، يتم تشفير محركات الأقراص باستخدام تقنية تشفير BitLocker المتوافقة مع معايير الصناعة. بالنسبة لنظام التشغيل Linux، يتم تشفير الأقراص باستخدام تقنية DM-Crypt. تم دمج هذا مع Azure Key Vault للسماح لك بالتحكم في مفاتيح تشفير القرص وإدارتها. يدعم حل تشفير قرص Azure سيناريوهات تشفير العملاء الثلاثة التالية:

  • تمكين التشفير على IaaS VMs الجديدة التي تم إنشاؤها من ملفات VHD المشفرة من قبل العميل ومفاتيح التشفير التي يوفرها العميل والمخزنة في Azure Key Vault.
  • تمكين التشفير على IaaS VMs الجديدة التي تم إنشاؤها من Azure Marketplace.
  • قم بتمكين التشفير على أجهزة IaaS الافتراضية التي تعمل بالفعل في Azure.

إدارة البيانات السرية المشفرة في تطبيقات Service Fabric

‏‫العنوان التفاصيل
المكون حدود الثقة في Service Fabric
مرحلة SDL إنشاء
التقنيات المعمول بها العام
السمات البيئة - Azure
المراجع إدارة البيانات السرية في تطبيقات Service Fabric
الخطوات يمكن أن تكون البيانات السرية أي معلومات حساسة، مثل سلاسل اتصال التخزين أو كلمات المرور أو القيم الأخرى التي لا يجب معالجتها في نص عادي. استخدم Azure Key Vault لإدارة المفاتيح والبيانات السرية في تطبيقات Service Fabri.

تنفيذ نمذجة الأمان واستخدام وحدات/فرق العمل عند الحاجة

‏‫العنوان التفاصيل
المكون Dynamics CRM
مرحلة SDL إنشاء
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع ‏‫غير متوفر‬
الخطوات تنفيذ نمذجة الأمان واستخدام وحدات/فرق العمل عند الحاجة

تقليل الوصول إلى ميزة المشاركة على الكيانات الهامة

‏‫العنوان التفاصيل
المكون Dynamics CRM
مرحلة SDL التوزيع
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع ‏‫غير متوفر‬
الخطوات تقليل الوصول إلى ميزة المشاركة على الكيانات الهامة

تدريب المستخدمين على المخاطر المرتبطة بميزة Dynamics CRM Share وممارسات الأمان الجيدة

‏‫العنوان التفاصيل
المكون Dynamics CRM
مرحلة SDL التوزيع
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع ‏‫غير متوفر‬
الخطوات تدريب المستخدمين على المخاطر المرتبطة بميزة Dynamics CRM Share وممارسات الأمان الجيدة

تضمين قاعدة معايير التطوير التي تظهر تفاصيل التكوين في إدارة الاستثناءات

‏‫العنوان التفاصيل
المكون Dynamics CRM
مرحلة SDL التوزيع
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع ‏‫غير متوفر‬
الخطوات قم بتضمين قاعدة معايير التطوير التي تحظر إظهار تفاصيل التكوين في إدارة الاستثناءات خارج التطوير. اختبر هذا كجزء من مراجعات التعليمة البرمجية أو الفحص الدوري.

استخدام تشفير خدمة Azure Storage (SSE) للبيانات الثابتة (معاينة)

‏‫العنوان التفاصيل
المكون تخزين Azure
مرحلة SDL إنشاء
التقنيات المعمول بها العام
السمات StorageType - Blob
المراجع تشفير خدمة Azure Storage لـ بيانات ثابتة (إصدار أولي)
الخطوات

يساعدك تشفير خدمة التخزين في Azure (SSE) لـ بيانات ثابتة (عدم تنقلها) على حماية بياناتك وحمايتها للوفاء بالتزاماتك المتعلقة بالأمان والتوافق المؤسسي. باستخدام هذه الميزة، يقوم Azure Storage تلقائياً بتشفير بياناتك قبل الاستمرار في التخزين وفك التشفير قبل الاسترداد. التشفير وفك التشفير وإدارة المفاتيح شفافة تماماً للمستخدمين. ينطبق SSE فقط على حظر النقط الكبيرة، والنقاط الكبيرة للصفحة، والنقاط الإلحاق. لن يتم تشفير الأنواع الأخرى من البيانات، بما في ذلك الجداول وقوائم الانتظار والملفات.

سير عمل التشفير وفك التشفير:

  • يتيح العميل التشفير على حساب التخزين
  • عندما يكتب العميل بيانات جديدة (PUT Blob، وPUT Block، وPUT Page، وما إلى ذلك) لتخزين Blob؛ يتم تشفير كل عملية كتابة باستخدام تشفير 256-بت AES، وهو إحدى أقوى شفرات الكتلة المتاحة
  • عندما يحتاج العميل إلى الوصول إلى البيانات (GET Blob، وما إلى ذلك)، يتم فك تشفير البيانات تلقائياً قبل العودة إلى المستخدم
  • إذا تم تعطيل التشفير، فلن يتم تشفير عمليات الكتابة الجديدة وتظل البيانات المشفرة الحالية مشفرة حتى يعيد المستخدم كتابتها. أثناء تمكين التشفير، سيتم تشفير عمليات الكتابة إلى وحدة تخزين Blob. لا تتغير حالة البيانات مع قيام المستخدم بالتبديل بين تمكين/تعطيل التشفير لحساب التخزين
  • يتم تخزين جميع مفاتيح التشفير وتشفيرها وإدارتها بواسطة Microsoft

يرجى ملاحظة أنه في هذا الوقت، تدير Microsoft المفاتيح المستخدمة للتشفير. تنشئ Microsoft المفاتيح في الأصل، وتدير التخزين الآمن للمفاتيح بالإضافة إلى التدوير المنتظم كما هو محدد في نهج Microsoft الداخلية. في المستقبل، سيحصل العملاء على القدرة على إدارة مفاتيح التشفير الخاصة بهم ، وتوفير مسار الترحيل من المفاتيح التي تديرها Microsoft إلى المفاتيح التي يديرها العميل.

استخدام تشفير من جانب العميل لتخزين البيانات الحساسة في Azure Storage

‏‫العنوان التفاصيل
المكون تخزين Azure
مرحلة SDL إنشاء
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع التشفير من جانب العميل وAzure Key Vault لتخزين Microsoft Azure، البرنامج التعليمي: تشفير وفك تشفير البيانات الكبيرة في تخزين Microsoft Azure باستخدام Azure Key Vault، تخزين البيانات بشكل آمن في Azure Blob Storage مع ملحقات تشفير Azure
الخطوات

تدعم مكتبة Azure Storage Client Library لحزمة .NET Nuget تشفير البيانات داخل تطبيقات العميل قبل التحميل إلى Azure Storage، وفك تشفير البيانات أثناء التنزيل إلى العميل. تدعم المكتبة أيضًا التكامل مع Azure Key Vault لإدارة مفاتيح حساب التخزين. فيما يلي وصف مختصر لكيفية عمل التشفير من جانب العميل:

  • يُنشئ Azure Storage Client SDK مفتاح تشفير المحتوى (CEK)، وهو مفتاح متماثل يستخدم لمرة واحدة
  • يتم تشفير بيانات العميل باستخدام CEK
  • ثم يتم التفاف CEK (مشفرة) باستخدام مفتاح تشفير المفتاح (KEK). يتم تعريف KEK بواسطة معرّف مفتاح ويمكن أن يكون مفتاح مزدوج غير متماثل أو مفتاح متماثل ويمكن إدارته محليًا أو تخزينه في Azure Key Vault. لم يتمكن عميل وحدة التخزين نفسه من الوصول إلى KEK. إنه يستدعي فقط خوارزمية التفاف المفاتيح التي يوفرها Key Vault. يمكن للعملاء اختيار استخدام موفري مخصصين لتغليف/فك المفتاح إذا رغبوا في ذلك
  • ثم يتم تحميل البيانات المشفرة إلى خدمة Azure Storage. تحقق من الروابط الموجودة في قسم المراجع للحصول على تفاصيل التنفيذ منخفضة المستوى.

تشفير البيانات الحساسة أو معلومات تحديد الهوية الشخصية المكتوبة في التخزين المحلي للهواتف

‏‫العنوان التفاصيل
المكون عميل الجوال
مرحلة SDL إنشاء
التقنيات المعمول بها عام، Xamarin
السمات ‏‫غير متوفر‬
المراجع إدارة الإعدادات والميزات على أجهزتك باستخدام نُهج Microsoft Intune، وKeychain Valet
الخطوات

إذا كان التطبيق يكتب معلومات حساسة مثل معلومات تحديد الهوية الشخصية للمستخدم (البريد الإلكتروني ورقم الهاتف والاسم الأول واسم المجموعة والتفضيلات وما إلى ذلك) - على نظام ملفات الهاتف المحمول، يجب تشفيرها قبل الكتابة إلى نظام الملفات المحلي. إذا كان التطبيق تطبيقاً خاصاً بالمؤسسات، فاستكشف إمكانية نشر التطبيق باستخدام Windows Intune.

مثال

يمكن تكوين Intune باستخدام نُهج الأمان التالية لحماية البيانات الحساسة:

Require encryption on mobile device    
Require encryption on storage cards
Allow screen capture

مثال

إذا لم يكن التطبيق تطبيقاً مؤسسياً، فاستخدم مخزن مفاتيح النظام الأساسي، وسلاسل المفاتيح لتخزين مفاتيح التشفير، باستخدام أي عملية تشفير يمكن إجراؤها على نظام الملفات. يوضح قصاصة برمجية التعليمة البرمجية التالية كيفية الوصول إلى المفتاح من سلسلة المفاتيح باستخدام xamarin:

        protected static string EncryptionKey
        {
            get
            {
                if (String.IsNullOrEmpty(_Key))
                {
                    var query = new SecRecord(SecKind.GenericPassword);
                    query.Service = NSBundle.MainBundle.BundleIdentifier;
                    query.Account = "UniqueID";

                    NSData uniqueId = SecKeyChain.QueryAsData(query);
                    if (uniqueId == null)
                    {
                        query.ValueData = NSData.FromString(System.Guid.NewGuid().ToString());
                        var err = SecKeyChain.Add(query);
                        _Key = query.ValueData.ToString();
                    }
                    else
                    {
                        _Key = uniqueId.ToString();
                    }
                }

                return _Key;
            }
        }

تعتيم الثنائيات التي تم إنشاؤها قبل التوزيع على المستخدمين النهائيين

‏‫العنوان التفاصيل
المكون عميل الجوال
مرحلة SDL إنشاء
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع التعتيم على التشفير ل .NET
الخطوات يجب إخفاء الثنائيات المُنشأة (التجميعات داخل apk) لإيقاف الهندسة العكسية للتجميعات. يمكن استخدام أدوات مثل CryptoObfuscator لهذا الغرض.

تعيين clientCredentialType إلى Certificate أو Windows

‏‫العنوان التفاصيل
المكون WCF
مرحلة SDL إنشاء
التقنيات المعمول بها .NET Framework 3
السمات ‏‫غير متوفر‬
المراجع حصن
الخطوات يؤدي استخدام UsernameToken مع كلمة مرور نص عادي عبر قناة غير مشفرة إلى كشف كلمة المرور للمهاجمين الذين يمكنهم شم رسائل SOAP. قد يقبل مقدمو الخدمة الذين يستخدمون UsernameToken كلمات المرور المرسلة في نص عادي. يمكن أن يؤدي إرسال كلمات مرور النص العادي عبر قناة غير مشفرة إلى كشف معلومات تسجيل الدخول للمهاجمين الذين يمكنهم شم رسالة SOAP.

مثال

يستخدم تكوين مزود خدمة WCF التالي UsernameToken:

<security mode="Message"> 
<message clientCredentialType="UserName" />

قم بتعيين clientCredentialType إلى Certificate أو Windows.

لم يتم تمكين وضع أمان WCF

‏‫العنوان التفاصيل
المكون WCF
مرحلة SDL إنشاء
التقنيات المعمول بها عام، .NET Framework 3
السمات وضع الأمان - النقل، وضع الأمان - الرسائل
المراجع MSDN، Fortify Kingdom، Fundamentals of WCF Security CoDe Magazine
الخطوات لم يتم تحديد أمان النقل أو الرسائل. لا يمكن للتطبيقات التي تنقل الرسائل دون نقل أو أمان الرسائل أن تضمن سلامة الرسائل أو سريتها. عند تعيين ربط أمان WCF على بلا، يتم تعطيل أمان النقل والرسائل.

مثال

يقوم التكوين التالي بتعيين وضع الأمان إلى لا شيء.

<system.serviceModel> 
  <bindings> 
    <wsHttpBinding> 
      <binding name=""MyBinding""> 
        <security mode=""None""/> 
      </binding> 
  </bindings> 
</system.serviceModel> 

مثال

وضع الأمان يوجد خمسة أوضاع أمان محتملة في جميع عمليات ربط الخدمة:

  • لا يوجد. يوقف الأمن.
  • المواصلات. يستخدم أمن النقل للمصادقة المتبادلة وحماية الرسائل.
  • الرسالة. يستخدم أمان الرسائل للمصادقة المتبادلة وحماية الرسائل.
  • كلاهما. يسمح لك بتوفير إعدادات النقل والأمان على مستوى الرسائل (فقط MSMQ يدعم هذا).
  • TransportWithMessageCredential. يتم تمرير معلومات تسجيل الدخول مع الرسالة ويتم توفير حماية الرسائل ومصادقة الخادم بواسطة طبقة النقل.
  • TransportCredentialOnly. يتم تمرير بيانات اعتماد العميل مع طبقة النقل ولا يتم تطبيق حماية الرسائل. استخدم أمان النقل والرسائل لحماية سلامة الرسائل وسريتها. يخبر التكوين أدناه الخدمة باستخدام أمان النقل مع بيانات اعتماد الرسالة.
    <system.serviceModel>
    <bindings>
      <wsHttpBinding>
      <binding name=""MyBinding""> 
      <security mode=""TransportWithMessageCredential""/> 
      <message clientCredentialType=""Windows""/> 
      </binding> 
    </bindings> 
    </system.serviceModel>