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