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

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

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

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

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

תהליך ההרשמה

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

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

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

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

תהליך ההרשמה

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

תהליך האימות

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

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

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

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

תהליך האימות

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

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

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

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

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

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

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

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

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

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

סיסמאות

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

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

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

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

איחוד זהויות

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

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

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

משאבי למידה

פיתוח אתרים

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

Android

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

חוויית משתמש

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