סיסמה

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

מספר זיהוי אישי (PIN)

Personal Identification Number הוא מספר זיהוי אישי קצר (בדרך כלל בן ארבע ספרות), המשמש בעיקר במסופי משיכת מזומנים באמצעות כרטיס משיכה או כרטיס אשראי. מספר PIN, בדרך כלל מהווה רק חלק מההגנה, כאשר אמצעי ההגנה הנוסף הוא הכרטיס עצמו, שמכיל פס מגנטי או מעגל משולב, שבו צרוב מידע נוסף. מידע זה יחד עם מספר הזיהוי האישי מאפשרים למערכת לאמת את הכרטיס ואת זהות בעליו. היות שהמספר האישי קצר, בעיקר כדי לאפשר את זכירתו, דרוש אמצעי הגנה נוסף משום שניחוש המספר קל מדי. די לנסות במקרה הגרוע 10,000 ניסיונות בלבד לפני שמוצאים את המספר הסודי. על כן המערכות מגבילות את מספר האפשרויות להקלדת מספר שגוי. אם המשתמש הקיש מספר שגוי שלוש פעמים, הכרטיס נבלע.
בחלק מהמכוניות משמש PIN כאמצעי הגנה על התנעת הרכב, בנוסף למפתח פיזי. מספר ניסיונות הקלדה שגויים יחסמו את האפשרות להתניע את הרכב. אמצעי הגנה זה כולל בדרך כלל רק ארבעה או חמישה מקשים, שמתוכם יש לבחור את המספר הסודי, כך שמספר האפשרויות הכולל מצטמצם. כאשר, למשל, יש להקיש קוד סודי בן 4 ספרות הנבחרות מתוך 5 מקשים בלבד - מתאפשרים רק  קודים שונים.

סיסמת גישה למשאבי מחשב

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

סיסמה קונבנציונלית

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

ניפוח סיסמה (Salting)

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

משפט-סיסמה (Pass-phrase) ומפתח-סיסמה (Passkey)

משפט-סיסמה הוא משפט או פסוק בעל משמעות המורכב ממספר מילים בעלות הקשר כלשהו. למרות שהמשפט מכיל יתירות גבוהה יותר מסיסמה חסרת משמעות, השימוש בו מגביר את האנטרופיה מאוד. בדרך כלל לא משתמשים במשפט סיסמה ישירות אלא תחת זאת מגבבים את מחרוזת המילים לערך בגודל קבוע באמצעות פונקציית גיבוב בטוחה וערך זה משמש כסיסמה. הרעיון הוא שלמשתמש קל יותר לזכור משפט הגיוני מאשר רצף חסר משמעות של תווים. בשפה האנגלית כל אות מכילה כ-1.5 סיביות של אנטרופיה, במשפט ארוך סך כל הסיביות האנטרופיה מציע בטיחות גבוהה. החיסרון היחידי במשפט-סיסמה הוא בצורך להקליד יותר.
מפתח-סיסמה הוא סיסמה שמומרת בעזרת פונקציה מוגדרת למפתח הצפנה סודי, מאחר שהסיסמה כשלעצמה קטנה מדי מכדי לשמש כמפתח הצפנה. מפתח הצפנה סימטרי טיפוסי צריך להיות בגודל של 64 סיביות לפחות (מפתח AES המינימלי הוא בגודל 128 סיביות). לבן אנוש קשה לזכור רצף ספרות באורך כזה, לצורך המחשה מפתח של 64 סיביות יכול להגיע לרצף של 20 ספרות עשרוניות. הרעיון הוא להפיק מפתח הצפנה באורך הדרוש מתוך סיסמה קצרה, בעזרת פונקציה בטוחה כלשהי, בדרך כלל פונקציית גיבוב בטוחה כמו SHA.

בטיחות

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