IEEE 802.1X

IEEE 802.1x הוא תקן (סטנדרט) של ה-IEEE (איגוד מהנדסים בינ"ל) עבור בקרת גישה לרשת מבוססת פורטים. התקן הוא חלק ממשפחה של פרוטוקולי רשת, IEEE 802.1, המתקננים תקשורת בעיקר בשכבות נמוכות כמו שכבת הקו. הוא מספק מנגנון אימות זהות למכשירים המבקשים להתחבר לרשת מקומית - קווית (LAN) ואלחוטית (WLAN) - כלומר טרם קבלת יכולת להעביר אינפורמציה של ממש ברשת (למשל כשלמכשיר עדיין אין כתובת IP). ה- IEEE 802.1X מגדיר שלושה צדדים - מבקש האימות, המאמת ושרת האימות - ודרכי התקשרות ביניהם למען דחיית או קבלת מבקש האימות. עד אשר אומתה זהות המבקש, נמנעת ממנו גישה לרשת (מלבד לצורכי אימות). האימות מתבצע באמצעות פרוטוקול כללי, EAP)Extensible Authentication Protocol), כאשר התקן מגדיר כיצד EAP נעטף (encapsulated) בשכבת הקו ("EAP מעל LAN" או EAPOL) בין המבקש למאמת. הוא קובע כי עטיפתו בין המאמת לשרת האימות תעשה באמצעות פרוטוקלי AAA קיימים - RADIUS או Diameter. רשת מקומית, ברמת העיקרון, נגישה לכל המתחבר אליה באופן פיזי. מובן שיש מקרים בהם מנהלי הרשת ירצו להגביל את הגישה למשתמשים מסוימים. הדרך הבטוחה ביותר לעשות זאת היא על ידי "רשימה לבנה" הקובעת למי מותרת הגישה וכיצד עליו להזדהות. כך, רק מי שזהותו מאומתת יורשה להתחבר לרשת. רצוי לעשות זאת בשלב המוקדם ביותר של ההתחברות על-מנת לצמצם את אפשרויות התקיפה של המשתמש. לשם-כך פותח IEEE 802.1x. הוא תקן אחיד המספק למכשירים מסוגים שונים המחוברים לרשת מקומית שירותי אימות, הרשאה והחלפת מפתחות הצפנה כך שיוכלו לתקשר בבטחה. התקן הוגדר לראשונה ב-2001. הוא עודכן (בענייני תחזוקה בעיקר) ב-2004. הוא הורחב (בעיקר תמיכה ב-MACsec) ב-2010 וזו מהווה גרסתו העדכנית (נכון ל-2013). הפרוטוקול מגדיר שלושה צדדים בתהליך האימות: המבקש ("supplicant"), המאמת ("authenticator") ושרת אימות. המבקש הוא מכשיר (כגון מחשב נייד או טלפון חכם) המתחבר לרשת המקומית. ליתר דיוק, מדובר בתוכנת לקוח הרצה על המכשיר המתחבר, מממשת את הפרוטוקול ויודעת לספק אמצעי זיהוי ("credentials") של המבקש עבור המאמת. אמצעי הזיהוי יכול להיות שם-משתמש וססמה או סרטיפיקט דיגיטלי. שרת האימות הוא שרת (host) ובו מאגר זהויות כולל פרטיהם והשראותיהם בפורמט אחסנה וגישה מסוים - כמו active directory או שרתי LDAP אחרים. המאמת הוא מכשיר רשת - כגון מתג Ethernet (ב-LAN) או נתב אלחוטי (ב-WLAN) - ה"מתרגם" את המידע (חבילות EAP) ממבנה אותו מכיר המבקש למבנה אותו מכיר השרת, ולהפך. כלומר הוא יודע לתקשר הן עם המאמת (באמצעות EAPOL) והן עם שרת האימות (באמצעות RADIUS למשל) ולהתאים בין פורמט המידע המועברים בשני ערוצי תקשורת אלה (למשל להעביר את פרטי זהות המבקש לשרת האימות). בסופו של דבר, רכיב זה הוא המעניק או מונע גישה מהמבקש. כל עוד זהות המבקש לא אומתה, הוא חסום מלהעביר כל תקשורת ברשת שאיננה קשורה לתהליך האימות עצמו. הוא משמש איפוא כמעין שוער כניסה לרשת (באנלוגיה לעולם האמיתי, הוא חוסם את המבקר באתר, מקבל את פרטי הזהות שלו (למשל ת.ז.), בודק אותם אל מול מאגר מידע (למשל ת.ז. של מורשי הכניסה לאתר) וכך מחליט האם להכניס את המבקר). חשוב לציין ש-EAP מאפשר גם למבקש לאמת את זהות הרשת, בשיטה של "אימות הדדי" (בדוגמה ניתן לומר שהמבקר מוודא אצל השוער שהוא נכנס לאתר הנכון). התקן מגדיר שני סוגים לוגיים של יציאות (פורטים): מבוקר ולא מבוקר. דרך "יציאה לא מבוקרת" עוברת תקשורת ה-EAPOL המשמשת לאימות ותו לאו. "יציאה מבוקרת" מופעלת על ידי ה-802.1X PAE (ישות גישה ליציאה, Port Access Entity) כך שכל עוד המבקש לא אומת, היציאה חסומה בפניו (הן לתנועה נכנסת והן ליוצאת). רק עם אימותו, המאמת יעביר אותה ל"מצב רשאי" המאפשר למבקש שליחת או קבלת נתונים ביציאה. כך מתקיימת הפרדה מוחלטת בין שני ערוצי מידע המונעת מעבר נתונים לא רצויים (שאינם קשורים לאימות) טרם האימות. ההפרדה לוגית זו מתבצעת בהכרח במאמת, אך היא ניתנת למימוש גם בצד המבקש; כך הוא יכול למנוע מפרוטוקלים בשכבה גבוהה יותר להעביר נתונים כל עוד האימות לא הסתיים בהצלחה, דבר שימושי ביותר למניעת דליפת מידע מהמבקש לרשת לא-מאושרת כאשר האימות הוא הדדי. תהליך אימות טיפוסי פועל בשלבים הבאים: אתחול(מצב האפס): כאשר מתחבר מבקש אימות חדש היציאה המבוקרת סגורה בפניו כך שרק תעבורת 802.1X המשמשת לאימות אפשרית (דרך היציאה הלא מבוקרת). פתיחה(בקשת הזדהות): מבקש האימות מאזין לכתובת מיוחדת במקטע הרשת המקומית (בשכבה 2). מדי זמן מסוים, המאמת שולח לכתובת זו בקשת-זיהוי-EAP. המבקש יכול גם לעורר שליחת בקשה זו על ידי שליחת פתח-EAPOL למאמת. מבקש האימות משיב לבקשת הזיהוי בתשובת-זיהוי-EAP המכילה אמצעי זיהוי שלו כגון זהות משתמש (User ID). המאמת עוטף תשובה זו בבקשת-גישה-RADIUS ומעביר אותה לשרת האימות. משא ומתן (בחירת השיטה): שרת האימות משיב לבקשת המאמת באתגר-גישה-RADIUS המכיל בקשת-EAP המפרטת את שיטת ה-EAP - סוג האימות אותו השרת דורש ממבקש האימות. המאמת עוטף בקשת-EAP זו ומשדרה למבקש. זה בתורו יכול לקבל את השיטה ולהענות ל"אתגר", או לדחותה באמצעות שליחת NAK ("קבלה שלילית", "Negative Acknowledgement") ופירוט שיטת ה-EAP בה מוכן להתאמת. וידוא הזהות: אם הסכימו המבקש ושרת האימות על שיטת EAP, הם מחליפים ביניהם את המידע המוגדר בשיטה - בדרך כלל "אתגרים" שהשרת מעמיד בפני המבקש כלומר שאלות הזדהות שרק מי שהוא באמת בעל הזהות שהוצגה בשלב הפתיחה יכול לענות עליהם בוודאות. אם השרת משתכנע שמבקש האימות הוא אכן מי שהוא טוען שהוא, ובעל זהות זו מורשה כניסה לרשת, או אז ישיב שרת האימות בהודעת הצלחת-EAP (עטופה בקבלת-גישה-RADIUS). אחרת הוא ישיב בהודעת כישלון-EAP (עטופה בדחיית-גישה-RADIUS). כניסה ויציאה: אם צלח וידוא הזהות, המאמת מעביר את היציאה המבוקרת למצב "רשאי" בו כל תעבורה יכולה לעבור. אחרת נשארת היציאה במצב "לא-רשאי". כאשר המבקש מתנתק מהרשת, עליו לשלוח הודעת ניתוק-EAPOL למאמת. זה יחזיר את היציאה למצב "לא-רשאי" החוסם כל תעבורה שאינה EAP. EAPOL עובר בשכבת הרשת מעל שכבת הקו. כאשר האחרונה עובדת בפרוטוקול Ethernet הוא מוקצה לטיפוסו (EtherType) הערך 0x888E. 802.1AE MACSec חלונות מערכות הפעלה אחרות תוכנות (MAB (MAC Authentication Bypass אבטחת מידע רשתות תקשורת להורדת התקן IEEE 802.1 RFC 3748