אימות FIDO עם סיסמאות

מבוא

תקן האימות המהיר (FIDO) של הזהות אונליין מגדיר מנגנון אימות מהיר ומאובטח למשתמשים כדי שיוכלו לגשת לאתרים ולאפליקציות.

ה-FIDO Alliance, שכולל ייצוגים של מגוון ארגונים, מפתחת מפרטים טכניים פתוחים וניתנת להתאמה שמאפשרים לאנשים לגשת לאתרים ולאפליקציות באמצעות פרוטוקול משותף. כלומר, כל חברה יכולה להשתמש בתקנים של FIDO כדי להטמיע טכנולוגיות כמו מפתחות, לצורך אימות מאובטח.

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

למה האימות המאובטח חשוב?

במשך מספר עשורים נעשה שימוש בסיסמאות לצורך אימות במחשוב. עם זאת, אימות מבוסס-סיסמה הוא לא האפשרות הבטוחה ביותר לאימות, מכיוון שאפשר להפריך מסדי נתונים וסיסמאות.

משתמשים רבים מתחברים לאתרים שונים באמצעות אותן סיסמאות. כלומר, כשאתר אחד נפרץ, כל חשבון אחר שמשתמש באותה הסיסמה נמצא בסיכון. לכן, גם אם בניתם מערכת סיסמאות מאובטחת, אנשים עדיין נמצאים בסיכון כאשר סיסמה היא ההגנה היחידה שלהם.

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

איך אפליקציית FIDO יוצרת אבטחה חזקה יותר?

אימות מבוסס FIDO מסיר הרבה מהבעיות שמקורן באימות מבוסס-סיסמה, ובאימות שנעשה בו שימוש בשלבים שבועיים מסורתיים. בפרט:

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

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

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

לדוגמה, נניח שהמשתמש מנסה להתחבר אל example.com. אם המשתמש יבקש את פרטי הכניסה שבבעלות example.com בתאריך phishing-example.com, המאמת ידחה את הבקשה כדי להגן על המשתמש. תהליך האימות מקשה מאוד על אתרים או אפליקציות פישינג להשיג אימות המיועד למקורות אחרים.

באופן כללי, אפשר להשתמש ב-FIDO ובסיסמאות כדי לפרוס אימות חזק יותר שעדיין נוח לשימוש ונוח לרוב המשתמשים.

הדגמה

מהם כרטיסים?

מפתח הוא פרטי כניסה דיגיטליים שמצייתים לתקן FIDO ולאימות אינטרנט של W3C (WebAuthn). בדומה לסיסמה, אתרים ואפליקציות יכולים לבקש ממשתמש ליצור סיסמה כדי לגשת לחשבון.

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

כשחוזרים לאתר או לאפליקציה כדי להתחבר, המשתמש עשוי לבצע את השלבים הבאים:

  1. נכנסים לאפליקציה.
  2. לחץ על כניסה.
  3. בוחרים את הסיסמה שלו.
  4. כדי להשלים את ההתחברות, צריך לבטל את נעילת המכשיר.

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

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

איך עובדים מפתחות גישה?

המפתחות נוצרים ומסונכרנים דרך מערכת ההפעלה. מערכות הפעלה מסוימות עשויות לאפשר סנכרון אוטומטי של מפתחות בין המכשירים של המשתמש, כגון טלפון Android ומכשיר ChromeOS שמחוברים לאותו חשבון Google.

המפתחות מחוברים למערכות הפעלה, אבל המשתמשים יכולים להשתמש במפתחות בטלפון כשהם מתחברים למחשב נייד. מאחר שקודי הסיסמה מבוססים על תקני FIDO ו-W3C, כל הדפדפנים יכולים לאמץ אותם. לדוגמה, משתמש מבקר site.example ב-Chromebook שלו. המשתמש הזה התחבר בעבר למכשיר site.example במכשיר iOS שלו. המשתמש יתבקש לאשר את הזהות שלו במכשיר ה-iOS. בדרך כלל, מערכת site.example תיצור סיסמה חדשה ל-Chromebook של המשתמש, כך שבהתחברות הבאה, הטלפון לא יהיה נדרש יותר.

