كيفية إجراء تثبيت SSL في تطبيقات iOS
نشرت: 2020-02-24في اللحظة التي يخرج فيها الناس من منازلهم ، يسعون للبحث عن شبكات Wi-Fi مفتوحة . سواء كانوا ينتظرون في المطار أو يجلسون في مقهى ، فإن الأجندة الرئيسية هي إيجاد اتصال Wi-Fi مفتوح .
وبخوف ، فإن المتسللين هم أيضًا في نفس المهمة. إنهم ينتظرون أيضًا أن يبدأ المستخدمون طلب اتصال على الشبكة المفتوحة قبل أن يضعوا عقول التصيد الاحتيالي في العمل ويحرمونهم من بياناتهم الحساسة أو ما هو أسوأ من المال في حساباتهم المصرفية.
في حين أن HTTPS فعال إلى حد ما ، إلا أنه بروتوكول SSL معروف بأنه يجعل المستخدمين آمنين من خلال كونه غير قابل للكسر وآمن إلى حد كبير. لكن هجمات Man-In-The-Middle (MITM) وجدت طرقًا لخرق هذا أيضًا.
هذا هو المكان الذي تظهر فيه تقنية SSL Pinning في الصورة كأحد أفضل ممارسات أمان تطبيقات الأجهزة المحمولة . عند الحديث على وجه التحديد عن الأنظمة الأساسية ، فهو الحل الأمثل لأمان تطبيقات iPhone الذي يقوم بعمل رائع في حل المشكلة.
في هذه المقالة ، سننظر في أنواع وعملية دمج SSL Pinning في تطبيقات iOS لمنع هجمات Man In The Middle. عملية تعد جزءًا نشطًا من ممارسة اختبار أمان الهاتف المحمول OWASP .
أنواع شهادات SSL
هناك طريقتان رئيسيتان لاختبار SSL Pinning كما هو موضح أدناه:
- تثبيت الشهادة - يمكنك تنزيل شهادة الخادم وتجميعها في التطبيق. في وقت التشغيل ، يقارن التطبيق شهادة الخادم بالشهادات التي قمت بتضمينها.
- تثبيت المفتاح العام - يمكنك استرداد المفتاح العام للشهادة في الرمز كسلسلة. في وقت التشغيل ، يقارن التطبيق المفتاح العام للشهادة بمفتاح مشفر في الكود.
يعتمد الاختيار بين طريقتين لتثبيت SSL على نظام iOS على تكوين الخادم والاحتياجات الفردية. عندما تختار الخيار الأول ، سيتعين عليك تحميل التطبيق عندما يغير الخادم شهادته أو سيتوقف عن العمل. عند تحديد الخيار الثاني ، قد تنتهك سياسة تدوير المفتاح لأن المفتاح العام لن يتغير.
دعنا الآن نلقي نظرة على خطوات تنفيذ SSL Pinning في تطبيق iOS الخاص بك.
* ملاحظة: الخطوات المذكورة أدناه تتبع عملية تثبيت شهادة iOS باستخدام Swift.
كيفية تنفيذ تثبيت SSL في تطبيق iOS الخاص بك
1. جلسة NSURL
في حالة جلسة NSURL ، فإن الطريقة الأساسية للتعامل مع تثبيت SSL هي جلسة URL: didReceiveChallenge: completeHandler: التفويض. سيتعين على المطورين تعيين الفئة لتتوافق مع URLSessionDelegate ولصق هذه الوظيفة في الفصل:
ستطلب الوظيفة " بيانات الاعتماد من المفوض استجابة لطلب المصادقة من الخادم البعيد ." سيقوم مطور تطبيق iPhone بعد ذلك بمقارنة الشهادات من الخادم بأخرى محفوظة في حزمة التطبيق. إذا تم العثور على الشهادتين متطابقتين ، فستسمح المصادقة بالمرور وسيتمكن العميل من الاتصال بالخادم.
2. تثبيت شهادة ألموفير
Alamofire هي واحدة من أشهر مكتبات شبكات HTTP بلغة Swift. يأتي مزودًا بوظيفة مدمجة لتثبيت SSL في iOS Swift وهو سهل الاستخدام للغاية. فيما يلي كيفية إنشاء تطبيق iOS آمن مع تثبيت شهادة Alamofire.
المشكلات الشائعة المرتبطة بتطبيق تثبيت SSL وكيفية حلها
يقوم خبراء ضمان الجودة في وكالات تطوير التطبيقات المشهورة باختبار تطبيقات الأجهزة المحمولة بانتظام بحثًا عن نقاط الضعف الأمنية ، بما في ذلك اختراق الشبكة بالكامل. ولكن هناك العديد من وكالات اختبار التطبيقات التي لا تركز على هذه المجالات بنفس الحماس. يبدو أنهم مترددين عند تنفيذ حل أمان iPhone هذا في تطبيقاتهم.
فيما يلي بعض الأسباب السائدة وراء ذلك -
- أحد أكبر عيوب تثبيت SSL في تطبيق iOS هو تنفيذه . هذه العملية معقدة ويمكن أن تجبر المطورين على كتابة الكود مرارًا وتكرارًا وتعقيد عملية إنشاء التطبيق .
- يمكن أن يؤدي تثبيت شهادات SSL لنظام التشغيل iOS التي لا بد أن تتغير بانتظام إلى إجبار المطورين على تحديث التطبيق الثنائي في كل مرة يتم فيها تغيير الشهادة.
- يجب بذل جهود متعددة لحماية طرق تجاوز التحقق من SSL لنظام iOS.
مع ملاحظة التداعيات التي يمكن أن يجلبها غياب المسرح ، فإليك كيفية تجنب بعض المزالق الشائعة من قبل شركة تطوير تطبيقات iPhone موثوقة .
اختبار الدبوس
على عكس اختبار التطبيق المعتاد حيث تختبر ما إذا كان كل شيء يعمل أم لا ، فإن طريقة اختبار تثبيت SSL هي أنه سيتعين عليك التحقق مما إذا كان هناك شيء ما قد فشل. سيكون عليك التركيز على اختبار أن التطبيق يلغي الاتصالات التي يُحتمل أن تكون معرضة للخطر. إذا كان التطبيق يمكّن الاتصال بنقطة نهاية واحدة ، فسيكون الاختبار بسيطًا مثل جعل طلب GET إلى حالة عشوائية. من الناحية المثالية ، في هذه الحالة ، يجب على التطبيق إلغاء الاتصال ويجب أن يفشل الطلب.
معالجة تغيير الشهادة
يؤدي تجديد شهادة المجال إلى الاحتفاظ بزوج المفاتيح العامة / الخاصة ، ولكن هذا ليس هو الحال دائمًا. ولكن إذا كنت تخطط لدورة التحديث بشكل صحيح ، فستتمكن من تجنب توقف المستخدمين النهائيين.
قبل تنشيط شهادة iOS SSL على موقع الويب ، يجب عليك تثبيتها في التطبيق ، بالإضافة إلى الشهادة النشطة حاليًا ثم إصدار تحديث. عندما نتبع هذه الخطوة في Appinventiv لإنشاء تطبيق iOS آمن ، فإننا نجري اختبارًا سريعًا بالشهادة الجديدة مؤقتًا ونختبر التطبيق مع تثبيت كلتا الشهادتين.
أسئلة وأجوبة حول تثبيت SSL في تطبيقات iOS
1. أين يتم تخزين البيانات الحساسة في تطبيق iOS؟
يجب دائمًا تخزين البيانات الحساسة للتطبيق في iCloud أو Keychain في iOS أو حتى في قاعدة البيانات بعد التشفير المناسب.
2. كيف يعمل SSL؟
يعد SSL Pinning أحد أكثر نصائح أمان تطبيقات iOS شيوعًا . ولكن لفهم ما تعنيه ، عليك أولاً معرفة كيفية عمل SSL.
- يحاول المستعرض الاتصال بموقع ويب مؤمن بـ SSL. ثم يطلب المستعرض من خادم الويب تعريف نفسه.
- ثم يرسل خادم الويب إلى المتصفح نسخة شهادة SSL الخاصة به.
- يتحقق المتصفح من وجوب الوثوق بشهادة SSL. إذا أمكن ، يتم إرسال رسالة إلى خادم الويب.
- يرسل خادم الويب بعد ذلك إقرارًا لبدء جلسة SSL المشفرة.
- ثم تتم مشاركة البيانات المشفرة أخيرًا بين المتصفح وخادم الويب.
خواطر ختامية
على الرغم من أن تثبيت SSL يعتبر آمنًا ويستخدم على نطاق واسع عند الحاجة إلى التشفير ، إلا أنه يتم الترحيب دائمًا بطبقة أخرى من الحماية عند إنشاء تطبيقات عالية الخطورة. يسمح لك تثبيت SSL بالتحقق من هوية الخادم أعلى سلسلة SSL للتحقق من الثقة.
من خلال تثبيت SSL ، يمكنك رفض جميع الاتصالات باستثناء تلك التي تحتوي على الخادم المعين الذي قمنا بحفظ شهادة SSL الخاصة به في الحزمة المحلية الخاصة بنا. العيب المحتمل لهذا هو أنك تحتاج إلى تحديث التطبيق كلما تم تغيير مفتاح SSL الخاص بالخادم.
إذا كنت تخطط أيضًا لإطلاق تطبيق iOS مع تثبيت SSL ، فقد تكون بداية جيدة لاستشارة أفضل شركة لتطوير تطبيقات iOS .