از 27 مارس 2025، توصیه می کنیم از android-latest-release به جای aosp-main برای ساختن و کمک به AOSP استفاده کنید. برای اطلاعات بیشتر، به تغییرات AOSP مراجعه کنید.
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
برای دستگاههایی که Android 13 یا بالاتر دارند، Android از رویکرد احراز هویت Trust on First Use (TOFU) ( RFC7435 ) پشتیبانی میکند، که به کاربران اجازه میدهد با نصب CA ریشه مورد استفاده توسط سرور و تنظیم نام دامنه آن در یک شبکه ذخیرهشده، به شبکه سازمانی (EAP) اعتماد کنند. TOFU به دستگاه این امکان را میدهد که وقتی کاربر برای اولین بار به یک شبکه سازمانی متصل میشود، یک کلید عمومی تأیید نشده به دست آورد و کلید را برای اتصالات بعدی حفظ کند.
پس زمینه
در مقایسه با شبکههای شخصی که فقط به رمز عبور نیاز دارند، شبکههای سازمانی از احراز هویت زیرساخت کلید عمومی (PKI) استفاده میکنند که به مشتری نیاز دارد تا گواهیها را از قبل نصب کند. در اندروید 11 یا پایینتر، کاربران میتوانند با دور زدن تأیید اعتبار گواهی سمت سرور، در تنظیمات شبکه، گزینه Do not validate را برای گواهی CA سرور انتخاب کنند. با این حال، برای تقویت امنیت و مطابقت با مشخصات WPA R2، اندروید 12 الزامی را برای شبکههای سازمانی برای تأیید اعتبار گواهی سرور معرفی کرد. این نیاز اضافی مانعی برای کاربران ایجاد کرد زیرا آنها نیاز به نصب گواهی CA برای چنین شبکه هایی دارند. TOFU راهی را برای کاربران فراهم می کند تا به سادگی با پذیرش CA ریشه آن به یک شبکه سازمانی مبتنی بر PKI متصل شوند.
رفتار ویژگی
دستگاههایی که از TOFU پشتیبانی میکنند، وقتی کاربر به یک شبکه سازمانی متصل میشود که کلید عمومی تأیید شده قبلاً نصب نشده است، رفتار زیر را نشان میدهند.
از طریق انتخابگر Wi-Fi به شبکه جدید متصل شوید
یک شبکه سازمانی جدید را در انتخابگر Wi-Fi انتخاب کنید.
دستگاه یک گفتگو (شکل 1) را برای تأیید اینکه آیا شبکه قابل اعتماد است نشان می دهد.
برای قبول کردن اتصال شبکه روی بله، وصل شوید یا برای رد کردن روی خیر، وصل نشوید ضربه بزنید.
اگر روی بله، اتصال ضربه بزنید، دستگاه به طور خودکار پارامترهای امنیتی را پیکربندی می کند، به شبکه متصل می شود و اتصال خودکار را برای شبکه فعال می کند.
اگر روی خیر ضربه بزنید، متصل نشوید ، دستگاه از شبکه قطع می شود و اتصال خودکار برای شبکه غیرفعال می شود.
شکل 1. گفتگو برای ویژگی TOFU
با فعال بودن اتصال خودکار به شبکه موجود متصل شوید
هنگام اتصال به یک شبکه سازمانی که اتصال خودکار را فعال کرده است اما گواهینامه CA معتبر ندارد، دستگاه به طور خودکار متصل می شود، سپس یک اعلان چسبنده (غیرقابل رد) نمایش می دهد.
روی اعلان ضربه بزنید.
دستگاه یک گفتگو (شکل 1) را برای تأیید اینکه آیا شبکه قابل اعتماد است نشان می دهد.
برای قبول کردن اتصال شبکه روی بله، وصل شوید یا برای رد کردن روی خیر، وصل نشوید ضربه بزنید.
اگر روی بله، اتصال ضربه بزنید، دستگاه به طور خودکار پارامترهای امنیتی را پیکربندی می کند، به شبکه متصل می شود و اتصال خودکار را برای شبکه فعال می کند.
اگر روی خیر ضربه بزنید، متصل نشوید ، دستگاه از شبکه قطع می شود و اتصال خودکار برای شبکه غیرفعال می شود.
برای تایید اجرای TOFU بر روی دستگاه خود، از تست های زیر استفاده کنید:
CTS: CtsWifiTestCases
VTS: VtsHalWifiSupplicantStaNetworkTargetTest
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Trust on First Use (TOFU)\n\nFor devices running Android 13 or higher, Android\nsupports the Trust on First Use (TOFU) authentication approach\n([RFC7435](https://datatracker.ietf.org/doc/html/rfc7435.html)),\nwhich lets users trust an enterprise (EAP) network by installing the root CA\nused by the server and setting its domain name in a saved network. TOFU allows\nthe device to obtain an unauthenticated public key when a user first connects\nto an enterprise network and retain the key for subsequent connections.\n\nBackground\n----------\n\nCompared to personal networks that just require a password, enterprise networks\nuse public key infrastructure (PKI) authentication, which requires the client\nto preinstall certificates. In Android 11 or lower, users can select the\n*Do not validate* option for the server CA certificate in the network settings,\nbypassing the validation of the server side certificate. However, to strengthen\nsecurity and comply with the WPA R2 specification, Android 12 introduced a\nrequirement for enterprise networks to have server certificate validation. This\nadditional requirement created a barrier for users as they need to install a CA\ncertificate for such networks. TOFU provides a way for users to connect to a\nPKI-based enterprise network by simply accepting its root CA.\n\nFeature behavior\n----------------\n\nDevices that support TOFU display the following behavior when a user connects\nto an enterprise network that doesn't have an *already-installed*\nauthenticated public key.\n\n### Connect to new network through Wi-Fi picker\n\n1. Select a new enterprise network in Wi-Fi picker.\n\n The device displays a dialog (Figure 1) to confirm whether the\n network is trusted.\n2. Tap **Yes, connect** to accept the network connection, or tap **No, don't\n connect** to decline.\n\n - If you tap **Yes, connect**, the device automatically configures the\n security parameters, connects to the network, and enables autoconnect\n for the network.\n\n | **Note:** Misconfigured networks that use invalid or expired certificates might not allow any security validation by the device. In such cases, the device fails to connect to the network.\n - If you tap **No, don't connect**, the device disconnects from the\n network and disables autoconnect for the network.\n\n **Figure 1.** Dialog for the TOFU feature\n\n### Connect to existing network with autoconnect enabled\n\nWhen connecting to an enterprise network that has autoconnect enabled but\ndoesn't have a valid CA certificate, the device connects automatically, then\ndisplays a sticky (nondismissable) notification.\n\n1. Tap the notification.\n\n The device displays a dialog (Figure 1) to confirm whether the\n network is trusted.\n2. Tap **Yes, connect** to accept the network connection, or tap **No, don't\n connect** to decline.\n\n - If you tap **Yes, connect**, the device automatically configures the\n security parameters, connects to the network, and enables autoconnect\n for the network.\n\n | **Note:** Misconfigured networks that use invalid or expired certificates might not allow any security validation by the device. In such cases, the device fails to connect to the network.\n - If you tap **No, don't connect**, the device disconnects from the\n network and disables autoconnect for the network.\n\nImplementation\n--------------\n\nTo support the TOFU feature, implement the supplicant HALs provided in the\nAndroid Open Source Project (AOSP) at\n[`/hardware/interfaces/wifi/supplicant/aidl/android/hardware/wifi/supplicant`](https://cs.android.com/android/platform/superproject/+/android-latest-release:hardware/interfaces/wifi/supplicant/aidl/android/hardware/wifi/supplicant).\n\nThe following public APIs are available in Android 13\nfor use by apps:\n\n- [`WifiManager#isTrustOnFirstUseSupported()`](https://developer.android.com/reference/android/net/wifi/WifiManager#isTrustOnFirstUseSupported()): Indicates whether the device supports TOFU.\n- [`WifiEnterpriseConfig#enableTrustOnFirstUse(boolean)`](https://developer.android.com/reference/android/net/wifi/WifiEnterpriseConfig#enableTrustOnFirstUse(boolean)): Enables TOFU.\n- [`WifiEnterpriseConfig#isTrustOnFirstUseEnabled()`](https://developer.android.com/reference/android/net/wifi/WifiEnterpriseConfig#isTrustOnFirstUseEnabled()): Indicates whether TOFU is enabled.\n\nValidation\n----------\n\nTo validate the implementation of TOFU on your device, use the following tests:\n\n- CTS: `CtsWifiTestCases`\n- VTS: `VtsHalWifiSupplicantStaNetworkTargetTest`"]]