סיסמה

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

כללי סיסמה

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

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

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

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

הדרישה לסיבוכיות של סיסמה אינה מבטיחה סיסמה איכותית כך למשך דרישה לאותיות גדולות, קטנות, סימנים מיוחדים וספרות עדיין מאפשרת את הסיסמה P@ssw0rd שהיא סיסמה המופיעה בכל מילון סיסמאות, ולכן מערכות הפעלה ותוכנות מאפשרת בדיקה במילונים לפני אישור הסיסמה או בניית חוקים ממוקדים הבודקים את הסיסמה באופן אובייקטיבי (למשל שימוש בשם החברה או שם המשתמש בתוך הסיסמה) או סובייקטיבי (שימוש בתאריך לידה של המשתמש בתוך הסיסמה).

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

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

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

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

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

סיסמה חד-פעמית

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

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

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

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

האם תם עידן הסיסמאות? 
מחקרים שנעשו בעבר על ידי RSA, מיקרוסופט, גוגל וגורמים נוספים, מצביעים על כך ששיטות האימות המבוססות רק על סיסמה לבדה אינן בטוחות. הם הגיעו למסקנה שסכמות סיסמה מספקות הגנה חלשה ביותר ולעיתים אף בלתי מספקת. ולכן החל מעבר לטכנולוגיה של "אימות חזק" המבוסס על פרוטוקול אתגר-מענה, שיטות אילו לא נועדו להחליף את הסיסמה אלא רק כתוספת חיזוק בתצורה שנקראת אימות דו-שלבי. כמו כן פותחו טכנולוגיות נוספות המיועדות להחליף את הסיסמה, בהן:
כרטיס אימות ייעודי עם שבב חסין מגע כמו SecurID של RSA, המאפשר אימות יעיל ובטוח באמצעות שיטת סיסמה חד פעמית. 
אימות בעזרת שליחת קוד הזדהות נוסף בערוץ אחר כגון SMS או מייל למספר טלפון או כתובת דואר שהוגדרו מראש. 
טכנולוגיות אימות ביומטרי כמו אימות מבוסס פנים ואימות מבוסס טביעת אצבע.
אימות בעזרת אפליקציה בטלפון האישי - מיד לאחר הקשת שם המשתמש והסיסמה, נשלחת בקשת הזדהות לטלפון של המשתמש, הזדהות או לחיצה על כפתור באפליקציה מוכיחים שהמזדהה הוא אכן המשתמש ומתבצע תהליך אישור.
חלק מהן כבר נפוצות כיום בשימוש בטלפונים ניידים ובשעוני נוכחות ולאחרונה אף דווח שפייסבוק שוקלת לעבור לאימות מבוסס פנים. הממשל האמריקאי מנהיג רגולציה הנקראת CAC הדורשת בעיקרון שהחל משנת 2014 תהליכי אימות לא יבוצעו באמצעות סיסמה אלא אך ורק באמצעות כרטיס אימות ייעודי. רבים סבורים שהשימוש בסיסמאות ילך ויפחת עם הזמן, כאשר במקומן יבואו שיטות חדשות, חכמות יותר. אולם העובדות בשטח מצביעות על כך שחברות הטכנולוגיה אינן מתכוונות לזנוח את שיטת האימות באמצעות סיסמה בזמן הקרוב. כל הטכנולוגיות כיום מתמקדות בשילוב של אמצעי הגנה משני יחד עם הסיסמה אבל לא במקומה. הסיבות לכך הן בעיקר שמישות וזמינות. הרשתות החברתיות והמסחר האלקטרוני מושתתים ברובם על אימות סיסמה ולא נראה שחברות כמו פייסבוק או גוגל יוותרו על סיסמה לגמרי.

סיסמה להעברת מסר סודי באמצעי תקשורת גלויים

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

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

ראו גם
 סיסמה חד פעמית
 פרוטוקול אתגר מענה
 תקן FIDO

קישורים חיצוניים 

 הספר Handbook of Applied Cryptography, פרק 10
 
 סיסמאות, מיקרוסופט TechNet
 שי בן משה (ספטמבר 2011). Password Entropy ו-Phrase Based Password Entropy

הערות שוליים

ערכים שבהם תבנית בריטניקה אינה מתאימה
אבטחת מחשבים
אמצעי זיהוי