اندروید چگونه اثر انگشت شما را ذخیره می‌کند

چهارشنبه ۱۰ آبان ۱۳۹۶ - ۱۷:۰۰
مطالعه 5 دقیقه
حسگر اثر انگشت تعبیه‌شده در گوشی هوشمند یکی از بهترین‌ روش‌های احراز هویت کاربران است که در این مقاله به مزایا و معایب آن می‌پردازیم.
تبلیغات

عرضه‌ی آیفون بدون حسگر اثر انگشت صحبت‌هایی در مورد استفاده از اثر انگشت برای احراز هویت و میزان امنیت داده‌های ذخیره‌شده به‌دنبال داشت. نبود این ویژگی خیلی عجیب است؛ اما نگران نباشید، افراد دیگری هم هستند که مثل شما به این امکانات نیاز داشته باشند!

روش ذخیره‌سازی داده‌های اثر انگشت در گوگل، امن‌ترین روش ممکن در فناوری فعلی است.

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

روش ذخیره‌سازی داده‌های اثر انگشت در گوگل، امن‌ترین روش ممکن در فناوری فعلی است. یکی از مزایای دیگر آن ساده‌سازی مرور کلی با یک نگاه است. سادگی و امنیت همیشه یک ترکیب برد – برد است.

تصویر 1

ذخیره‌سازی در این فناوری ماهیت امنی ندارد. ذخیره‌سازی با این فناوری، مشابه نوشتن روی یک کاغذ یادداشت و قرار دادن آن در یک کشوی فایل است. اما بهترین کاری که می‌توانید انجام دهید، کنترل دسترسی افراد به آن است. برای یک کشوی فایل می‌توانید از یک قفل و برای تلفن خود از رمزنگاری استفاده کنید. برای داده‌های اثر انگشت، همه چیز یک قدم فراتر می‌رود؛ یک محیط اجرای قابل اعتماد (TEE).

TEE یک بخش جدا و مجزا در سخت‌افزار آیفون است. TEE می‌تواند از پردازنده و حافظه‌ی خود استفاده کند یا می‌تواند از یک نمونه‌ی مجازی روی CPU اصلی استفاده کند. در هر دو نمونه، TEE با استفاده از حافظه‌ی پشتیبان سخت‌افزاری و محافظت ورودی/خروجی کاملا ایزوله شده است و  تنها راه نفوذ به آن، دریافت مجوز از TEE است که البته هرگز به ما اجازه دسترسی نمی‌دهد. حتی اگر تلفن در حالت root قرار بگیرید یا بوت لودر از حالت قفل خارج شود، TEE به‌صورت ایزوله و دست‌نخورده باقی می‌ماند.

گوگل از Trusty TEE یا TEE قابل اعتماد برای پشتیبانی استفاده می‌کند. یک سیستم عامل بهینه و بسیار کوچک به نام Trusty OS روی سخت‌افزاری TEE اجرا می‌شود و درایورهای کرنل اجازه‌ی ارتباط آن با سیستم را می‌دهند. تعدادی کتابخانه‌ی اندروید (Trusty API) برای توسعه‌دهندگان وجود دارند و می‌توانند چند سؤال بله- خیر از آن‌ها بپرسند. عناصری مثل کلیدهای DRM و کلیدهای رمزنگاری بوت‌لودر تولید‌کننده هم در TEE قرار دارند و مشابه داده‌های اثر انگشت شما عمل می‌کنند – آیا داده‌های ارائه شده توسط یک برنامه با داده‌های مناسب ذخیره‌سازی، منطبق هستند؟

تولیدکنندگان دیگر می‌توانند از Trusty OS یا یک سیستم دیگر استفاده کنند. تا زمانی که تمام معیارها برآورده و TEE ایزوله و مجزا شود، استانداردهای امنیتی مورد نیاز برای استفاده از Pixel Imprint را برآورده می‌سازد (Nexus Imprint سابق).

تصویر 2

نمودار بلوکی ARM TrustZone TEE

