הגנה במערכות מתוכנתות

‫הגנה במערכות מתוכנתות‬
‫תרגול ‪ – 6‬בקרת כניסה‬
‫הערה‪:‬‬
‫שקפים אלה אינם מהווים תחליף לחומר התרגולים‬
‫המפורסם באתר הקורס‪ ,‬ומשמשים כעזר הוראה בלבד‪.‬‬
‫בקרת כניסה‬
‫‪ ‬סיסמאות (מקדמי בטיחות)‬
‫‪ ‬אחסון סיסמאות ב‪Unix-‬‬
‫‪ ‬התקפות מילון‬
‫‪2‬‬
‫‪6‬תרגול ‪-‬הגנה במערכות מתוכנתות‬
‫) אריק פרידמן ‪(c2007‬‬
‫הנושא‪ :‬בקרת כניסה‬
‫‪ ‬המחשב מאמת את זהות המשתמש שמנסה‬
‫להשתמש בשירותיו‬
‫‪ ‬לפעמים גם המשתמש ירצה לאמת את זהות המחשב‬
‫‪ ‬שיטות מימוש בקרת כניסה‪:‬‬
‫‪ ‬תכונה שלי‬
‫‪ ‬משהו שיש לי‬
‫‪ ‬משהו שאני יודע (סיסמאות – השיטה הנפוצה)‬
‫‪3‬‬
‫‪6‬תרגול ‪-‬הגנה במערכות מתוכנתות‬
‫) אריק פרידמן ‪(c2007‬‬
‫סיסמאות‬
‫‪ ‬נשמרות במחשב ומשמשות לאימות‬
‫‪ ‬מקדם הבטיחות של סיסמה =‬
‫תוחלת הזמן לפיצוח הסיסמה בחיפוש שיטתי‬
‫‪ – N ‬גודל מרחב הסיסמאות‬
‫‪ – T ‬הזמן הדרוש לאימות סיסמה בודדת‬
‫‪ ‬בהנחה של התפלגות אחידה‪:‬‬
‫מקדם הבטיחות הוא ‪½NT‬‬
‫‪4‬‬
‫‪6‬תרגול ‪-‬הגנה במערכות מתוכנתות‬
‫) אריק פרידמן ‪(c2007‬‬
‫הגדלת מקדם הבטיחות‬
‫‪ ‬הגדלת ‪:N‬‬
‫‪ ‬הגדלת אורך סיסמה‬
‫‪ ‬הגדלת מרחב תווים מותרים‬
‫‪ ‬הגדלת ‪:T‬‬
‫‪ ‬הוספת השהיה מכוונת‬
‫‪ ‬חישוב ארוך יותר בעת אימות הסיסמה‬
‫‪5‬‬
‫‪6‬תרגול ‪-‬הגנה במערכות מתוכנתות‬
‫) אריק פרידמן ‪(c2007‬‬
‫המלצות לסיסמה בטוחה‬
‫‪ ‬אורך גדול (‪ 6‬תווים לפחות)‬
‫‪ ‬לכלול אותיות קטנות‪ ,‬גדולות‪ ,‬ספרות‬
‫‪ ‬לכלול סימנים מיוחדים (כגון‪ ,# ,@ ,! :‬וכו')‬
‫‪ ‬לא להיות שם חשבון‪ ,‬שם המשתמש‪ ,‬תאריך‬
‫הלידה‪ ,‬מילים ממילון או כל דבר קל לניחוש‪.‬‬
‫יש להחליף את הסיסמה לעיתים קרובות‪.‬‬
‫‪6‬‬
‫‪6‬תרגול ‪-‬הגנה במערכות מתוכנתות‬
‫) אריק פרידמן ‪(c2007‬‬
‫אחסון סיסמאות – נסיון‬
,username-‫ קובץ בו לכל משתמש מאוחסן ה‬
:‫והסיסמה בצורה מתומצתת‬
Password File:
Password
(Not Part of the file!!!)
Username E(Password)
amnonsh
k3aJ}nne
123
biham
i9i8awTp
456
orrd
k3aJ}nne
123
(c2007 ‫) אריק פרידמן‬
‫הגנה במערכות מתוכנתות‬- ‫תרגול‬6
7
‫דוגמה לתמצות‪:‬‬
‫‪‬‬
‫על‪-‬בסיס אלגוריתם ההצפנה ‪DES‬‬
‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪8‬‬
‫קלט ופלט ‪ 64 -‬ביט‪ ,‬מפתח – ‪ 56‬ביט‬
‫תהליך התמצות‪:‬‬
‫המשתמש בוחר סיסמה בת ‪ 8‬תווים (‪ 8‬ביט לתו)‬
‫לוקחים ‪ 7‬ביטים מכל תו לקבלת מפתח בן ‪ 56‬ביטים‪.‬‬
‫נקרא למפתח המתקבל ’‪.pass‬‬
‫מצפינים את הקבוע ‪ 0‬עשרים וחמש פעמים‪:‬‬
‫)…)‪DESpass’(…(DESpass’(0‬‬
‫‪6‬תרגול ‪-‬הגנה במערכות מתוכנתות‬
‫) אריק פרידמן ‪(c2007‬‬
‫יתרונות עיקריים‪:‬‬
‫‪ ‬הסיסמה לא נשמרת במחשב‬
‫‪ ‬קל לבדוק נכונות הסיסמה המוקלדת‬
‫‪ ‬אין מפתח סודי שנשמר במחשב ומאפשר את‬
‫פענוח הסיסמה‬
‫‪9‬‬
‫‪6‬תרגול ‪-‬הגנה במערכות מתוכנתות‬
‫) אריק פרידמן ‪(c2007‬‬
‫חסרונות עיקריים‪:‬‬
‫‪‬‬
‫שתי סיסמאות זהות יתנו שני תמצותים זהים‪ ,‬דבר שיהיה‬
‫קל לזהות בקובץ הסיסמאות‬
‫‪ ‬סיסמאות דומות למשתמשים שונים‬
‫‪ ‬סיסמאות דומות של אותו משתמש בשתי מערכות שונות‬
‫‪‬‬
‫התקפה לפריצת חשבון כלשהו במערכת‪:‬‬
‫‪ ‬גודל מרחב סיסמאות בגודל ‪ x ,N‬משתמשים במערכת‬
‫‪ ‬תוחלת מספר הסיסמאות לבדיקה‪:‬‬
‫חשבון מסוים‪ ,N/2 :‬חשבון כלשהו‪N/(x+1) :‬‬
‫‪10‬‬
‫‪6‬תרגול ‪-‬הגנה במערכות מתוכנתות‬
‫) אריק פרידמן ‪(c2007‬‬
‫אחסון סיסמאות ב‪Unix-‬‬
‫‪‬‬
‫דומה‪ ,‬למעט‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪ – Salt‬מחרוזת אקראית בת ‪ 12‬ביטים‪ ,‬מופיעה בגלוי בקובץ הסיסמאות‬
‫שימוש אלגוריתם ’‪ DES‬המושפע מה‪salt-‬‬
‫‪Password File:‬‬
‫‪Password‬‬
‫)!!!‪(Not Part of the file‬‬
‫)‪(0‬‬
‫‪11‬‬
‫‪DES '25‬‬
‫'‪pass‬‬
‫‪Username Salt‬‬
‫‪123‬‬
‫‪110011001100 A9d~ttH%‬‬
‫‪amnonsh‬‬
‫‪456‬‬
‫‪000011110000 kk@u\yYs‬‬
‫‪biham‬‬
‫‪123‬‬
‫‪010101010101 At!a&yba‬‬
‫‪orrd‬‬
‫‪6‬תרגול ‪-‬הגנה במערכות מתוכנתות‬
‫) אריק פרידמן ‪(c2007‬‬
‫הערות‬
‫‪ ‬בהינתן סיסמאות זהות הסיכוי לתמצות זהה נמוך‪.‬‬
‫‪ ‬ההתקפה שתוארה מקודם לא תעבוד‪.‬‬
‫‪ ‬הוספת ה‪ salt-‬לא מגדילה את מרחב הססמאות!‬
‫‪ ‬קובץ אחסון הסיסמאות‪:‬‬
‫‪ ‬בעבר‪ – /etc/passwd :‬קובץ נגיש לכולם‬
‫‪ ‬כיום‪ – /etc/shadow :‬אינו נגיש למשתמשים רגילים‬
‫‪12‬‬
‫‪6‬תרגול ‪-‬הגנה במערכות מתוכנתות‬
‫) אריק פרידמן ‪(c2007‬‬
‫תכנית ‪ crack‬והתקפת מילון‬
‫‪ ‬ניצול התפלגות לא אחידה‬
‫‪ ‬תכנית ‪ – crack‬תכנית לפיצוח סיסמאות באמצעות‬
‫התקפת מילון‪.‬‬
‫‪13‬‬
‫‪6‬תרגול ‪-‬הגנה במערכות מתוכנתות‬
‫) אריק פרידמן ‪(c2007‬‬
‫שאלת בקרת כניסה‬
‫‪‬בחברה מסוימת הוחלט לחזק את שיטת בקרת הכניסה של‬
‫‪ .Unix‬מעתה כל משתמש בוחר שלוש סיסמאות‪ ,‬כל אחת‬
‫באורך השווה לאורך סיסמה במערכת הישנה‪.‬‬
‫‪‬מרחב התווים של הסיסמאות נשאר כמו במערכת הישנה‪.‬‬
‫‪ ‬לאחר שהמשתמש בוחר את שלוש הסיסמאות שלו‪,‬‬
‫המחשב מגריל שלושה ‪-salt‬ים עבור הסיסמאות‪ ,‬ומתמצת‬
‫(‪ )Hash‬כל אחת מהסיסמאות עם ‪ salt‬משלה‪ .‬בקובץ‬
‫הסיסמאות‪ ,‬ליד שם המשתמש כתובים שלושה זוגות‪ ,‬כל‬
‫זוג כולל ‪ salt‬והסיסמה המתאימה מוצפנת עם אותו ‪salt‬‬
‫(כל זוג שמור בדומה לנעשה ב‪.)unix-‬‬
‫‪14‬‬
‫‪6‬תרגול ‪-‬הגנה במערכות מתוכנתות‬
‫) אריק פרידמן ‪(c2007‬‬
‫שאלת בקרת כניסה ‪ -‬המשך‬
‫‪‬על מנת להיכנס למערכת יש צורך להקיש את כל שלוש‬
‫הסיסמאות‪ ,‬כאשר בדיקת הסיסמאות נעשית בצורה‬
‫סדרתית‪:‬‬
‫‪ ‬בהקשת הסיסמה ה‪ ,i-‬אם הסיסמה הייתה נכונה המשתמש‬
‫מתבקש להקליד את הסיסמה ה‪.i+1-‬‬
‫‪ ‬אחרת המשתמש מתבקש להקיש מחדש את הסיסמה ה‪.i-‬‬
‫קבע מהו מקדם הבטיחות של סיסמה במערכת החדשה‪.‬‬
‫הנח כי מקדם הבטיחות של סיסמה במערכת הישנה היה ‪.K‬‬
‫‪15‬‬
‫‪6‬תרגול ‪-‬הגנה במערכות מתוכנתות‬
‫) אריק פרידמן ‪(c2007‬‬