أمن مشاركة اسم وصورة iMessage
تتيح مشاركة اسم وصورة iMessage للمستخدم مشاركة الاسم والصور باستخدام iMessage. ويمكن للمستخدم تحديد معلومات "بطاقتي" الخاصة به أو تخصيص الاسم وتضمين أي صورة يختارها. بينما تستخدم مشاركة اسم وصورة iMessage نظامًا من مرحلتين لتوزيع الاسم والصورة.
يتم تقسيم البيانات في الحقول، كلٌ مشفرة ومصادق عليها بشكل منفصل وكذلك مصادق عليها مع العملية أدناه. توجد ثلاثة حقول:
الاسم
الصورة
اسم ملف الصورة
تتمثل الخطوة الأولى لإنشاء البيانات في إنشاء مفتاح 128 بت للسجل بشكل عشوائي على الجهاز. ثم يتم اشتقاق مفتاح السجل هذا مع HKDF-HMAC-SHA256 لإنشاء ثلاثة مفاتيح فرعية: Key 1:Key 2:Key 3 = HKDF(record key, “nicknames”). بالنسبة لكل حقل، يتم إنشاء متجه تهيئة (IV) بمعدل 96 بت عشوائي ويتم تشفير البيانات باستخدام AES-CTR والمفتاح 1. يتم بعد ذلك حساب رمز مصادقة الرسالة (MAC) مع HMAC-SHA256 باستخدام المفتاح 2 مع تغطية اسم الحقل وقيمة IV للحقل والنص المشفر للحقل. أخيرًا، تتم سلسلة مجموعة قيم MAC الفردية للحقل ويتم حساب MAC الخاص بها مع HMAC-SHA256 باستخدام المفتاح 3. يتم تخزين MAC سعة 256 بت جنبًا إلى جنب مع البيانات المشفرة. يتم استخدام قيمة 128 بت الأولى لهذا الـ MAC باعتبارها RecordID.
يتم بعد ذلك تخزين هذا السجل المشفر في قاعدة بيانات CloudKit العامة تحت RecordID. ولا يتم تغيير هذا السجل أبدًا وعندما يختار المستخدم تغيير الاسم والصورة، يتم إنشاء سجل جديد مشفر في كل مرة. عندما يختار المستخدم 1 مشاركة الاسم والصورة مع المستخدم 2، يرسل مفتاح السجل مع recordID داخل حمولة iMessage الخاصة به، والتي يتم تشفيرها.
عندما يتلقى جهاز المستخدم 2 حمولة iMessage هذه، يلاحظ أن الحمولة تحتوي على recordID ومفتاح للاسم المستعار والصورة. ينتقل جهاز المستخدم 2 بعد ذلك إلى قاعدة بيانات CloudKit العامة لاسترداد الاسم المشفر والصور المشفرة في معرف السجل ويرسلهما عبر iMessage.
بعد استرداد الرسالة، يفك جهاز المستخدم 2 تشفير الحمولة ويتحقق من التوقيع باستخدام recordID نفسه. إذا تم تجاوز ذلك، يتم تقديم الاسم والصورة إلى المستخدم 2، ويمكنه اختيار إضافة تلك المعلومات إلى جهات الاتصال لديه أو استخدامها في الرسائل.