كيفية إرسال واستقبال iMessage للرسائل بشكل آمن.
يبدأ المستخدم محادثة iMessage جديدة بإدخال عنوان أو اسم. وإذا أدخل رقم هاتف أو عنوان بريد إلكتروني، يتصل الجهاز بخدمة الهوية من Apple (IDS) لاسترداد المفاتيح العامة وعناوين APNs لجميع الأجهزة المرتبطة بالمرسل إليه. إذا أدخل المستخدم اسمًا، يستخدم الجهاز أولاً تطبيق جهات اتصال لدى المستخدم لجمع أرقام الهواتف وعناوين البريد الإلكتروني المرتبطة بهذا الاسم، ثم يحصل على المفاتيح العمومية وعناوين APN من IDS.
يتم تشفير رسالة المستخدم الصادرة بشكل فردي لكل جهاز من أجهزة المُستقبِل. ويتم استرداد مفاتيح التشفير العامة ومفاتيح التوقيع الخاصة بأجهزة الاستقبال من IDS. بالنسبة لكل جهاز استقبال، ينشئ جهاز الإرسال قيمة 88 بت عشوائية ويستخدمها كمفتاح HMAC-SHA256 لإنشاء قيمة 40 بت مشتقة من المفتاح العام للمرسل والمُستقبِل والنص العادي. يعمل تسلسل قيمتي 88 بت و 40 بت على إنشاء مفتاح 128 بت الذي يشفّر الرسالة التي تحتوي عليه باستخدام AES في نمط العداد (CTR). وتُستخدم قيمة 40 بت من جانب المُستقبِل للتحقق من تكامل النص العادي غير المشفر. يتم تشفير مفتاح AES هذا لكل رسالة باستخدام RSA-OAEP إلى المفتاح العام لجهاز الاستقبال. يتم بعد ذلك تجزئة مجموعة نص الرسالة المشفرة ومفتاح الرسالة المشفرة باستخدام SHA-1، ويتم توقيع التجزئة مع خوارزمية التوقيع الرقمي لمنحنى القطع الناقص (ECDSA) باستخدام مفتاح التوقيع الخاص لجهاز الإرسال. في iOS 13 أو أحدث و iPadOS 13.1 أو أحدث، قد تستخدم الأجهزة تشفير نظام التشفير المتكامل لمنحنى القطع الناقص (ECIES) بدلاً من تشفير RSA.
تتكون الرسائل الناتجة، رسالة لكل جهاز استقبال، من نص الرسالة المشفرة ومفتاح الرسالة المشفرة والتوقيع الرقمي للمرسل. ثم يتم إرسالها بعد ذلك إلى APNs للتسليم. ولا يتم تشفير بيانات التعريف، مثل طابع الوقت ومعلومات توجيه APN. بينما يتم تشفير الاتصالات مع APNs باستخدام قناة TLS ذات توجيه سري.
تستطيع APNs ترحيل الرسائل التي يصل حجمها إلى 4 أو 16 كيلوبايت فقط، حسب إصدار iOS أو iPadOS. إذا كان نص الرسالة طويلاً جدًا أو إذا تم تضمين مرفق مثل صورة، يتم تشفير المرفق باستخدام AES في نمط CTR بمفتاح 256 بت منشأ عشوائيًا وتحميله إلى iCloud. بعد ذلك، يتم إرسال مفتاح AES الخاص بالمرفق ومعرف الموارد المنتظم (URI) وتجزئة SHA-1 للنموذج المشفر إلى المستلم كمحتويات iMessage، مع حماية سريتها وتكاملها من خلال تشفير iMessage العادي، كما هو مبين في المخطط التالي.
بالنسبة للمحادثات الجماعية، تتكرر هذه العملية لكل مستلم وأجهزته.
على الجانب المستقبِل، يتلقى كل جهاز نسخته من الرسالة من APNs، وإذا لزم الأمر، يسترد المرفق من iCloud. وتتم مطابقة رقم الهاتف الوارد أو عنوان البريد الإلكتروني للمرسل مع جهات اتصال المستقبِل بحيث يمكن عرض الاسم عندما يكون ذلك ممكنًا.
كما هو الحال مع جميع الإشعارات الموجهة، تُحذف الرسالة من APNs بعد تسليمها. ولكن على عكس إشعارات APNs الأخرى، تُوضع رسائل iMessage في قائمة الانتظار للتسليم إلى الأجهزة غير المتصلة بالإنترنت. وتُخزَّن الرسائل على خوادم Apple لمدة تصل إلى 30 يومًا.