از ویژگیهای شرح داده شده در این بخش برای ایمنسازی هرچه بیشتر دستگاههای اندرویدی که توسعه میدهید، استفاده کنید.
سندباکس برنامه
پلتفرم اندروید از محافظت مبتنی بر کاربر لینوکس برای شناسایی و جداسازی منابع برنامه استفاده میکند. برای انجام این کار، اندروید یک شناسه کاربری منحصر به فرد (UID) به هر برنامه اندروید اختصاص میدهد و آن را در فرآیند خود اجرا میکند. اندروید از این UID برای راهاندازی یک Application Sandbox در سطح هسته استفاده میکند.
امضای برنامه
امضای برنامه به توسعهدهندگان اجازه میدهد تا نویسنده برنامه را شناسایی کرده و برنامه خود را بدون ایجاد رابطها و مجوزهای پیچیده بهروزرسانی کنند. هر برنامهای که روی پلتفرم اندروید اجرا میشود باید توسط توسعهدهنده امضا شود.
احراز هویت
اندروید مفهومی به نام احراز هویت کاربر دارد که میتواند قفل دستگاه را باز کند و کارهای دیگری انجام دهد:
- زیرسیستم Gatekeeper، احراز هویت دستگاه را با استفاده از پین، الگو یا رمز عبور در یک محیط اجرای قابل اعتماد (TEE) انجام میدهد.
- کامپوننت اختیاری Weaver، احراز هویت دستگاه با پین، الگو یا رمز عبور را در یک عنصر امن جداگانه یا در یک TEE انجام میدهد.
- دستگاههای دارای حسگر اثر انگشت، استفاده از اثر انگشتهای ثبتشده را پشتیبانی میکنند.
- دستگاهها میتوانند از احراز هویت چهره پشتیبانی کنند.
اندروید همچنین از کلیدهای رمزنگاری سختافزاری پشتیبانی میکند که فقط در صورت احراز هویت کاربر با یکی از این مکانیسمها قابل استفاده هستند.
بیومتریک
اندروید ۹ و بالاتر شامل یک کلاس BiometricPrompt است که توسعهدهندگان برنامه میتوانند از آن برای ادغام احراز هویت بیومتریک در برنامههای خود به روشی مستقل از دستگاه و روش استفاده کنند. فقط بیومتریکهای قوی میتوانند با BiometricPrompt ادغام شوند.
رمزگذاری
پس از رمزگذاری یک دستگاه، تمام دادههای ایجاد شده توسط کاربر قبل از ارسال به دیسک به طور خودکار رمزگذاری میشوند و همه خواندنها قبل از بازگرداندن دادهها به فرآیند فراخوانی، به طور خودکار رمزگشایی میشوند. رمزگذاری تضمین میکند که حتی اگر یک شخص غیرمجاز سعی در دسترسی به دادهها داشته باشد، نمیتواند آنها را بخواند.
فروشگاه کلید
اندروید یک ذخیرهساز کلید سختافزاری ارائه میدهد که قابلیت رمزنگاری را فراهم میکند و در آن، کلید در یک محیط امن نگهداری میشود. ذخیرهساز کلید اندروید از تولید و وارد کردن کلیدهای متقارن و نامتقارن، همراه با رمزگذاری، رمزگشایی، امضا و توافق کلید، پشتیبانی میکند.
لینوکس با امنیت پیشرفته
به عنوان بخشی از مدل امنیتی اندروید، اندروید از لینوکس با امنیت بهبود یافته (SELinux) برای اعمال کنترل دسترسی اجباری (MAC) بر روی تمام فرآیندها، حتی فرآیندهایی که با امتیازات root یا superuser (قابلیتهای لینوکس) اجرا میشوند، استفاده میکند.
TEE قابل اعتماد
TEE قابل اعتماد
Trusty یک سیستم عامل (OS) امن است که یک TEE برای اندروید فراهم میکند. Trusty OS بر روی همان پردازنده سیستم عامل اندروید اجرا میشود، اما Trusty از نظر سختافزاری و نرمافزاری از بقیه سیستم جدا شده است.
بوت تأیید شده
بوت تأیید شده به گونهای طراحی شده است که تضمین کند تمام کدهای اجرا شده از یک منبع قابل اعتماد (معمولاً OEMهای دستگاه) میآیند، نه از یک مهاجم یا خرابی. بوت تأیید شده یک زنجیره کامل از اعتماد ایجاد میکند، که از یک ریشه اعتماد محافظتشده توسط سختافزار شروع میشود و به بوتلودر، پارتیشن بوت و سایر پارتیشنهای تأیید شده میرسد.