أمن TLS
يدعم iOS و iPadOS و macOS أمن طبقة النقل (TLS 1.0 و TLS 1.1 و TLS 1.2 و TLS 1.3) وأمن طبقة نقل مخططات البيانات (DTLS). ويدعم بروتوكول TLS كلاً من AES128 و AES256، ويفضل مجموعات التشفير سرية التوجيه. تستخدم تطبيقات الإنترنت مثل سفاري والتقويم والبريد تلقائيًا هذا البروتوكول لتمكين قناة اتصال مشفرة بين الجهاز وخدمات الشبكة. تُسهّل واجهات API عالية المستوى (مثل CFNetwork) على المطورين اعتماد TLS في تطبيقاتهم، بينما توفر واجهات API منخفضة المستوى (مثل Network.framework) تحكمًا دقيقًا. ولا يسمح CFNetwork بـ SSL 3، ويُحظر على التطبيقات التي تستخدم WebKit (مثل سفاري) إجراء اتصال SSL 3.
في iOS 11 أو أحدث و macOS 10.13 أو أحدث، لم تعد شهادات SHA-1 مسموحًا بها لاتصالات TLS ما لم تكن خاضعة لثقة المستخدم. كما أن الشهادات التي تحتوي على مفاتيح RSA تقل عن 2048 بت غير مسموح بها. تم إبطال مجموعة التشفير المتماثلة RC4 في iOS 10 و macOS 10.12. وبشكل افتراضي، عملاء TLS أو الخوادم التي يتم تطبيقها باستخدام واجهات API لـ SecureTransport لا يتم تمكين مجموعات تشفير RC4 بها، ولا يكون بإمكانها الاتصال عندما تكون RC4 هي مجموعة التشفير الوحيدة المتاحة. لمزيد من الأمن، يجب ترقية الخدمات أو التطبيقات التي تتطلب RC4 لاستخدام مجموعات التشفير الآمنة. في iOS 12.1، الشهادات الصادرة بعد 15 أكتوبر 2018 من شهادة جذر يثق بها النظام، يجب تسجيلها في أحد سجلات شفافية الشهادة الموثوق بها حتى يُسمح لها بإجراء اتصالات TLS. وفي iOS 12.2، يتم تمكين TLS 1.3 بشكل افتراضي لواجهات API في كل من Network.framework و NSURLSession. ولا يمكن لعملاء TLS الذين يستخدمون واجهات API لـ SecureTransport استخدام TLS 1.3.
أمن نقل التطبيقات
يوفر أمن نقل التطبيقات متطلبات الاتصال الافتراضية بحيث تلتزم التطبيقات بأفضل ممارسات الاتصالات الآمنة عند استخدام واجهات API في NSURLConnection أو CFURL أو NSURLSession. بشكل افتراضي، يعمل أمن نقل التطبيقات على تقييد تحديد التشفير ليشمل فقط المجموعات التي توفر سرية التوجيه، وتحديدًا:
ECDHE_ECDSA_AES و ECDHE_RSA_AES في نمط Galois/Counter (GCM)
نمط تسلسل كتلة التشفير (CBC)
ويكون بإمكان التطبيقات تعطيل متطلبات سرية التوجيه لكل مجال، وفي هذه الحالة تتم إضافة RSA_AES إلى مجموعة الشفرات المتاحة.
يجب أن تدعم الخوادم TLS 1.2 وسرية التوجيه، ويجب أن تكون الشهادات صالحة وموقَّعة باستخدام SHA256 أو أقوى مع مفتاح RSA سعة 2048 بت أو مفتاح منحنى القطع الناقص سعة 256 بت كحد أدنى.
ستفشل اتصالات الشبكة التي لا تستوفي هذه المتطلبات، إلا إذا تجاوز التطبيق أمن نقل التطبيقات. ودائمًا ما تؤدي الشهادات غير الصالحة إلى فشل كبير وعدم الاتصال. يتم تطبيق أمن نقل التطبيقات تلقائيًا على التطبيقات التي يتم تجميعها في iOS 9 أو أحدث و macOS 10.11 أو أحدث.
التحقق من صلاحية الشهادة
يتم تنفيذ تقييم الحالة الموثوقة لشهادة TLS وفقًا للمعايير المهنية المعمول بها، على النحو المنصوص عليه في RFC 5280، ويتضمن المعايير الناشئة مثل RFC 6962 (شفافية الشهادة). في iOS 11 أو أحدث و macOS 10.13 أو أحدث، يتم تحديث أجهزة Apple بشكل دوري بقائمة متجددة تضم الشهادات المُلغاة والمقيّدة. يتم تجميع القائمة من قوائم إلغاء الشهادات (CRLs) التي تنشرها كل جهة من جهات إصدار الشهادات الجذرية المضمَّنة التي تثق بها Apple، بالإضافة إلى جهات إصدار الشهادات التابعة لها. وقد تشمل القائمة أيضًا قيودًا أخرى وفقًا لتقدير Apple. يتم الرجوع إلى هذه المعلومات عند استخدام أي وظيفة API للشبكة لإجراء اتصال آمن. في حالة وجود عدد كبير جدًا من الشهادات المُلغاة من جانب إحدى جهات إصدار الشهادات التي تتطلب إدراجها بشكل فردي، قد يتطلب تقييم الثقة بدلاً من ذلك وجود استجابة لحالة الشهادة عبر الإنترنت (OCSP)، ويفشل تقييم الثقة في حالة عدم توفر الاستجابة.