برای دستگاههایی که اندروید ۱۳ یا بالاتر را اجرا میکنند، اندروید از رویکرد احراز هویت Trust on First Use (TOFU) ( RFC7435 ) پشتیبانی میکند، که به کاربران اجازه میدهد با نصب root CA مورد استفاده توسط سرور و تنظیم نام دامنه آن در یک شبکه ذخیره شده، به یک شبکه سازمانی (EAP) اعتماد کنند. TOFU به دستگاه اجازه میدهد تا هنگام اتصال اولیه کاربر به یک شبکه سازمانی، یک کلید عمومی احراز هویت نشده دریافت کند و کلید را برای اتصالات بعدی حفظ کند.
پیشینه
در مقایسه با شبکههای شخصی که فقط به رمز عبور نیاز دارند، شبکههای سازمانی از احراز هویت زیرساخت کلید عمومی (PKI) استفاده میکنند که مستلزم نصب اولیه گواهیها توسط کلاینت است. در اندروید ۱۱ یا پایینتر، کاربران میتوانند گزینه «اعتبارسنجی نشود» را برای گواهی CA سرور در تنظیمات شبکه انتخاب کنند و اعتبارسنجی گواهی سمت سرور را دور بزنند. با این حال، برای تقویت امنیت و رعایت مشخصات WPA R2، اندروید ۱۲ الزامی را برای شبکههای سازمانی ایجاد کرد که باید اعتبارسنجی گواهی سرور را داشته باشند. این الزام اضافی مانعی برای کاربران ایجاد کرد زیرا آنها باید برای چنین شبکههایی گواهی CA نصب کنند. TOFU راهی را برای کاربران فراهم میکند تا با پذیرش CA ریشه به یک شبکه سازمانی مبتنی بر PKI متصل شوند.
رفتار ویژگی
دستگاههایی که از TOFU پشتیبانی میکنند، هنگامی که کاربری به یک شبکه سازمانی متصل میشود که کلید عمومی احراز هویت شده از قبل نصب شدهای ندارد، رفتار زیر را نشان میدهند.
اتصال به شبکه جدید از طریق انتخابگر وایفای
یک شبکه سازمانی جدید را در انتخابگر Wi-Fi انتخاب کنید.
دستگاه یک کادر محاورهای (شکل ۱) را نمایش میدهد تا تأیید کند که آیا شبکه قابل اعتماد است یا خیر.
برای پذیرش اتصال شبکه، روی «بله، وصل شو» ضربه بزنید، یا برای رد کردن، روی «خیر، وصل نشو» ضربه بزنید.
اگر روی بله، وصل شوید ضربه بزنید، دستگاه به طور خودکار پارامترهای امنیتی را پیکربندی میکند، به شبکه متصل میشود و اتصال خودکار را برای شبکه فعال میکند.
اگر روی «خیر، وصل نشو» ضربه بزنید، دستگاه از شبکه قطع میشود و اتصال خودکار برای شبکه غیرفعال میشود.
شکل ۱. پنجره مربوط به ویژگی TOFU
با فعال کردن اتصال خودکار، به شبکه موجود متصل شوید
هنگام اتصال به یک شبکه سازمانی که اتصال خودکار در آن فعال است اما گواهی CA معتبری ندارد، دستگاه به طور خودکار متصل میشود و سپس یک اعلان چسبنده (غیرقابل رد کردن) نمایش میدهد.
روی اعلان ضربه بزنید.
دستگاه یک کادر محاورهای (شکل ۱) را نمایش میدهد تا تأیید کند که آیا شبکه قابل اعتماد است یا خیر.
برای پذیرش اتصال شبکه، روی «بله، وصل شو» ضربه بزنید، یا برای رد کردن، روی «خیر، وصل نشو» ضربه بزنید.
اگر روی بله، وصل شوید ضربه بزنید، دستگاه به طور خودکار پارامترهای امنیتی را پیکربندی میکند، به شبکه متصل میشود و اتصال خودکار را برای شبکه فعال میکند.
اگر روی «خیر، وصل نشو» ضربه بزنید، دستگاه از شبکه قطع میشود و اتصال خودکار برای شبکه غیرفعال میشود.
پیادهسازی
برای پشتیبانی از ویژگی TOFU، HAL های درخواست کننده ارائه شده در پروژه متن باز اندروید (AOSP) را در /hardware/interfaces/wifi/supplicant/aidl/android/hardware/wifi/supplicant
پیاده سازی کنید.
APIهای عمومی زیر در اندروید ۱۳ برای استفاده توسط برنامهها در دسترس هستند:
-
WifiManager#isTrustOnFirstUseSupported()
: نشان میدهد که آیا دستگاه از TOFU پشتیبانی میکند یا خیر. -
WifiEnterpriseConfig#enableTrustOnFirstUse(boolean)
: TOFU را فعال میکند. -
WifiEnterpriseConfig#isTrustOnFirstUseEnabled()
: نشان میدهد که آیا TOFU فعال است یا خیر.
اعتبارسنجی
برای اعتبارسنجی پیادهسازی TOFU روی دستگاه خود، از آزمایشهای زیر استفاده کنید:
- CTS:
CtsWifiTestCases
- VTS:
VtsHalWifiSupplicantStaNetworkTargetTest