ב-Android 10 נוספה תמיכה בגרסה 3 של Wi-Fi Protected Access (WPA3) ובתקנים של Wi-Fi Enhanced Open של Wi-Fi Alliance (WFA). מידע נוסף זמין במאמר Security באתר של WFA.
WPA3 הוא תקן אבטחה חדש של WFA לרשתות אישיות וארגוניות. המטרה היא לשפר את אבטחת ה-Wi-Fi הכוללת באמצעות אלגוריתמי אבטחה מודרניים וחבילות הצפנה חזקות יותר. יש שני חלקים ב-WPA3:
- WPA3-Personal: משתמש באימות סימולטני של ישויות שוות (SAE) במקום במפתח ששותף מראש (PSK), ומספק למשתמשים אמצעי הגנה חזקים יותר מפני מתקפות כמו מתקפות מילון אופליין, שחזור מפתחות וזיוף הודעות.
- WPA3-Enterprise: מציע שיטות אימות והצפנה חזקות יותר בשכבת הקישור, ומצב אבטחה אופציונלי של 192 ביט לסביבות אבטחה רגישות.
Wi-Fi Enhanced Open הוא תקן אבטחה חדש של WFA לרשתות ציבוריות שמבוסס על הצפנה אלחוטית אופורטוניסטית (OWE). היא מספקת הצפנה ושומרת על הפרטיות ברשתות פתוחות שלא מוגנות באמצעות סיסמה, באזורים כמו בתי קפה, מלונות, מסעדות וספריות. האפשרות 'פתיחה משופרת' לא מספקת אימות.
הפרוטוקולים WPA3 ו-Wi-Fi Enhanced Open משפרים את האבטחה הכוללת של Wi-Fi, ומספקים פרטיות טובה יותר ועמידות גבוהה יותר מפני מתקפות מוכרות. מכיוון שהרבה מכשירים עדיין לא תומכים בתקנים האלה או שלא בוצעו בהם שדרוגי תוכנה לתמיכה בתכונות האלה, WFA הציעה את מצבי המעבר הבאים:
- מצב מעבר של WPA2/WPA3: נקודת הגישה של השרת תומכת בתקנים של WPA2 ו-WPA3 בו-זמנית. במצב הזה, מכשירי Android מגרסה 10 משתמשים ב-WPA3 כדי להתחבר, ומכשירים עם Android מגרסה 9 ומטה משתמשים ב-WPA2 כדי להתחבר לאותה נקודת גישה.
- מצב מעבר של WPA2/WPA3-Enterprise: נקודת הגישה שממנה מוגש התוכן תומכת בתקנים WPA2-Enterprise ו-WPA3-Enterprise בו-זמנית.
- מצב מעבר של OWE: נקודת הגישה (AP) שמשרתת את המכשיר תומכת בו-זמנית ב-OWE ובסטנדרטים פתוחים. במצב הזה, מכשירי Android מגרסה 10 משתמשים ב-OWE כדי להתחבר, ומכשירים עם Android מגרסה 9 ומטה מתחברים לאותה נקודת גישה ללא הצפנה.
Android 12 תומך בסימון של השבתת מעבר, מנגנון שמורה למכשיר לא להשתמש ב-WPA2 אלא ב-WPA3. כשמכשיר מקבל את הסימן הזה, הוא משתמש ב-WPA3 כדי להתחבר לרשת WPA3 שתומכת במצב מעבר. ב-Android 12 יש גם תמיכה בחילופי אימות של WPA3 Hash-to-Element (H2E). מידע נוסף זמין במפרט של WPA3.
יש תמיכה ב-WPA3 וב-Wi-Fi Enhanced Open רק במצב לקוח.
הטמעה
כדי לתמוך ב-WPA3 וב-Wi-Fi Enhanced Open, צריך להטמיע את ממשק ה-HAL של ה-Supplicant.
החל מ-Android 13, הממשק משתמש בשפת הגדרה לבניית ממשק Android (AIDL) להגדרת ה-HAL. בגרסאות שקדמו ל-Android 13, ממשקים ומחיצות של ספקים משתמשים בשפת הגדרה לבניית ממשק HAL (HIDL). ממשק ה-HIDL נמצא ב-hardware/interfaces/wifi/supplicant/1.3/, וממשק ה-AIDL נמצא ב-hardware/interfaces/wifi/supplicant/aidl/.
כדי לתמוך ב-WPA3 וב-OWE, צריך:
- תיקונים של ליבת Linux לתמיכה ב-SAE וב-OWE
- cfg80211
- nl80211
-
wpa_supplicantעם תמיכה ב-SAE, SUITEB192 ו-OWE - מנהל התקן של Wi-Fi עם תמיכה ב-SAE, SUITEB192 ו-OWE
- קושחת Wi-Fi עם תמיכה ב-SAE, SUITEB192 ו-OWE
- שבב Wi-Fi עם תמיכה ב-WPA3 וב-OWE
Android 10 כולל methods של API ציבורי שמאפשרות לאפליקציות לקבוע אם המכשיר תומך בתכונות הבאות:
WifiManager#isWpa3SaeSupportedWifiManager#isWpa3SuiteBSupportedWifiManager#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=yWPA3-Enterprise: כוללים את אפשרויות הקומפילציה
CONFIG_SUITEB192ו-CONFIG_SUITEBבקובץ התצורהwpa_supplicant.# WPA3-Enterprise (SuiteB-192) CONFIG_SUITEB=y CONFIG_SUITEB192=yWi-Fi Enhanced Open: כוללים את אפשרות ההידור
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 לא מופעלות, המשתמשים לא יוכלו להוסיף, לסרוק או להתחבר באופן ידני לסוגי הרשתות האלה.
אימות
כדי לבדוק את ההטמעה, מריצים את הבדיקות הבאות.
בדיקות יחידה
מריצים את הפקודה SupplicantStaIfaceHalTest כדי לאמת את ההתנהגות של דגלי היכולת של WPA3 ו-OWE.
atest SupplicantStaIfaceHalTestמריצים את הפקודה WifiManagerTest כדי לאמת את ההתנהגות של ממשקי ה-API הציבוריים של התכונה הזו.
atest WifiManagerTestבדיקות VTS
אם ממשק ה-HIDL מיושם, מריצים את הפקודה:
atest VtsHalWifiSupplicantV1_3TargetTestאם ממשק ה-AIDL מיושם, מריצים את הפקודה:
atest VtsHalWifiSupplicantStaIfaceTargetTest