שְׁאֵלָה:
האם דרישות מורכבות הסיסמה מפחיתות את האבטחה על ידי הגבלת שטח החיפוש?
landon9720
2012-04-26 21:26:50 UTC
view on stackexchange narkive permalink

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

השאלה שלי היא זו:

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

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

0.02 $ אתה משוגע אם אתה חושב שדרישה של 8 תווים כולל ספרה אחת מצמצמת את שטח החיפוש "עד כדי כך שזה כמעט טריוויאלי לנחש סיסמאות שנוצרות בצורה כזו". אתה יודע מה פירוש "כוח של 2", נכון?
שים לב שאם התקפה של כוח אכזרי מורכבת ממחרוזות שהופסקו ללא ביטול, האמירה כי 8 התווים הראשונים חייבים להיות> null, לא ממש משנה את שטח החיפוש.
תהיתי את אותו הדבר. אבל אתה צריך לקחת את הדוגמה הגרועה ביותר של המשתמש שבוחר סיסמה קצרה שנמצאת במילון. יש כמה מאות אלפי מילים במילון, אבל 2 × 10 ^ 14 שילובים אלפא-נומריים שונים של 8 אותיות ומספרים מעורבים. זה יורד ל -1 × 10¹3 אם זה יכול להיות מספר אחד ויחיד. [אחד הקומיקסים ה- xkcd האהובים עלי בנושא זה.] (Http://xkcd.com/936/)
חָמֵשׁ תשובות:
ccurtsinger
2012-04-26 21:51:51 UTC
view on stackexchange narkive permalink

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

ניתוח קומבינטורי

כדי להקל על העניין, נניח שביקשנו מהמשתמש סיסמה אלפא-נומרית בת שמונה תווים שאינה רגישה (/ ^ [a-z0-9] {8} $ / אם תרצה) .

ללא דרישת מורכבות, קיימות 36 ^ 8 סיסמאות אפשריות. מדובר בכ -2.8 טריליון אפשרויות.

נניח ואז תטיל את הדרישה שדווקא בתו אחד הוא ספרה. ישנן רק עשר אפשרויות של ספרות, אך היא עשויה להופיע בכל אחת משמונה העמדות. זה משאיר 26 ^ 7 * 10 * 8 אפשרויות, או כ 640 מיליארד אפשרויות.

כמובן, סביר להניח שמשתמשים לא ישתמשו בסמלים מוזרים בסיסמאות שלהם ללא דרישת מורכבות. אם מספרים הם עמדתנו בסמלים מוזרים במקרה זה, פירוש הדבר שלכל מיקום יש באמת רק 26 אפשרויות אפשריות. זה משאיר 26 ^ 8, או כ -208 מיליארד סיסמאות אפשריות. הסיסמה עם דרישת המורכבות טובה פי 3 מאשר קלט בלתי מוגבל של משתמש משוחד.

סיכום

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

Plastic Sturgeon
2012-04-26 21:35:23 UTC
view on stackexchange narkive permalink

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

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

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

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

תגובת אימות איטית מעולה למניעת כניסות כוח ברוטאליות, אך אינה עושה דבר כדי להגן על המשתמשים כאשר דליפות סיסמאות הודלפו. זה קורה בתדירות מפתיעה, וההגנה האמיתית היחידה בשלב זה היא מרחב גדול של סיסמאות אפשריות.
נקודה נהדרת. וכמובן ששום סיסמה אינה עמידה בפני טקטיקות הנדסה חברתית: התחזות, התחזות, גניבת זהות וכו 'בהן המשתמש למעשה נותן את הסיסמה לצד אחר שהוא מאמין שהוא צד מהימן.
אולי זה מקרה לדרוש ממשתמשים ליצור סיסמאות שהם לא יכולים לזכור :)
או מקרה לביטחון דו-גורמי. היכנס באמצעות סיסמה כדי להזין סיסמה שנייה עם הודעת טקסט לטלפון שלך. או סיסמא בתוספת ביומטריה. סיסמא בתוספת זיהוי תמונה של עמיתים לעבודה שלך. סיסמה בתוספת דונגל מאובטח. או - פשוט השתמש בשחזור הסיסמה האבודה ותקף את זה.
atk
2012-04-26 21:58:27 UTC
view on stackexchange narkive permalink

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

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

  1. 8 תווי ASCII להדפסה = בערך 100 ^ 8 = 10 ^ 16 ערכים אפשריים
  2. 16 ספרות ASCII להדפסה = 10 ^ 16 ערכים אפשריים
  3. 9 תווי ASCII להדפסה עם מספר אחד לפחות, אות אחת (בכל מקרה) וסמל אחד = ((10 מספרים) (52 אותיות) (30 סמלים) * 100 ^ 6) = 10 ^ 16

[הערה: אני יודע ש- 100 הוא לא המספר האמיתי, זה פשוט מקל על המתמטיקה]

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

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

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

אבל זה לא עושה דבר עבור סיסמאות לדבר. לא תמצאו את P4 $$ w0rd במילון, אבל זו וריאציה די סטנדרטית שבודקים כלים בכוח האילוץ. קח כל מילה במילון, הפעל אותה דרך leet speek, הכן מראש, דחה והוסף תו אחד או שניים בכל מיקום.

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

