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

ב-Android 10 נוספה תמיכה בגרסה 3 של Wi-Fi Protected Access‏ (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, ומספקים פרטיות טובה יותר ועמידות גבוהה יותר מפני מתקפות מוכרות. מכיוון שהרבה מכשירים עדיין לא תומכים בתקנים האלה או שלא בוצעו בהם שדרוגי תוכנה לתמיכה בתכונות האלה, 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, הממשק משתמש ב-AIDL להגדרת HAL. בגרסאות קודמות ל-Android 13, ממשקים ומחיצות ספקים משתמשים ב-HIDL. ממשק ה-HIDL נמצא ב-hardware/interfaces/wifi/supplicant/1.3/, וממשק ה-AIDL נמצא ב-hardware/interfaces/wifi/supplicant/aidl/.

כדי לתמוך ב-WPA3 וב-OWE, צריך:

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

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