כלי סיסמאות חזרה למחולל

מדריך אבטחה

מהו Web Crypto API?

למד כיצד Web Crypto API תומך ביצירת סיסמאות אקראיות בדפדפן ומדוע הוא שונה מאקראיות JavaScript רגילה.

סיכום

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

למה זה חשוב לסיסמאות

סיסמאות זקוקות לאי-חיזוי. אקראיות JavaScript רגילה לא תוכננה עבור סודות. Web Crypto קיים כדי שדפדפנים יוכלו לחשוף פרימיטיבים קריפטוגרפיים בטוחים יותר דרך API סטנדרטי. PwdGen משתמש ב-API זה לבחירה אקראית מוגבלת ונמנע מ-Math.random() ליצירת סיסמאות.

גבול מערכת ההפעלה

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

כיצד PwdGen משתמש בו

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

הנחיות מפורטות

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

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

לנושא זה, הגדרה מוקדמת מעשית היא Chrome, Edge, Safari ו-Firefox מודרניים עם crypto.getRandomValues זמין. ניתן להחיל הגדרה מוקדמת זו עם דף תמיכת הדפדפן ולאחר מכן לאחסן את הערך הסופי במנהל סיסמאות מהימן. PwdGen יוצר ערכים מקומית בדפדפן עם Web Crypto; הסיסמה שנוצרה אינה נשלחת לשרת PwdGen. עיצוב מקומי זה מפחית חשיפה בצד השרת, אך אינו מגן מפני כל איום. תוסף דפדפן זדוני, מכשיר שנפרץ, דף דיוג או טיפול לא בטוח בלוח יכולים עדיין לחשוף סוד לאחר יצירתו.

הבעיות הנפוצות ביותר שיש להימנע מהן הן דפדפנים ישנים, הקשרים לא מאובטחים, polyfills המשתמשים בשקט ב-Math.random, ובלבול בין קידוד להצפנה. בעיות אלה חשובות מכיוון שתוקפים רק לעתים רחוקות צריכים לנסות בכוח גס כל סיסמה אפשרית כאשר הרגלים אנושיים נותנים להם קיצור דרך. Credential stuffing, דיוג, רשימות סיסמאות דלפו וניצול לרעה של שחזור חשבון הם לעתים קרובות מציאותיים יותר מחיפוש מתמטי טהור. לכן העצה הטובה ביותר משלבת איכות סיסמה עם בקרות ברמת החשבון כגון MFA, מפתחות גישה, אחסון קודי שחזור וסקירה שוטפת של הגדרות דוא”ל או טלפון לשחזור.

השתמש ברשימת הבדיקה הזו בעת יישום ההמלצה:

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

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

צעד בטוח הבא

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

שאלות נפוצות

באיזה חלק של Web Crypto משתמש PwdGen?

PwdGen משתמש ב-crypto.getRandomValues() כדי לבקש ערכים אקראיים חזקים מבחינה קריפטוגרפית מהדפדפן.

האם Web Crypto אומר שכל בייט מגיע ישירות מהחומרה?

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

האם Web Crypto זמין בכל הדפדפנים?

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

מקורות