الأمان

إدارة المفاتيح بأمان وتشفير الملفات وsharedpreferences

يسرد هذا الجدول جميع العناصر في مجموعة androidx.security.

العناصر الإصدار الثابت إصدار محتمل الإصدار التجريبي الإصدار التجريبي
security-crypto 1.0.0 - - 1.1.0-alpha06
security-app-authenticator - - 1.0.0-beta01 -
security-identity-credential - - - 1.0.0-alpha03
تاريخ آخر تعديل لهذه المكتبة: 29 كانون الثاني (يناير) 2025

الإعلان عن التبعيات

لإضافة تبعية على الأمان، يجب إضافة مستودع Google Maven إلى مشروعك. اطّلِع على مستودع Maven من Google لمزيد من المعلومات.

أضِف التبعيات للعناصر التي تحتاج إليها في ملف build.gradle ل تطبيقك أو وحدتك:

لمزيد من المعلومات عن العناصر الاعتمادية، اطّلِع على مقالة إضافة عناصر الاعتماد الخاصة بالإصدار.

الملاحظات

تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا واجهت مشاكل جديدة أو كان لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مكتبة جديدة. يمكنك إضافة صوتك إلى مشكلة حالية عن طريق النقر على زرّ النجمة.

إنشاء مشكلة جديدة

اطّلِع على مستندات أداة تتبُّع المشاكل لمزيد من المعلومات.

الإصدار 1.0 من Security-State

الإصدار 1.0.0-alpha05

29 كانون الثاني (يناير) 2025

تم إصدار androidx.security:security-state:1.0.0-alpha05. يتضمّن الإصدار 1.0.0-alpha05 عمليات الربط هذه.

الميزات الجديدة

  • تمت إضافة أسماء حِزم وحدات النظام التلقائية إلى بيان المكتبة للسماح لتطبيقات العميل بالحصول على حِزم SPL للأجهزة لوحدات النظام. (Ic259c)

تغييرات واجهة برمجة التطبيقات

  • تمت إعادة تسمية SecurityStateManager إلى SecurityStateManagerCompat، وإضافة مستندات إضافية للسمات والوظائف العامة، وجعلت getComponentSecurityPatchLevel وgetVulnerabilityReportUrl طريقتَين ثابتتَين. (I44a0c)
  • تمّت إزالة وظيفة Update Availability (الطريقتان listAvailableUpdates() وgetAvailableSecurityPatchLevel()) من واجهة برمجة التطبيقات في الوقت الحالي، ومن المخطّط إعادة طرحها في تحديث مستقبلي للمكتبة. (Idbc5e)
  • أصبح الوصول إلى Vendor SPL محميًا الآن بعلامة وقت الترجمة التي يتم إيقافها تلقائيًا إلى أن يتم إجراء تحديث مستقبلي للمكتبة. (I45b58)
  • يعرض getGlobalSecurityState() الآن حالة الأمان الشاملة من خدمة النظام لحِزم SDK 35 والإصدارات الأحدث. (I7b9da)

إصلاح الأخطاء

  • تم إصلاح عطل حدث عند محاولة الحصول على حزمة SPL المنشورة لنظام التشغيل Kernel على الإصدارات القديمة من Android التي لا تتوفّر فيها إصدارات Kernel LTS المنشورة. (I93dff)

الإصدار 1.0.0-alpha04

7 آب (أغسطس) 2024

تم إصدار androidx.security:security-state:1.0.0-alpha04. يتضمّن الإصدار 1.0.0-alpha04 عمليات الربط هذه.

ملاحظة

  • تعديل compileSdk إلى 35 5dc41be

تغييرات واجهة برمجة التطبيقات

  • تغيير جذري: تم استبدال قائمة العناصر المحددة للمكونات بثوابت سلاسل من أجل قابلية التوسيع. (Ia3283)

الإصدار 1.0.0-alpha03

10 تموز (يوليو) 2024

