اندروید در نسخه جدید سیستم عاملهای خود امنتر میشود
گمانهزنیها حاکی از انتشار نسخه جدید سیستم عامل اندروید یعنی Android نسخه 10، در شهریور ماه امسال است. انتظار میرود که گوشیهای گوگل پیکسل، زودتر از سایر مدلها از این نسخه جدید که به نام Android Q هم شناخته میشود، پشتیبانی کنند. در ادامه به بهبودهای امنیتی این نسخه میپردازیم.
ویژگیهای حریم خصوصی
-
تصادفی نمودن MAC آدرس به یک ویژگی پیش فرض تبدیل میشود
یکی از مهمترین بهبودهای مربوط به حریم خصوصی در این نسخه این است که سیستم عامل اجازه نمیدهد تبلیغات و دیگر اپلیکیشنها از مشخصات گوشی مانند آدرس MAC، برای ردیابی تاریخچه فعالیت گوشی شما استفاده کند. اندروید 10، برنامهها را وادار میکند تا یک آدرس MAC (که شناسهی منحصر به فرد سختافزار شبکهی گوشی شما است) تصادفی شده ارسال کند و همچنین سیستم برای دسترسی به شماره 14 رقمی IMIE[1] و شماره سریالها که هرکدام بطور منحصر به فردی هویت دستگاه را مشخص میکند، مجوزهای بیشتری نسبت به قبل درخواست میکند. فرآیند تصادفی کردن آدرس MAC ، شامل جایگزین کردن آدرس اصلی با مقادیر تولید شده بصورت تصادفی است که باعث میشود هنگام اتصال به شبکههای WiFi مختلف ردیابی نشوید.
-
محدود کردن دسترسی به دادههای کلیبورد
همچنین در نسخه جدید، گوگل دسترسی سایر برنامهها را به دادههای کلیبورد سیستم عامل محدود کرده است. تنها برنامههایی که در پیش زمینه (روی صفحه) اجرا میشوند یا برنامههایی که بصورت پیش فرض ویرایشگر ورودی هستند میتوانند به دادههای کلیبورد دسترسی داشته باشند.
-
جلوگیری از ردیابی موقعیت مکانی کاربر توسط برنامهها در پس زمینه
در حال حاضر اندروید برای دسترسی برنامهها به موقعیت مکانی دستگاه (چه در اجرا در پسزمینه و چه در پیشزمینه) دو گزینه دارد؛ یا کاربر اجازه دسترسی را صادر میکند (allow) یا خیر(deny)؛ اما در اندروید 10، مانند iOS سه گزینه وجود دارد به این صورت که کاربر میتواند به یک برنامه اجازه دهد که “همیشه” به موقعیت مکانی دسترسی داشته باشد، “هنگامی که برنامه در حال استفاده است” برای مثال وقتی برنامه در پیش زمینه است یا به کلی اجازه دسترسی را صادر نکند.
در این صورت توسعهدهندگان اندروید که میخواهند برنامهشان در پسزمینه به موقعیت مکانی دسترسی داشته باشد باید در فایل manifest برنامهی خود مجوز جدیدی به این منظور اضافه کنند.
-
محدود کردن دسترسی به حالت شبکه دستگاه
در اندروید 10، امکان دسترسی به اطلاعات حالت شبکه دستگاه وجود نخواهد داشت. برنامههایی مانند شبکه خصوصی مجازی[2] که به این اطلاعات احتیاج دارند، میتوانند از کلاسهای NetworkStatsManager و ConnectivityManager استفاده کنند.
-
برنامه ها نمیتوانند تنظیمات مربوط به شبکه و موقعیت مکانی را تغییر دهند
اندروید 10 برنامهها را مجبور میکند تا برای استفاده از توابع متعدد در کتابخانههای WiFi ، Wi-Fi Aware یا Bluetooth، مجوز ACCESS_FINE_LOCATION را دارا باشند. به این معنی که برنامههای شخص ثالث قادر نخواهند بود وضعیت WiFi دستگاه شما را تغییر دهند (روشن یا خاموش کنند)؛ بلکه لزوم تغییرات در این تنظیمات را به کاربر اطلاع میدهند و خود کاربر تغییرات را بصورت دستی اعمال میکند.
-
اضافه کردن ویژگی Scop Storage برای حفاظت از دادههای یک برنامه در مقابل دیگر برنامهها
اندروید 10، به هر برنامهای یک حافظهی sandbox مجزا از دیگر برنامهها در حافظه داخلی دستگاه اختصاص میدهد که در این صورت هیچ برنامهای نمیتواند بصورت مستقیم به دادههای ذخیره شدهی برنامهی دیگر دسترسی داشته باشد.
در نتیجه برنامهها برای ذخیره اطلاعات خودشان و دسترسی به آنها در حافظه داخلی احتیاج به هیچ مجوز خاصی ندارد. اما یک برنامه برای ایجاد تغییر یا دسترسی به فایلهایی که سایر برنامهها ایجاد کردند باید مجوز مربوط به آن را درخواست کنند.
احراز هویت Biometric
در نسخه Pie، اندروید برای اینکه برنامهها بتوانند از ویژگی بیومتریک استفاده کنند کتابخانه BiometricPrompt را معرفی کرد که شامل احراز هویت از طریق اثرانگشت، چهره و عنبیه چشم میشد. حالا اندروید در نسخه جدید برای این ویژگی دو حالت ضمنی و صریح مشخص کرده است. در حالت صریح برای انجام عملیات احراز هویت، کاربر باید یک عمل خاص (برای مثال ضربهی آهسته به سنسور اثر انگشت) انجام دهد. در احراز هویت چهره یا عنیبه کاربر با کلیک بر یک دکمه خاص عملیات احراز هویت را آغاز میکند. حالت صریح، حالت پیش فرض است و باید برای همهی عملیاتهای سطح بالا مانند پرداخت از این حالت استفاده شود.
حالت ضمنی اقدام اضافهای از طرف کاربر نیاز ندارد و برای مواردی مانند sign-in و یا پر کردن فرمهایی که با اسکن چهره موارد فرم را پر میکند، استفاده میشود.
رمزنگاری
یکی از اساسیترین تکنولوژیهای امنیتی، رمزنگاری حافظه است. استانداردهای رمزنگاری حال حاضر فقط در دستگاههایی قابل استفاده است که سختافزار شتابدهنده رمزنگاری دارند. این رمزنگاری از الگوریتم AES استفاده میکند که سربار محاسباتی[3] دارد و بسیاری از دستگاهها به دلیل پردازندهی ضعیفی که دارند امکان مدیریت این سربار را ندارند. به دلیل همین نیازمندی بسیاری از دستگاهها امکان استفاده از رمزنگاری حافظه را نداشتند.
اندروید 10، با استفاده از Adantium، یک سیستم رمزنگاری که گوگل در فوریه معرفی کرد مشکل را برطرف کرد. به جای استفاده از AES، Adantium از رمز سادهتری به نام ChaCha12 استفاده میکند که میتواند در دستگاههایی که سختافزار مذکو را دارا نبودند از دستگاههایی با پردازندههای ضعیف تا ساعتهای هوشمند نیز اعمال شود.
در حال حاضر علاوه بر رمزنگاری حافظه، اندروید دادههایی که در پروتکل HTTPS تبادل میشود بوسیله پروتکل رمزنگاری TLS رمز میکند. اندروید 10، از نسخه 1.3 این پروتکل که سال قبل بعنوان استاندارد شناخته شد و سریعتر و امنتر است، استفاده خواهد کرد. پروتکل TLS 1.3 به خاطر handshakeهای کمتر کاربر را 40% سریعتر به سایت یا صفحه مورد نظر میرساند و مقدار زیادی از همین پیامهای handshake را رمزنگاری میکند و درمورد الگوریتمهای رمزنگاری مورد استفاده اطلاعات کمتری میدهد.
مراجع
برای اطلاعات بیشتر میتوانید مراجع زیر را ببینید:
https://developer.android.com/about/versions/10/privacy/changes
https://android-developers.googleblog.com/2019/05/whats-new-in-android-q-security.html
https://nakedsecurity.sophos.com/2019/08/28/android-q-to-hit-streets-sept-3/