המפתחות מוצפנים מקצה לקצה. כלומר, למרות ש-Google אחראית לסנכרן אותם במכשירי Android שונים, Google לא יכולה לקרוא את הסיסמה או לדעת את הנתונים בכל דרך אחרת.

תהליך האימות

ייצוג דוגמה למראה של חלון האימות.

כדי ליישם את הסיסמה באתר או באפליקציה, חשוב שתכירו את הדברים הבאים:

  • מאמתי הם מכשירים פיזיים בבעלות המשתמש שמחזיקים את אישורי המשתמש ומאפשרים לזהות את המשתמש.
  • הצד התלוי הוא האתר או האפליקציה שלך, שמורכב מאפליקציה חזיתית ושרת עורפי.
    • האפליקציה הקדמית קוראת ל-APIs כדי לקיים אינטראקציה עם מאמת החשבונות ולהתחיל את תהליך האימות.
    • שרת הקצה העורפי מאחזר את האובייקטים הקריפטוגרפיים שנוצר על ידי מאמת החשבונות ומאמת אותם.

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

מאמתי חשבונות

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

למכשיר יש שני תפקידים: רישום ואימות:

  • כשהמשתמש נרשם עם גורם תלוי, המכשיר יוצר זוג מפתחות ייחודי פרטי. הנתון כולל את הטלפונים והמחשבים של המשתמש.
  • כשהמשתמש יחובר לצד התומך בעתיד, המכשיר ייצור חתימה באמצעות המפתח הפרטי.

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

מכשירים שתואמים ל-FIDO

מאמתי החשבונות הנפוצים ביותר הם:

  • מאמתי פלטפורמה: מובנים בסמארטפונים ובמחשבים. לאימותי פלטפורמה נעשה שימוש בחיישן ביומטרי (כגון חיישן טביעות אצבע או מצלמה עם זיהוי פנים), קוד אימות או קו ביטול נעילה. מאחר שהאימות של האימות מתבצע על ידי ביטול נעילת המכשיר, זה מוכיח בצעד אחד כי למשתמש יש את הבעלות על המכשיר והוא יכול לוודא את הזהות שלו באמצעות המידע הביומטרי הייחודי שלו.
  • מפתחות אבטחה: בדרך כלל מדובר בהתקני USB עם לחצן ללחיצה כדי לציין אימות. כשמוסיפים סיסמה באמצעות מפתחות אבטחה, היא יכולה להיות גורם משמעותי באימות דו-שלבי. הדוגמה הנפוצה ביותר לכך היא מפתח אבטחה Titan או YubiKey.

ממשק קצה

אפליקציות משתמשות בממשקי API בצד הלקוח, כמו WebAuthn ו- FIDO2 ל-Android, כדי ליצור ולאמת פרטי כניסה של משתמש במאמת החשבונות.

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

עורף

השרת מאחסן את פרטי הכניסה של המפתח הציבורי ואת פרטי החשבון של המשתמש.

בזמן הרישום והאימות, השרת יוצר אתגר קריפטוגרפי. האתגר הזה מוודא שהחתימה שהנפיקה את מאמת החשבונות, מאמתת אם המשתמש הוא מי שהוא טען.

שאלות נפוצות

מי תומך בסיסמאות?

מאחר שהכרטיסים מבוססים על תקני FIDO, הם פועלים ב-Android וב-Chrome, יחד עם פלטפורמות ודפדפנים פופולריים אחרים כמו Microsoft, Windows, Microsoft Edge, MacOS, iOS ו-Safari.

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

ב-Android, אנחנו שואפים לספק למפתחים גישה לפרטי הסיסמה עד סוף 2022.

מה קורה אם משתמש מאבד את המכשיר שלו?

סיסמאות שנוצרו ב-Android מגובות במכשירי Android המחוברים לאותו חשבון Google, בדיוק כמו שסיסמאות מגובות במנהל הסיסמאות.

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

האם משתמש יכול להשתמש בקוד גישה בטלפון כדי להיכנס למכשיר של חבר?

כן. משתמשים יכולים להגדיר קישור חד-פעמי &"בין הטלפון למכשיר של מישהו אחר למטרות כניסה.

השלבים הבאים

שיעור Lab:

למידע נוסף על:

לקבלת עדכונים: