260 likes | 375 Views
A Key Recovery Attack on the 802.11b Wired Equivalent Privacy Protocol (WEP). A Stubblefield, J. Ioannidis, Aviel D. Rubin (May 2004) Presented by : SHELEF ROXANA (shelefro@post.tau.ac.il). נושאים. מבוא אלגוריתם WEP התקפה הקריפטוגרפית על RC4 התקפה על WEP המלצות ומסקנות. מבוא.
E N D
A Key Recovery Attack on the 802.11b Wired Equivalent Privacy Protocol (WEP) A Stubblefield, J. Ioannidis, Aviel D. Rubin (May 2004) Presented by : SHELEF ROXANA (shelefro@post.tau.ac.il)
נושאים • מבוא • אלגוריתם WEP • התקפה הקריפטוגרפית על RC4 • התקפה על WEP • המלצות ומסקנות
מבוא • הצגת שיטה מעשית למימוש "התקפה" על WEP, לצורך שחזור מפתח ההצפנה • WEP : פרוטוקול מתוכנן לספק פרטיות עבור המידע שעובר על רשתות אל חוטיות, המבוססות על סטנדרט 802.11 • 802.11 : תקן IEEE לתקשורת בטווחים קצרים (בסביבה עירונית) • קל לשימוש, מספק גישה מהירה.
עבודות בנושא התקפות על WEP: • BORISOV N., GOLDBERG I. and WAGNER [2001] Intercepting mobile communications. The insecurity of 802.11 (MOBICOM,2001) • NEWSHAM T. [2001] – Cracking WEP keys (http://www.lava.net/ wlan) • ARBAUGH, SHANKAR, and WAN [2001]- Your 802.11 wireless network has no clothes (IEEE international Conference on Wireless LAN’s and Home Networks) • ARBAUGH [2001] – An inductive chosen plaintext attack against WEP/WEP2 (IEEE Document 802.11-02/230) • FLUHRER S., MANTIN I. and SHAMIR A. [2001] – weaknesses in the key scheduling algorithm of RC4 (Eighth Annual Workshop on selected areas in Criptography)
אלגוריתם WEP • WEP שומר על פרטיות המידע: • סודיות התוכן • מונע את שינוי תוכן החבילות על ידי תוקפים אקטיביים • מאפשר גישה למשתמשים מורשים בלבד • תכונות של WEP • קל ליישום • נוח לניהול
חישוב WEP frame : כל חבילה מוצפנת באופן עצמאי, ללא תלות בהסטוריה • M.c(M) • IV.k • Initialize RC4 (IV.k) • Encrypt data : WEP data : IV.C k – secret key (mobile node, access point) M – plaintext frame data c(M) – checksum of M
Key Setup Algorithm (KSA) Given :K[0…l-1) , N=256 Identity Permutation for i =0…N-1 S[i] = i j = 0 Scrambling for i =0…N-1 j = j + S[i] +K[i mod l] swap( S[i] , S[j] ) Pseudo Random Generator Algorithm (PRGA) i =j =0 Forever i =i+1 j = j +S[i] swap( S[i] , S[j] ) Output : Zi = S[ S[i] +S[j] ] ההתקפה הקריפטוגרפית על RC4 - תאור RC4
- עקרונות ההתקפה • התוקף מחפש את ה-IV-ים שמביאים את KSA למצב שבו מודלף מידע על המפתח (resolved cases) • ידוע ה-byte הראשון של ה-plaintext
KSA PRGA : i=j=0 i=1 j = S[1] swap (S[1] , S[S[1] ] ) Z1 = S[S[1] + S[S[1] ] ] • Z1תלוי רק ב-3 ערכים:S[1], S[S[1] ] ,S[S[1] + S[S[1] ]] • נניח IV = (3,255,X) • תנאי להצלחת הפענוח : עד סוף ריצת ה- KSA (איטרציות 3-255), אין שינוי בערכים S[1], S[S[1] ] ,S[S[1] + S[S[1] ] ] • C1, P1ידועים -> Z1ידוע -> K0
תאור הבעיה נתון : IV – באורך I בתים נדרש : לגלות את K[B] , כאשר נתגלו Bהבתים הראשונים של K : K[0],…,K[B-1] (K[0], K[1],..,K[l-1] – החלק הסודי של המפתח )
פתרון • חיפוש ערכי IV , כך שלאחר I צעדים יתקיים: • SI[1] < I • SI[1] + SI[SI[1] ] = I+B • שחזור K[B]: כאשר מיקום בתוך הפרמוטציה Stשבו מופיע הערך Y
הפעלת ההתקפה על WEP • בנית סימולציה להתקפה על RC4 : IV = (B+3, 255, X) • שחזור בית אחד – 60 resolved cases • שחזור כל המפתח – 256 resolved cases • "ללכוד" את ה-packets של 802.11 • כרטיס Linksys wireless מבוסס על Intersil Prism II chipset • מה ה-byte הראשון בכל packet? • IP, ARP : 0xAA • IPx : 0xFF, 0xE0 • שחזור מפתח של 128 bits דרש :4000000-6000000 packets
ההתקפה הבסיסית Recover WEP Key( ) Key [0... KeySize] = 0 for KeyByte =0…KeySize Counts[0…255]=0 for each packet -> P if Counts [SimulateResolved (P, Key, Key Byte)] +=1 Key [Key Byte] = Index Of Maximum Element (Counts) return Key
SimulateResolved (P , Key, Key Byte) N=256 K = P.IV.Key for i =0…N-1 S[i] = i j = 0 for i =0…KeyByte j = j + S[i] +K[i mod l] swap( S[i] , S[j] ) return
שיפור המתקפה • לבדוק איזה IV הם resolving • ה-password ב- ASCII (אין hashing), לכן לצורך גילוי ה-next most likely key byte , נותנים עדיפות לאותיות קטנות ,גדולות, מספרים וסימנים. • בדיקת המועמדים למפתח בעזרת חישוב ה- checksum • ההסתברות ש: S[1], S[S[1] ], S[S[1] + S[S[1] ] ] אינם משתנים עד סוף ה-KSA : 13% עבור שני ערכים שונים, לעומת 5% כאשר שלושתם שונים. תוצאת השיפור : מספר החבילות שנדרש - 1000000
Testing if a particular IV is resolving Resolved? (IV, Current Key Guess) N=256 K = IV.Current Key Guess for i =0…N-1 S[i] = i j = 0 for i =0 …|Current Key Guess| j = j + S[i] +K[i mod l] swap( S[i] , S[j] ) if (S[1] <|Current Key Guess| +1 and S[1] + S[S[1]] = |Current Key Guess| +1) returntrue else return false
Check the checksum received by key guess Check checksum (Guess , P) K =P.IV.Guess return c(plaintext) ==checksum
פרמטרים שמשפיעים על שחזור המפתח • בחירת ה-IV-ים סטנדרט WEP איננו קובע את בחירת ה-IV שיטות בחירת IV עבור כרטיסי 802.11: • Counters • Random selection • Value flipping
בחירת המפתח אין "ניהול מפתחות" ב-WEP. • שימוש במפתח יחיד, משותף ל- base station ולכל ה-mobile nodes • שימוש ב- human memorable password • אין דרך סטנדרטית להפוך את ה-password ל-WEPkey פתרונות : • שימוש בnon memorable WEP key – • שימוש בפונקציות hash • WEP key נפרד לכל mobile node , לכל user , לכל session • Rekeying כל user אחרי 10000 packets
RC4 המלצות: • לזרוק את 256 הבתים הראשונים של תוצאת RC4 • יישום נכון של אלגוריתמים קריפטוגרפיים בשלב תכנון הפרוטוקול ( יישום נכון של RC4 ב-SSL מונע את ההתקפה של Fluhrer)
איך לתקן את WEP ? • מנגנון הסודיות • חמרת ה-WEP תזרוק את הבתים הראשונים המוצפנים או • לכל חבילה יהיה שימוש בפונקצית hash חזקה : K =hash (IV. WEP key) • Rekeying לעתים קרובות • לא להשתמש ב-bad IV’s
מנגנון השלמות (Integrity) • שימוש ב- keyed universal hash function • מנגנון ה- Authentication • נדרש לספק מנגנון ל- rekeying עבור פונקציות הסודיות והשלמות • לאפשר לשני הצדדים (base station, mobile node) לבחור בגרסת ה- WEP הכי טובה ששניהם תומכים
כלים נוספים לשבירת מפתחות WEP: Airsnort WEPcrack מסקנה : “802.11b WEP standard is completely insecure”
תרגילי בית • מנה את החולשות של WEP . • הגדר את המושג resolving case. • הראה איך אפשר למצוא את ה-byte הראשון של המפתח הסודי (K0)במקרה של IV = (3,255,X) , בהינתן P1 (ה- byte הראשון של ה-data ). • מה אפשר להמליץ למשתמשים ב- WEP ? (shelefro@post.tau.ac.il)