יום שלישי, אוקטובר 18, 2016

WISPr v1

בפוסט קודם הזכרתי את WISPr בלי להרחיב מספיק, WISPr  היא אוסף של פרטוקלים שמאפשר לנו לבצע התקשרות עם ספקי שירות לקבלת גישה למשאבים.

ההתקשרות מבוצעת ע"י לקוח "חכם" (לדוגמה דפדפן או אפליקציה במכשיר הסמארטפון), אחד הפריסות הפופלאריות ביותר זה שירותי תשתית בצורה כזאת ציוד הקצה יכול להשתמש ברשתות וי-פי שהן בתורן יזהוו באמצעות AAA מול ספק השירות.

WISPr תוכנן ע"י ה Wi-Fi Alliance והוא דרך לבצע פעולות AAA בשביל לאפשר נדידה (Roaming)  אצל ספקי תשתית על בסיס שירותים אלחוטיים (Wireless Internet Service Providers). כאשר אנו מגיעים לספק שיש לו חוזה התקשרות עם ספק האם שלנו אנו נוכל להתחבר אליו גם ללא חשבון (נדידה ב WiFi).


מוגדרים מספר שלבים בתהליך -

הזדהות משתמש הקצה. 
הזדהות הנקודה החמה (hotspot) אל מול ה שירות הזיהוי (Authentication ו Accounting)
התקשרות בין שירותי הזיהוי דרך יישות ניוד (roaming intermediary authntication and Accounting Server) אל ספקי התשתית.

למשתמש הקצה יש חוזה עם ספק התשתית , ספק זה יחייב את הלקוח ע"י חישוב השימוש שבוצע וזוהה ע"י שירות הזיהויי.


אם זה מזכיר לכם את אחד הספקים הגדולים בעולם שנקרא ipass אתם צודקים כי זו אחת הטכנולוגיות שהם משתמשים בהן, דוגמאות שאנשי הקצה יכולים להכיר זה skype wifi או ספקי תקשורת בהם הלקוחות נותנים חלק מרוחב הפס שלהם לרשתות המכילות את המילה Free Wi-Fi - אלו הם פשוט ספקי תקשורת שמספקים  שימוש נוסף באותו הספק או בשיטה דומה לספק הזה. אחד מהמשתמשים המוכרים למשתמשי הקצה אף מכיל התייחסות מפורשת לipass בתוך ה apk שלו.

בעת התקנה אפליקיית הקצה מותקנת חותמת להזדהות (certificate), ובסיס נתונים שמכיל רשתות אליהם מותר להתחבר.


תהליך ההזדהות -

לאחר שהלקוח התחבר לרשת וי-פי מרשימת הרשתות הרשומות,  התוכנה מבצעת בקשת GET ליעד מוגדר מראש ובודקת את התוכן שחוזר.

אם בתוכן שחוזר קיים WISPr-xml-tag הזדהות ממשיכה אחרת עוצרת,
תוכן לדוגמא:

<HTML> 
<!--
    <?xml version=”1.0” encoding=”UTF-8”?>
    <WISPAccessGatewayParam xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
      xsi:noNamespaceSchemaLocation=”http://www.shekercolshehu.com/WISPAccessGatewayParam.xsd”>
      <Redirect>
        <AccessProcedure>1.0</AccessProcedure>
        <AccessLocation>Totaly not going to rip you off Network</AccessLocation>
        <LocationName>Totaly not going to rip you off</LocationName>
        <LoginURL>https://shekercolshehu.com/login</LoginURL>
        <MessageType>100</MessageType>
        <ResponseCode>0</ResponseCode>
      </Redirect>
    </WISPAccessGatewayParam>
--> 
</HTML>

לקוח הקצה קורא את תוכן המידע שהתקבל (זו אחת הסיבות למה libxml2.so קיים באפליקציית bezeq free wifi), ושולח בקשת חיבור ל LoginURL באמצעות POST ושימוש בחותמת שהותקנה.

זו בדיוק הצורה בה מכשירי הios יכלו להתחבר לAT&T בלי שום בעייה (כי attwifi הוא אחד מהספקי שלקוח ה wispr של אפל עובד איתו כברירת מחדל).

דוגמה לראות מה נקבל תחת שירות כזה היא (הU-A משחק תפקיד חשוב) הכתובת יכולה להיות כל כתובת בשביל לגלות את ההפניה:

$ curl -L -i -H "User-Agent: CaptiveNetworkSupport/1.0 wispr" www.google.com

כתוצאה נקבל את דף ה wispr במקרה שבאמצעותו יש להתחבר אבל אם נקבל באמת את התוכן של www.google.com זה אומר שאין שום wispr בדרך.

WISPr גם מזכיר את האפשרויות האחרות לביצוע הזדהות מול השירות כמו 801.11 (wpa_supplicant)

אין תגובות:

הוסף רשומת תגובה