تم إصدار androidx.security:security-state:1.0.0-alpha03. يتضمّن الإصدار 1.0.0-alpha03 عمليات الربط هذه.

إصلاح الأخطاء

  • إصلاح نمط ASB-A- لأخطاء نشرة أمان Android وتحليل JSON للمكونات الإضافية وWebview الاسترجاع المُجمَّع (Ide86a)

الإصدار 1.0.0-alpha02

26 حزيران (يونيو) 2024

تم إصدار androidx.security:security-state:1.0.0-alpha02. يحتوي الإصدار 1.0.0-alpha02 على عمليات الربط هذه.

إصلاح الأخطاء

  • تم إصلاح منطق الحصول على إصدار النواة. (I5602a)

الإصدار 1.0.0-alpha01

12 يونيو 2024

تم إصدار androidx.security:security-state:1.0.0-alpha01. يحتوي الإصدار 1.0.0-alpha01 على عمليات الربط هذه.

الميزات الجديدة

  • "حالة الأمان" هي مكتبة جديدة يمكن للمطوّرين استخدامها للحصول على بيانات قابلة للتنفيذ حول إصدارات مكوّنات النظام القابلة للتحديث وتحديثات الأمان والإصلاحات المطبَّقة.

Security-App-Authenticator-Testing Version 1.0

الإصدار 1.0.0-beta01

‫6 مارس 2024

تم إصدار androidx.security:security-app-authenticator:1.0.0-beta01 وandroidx.security:security-app-authenticator-testing:1.0.0-beta01. يتضمّن الإصدار 1.0.0-beta01 عمليات الربط هذه.

الإصدار 1.0.0-alpha02

13 كانون الأول (ديسمبر) 2023

تم إصدار androidx.security:security-app-authenticator-testing:1.0.0-alpha02. يحتوي الإصدار 1.0.0-alpha02 على هذه المراجعات.

إصلاح الأخطاء

  • تم تعديل الاختبار لسلوك واجهة برمجة التطبيقات الجديد الذي لم يعُد يفترض أنّه Binder#getCalling[Uid|Pid] في حال عدم تقديمه إلى واجهات برمجة التطبيقات [check|enforce]CallingAppIdentity. (I1851b)

الإصدار 1.0.0-alpha01

2 حزيران (يونيو) 2021

تم إصدار androidx.security:security-app-authenticator-testing:1.0.0-alpha01. يحتوي الإصدار 1.0.0-alpha01 على هذه المراجعات.

الميزات الجديدة

توفّر مكتبة الاختبار هذه أداة إنشاء يمكن استخدامها لضبط عنصر AppAuthenticator قابل للحقن لاستيفاء متطلبات الاختبار. تتيح هذه المكتبة عدة طرق لضبط AppAuthenticator:

  • يمكن تحديد سياسة اختبار عامة تُبلغ عن مطابقة توقيع لجميع الحِزم المُعلَن عنها في الإعدادات.
  • يمكن تحديد حِزم فردية لعرض مطابقة توقيع مع جميع الحِزم الأخرى التي لا تُظهر أي مطابقة.
  • يمكن ضبط هويات التوقيع الصريحة لكل حزمة، ولن يُبلغ AppAuthenticator الناتج عن ذلك إلا عن تطابق التوقيع إذا كانت الهوية المقدَّمة تتطابق مع البيان في ملف الإعدادات.
  • يمكن أيضًا التعامل مع الحِزم على أنّها غير مثبّتة أو أنّها تحتوي على معرّف مستخدم صريح.

Security-App-Authenticator Version 1.0.0

الإصدار 1.0.0-alpha03

13 كانون الأول (ديسمبر) 2023

تم إصدار androidx.security:security-app-authenticator:1.0.0-alpha03. يحتوي الإصدار 1.0.0-alpha03 على هذه المراجعات.

