اندروید چطور اثر انگشت‌تان را به خاطر می‌سپارد؟

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

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

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

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

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