ویژگی های امنیتی اندروید

از ویژگی های توضیح داده شده در این بخش برای ایمن سازی هرچه بیشتر دستگاه های اندرویدی که توسعه می دهید استفاده کنید.

سندباکس برنامه

پلتفرم اندروید از محافظت مبتنی بر کاربر لینوکس برای شناسایی و جداسازی منابع برنامه بهره می برد. برای انجام این کار، اندروید یک شناسه کاربری (UID) منحصر به فرد را به هر برنامه اندروید اختصاص می دهد و آن را در فرآیند خودش اجرا می کند. Android از این UID برای راه اندازی یک Application Sandbox در سطح هسته استفاده می کند.

امضای برنامه

امضای برنامه به توسعه دهندگان اجازه می دهد تا نویسنده برنامه را شناسایی کرده و برنامه خود را بدون ایجاد رابط ها و مجوزهای پیچیده به روز کنند. هر برنامه ای که روی پلتفرم اندروید اجرا می شود باید توسط توسعه دهنده امضا شود.

احراز هویت

اندروید دارای مفهوم احراز هویت کاربر است که می تواند قفل دستگاه را باز کند و کارهای دیگر را انجام دهد:

  • زیرسیستم Gatekeeper احراز هویت الگوی دستگاه یا رمز عبور را در یک محیط اجرای مطمئن (TEE) انجام می دهد.
  • مؤلفه اختیاری Weaver احراز هویت الگو یا رمز عبور را در یک عنصر امن جداگانه انجام می دهد.
  • دستگاه‌های دارای حسگر اثر انگشت از استفاده از اثر انگشت ثبت‌شده پشتیبانی می‌کنند.
  • دستگاه ها می توانند از احراز هویت چهره پشتیبانی کنند.

اندروید همچنین از کلیدهای رمزنگاری سخت‌افزاری پشتیبانی می‌کند که تنها در صورتی می‌توان از آنها استفاده کرد که احراز هویت کاربر با یکی از این مکانیسم‌ها انجام شده باشد.

بیومتریک

Android 9 و بالاتر شامل یک کلاس BiometricPrompt است که توسعه دهندگان برنامه می‌توانند از آن برای ادغام احراز هویت بیومتریک در برنامه‌های خود به شیوه‌ای که دستگاه‌ها و مدالیته‌ها تشخیص می‌دهند، استفاده کنند. فقط بیومتریک قوی می تواند با BiometricPrompt ادغام شود.

رمزگذاری

هنگامی که یک دستگاه رمزگذاری می شود، تمام داده های ایجاد شده توسط کاربر به طور خودکار قبل از انتقال آن به دیسک رمزگذاری می شوند و همه داده ها به طور خودکار قبل از بازگرداندن آنها به فرآیند تماس، رمزگشایی می شوند. رمزگذاری تضمین می کند که حتی اگر یک شخص غیرمجاز سعی کند به داده ها دسترسی پیدا کند، نمی تواند آنها را بخواند.

فروشگاه کلید

اندروید یک فروشگاه کلید با پشتوانه سخت‌افزاری ارائه می‌کند که قابلیت رمزنگاری را در جایی که مواد کلید در یک محیط امن قرار می‌گیرد، ارائه می‌کند. Android Keystore از تولید و وارد کردن کلیدهای متقارن و نامتقارن همراه با رمزگذاری، رمزگشایی، امضا و قراردادهای اولیه کلید پشتیبانی می‌کند.

لینوکس با امنیت بالا

به عنوان بخشی از مدل امنیتی اندروید، اندروید از لینوکس تقویت‌شده با امنیت (SELinux) برای اعمال کنترل دسترسی اجباری (MAC) بر روی تمام فرآیندها، حتی فرآیندهایی که با امتیازات روت یا ابرکاربر (قابلیت‌های لینوکس) اجرا می‌شوند، استفاده می‌کند.

TEE قابل اعتماد

Trusty یک سیستم عامل (OS) امن است که TEE را برای اندروید ارائه می کند. Trusty OS بر روی همان پردازنده سیستم عامل اندروید اجرا می شود، اما Trusty از بقیه سیستم ها توسط سخت افزار و نرم افزار جدا شده است.

بوت تایید شده

Verified Boot به گونه ای طراحی شده است که اطمینان حاصل شود که تمام کدهای اجرا شده از یک منبع قابل اعتماد (معمولاً OEM های دستگاه) به جای یک مهاجم یا فساد آمده است. Verified Boot یک زنجیره کامل از اعتماد ایجاد می کند، از یک ریشه اعتماد محافظت شده توسط سخت افزار گرفته تا بوت لودر، تا پارتیشن بوت و سایر پارتیشن های تایید شده.