ב-Android 10 יש תמיכה בתקני Wi-Fi Protected Access של Wi-Fi Alliance (WFA) בגרסה 3 (WPA3) וב-Wi-Fi Enhanced Open. מידע נוסף זמין במאמר אבטחה באתר של WFA.
WPA3 הוא תקן אבטחה חדש של WFA לרשתות אישיות וארגוניות. המטרה שלו היא לשפר את האבטחה הכוללת ב-Wi-Fi באמצעות אלגוריתמים מודרניים של אבטחה וסווי אלגוריתמים חזקים יותר להצפנה. WPA3 כולל שני חלקים:
- WPA3-Personal: משתמשת באימות סימולטני של equals (SAE) במקום במפתח משותף מראש (PSK), שמספק למשתמשים אמצעי אבטחה חזקים יותר מפני התקפות כמו התקפות מילונים אופליין, שחזור מפתחות וזיוף הודעות.
- WPA3-Enterprise: מציע שיטות אימות חזקות יותר והצפנה בשכבת הקישור, ומצב אבטחה אופציונלי של 192 ביט לסביבות אבטחה רגישות.
Wi-Fi Enhanced Open הוא תקן אבטחה חדש של WFA לרשתות ציבוריות, שמבוסס על הצפנה אלחוטית מדי פעם (OWE). הוא מספק הצפנה ופרטיות ברשתות פתוחות שאינן מוגנות באמצעות סיסמה, באזורים כמו בתי קפה, מלונות, מסעדות וספריות. התכונה 'פתיחה משופרת' לא מספקת אימות.
WPA3 ו-Wi-Fi Enhanced Open משפרים את האבטחה הכוללת של Wi-Fi, ומספקים פרטיות טובה יותר ועמידות מפני התקפות ידועות. מכשירים רבים עדיין לא תומכים בתקנים האלה או שעדיין לא בוצעו בהם שדרוגי תוכנה כדי לתמוך בתכונות האלה, לכן הצענו את מצבי המעבר הבאים:
- מצב מעבר WPA2/WPA3: נקודת הגישה למילוי בקשות תומכת בתקני WPA2 ו-WPA3 בו-זמנית. במצב הזה, מכשירי Android 10 משתמשים ב-WPA3 כדי להתחבר, ומכשירים עם Android 9 ומטה משתמשים ב-WPA2 כדי להתחבר לאותה נקודת גישה.
- מצב מעבר WPA2/WPA3-Enterprise: נקודת הגישה למילוי בקשות תומכת בתקנים WPA2-Enterprise ו-WPA3-Enterprise בו-זמנית.
- מצב מעבר OWE: נקודת הגישה למילוי בקשות תומכת בו-זמנית גם ב-OWE וגם בתקנים פתוחים. במצב הזה, מכשירי Android 10 משתמשים ב-OWE כדי להתחבר, ומכשירים עם Android מגרסה 9 ומטה מתחברים לאותה נקודת גישה ללא הצפנה.
ב-Android 12 יש תמיכה בהגדרת 'השבתה ללא מעבר' – מנגנון שמורה למכשיר לא להשתמש ב-WPA2 ולא להשתמש ב-WPA3 במקום זאת. כשמכשיר מקבל את החיווי הזה, הוא משתמש ב-WPA3 כדי להתחבר לרשת WPA3 שתומכת במצב מעבר. ב-Android 12 יש גם תמיכה בהחלפת אימות מסוג WPA3 עם גיבוב לרכיב (H2E). מידע נוסף זמין במפרט WPA3.
תמיכה ב-WPA3 וב-Wi-Fi פתוחה נתמכת רק במצב לקוח.
הטמעה
כדי לתמוך ב-WPA3 וב-Wi-Fi Enhanced Open, צריך להטמיע את הממשק Supplicant HAL.
החל מ-Android 13, הממשק משתמש ב-AIDL להגדרת HAL.
בגרסאות שלפני Android 13, ממשקים ומחיצות של ספקים משתמשים ב-HIDL.
אפשר למצוא את ממשק HIDL ב-hardware/interfaces/wifi/supplicant/1.3/
,
ואפשר למצוא את ממשק AIDL ב-hardware/interfaces/wifi/supplicant/aidl/
,
כדי לתמוך במערכות WPA3 וב-OWE, צריך להוסיף את הפרטים הבאים:
תיקונים לליבה (kernel) של Linux לתמיכה ב-SAE וב-OWE
- cfg80211
- nl80211
wpa_supplicant
עם תמיכה ב-SAE, SUITEB192 ו-OWEמנהל התקן Wi-Fi עם תמיכה ב-SAE, SUITEB192 ו-OWE
קושחת Wi-Fi עם תמיכה ב-SAE, SUITEB192 ו-OWE
שבב Wi-Fi עם תמיכה ב-WPA3 וב-OWE
שיטות Public API זמינות ב-Android 10 כדי לאפשר לאפליקציות לקבוע אם יש תמיכה במכשירים בתכונות הבאות:
WifiManager#isWpa3SaeSupported
WifiManager#isWpa3SuiteBSupported
WifiManager#isEnhancedOpenSupported
WifiConfiguration.java
כולל סוגים חדשים של ניהול מפתחות, וגם צופנים, צופן קבוצות, צופנים לניהול קבוצות וצפנים של Suite B, שנדרשים ל-OWE, WPA3- Personal ו-WPA3-Enterprise.
הפעלת WPA3 ו-Wi-Fi Enhanced Open
כדי להפעיל את ההגדרות WPA3-Personal, WPA3-Enterprise ו-Wi-Fi Enhanced Open במסגרת Android:
WPA3- Personal: כוללים את אפשרות ההידור
CONFIG_SAE
בקובץ התצורה שלwpa_supplicant
.# WPA3-Personal (SAE) CONFIG_SAE=y
WPA3-Enterprise: כוללים את אפשרויות ההידור
CONFIG_SUITEB192
ו-CONFIG_SUITEB
בקובץ התצורהwpa_supplicant
.# WPA3-Enterprise (SuiteB-192) CONFIG_SUITEB=y CONFIG_SUITEB192=y
פתיחה משופרת של Wi-Fi: כוללים את אפשרות ההידור
CONFIG_OWE
בקובץ התצורהwpa_supplicant
.# Opportunistic Wireless Encryption (OWE) # Experimental implementation of draft-harkins-owe-07.txt CONFIG_OWE=y
אם ההגדרות WPA3- Personal, WPA3-Enterprise או Wi-Fi Enhanced Open לא מופעלות, המשתמשים לא יוכלו להוסיף, לסרוק או להתחבר באופן ידני לסוגי הרשתות האלה.
אימות
כדי לבדוק את ההטמעה, מריצים את הבדיקות הבאות.
בדיקות יחידה (unit testing)
מריצים את הפקודה SupplicantStaIfaceHalTest
כדי לבדוק את ההתנהגות של דגלי היכולות ב-WPA3 וב-OWE.
atest SupplicantStaIfaceHalTest
מריצים את WifiManagerTest
כדי לאמת את התנהגות ממשקי ה-API הציבוריים של התכונה הזו.
atest WifiManagerTest
בדיקות VTS
אם הטמעתם את ממשק HIDL, מריצים את:
atest VtsHalWifiSupplicantV1_3TargetTest
אם ממשק AIDL מוטמע, מריצים את:
atest VtsHalWifiSupplicantStaIfaceTargetTest