تغييرات واجهة برمجة التطبيقات

  • تمت إضافة إمكانية استخدام حالات لا يتوفّر فيها معرّف UID أو معرّف PID للحزمة المطلوب إثبات ملكيتها. تتيح واجهات برمجة التطبيقات الآن حالات مثل startActivityForResult والأنشطة أو الأجهزة المستلِمة التي تتم فيها مشاركة هوية التطبيق المُرسِل من خلال [Activity|Broadcast]Options#setShareIdentityEnabled.
  • تم تعديل سلوك [check|enforce]CallingAppIdentity(String, String) لدعم حالات الاستخدام الجديدة هذه، ولن يتم استخدام هذه الطرق تلقائيًا باستخدام Binder#getCalling[Uid|Pid]، بل ستتخطّى بدلاً من ذلك التحقّق من رقم تعريف فريد لحزمة المُتصل إذا لم يتم تقديمه صراحةً. (I1851b)

الإصدار 1.0.0-alpha02

2 حزيران (يونيو) 2021

تم إصدار androidx.security:security-app-authenticator:1.0.0-alpha02. يحتوي الإصدار 1.0.0-alpha02 على هذه المراجعات.

تغييرات واجهة برمجة التطبيقات

  • استعدادًا لإتاحة علامة حماية إذن knownSigner الجديدة التي تم تقديمها في Android 12، لم يعُد بالإمكان تحديد سمة digestAlgorithm في الإعدادات، وبدلاً من ذلك، يجب احتساب جميع ملخّصات الشهادات باستخدام SHA-256.

إصلاح الأخطاء

  • تم الآن توحيد جميع ملخّصات الشهادات المقدَّمة في الإعدادات لضمان إمكانية الإبلاغ عن مطابقة ناجحة للتوقيع عند احتساب الملخّص أثناء التشغيل وكذلك عند تحديد هوية توقيع صريحة عند استخدام مكتبة الاختبار.

الإصدار 1.0.0-alpha01

5 أيار (مايو) 2021

تم إصدار androidx.security:security-app-authenticator:1.0.0-alpha01. يحتوي الإصدار 1.0.0-alpha01 على هذه المراجعات.

الميزات الجديدة

AppAuthenticator هي مكتبة جديدة تهدف إلى تبسيط عملية التحقّق من ثقة التطبيق استنادًا إلى هوية التوقيع. ما على التطبيق سوى تحديد ملف إعدادات XML يحتوي على أسماء الحِزم وهويات التوقيع للتطبيقات الموثوق بها، وستتولى المكتبة التحقّق من هوية التوقيع للتطبيقات أثناء التشغيل.

الإصدار 1.1.0

الإصدار 1.1.0-alpha06

19 نيسان (أبريل) 2023

تم إصدار androidx.security:security-crypto:1.1.0-alpha06 وandroidx.security:security-crypto-ktx:1.1.0-alpha06. يحتوي الإصدار 1.1.0-alpha06 على هذه المراجعات.

الميزات الجديدة

  • تم تعديل الاعتماد على Tink إلى الإصدار 1.8.0

الإصدار 1.1.0-alpha05

22 شباط (فبراير) 2023

تم إصدار androidx.security:security-crypto:1.1.0-alpha05 وandroidx.security:security-crypto-ktx:1.1.0-alpha05. يحتوي الإصدار 1.1.0-alpha05 على هذه المراجعات.

إصلاح الأخطاء

الإصدار 1.1.0-alpha04

9 تشرين الثاني (نوفمبر) 2022

تم إصدار androidx.security:security-crypto:1.1.0-alpha04 وandroidx.security:security-crypto-ktx:1.1.0-alpha04. يحتوي الإصدار 1.1.0-alpha04 على هذه المراجعات.

الميزات الجديدة

  • تمت إزالة رسالة السجلّ "تعذّر العثور على مجموعة المفاتيح، سيتم إنشاء مجموعة جديدة" عند تشغيل التطبيق لأول مرة. (b/185219606)
  • تمت ترقية الاعتمادية على Tink إلى الإصدار 1.7.0.