وقتی  اثر انگشت خود را روی گوشی هوشمند اندروید ثبت می‌کنید، سنسور، داده‌ها را از اسکن دریافت می‌کند. Trusty OS هم داخل TEE به تحلیل این داده‌ها می‌پردازد و سپس دو خروجی تولید می‌کند؛ یک مجموعه از داده‌های اعتبارسنجی و یک الگوی اثر انگشت رمزنگاری‌شده. این داده‌ها برای هرچیزی کاذب به نظر می‌رسند، به استثنای TEE که کلید رمزگشایی این نوع داده‌ها را در اختیار دارد. الگوی رمزنگاری‌شده‌ی اثر انگشت در یک نگه‌دارنده روی TEE یا روی حافظه‌ی داخلی رمزنگاری‌شده‌ی تلفن همراه ذخیره می‌شود. سه لایه‌ی رمزنگاری به این معنی هستند که تقریبا دستیابی به داده‌ها غیر ممکن است؛ حتی اگر بتوانید این کار را انجام دهید بدون دانستن روش رمزگشایی بی‌فایده است.

داده‌های ارزیابی داخل TEE ذخیره می‌شوند. وقتی انگشت خود را روی اسکنر قرار می‌دهید تا چیزی را تست کنید، اسکنر یک پروفایل داده‌ای می‌سازد. در Trusty API، برنامه‌ی مرتبط از کرنل می‌خواهد تا از TEE بپرسد که داده‌ها صحیح هستند یا خیر. TEE با استفاده از حافظه و  پردازنده‌ی مجزای خود به بررسی داده‌های ارزیابی می‌پردازد و اگر داده‌ها منطبق بودند پاسخ «بله» را برمی‌گرداند. اگر تعداد داده‌های منطبق کافی نبود، پاسخ «خیر» را برمی‌گرداند. این پاسخ رد یا قبول به‌عنوان یک نشانه‌ یا توکن نرم‌افزاری که برنامه قادر به خواندن آن است به کرنل بازگردانده می‌شود.

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

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

کل تحلیل داده‌ای اثر انگشت باید داخل TEE انجام شود.

  • کل داده‌های مرتبط به اثر انگشت باید در TEE یا حافظه‌ی قابل اعتماد ذخیره شوند (حافظه‌ی که حتی CPU اصلی قادر به دیدن آن نباشد.)
  • داده‌های پروفایل اثر انگشت، حتی اگر در حافظه‌ی داخلی رمزنگاری‌شده‌ی تلفن هوشمند ذخیره شده باشند، باید خودرمزنگاری شوند.
  • حذف یک حساب کاری هم باید به شکلی ایمن کل داده‌های مرتبط با آثار انگشت کاربر را حذف کند.
  • محل ذخیره‌سازی پروفایل‌های اثر انگشت نباید در معرض دید برنامه، فرآیند یا کاربر از جمله کاربر root قرار بگیرد.
  • داده‌های اثر انگشت از هر نوع در هر منبع دیگری از جمله کلود یا کامپیوتر یا هر برنامه‌ی دیگری قابلیت پشتیبان‌گیری ندارند.
  • احراز هویت اثر انگشت باید توسط فرآیندی که آن را درخواست کرده است انجام شود.
  • وقتی چند معیار استاندارد و واضح دارید، برآورده ساختن آن‌ها کار دشواری نیست. با این کار مطمئن می‌شوید که صرف‌ نظر از نوع تلفن همراه اندرویدی که به کار می‌برید، داده‌های اثر انگشت شما به‌صورت ایمن ذخیره می‌شوند و هیچ فرآیند سیستمی یا اپلیکیشن دیگری قادر به دسترسی به آن نیست. با ظهور رمزنگاری به ویژه رمزنگاری سخت‌افزاری، با این روش داده‌های اثر انگشت شما ایمن می‌شوند.

    تبلیغات
    داغ‌ترین مطالب روز

    نظرات

    تبلیغات