טוב. מה שאתה עושה זה רעיון רע.
'רעיון רע' זה ביטוי די חלש לתאר מערכת קריפטוגרפיה home-made בפייתון
1. אני לא חושב שיש לזה איזשהו יתרון על פני מנהל סיסמאות.
אני נוטה להסכים. יש אנשים שמתלהבים מהעיקרון (טוב, יש עד כמה שידוע לי אדם אחד), אבל אם אין לך בעיה עם מנהל סיסמאות אז יש לו רק יתרונות.
2. עדיין יש לך נקודת חולשה קריטית, שנמצאת באוויר, בדמות מפתח שממנו מופקות הסיסמאות. אין הבדל עקרוני בין זה לבין לשמור קובץ סיסמאות מוצפן ע"י סיסמה ראשית.
נכון. ההבדל העקרוני היחיד הוא מספר הביטים שצריך לשמור. בקובץ מוצפן, הגודל שלו הוא בO של כמות הסיסמאות. הסיד שלי הוא 256 ביט. זה O(1)
מצד שני, כמו שמתכנת אמר, יש עוד מידע שצריך לשמור וזה פוגע ב'טוהר' של המערכת. אבל לפחות לסיסמאות החשובות ביותר שלי אני לא צריך שום מידע נוסף.
3. אם יש איזשהו פאק במימוש שלך, שמאפשר מסיסמה אחת, או כמה סיסמאות, להפיק את המפתח שלך, או אפילו לצמצם מספיק את המרחב שבו הוא יכול להיות, אתה פותח את עצמך למגוון שלם של מתקפות.
כמובן. ה'מימוש' שלי, כאמור, הוא PBKDF2 (בפלאפון המימוש הפנימי הוא של אנדרואיד, בפייתון יש ספרייה. שניהם כמובן מגיעים לאותן תוצאות אחרת זה לא היה עובד). אני לא חושב שצריך להיות מומחה גדול בקריפטוגרפיה כדי להחליט אם זה חזק קריפטוגרפית. מספיק מומחה בינוני.
מסיסמה אחת של 44 ביט אפשר לצמצם את המרחב של הסיד רק ב44 ביט. אבל מכמה סיסמאות אפשר, אם יש חולשה בPBKDF2, לצמצם את המרחב עוד יותר.
PBKDF2 בנוי לhashing של סיסמאות - לקחת סיסמה וsalt ולייצר hash. הוא אמור להיות חד-כיווני - מהhash והsalt קשה להפיק את הסיסמה, וחזק נגד התקפות מילון - צריך להיות קשה 'להתאים' בין שתי סיסמאות שוות שעובדו עם salt שונה. השימוש שלי בו שונה - לתוקף עם כמה מהסיסמאות שלי יהיה כמה hashים וsaltים ואת הידע שהסיסמה היא אותה אחת. אני לא יודע מספיק כדי לדעת אם אפשר להוכיח שהוא חזק גם נגד הווקטור הזה.
היכן אתה שומר את כל אלו ? איך הם מסוכנרכים בין הטלפון והמחשב ?
כן, התוכנה שומרת את שם האתר. המשתמש, סוג הפלט והספרור, בדטהבייס פשוט (בפייתון זה קובץ, בפלאפון אנדרואיד מספק כזה). אני לא מסנכרן ביניהם - זה פיצ'ר חסר. אני גם לא מגבה אותו, חוץ מזה שיש שני עותקים כאמור. אם וכאשר אני אוסיף גיבוי, התוכן שלו 'רגיש' (שמות האתרים שאני חבר בהם) אבל לא 'סודי בהחלט' (מבחינת האלגוריתם, זה שקול לsalt שידוע לתוקף). כמובן שהוא יכול להיות מוצפן כמו שמנהל סיסמאות עושה.
(שני המימושים שומרים את סוג הפלט. המימוש בפלאפון לא שומר את שם המשתמש - לגמרי פאק שלי שלא תיקנתי עדיין.
זה בעצם הופך את המערכת לשקולה למנהל סיסמאות (בייחוד אם אני אוסיף אפשרות להצפין מידע שרירותי) - היתרון מבחינתי, כאמור, הוא שאת הסיסמה הכי חשובה לי אני יכול לשחזר מהדף שבכספת, ולא צריך לעדכן אותו אם אני אוסיף עוד סיסמה חשובה (בהנחה והיא לא תהיה לאתר מטומטם שלא מוכן לקבל BIP39 כסיסמה)
הפקה דטרמניסטית של סודות מתוך סיד זה רעיון ממש מגניב שאהבתי, אבל אישית נראה לי הוא מתאים יותר לארנקי קריפטו ופחות למנהלי סיסמאות.
אני שמח לשמוע שיש אדם שלישי שחושב שזה רעיון מגניב
אני רוצה לציין שלי היה את הרעיון לפני ששמעתי על ארנקי קריפטו, אבל ישבתי לממש אותו רק לפני שלוש שנים. באידיאל, אתרים לא היו דורשים ממך לזכור דברים טפשיים כמו שם משתמש או איזה הגבלות אזוטריות על סיסמאות הם המציאו, והיה אפשר לייצר את הסיסמה רק מהURL. אבל זה לא ככה וככל שאני מוסיף שירותים לדטהבייס יש יותר ויותר מקרי קצה (אתר שדורש אות 'מיוחדת' - אני מוסיף =, אבל יש אתר אחד שלא מקבל את זה כאות מיוחדת. אתר שדורש סיסמה קצרה(!!) ולא מקצץ אותה בעצמו).