אבל מה קורה כשאתה שובר סיסמה מסוימת והמשתמש עובר לסיסמה חדשה? משתמשים מנסים לעתים קרובות לעשות את הדבר הקל, ולבחור סיסמה קלה לזכירה - אחת דומה מאוד לזו הקודמת. P4 $$ w0rd1 הופך ל- P4 $$ w0rd2. אבל התוקף פשוט יוסיף את P4 $$ w0rd1 למילון שלו, והוא יבדוק אוטומטית עבור P4 $$ w0rd2. לכן שימוש חוזר בסיסמאות נאסר לרוב.

אך לב הנושא הוא, "האם זה מתאים לצרכי הארגון?" אתה זקוק לסיסמה חזקה מספיק כדי להיות מאובטחת כל עוד היא שימושית (למשל היא שונתה או שהחשבון מושבת), בהתחשב בכל שאר הפקדים המפצים שעוד לא התחלנו לדבר עליהם. אם מהירות האילוץ המהירה היא איטית, או שאתה מקבל רק כמה סיכויים, סיסמאות חלשות יותר בסדר (למשל. IronKey מאפשר משהו כמו 17 ניסיונות ודורש גישה פיזית, כך שסיסמא 10 ^ 16 היא יותר חזקה מספיק).

Sam
2012-12-28 13:59:50 UTC
view on stackexchange narkive permalink

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

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

אינך אוכף אי הכללות, כמו: "אתה לא צריך להשתמש במרחב בסיסמאות שלך", או "אינך רשאי להשתמש במספרים בסיסמה שלך". אז אתה לא מצמצם את שטח התווים .

לסיכום, אני חושב שמורכבות הסיסמאות אינה מפחיתה את שטח החיפוש.

אך מנקודת מבט מעשית של &, העובדה היא:
אנחנו עובדים עם בני אדם & רובם עצלים מכדי לחשוב, מייצרים & שיננו סיסמא טובה או לפחות סיסמה סטנדרטית.
למעשה, סיסמאות ה- USED המשמשות בפועל שייכות למרחב חיפוש מוגבל מאוד: אותיות קטנות & מספרים (חושבים על אקראי סיסמה שנוצרה), אך אפילו לא המרחב המלא, שטח החיפוש האמיתי הוא הרבה יותר קטן בעולם האמיתי.
שטח החיפוש האמיתי הוא סכום של מאגרי סיסמאות נפוצים + עצלות המשתמשים שלך!
שמות מחשב + 123, שם השירות פועל על המארח + 12345 & הרבה יותר סיסמאות טיפשות !!!
אין לך מושג באילו מקומות אוכל לספר בדוק בהצלחה עט באמצעות סיסמאות אלה בשולחנות העבודה המרוחקים שלהם, FTP, שורשים, מנהלי תחומים וכו '& אני לא מדבר על SOHO, אני מדבר על ארגונים ארגוניים, ספקי מכשירי חומת אש וכו'
לדוגמא גלובלית, COMODO. אחד הדברים העיקריים שעזרו לפולש למטרתו היה סיסמה חלשה.

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

אם שטח האפשרות לסיסמאות הוא כל העולם, 98% מהסיסמאות הן באזור של מטר רבוע אחד מהחצר האחורית שלכם!

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

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

ובכן זה מצמצם את שטח החיפוש אחר bruteforce. אם אינך יודע שמדיניות סיסמאות קיימת, עליך לנסות הכל. אבל אם אתה יודע שלדוגמא הסיסמה חייבת להיות באורך של 8 תווים והיא חייבת להיות בעלת מספר, אז אתה לא צריך לחפש סיסמאות קצרות יותר ו / או שאין להן מספר, כך שמבחינת אכזריות ברורה זה מקטין את שטח החיפוש.
BlenderBender
2017-04-05 17:07:17 UTC
view on stackexchange narkive permalink

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


כדי להבין זאת, שקול את הדוגמה הבאה. אם תבחר באקראי מחרוזת אותיות של 0 < = אורך < n מאלפבית בגודל d , יש בדיוק

  d ^ 0 + d ^ 1 + ... + d ^ {n-1} = (d ^ n - 1) / (d-1)  

אפשרויות. אם בחרת מחרוזת באורך l < n , והתוקף בחר מחרוזת באורך n באופן אקראי באופן אקראי , עם הסתברות (d-1) / (d ^ n - 1) הוא יבחר את הסיסמה שלך. שים לב, שהסתברות זו אינה תלויה באורך הסיסמה שלך אלא באורך המרבי שהתוקף רואה.

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


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


גישה סבירה יותר היא להניח כי התוקף עובר את כל מיתרי האורך < n סדר אקראי. עם הסתברות של

  1 - (N-1) / N * (N-2) / (N-1) * ... * (Nk) / (N-k + 1) = 1 - (Nk) / N  

הוא ימצא את הסיסמה שלך (בהנחה שהתוקף ממשיך לנחש גם אם הוא מצא אותה), היכן

  N = (d ^ n - 1) / (d-1)  

הוא מספר כל מחרוזות האורך < n .

שוב, מספר זה אינו לא תלוי בכלל באורך l של הסיסמה שלך. לפיכך, הסיסמה הריקה מאובטחת בדיוק כמו כל סיסמה אחרת .

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

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

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


שאלה ותשובה זו תורגמה אוטומטית מהשפה האנגלית.התוכן המקורי זמין ב- stackexchange, ואנו מודים לו על רישיון cc by-sa 3.0 עליו הוא מופץ.
Loading...