WPA3 ורשת Wi-Fi עם אבטחת OWE

ב-Android 10 נוספה תמיכה בפרוטוקולים Wi-Fi Protected Access גרסה 3 (WPA3) ו-Wi-Fi Enhanced Open של Wi-Fi Alliance‏ (WFA). למידע נוסף, ראו אבטחה באתר של WFA.

WPA3 הוא תקן אבטחה חדש של WFA לרשתות אישיות וארגוניות. המטרה שלו היא לשפר את האבטחה הכוללת של Wi-Fi באמצעות אלגוריתמים מודרניים לאבטחה וחבילות צפנים חזקות יותר. ל-WPA3 יש שני חלקים:

  • WPA3-Personal: משתמש באימות בו-זמני של ערכים זהים (SAE) במקום במפתח ששותף מראש (PSK), ומספק למשתמשים הגנות אבטחה חזקות יותר מפני התקפות כמו התקפות מילון אופליין, שחזור מפתחות זיוף הודעות.
  • WPA3-Enterprise: שיטות אימות והצפנה חזקות יותר בשכבת הקישור, ומצב אבטחה אופציונלי של 192 ביט לסביבות אבטחה רגישות.

Wi-Fi Enhanced Open הוא תקן אבטחה חדש של WFA לרשתות ציבוריות שמבוסס על הצפנה אלחוטית אופורטוניסטית (OWE). הוא מספק הצפנה ופרטיות ברשתות פתוחות שלא מוגנות באמצעות סיסמה, באזורים כמו בתי קפה, מלונות, מסעדות וספריות. ב-Enhanced Open אין אימות.

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 יש תמיכה ב-Transition Disable indication, מנגנון שמורה למכשיר לא להשתמש ב-WPA2 ולהשתמש ב-WPA3 במקום זאת. כשמכשיר מקבל את ההודעה הזו, הוא משתמש ב-WPA3 כדי להתחבר לרשת WPA3 שתומכת במצב מעבר. ב-Android 12 יש גם תמיכה בהחלפת אימות של WPA3 Hash-to-Element‏ (H2E). מידע נוסף זמין במפרט WPA3.

יש תמיכה ב-WPA3 וב-Wi-Fi Enhanced Open רק במצב לקוח.

הטמעה

כדי לתמוך ב-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, נדרשים:

  • תיקוני ליבה של Linux לתמיכה ב-SAE וב-OWE

    • cfg80211
    • nl80211
  • wpa_supplicant עם תמיכה ב-SAE, ב-SUITEB192 וב-OWE

  • מנהל Wi-Fi עם תמיכה ב-SAE, ב-SUITEB192 וב-OWE

  • קושחת Wi-Fi עם תמיכה ב-SAE,‏ SUITEB192 ו-OWE

  • שבב Wi-Fi עם תמיכה ב-WPA3 וב-OWE

שיטות API ציבוריות זמינות ב-Android 10 כדי לאפשר לאפליקציות לקבוע אם המכשיר תומך בתכונות הבאות:

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 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