WPA3 ו-Wi-Fi משופר

ב-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). הוא מספק הצפנה ופרטיות ברשתות פתוחות שלא מוגנות באמצעות סיסמה, באזורים כמו בתי קפה, מלונות, מסעדות וספריות. התכונה 'פתיחה משופרת' לא מספקת אימות.

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 יש תמיכה ב-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, המשתמשים לא יוכלו להוסיף, לסרוק או להתחבר באופן ידני לרשתות מהסוגים האלה.

אימות

כדי לבדוק את ההטמעה, מריצים את הבדיקות הבאות.

בדיקות יחידה (unit testing)

מריצים את הפקודה SupplicantStaIfaceHalTest כדי לאמת את ההתנהגות של דגלי היכולות של WPA3 ו-OWE.

atest SupplicantStaIfaceHalTest

מריצים את WifiManagerTest כדי לאמת את ההתנהגות של ממשקי ה-API הציבוריים של התכונה הזו.

atest WifiManagerTest

בדיקות VTS

אם ממשק HIDL מוטמע, מריצים את הפקודה:

atest VtsHalWifiSupplicantV1_3TargetTest

אם ממשק AIDL מוטמע, מריצים את הפקודה:

atest VtsHalWifiSupplicantStaIfaceTargetTest