התשובה היא שזה לא כל כך פשוט. חשוב להבין את כל הגישות לתקיפת סיסמאות לפני שתוכל לומר שמורכב הוא טוב או רע, מכיוון שהדרישות השונות נועדו להרתיע סוגים שונים של התקפות.
כפי שאתה מציין, נתון שתיים באותה מידה סיסמאות ארוכות מאותה ערכת תווים, דרישות מורכבות הסיסמה מצמצמות את שטח החיפוש הכולל. לדוגמא, בהינתן סיסמת ASCII של תו אחד שעליה לכלול אות לעומת סיסמת ASCII של תו אחד שעשויה להיות כל דבר, קל יותר לנחש את הסיסמה הראשונה. אורך. שקול את דרישות הסיסמה הבאות של חוזק מינימלי:
- 8 תווי ASCII להדפסה = בערך 100 ^ 8 = 10 ^ 16 ערכים אפשריים
- 16 ספרות ASCII להדפסה = 10 ^ 16 ערכים אפשריים
- 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 היא יותר חזקה מספיק).