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

עקבו אחר התחברות אחת משדה הסיסמה לשדה הקוד

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

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

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

החליטו מה הקוד באמת מוכיח

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

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

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

ראו מה מחשב נייד שנפרץ יכול להגיע אליו

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

ArrangementWhat it adds at loginWhat it leaves inside the laptop boundary
Password plus TOTP app on the same machineA possession proof the password alone does not supplyThe seed, the unlock step and the authenticated session
TOTP app on a separate phoneSeed storage outside the workstationSession cookies, the typed password and any prompt that can be proxied
Hardware key with a signed challengeA per-login signature bound to the originWhatever the browser and the workstation are already trusted to do

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

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

העבירו את המחולל רק למקום שבו ההפרדה מועילה

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

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

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

מאמרים קשורים