מדריך למפתחים בנושא מפתחות גישה לצדדים להסתמך על מפתחות גישה

איך משלבים מפתחות גישה בשירות.

המבנה של מערכת מפתחות גישה

מערכת מפתחות גישה מורכבת מכמה רכיבים:

  • צד נסמך: בהקשר של מפתחות גישה, צד נסמך (RP בקיצור) מטפל בהנפקה ובאימות של מפתחות גישה. ה-RP צריך להפעיל לקוח – אתר או אפליקציה שיוצרים מפתחות גישה או מאמתים באמצעות מפתחות גישה – ושרת לרישום, לאחסון ולאימות של פרטי הכניסה שנוצרו על ידי מפתחות הגישה בלקוח. אפליקציה לנייד עם מפתח גישה צריכה להיות מקושרת לדומיין של שרת RP באמצעות מנגנון השיוך שסופק על ידי מערכת ההפעלה, כמו קישורי נכסים דיגיטליים.
  • Authenticator: מכשיר מחשוב כמו טלפון נייד, טאבלט, מחשב נייד או מחשב שולחני שיכול ליצור ולאמת מפתחות גישה באמצעות התכונה לביטול נעילת המסך שמוצעת על ידי מערכת ההפעלה.
  • מנהל סיסמאות: תוכנה שמותקנת במכשירים של משתמשי הקצה ומספקת, מאחסנת ומסנכרנת מפתחות גישה, כמו מנהל הסיסמאות של Google.

תהליך ההרשמה

כדי ליצור ולרשום מפתח גישה חדש, משתמשים בממשק WebAuthn API באתר או בספריית Credential Manager באפליקציית Android.

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

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

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

תהליך ההרשמה

כאן אפשר לקרוא איך יוצרים מפתח גישה ואיך רושמים אותו.

תהליך האימות

משתמשים ב-WebAuthn API באתר או בספריית Credential Manager באפליקציית Android כדי לבצע אימות באמצעות מפתח גישה רשום.

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

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

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

תהליך האימות

מידע נוסף על אימות באמצעות מפתח גישה:

שילובים בצד השרת

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

מידע נוסף זמין במדריכים שלנו בנושא תיוג בצד השרת:

מנגנוני אימות קיימים (קודמים)

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

יש כמה סיבות לכך:

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

בדיקה מחדש של מנגנון האימות הקיים

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

סיסמאות

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

אימות דו-שלבי

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

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

איחוד זהויות

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

חשוב לזכור: אחרי ש-Chrome יוציא משימוש קובצי Cookie של צד שלישי בשנת 2024, יכול להיות שחלק ממערכות איחוד הזהויות יושפעו, בהתאם לאופן שבו הן בנויות. כדי לצמצם את ההשפעה, אנחנו מפתחים ממשק API חדש לדפדפן שנקרא Federated Credential Management API (בקיצור FedCM). אם אתם מפעילים ספק זהויות, כדאי לעיין בפרטים כדי לראות אם אתם צריכים להטמיע את FedCM.

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

משאבי למידה

פיתוח אתרים

כדי לשלב מפתחות גישה באתר, צריך להשתמש ב-Web Authentication API‏ (WebAuthn). מידע נוסף זמין במקורות המידע הבאים:

Android

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

חוויית משתמש

המלצות לשיפור חוויית המשתמש עם מפתחות גישה: