إشعارات الدفع الآمنة: من النظرية إلى التطبيق

يا هبر!

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

أنشر ترجمة مقالات من المتوسط مع بعض الإضافات من نفسي. يحتوي على نتائج "التحقيق" وقصة حول كيفية حل المشكلة.

استكشاف العتاد

في النموذج الكلاسيكي ، تجعل إشعارات الدفع المرسلين عرضة لهجمات MITM (رجل في الوسط). على سبيل المثال ، في Google و Microsoft وفي الإصدار القديم من iMessage ، يرسل التطبيق مفاتيح التشفير إلى خوادم Apple - تتم مصادقة المستخدمين على الخادم ويتم فك تشفير عنوان الرسالة (أو محتواها).

إشعارات الدفع الآمنة: من النظرية إلى التطبيق

نتيجة لذلك ، هناك فرصة لقراءة المراسلات من خلال الوصول إلى خادم إعلام الدفع. وهذا يعني أن أي تشفير للمراسلات لا طائل من ورائه: الإخطارات الفورية ستظل تترك إمكانية قراءتها من قبل أطراف ثالثة. تمت مناقشة هذا الاحتمال بمزيد من التفصيل من قبل مؤلفي المقال. "تشفير بذكاء" على Xaker.ru ، مخصص لطرق تشفير الرسائل.

إذا بدا لك أن خوادم Apple و Google ستمنع 100٪ مفاتيح التشفير للمستخدمين من التسرب ، ففكر في أن موظفيهم يمكنهم الوصول إليها. والموظفون بشر.
مع كل نقاط الضعف في إشعارات الدفع ، يستخدمها العديد من برامج المراسلة "الآمنة" ، بما في ذلك Signal و Telegram. بعد كل شيء ، وإلا فسيتعين على المستخدمين مراقبة الرسائل الجديدة "يدويًا" ، ودخول التطبيق باستمرار. وهو أمر غير مريح للغاية ، وسيحصل الرسل المتنافسون على ميزة.

جنون العظمة والفطرة السليمة


في مشروعنا ، توصلنا إلى التعامل مع هذه المشكلة منذ بضعة أشهر. كنا بحاجة إلى خيار إعلام الدفع حتى نكون قادرين على المنافسة. لكن هذا لا يفتح ثغرة أمنية ، لأن أي تسرب للبيانات سيقوض مصداقية المشروع.

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

في الإصدار الأول من دفع الإخطارات ، قررنا تشغيله بأمان قدر الإمكان وعدم إرسال نص الرسالة على الإطلاق. خدمة الدفع المتلقاة من العقدة ليس نص الرسالة ، ولكن فقط إشارة حول حقيقة استلامها. لذلك ، رأى المستخدم الإشعار "وصلت رسالة جديدة". كان من الممكن قراءتها فقط في الرسول.

إشعارات الدفع الآمنة: من النظرية إلى التطبيق
كيف عملت: فيديو.

بعد ذلك ، علمنا أن أحدث إصدار من الإشعارات من Apple يحتوي على ميزات أمان جديدة. هم صدر UNNotificationServiceExtension الذي يسمح للمطورين بإرسال بيانات إعلام مشفرة بالكامل عبر APNS. ثم يقوم التطبيق الموجود على جهاز المستخدم النهائي بفك التشفير (أو يقوم بتنزيل بيانات إضافية) ويعرض إشعارًا. أخذناه كأساس للإصدار الثاني من الإشعارات الفورية.

لقد طورنا الآن الإصدار الثاني من إشعارات الدفع لنظام iOS ، والذي يسمح لك بعرض نص الرسالة دون مخاطر أمنية. في المفهوم الجديد ، يبدو المنطق كما يلي:

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

إشعارات الدفع الآمنة: من النظرية إلى التطبيق

أخذنا هذا الإصدار كإصدار عاملي وقمنا بتطبيقه في آخر تحديث لتطبيق iOS.
يمكن للمهتمين بالجانب التقني رؤية الكود المصدري: github.com/adamant-im/adamant-notificationService.

المصدر: www.habr.com

إضافة تعليق