تغييرات واجهة برمجة التطبيقات

  • تغيير EncryptedFile#openFileInput() لعرض FileNotFoundException بدلاً من IOException العام عندما لا يكون الملف المطلوب متوفّرًا (I80e41، b/148804719)
  • تم تعديل فئة MasterKeys لتطلب استخدام Android M بدلاً من كل طريقة من طرقها. (I8b4b8)
  • تغيير جميع أدوات الحصول على الإعدادات المفضّلة في EncryptedSharedPreferences (مثل #getString و#getInt) لطرح SecurityException في حالات نادرة لا يمكن فيها مطابقة نوع القيمة مع أحد الصيغ المحدّدة للعدد الإجمالي. (b/241699427)

إصلاح الأخطاء

  • خفض الحد الأدنى لإصدار حزمة تطوير البرامج (SDK) لمكتبة security-crypto-ktx إلى الإصدار 21 (b/193550375) لتصبح متزامنة مع مكتبة security-crypto
  • تم إصلاح خطأ في التزامن عند إنشاء EncryptedFile متعددة (b/136590547)

المساهمة الخارجية

  • تلقّينا حلّاً لمشكلة EncryptedSharedPreferences.Editor#remove من chr.ibbotson@gmail.com (b/224994760 وb/134197835 وf44d44d).

‫Security-Crypto-Ktx الإصدار 1.1.0-alpha03

18 أيار (مايو) 2021

تم إصدار androidx.security:security-crypto-ktx:1.1.0-alpha03. يحتوي الإصدار 1.1.0-alpha03 على هذه المراجعات.

تم تعديلها لتتطابق مع androidx.security:security-crypto:1.1.0-alpha03.

الإصدار 1.1.0-alpha03

2 كانون الأول (ديسمبر) 2020

تم إصدار androidx.security:security-crypto:1.1.0-alpha03. يحتوي الإصدار 1.1.0-alpha03 على هذه المراجعات.

الميزات الجديدة

  • تم تعديل Tink إلى الإصدار الثابت 1.5.0

الإصدار 1.1.0-alpha02

5 آب (أغسطس) 2020

تم إصدار androidx.security:security-crypto:1.1.0-alpha02 وandroidx.security:security-crypto-ktx:1.1.0-alpha02. يحتوي الإصدار 1.1.0-alpha02 على هذه المراجعات.

الميزات الجديدة

  • تم تعديل Tink إلى الإصدار الثابت 1.4.0

إصلاح الأخطاء

  • من المفترض أن يؤدي تحديث Tink إلى حلّ مشاكل R8 وProguard المتعلّقة بتبعية Protobuf المظلّلة.
  • من المفترض أن يعالج تحديث Tink أخطاء عدم التزامن في AndroidKeyStore بشكل سلس.

المساهمة الخارجية

  • محو mKeysChanged عند التطبيق، إصلاح EncryptedSharedPreferences (aosp/1323026)

الإصدار 1.1.0-alpha01

10 حزيران (يونيو) 2020

تم إصدار androidx.security:security-crypto:1.1.0-alpha01. يحتوي الإصدار 1.1.0-alpha01 على هذه المراجعات.

الميزات الجديدة

  • أصبح نظام التشغيل Lollipop (المستوى 21 من واجهة برمجة التطبيقات والإصدارات الأحدث) متوافقًا الآن. يُرجى العلم أنّه لا يتم استخدام AndroidKeyStore مع واجهتَي برمجة التطبيقات 21 و22. (I7c12d، b/132325342)
  • توفّر فئة MasterKey الجديدة المزيد من الخيارات للمفاتيح، كما يتم إيقاف MasterKeys نهائيًا لإتاحة الميزات والإصدارات الجديدة من Android التي لا تتضمّن KeyGenParamSpec.

Security-Identity-Credential Version 1.0.0

الإصدار 1.0.0-alpha03

1 أيلول (سبتمبر) 2021

تم إصدار androidx.security:security-identity-credential:1.0.0-alpha03. يحتوي الإصدار 1.0.0-alpha03 على هذه المراجعات.

الميزات الجديدة

  • تمت إضافة ميزات بيانات اعتماد الهوية المستندة إلى الأجهزة في Android 12.

الإصدار 1.0.0-alpha02

24 شباط (فبراير) 2021

تم إصدار androidx.security:security-identity-credential:1.0.0-alpha02. يحتوي الإصدار 1.0.0-alpha02 على هذه المراجعات.

إصلاح الأخطاء

  • تعديل Identity Credential API لمطابقة خطط Android 12 (Iff83e)

الإصدار 1.0.0-alpha01

19 آب (أغسطس) 2020

تم إصدار androidx.security:security-identity-credential:1.0.0-alpha01. يحتوي الإصدار 1.0.0-alpha01 على هذه المراجعات.

الميزات الجديدة

يقدّم إصدار Jetpack هذا إصدارًا من Jetpack لواجهات برمجة التطبيقات Identity Credential API التي تمت إضافتها إلى Android 11 والمستوى 30 لواجهة برمجة التطبيقات. إذا كان الجهاز يعمل بنظام التشغيل Android 11 وكان مزوّدًا بإمكانية استخدام بيانات اعتماد الهوية المستندة إلى الأجهزة، سيعيد Jetpack توجيه المكالمات إلى واجهة برمجة تطبيقات النظام الأساسي. وبخلاف ذلك، سيتم استخدام عملية تنفيذ مستندة إلى "متجر مفاتيح Android". على الرغم من أنّ التنفيذ المستند إلى "متجر مفاتيح Android" لا يقدّم المستوى نفسه من الأمان والخصوصية، إلا أنّه مناسب تمامًا لكل من حاملي البيانات ومورّديها في الحالات التي تكون فيها جميع البيانات موقَّعة من موفّر البيانات. تتطلّب هذه المكتبة المستوى 24 من واجهة برمجة التطبيقات أو الإصدارات الأحدث.

توفّر واجهات برمجة تطبيقات Identity Credential واجهات لمساحة تخزين آمنة لمستندات هوية المستخدمين. وهذه الواجهات برمجة التطبيقات عامة ومجرّدة إلى حدّ كبير عن قصد. لا تتناول واجهات برمجة التطبيقات هذه، إلى أقصى حدّ ممكن، مواصفات تنسيقات الرسائل ودلالات التواصل مع أجهزة إثبات صحة بيانات الاعتماد والهيئات المانحة للشهادات. إنّ هياكل البيانات التي تعتمد عليها واجهات برمجة التطبيقات متوافقة مع هياكل البيانات الواردة في معيار ISO/IEC IS 18013-5 Personal identification — ISO-compliant driving licence — Part 5: Mobile driving licence (mDL) application standard الذي سيتم إصداره قريبًا.

تغييرات واجهة برمجة التطبيقات

  • تمت إضافة Identity Credential Jetpack. (Icf90b)

الإصدار 1.0.0

الإصدار 1.0.0

21 نيسان (أبريل) 2021

تم إصدار androidx.security:security-crypto:1.0.0. يحتوي الإصدار 1.0.0 على عمليات الربط هذه.

الميزات الرئيسية في الإصدار 1.0.0

أبرز الميزات

  • EncryptedFile، يوفّر مصادر إدخال وإخراج مشفّرة لقراءة البيانات المشفّرة أو كتابتها في ملف.
  • EncryptedSharedPreferences، يوفّر تنفيذًا لواجهة SharedPreferences التي تُشفِّر أو تفكّ شفرة جميع المفاتيح والقيم تلقائيًا.
  • توفّر إنشاء مفاتيح بسيط عبر MasterKeys.
  • يعتمد على الإصدار 1.5.0 من Tink لزيادة الثبات.

الإصدار 1.0.0-rc04

13 كانون الثاني (يناير) 2021

تم إصدار androidx.security:security-crypto:1.0.0-rc04. يحتوي الإصدار 1.0.0-rc04 على هذه المراجعات.

إصلاح الأخطاء

  • تمت ترقية Tink إلى الإصدار 1.5.0 لزيادة الثبات.

الإصدار 1.0.0-rc03

5 آب (أغسطس) 2020

تم إصدار androidx.security:security-crypto:1.0.0-rc03. يحتوي الإصدار 1.0.0-rc03 على هذه المراجعات.

الميزات الجديدة

  • تم تعديل Tink إلى الإصدار الثابت 1.4.0

إصلاح الأخطاء

  • من المفترض أن يؤدي تحديث Tink إلى حلّ مشاكل R8 وProguard المتعلّقة بتبعية Protobuf المظلّلة.
  • من المفترض أن يعالج تحديث Tink أخطاء عدم التزامن في AndroidKeyStore بشكل سلس.

المساهمة الخارجية

  • محو mKeysChanged عند التطبيق، إصلاح EncryptedSharedPreferences (aosp/1323026)

الإصدار 1.0.0-rc02

20 أيار (مايو) 2020

تم إصدار androidx.security:security-crypto:1.0.0-rc02. يحتوي الإصدار 1.0.0-rc02 على هذه المراجعات.

إصلاح الأخطاء

  • تم التحديث إلى الإصدار 1.4.0-rc2 من Tink، والذي يحلّ مشكلة تعارض حزمة تطوير البرامج (SDK) لنظام التشغيل Android الأخرى التي تم الإبلاغ عنها على نطاق واسع. (I8a831)
  • تم حلّ المشكلة apply() في EncryptedSharedPreferences. (I29069، b/154366606)

الإصدار 1.0.0-rc01

نيسان (أبريل) 2020

تم إصدار androidx.security:security-crypto:1.0.0-rc01. يحتوي الإصدار 1.0.0-rc01 على هذه المراجعات.

إصلاح الأخطاء

  • تمّت إضافة عمليات تحقّق للتأكّد من أنّه إذا تمّ تمرير KeyGenParamSpec إلى MasterKeys.getOrCreate، إذا كانت getUserAuthenticationRequired تعرِض true، تعرِض getUserAuthenticationValidityDurationSeconds قيمة أكبر من 0. (I911f5) (b/152644939)

الإصدار 1.0.0-beta01

18 آذار (مارس) 2020

تم إصدار androidx.security:security-crypto:1.0.0-beta01 بدون أي تغييرات منذ 1.0.0-alpha02. يحتوي الإصدار 1.0.0-beta01 على هذه المراجعات.

الإصدار 1.0.0-alpha02

23 أيار (مايو) 2019

تم إصدار androidx.security:security-crypto:1.0.0-alpha02. يمكن العثور على عمليات الربط المضمّنة في هذا الإصدار في سجلّ عمليات الربط هذا.

إصلاح الأخطاء

  • تم إصلاح مشكلة استرجاع المفاتيح/القيم المرتبطة بالإعدادات المفضّلة المشتركة من getAll().
  • تم حظر استخدام مفاتيح الإعدادات المفضّلة المحظورة.
  • تعديلات طفيفة على Javadoc

الإصدار 1.0.0-alpha01

7 أيار (مايو) 2019

تم إصدار androidx.security:security-crypto:1.0.0-alpha01. يمكن العثور على عمليات الربط المضمّنة في هذا الإصدار هنا.

أبرز الميزات الجديدة

  • EncryptedFile، يوفّر مصادر إدخال وإخراج مشفّرة لقراءة البيانات المشفّرة أو كتابتها في ملف.
  • EncryptedSharedPreferences، يوفّر تنفيذًا SharedPreferences الذي يشفّر/يفكّشفير جميع المفاتيح والقيم تلقائيًا.
  • توفّر إنشاء مفاتيح بسيط عبر MasterKeys.