WPA3 ו-Wi-Fi משופר

ב-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 כדי לאפשר לאפליקציות לקבוע אם יש תמיכה במכשירים בתכונות הבאות:

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