קריאת הסיסמאות השמורות של הדפדפן משורת הפקודה

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

היכן פיירפוקס שומר אותן

פיירפוקס שומר את פרטי הכניסה בתיקיית הפרופיל שלכם, תחת ~/.mozilla/firefox/<profile>/. שני קבצים חשובים:

  • logins.json מחזיק את האתר, את שם המשתמש ואת הסיסמה, כששני האחרונים מוצפנים.
  • key4.db (בפרופילים ישנים: key3.db) הוא בסיס נתונים של SQLite שמחזיק את המפתח שמפענח אותם.

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

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

git clone https://github.com/unode/firefox_decrypt.git
cd firefox_decrypt
python firefox_decrypt.py

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

python firefox_decrypt.py --format csv > ~/firefox-logins.csv

אם אתם מעדיפים לראות את החלקים הגולמיים, החצי הגלוי הוא סתם JSON:

python -m json.tool ~/.mozilla/firefox/*.default/logins.json | grep -E 'hostname|encryptedUsername'

היכן כרום שומר אותן

כרום שומר את פרטי הכניסה בבסיס נתונים של SQLite:

~/.config/google-chrome/Default/Login Data

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

cp ~/.config/google-chrome/Default/Login\ Data /tmp/login-data.db
sqlite3 /tmp/login-data.db 'select origin_url, username_value from logins;'

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

מה זה אומר לכם

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

שלוש מסקנות:

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

הפקודות שלמעלה הן אותן פקודות שתוקף היה משתמש בהן. הידיעה שלהן היא הסיבה לקחת את שלוש הנקודות ברצינות.