PracticU

הסבר על Salting בסיסמה

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

הסבר על Salting בסיסמה
גיבוב של סיסמה לבדו עדיין לא מגן עליה: ההרצאה מראה למה סיסמה פשוטה כמו 1234 נחשפת גם כשבדאטאבייס שמור רק ההש שלה, ואיך מוסיפים לתהליך מלח כדי לסגור את החולשה.
איך זה עובד
1. גיבוב אינו מספיק: אין אלגוריתם שהופך hash בחזרה לסיסמה המקורית, ולכן נדמה שהסיסמאות מוגנות. אבל כשמעתיקים את מחרוזת ה-SHA-512 מהדאטאבייס לאתר שמפענח hash, מתקבלת מיד הסיסמה 1234.
2. Rainbow Tables: זו טבלה ענקית, עם מיליארדי סיסמאות אקראיות, מילון מונחים וסיסמאות נפוצות, שכל אחת מהן כבר עברה גיבוב. האתר רק מחפש בטבלה איזו סיסמה יצרה את ה-hash שהוזן ומחזיר אותה.
3. סיסמה חזקה: אפשר לדרוש מהמשתמש אותיות גדולות וקטנות, תו מיוחד וספרה. זה מקל מאוד, אבל סיסמה חלשה עלולה עדיין להיות בטבלה.
4. Salt (מלח): מוסיפים מחרוזת סודית ו"זורעים" אותה בתוך הסיסמה לפני הגיבוב, כך שהתוצאה שונה לגמרי ממה שיצא מ-1234 לבדה.
5. מימוש בקוד: במקום createHash משתמשים ב-createHmac (hash based message authentication code). מעבירים לו את האלגוריתם sha512 ואת ה-salt text, וממשיכים עם update ו-digest ב-hex.
6. עדכון הדאטאבייס: הסיסמאות הקיימות נוצרו בלי salt, ולכן מחליפים אותן ב-hash חדשים שנוצרו עם salt. אחרת ההתחברות תיכשל, כי ה-hash שהקוד מחשב חייב להתאים למה ששמור.
7. בדיקה: ההתחברות כ-moshiko עם 1234 עדיין עובדת. כשמדביקים את ה-hash החדש באתר הפענוח מתקבל result not found.
פקודות והגדרות
const saltText לשמירת הביטוי, createHmac עם sha512, ו-digest ב-hex.
אחרי ההרצאה אפשר להוסיף salt לגיבוב סיסמאות ולהסביר למה הוא מונע פענוח דרך Rainbow Tables.
השיעור הבא בקורס: פריצה לאתר דרך כתובת URL

פרקי ההרצאה: הסבר על Salting בסיסמה

  1. 00:00

    חזרה על Hashing של סיסמאות

  2. 00:38

    פענוח Hash באתר חיצוני

  3. 02:01

    איך עובדות Rainbow Tables

  4. 03:15

    דרישה לסיסמה חזקה מהמשתמש

  5. 03:52

    הרעיון של Salt בתהליך ה-Hashing

תמלול ההרצאה: הסבר על Salting בסיסמה

הטקסט המלא של הדקות הראשונות בהרצאה «הסבר על Salting בסיסמה» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:03

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

  2. 00:25

    זאת אומרת שאם מישהו מסתכל על הסיסמה הזאת, על מה שהוא רואה כאן, הוא לא יכול לדעת שזה היה 1, 2, 3, 4 ואין לו שום יכולת לקחת איזשהו אלגוריתם ולחזור אחורה ולהגיע ל-1, 2, 3, 4 כסיסמה מקורית.

  3. 00:42

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

  4. 00:56

    בואו רגע נדביק את זה, נראה שהוא נותן לי מחרוזת אחת ארוכה. המחוזת הזאת הגיעה מאיזשהו שעה 512 ימי אחר. אז אנחנו לוקחים את המחוזת, הולכים לגוגל, ובואו נחפש פה איזשהו אתר, Decrypt Hash Password.

  5. 01:21

    בואו נחפש אתרים שאומרים לנו, תשמעו, אנחנו מסוגלים לפענח לכם את הסיסמה הזאת. הנה מישהו אומר לנו, Enter up to 20 non-salted דאבלה.

  6. 01:33

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

  7. 02:10

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

  8. 02:36

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

  9. 03:04

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

  10. 03:28

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

  11. 03:48

    אבל יש שיטה נוספת, והיא נקראת salt. מה זה salt? salt, מלח. הרעיון הוא לקחת איזושהי מכרוזת, ובתהליך ה-ashing כאילו למלח את הסיסמה. אם הסיסמה שלנו הייתה, בוא נניח, 1, 2, 3, 4, אז אנחנו זורעים מלח בין,

לקורס המלא: קורס NodeJS אונליין בעברית

ההרצאה הקודמת: גיבוב האשינג של סיסמאות משתמשים - Hashing User Password

ההרצאה הבאה: פריצה לאתר דרך כתובת URL

קורסים נוספים במסלול

  • קורס יסודות HTML - בניית אתר אינטרנט פשוט
  • קורס CSS 3 - בדגש על Flex & Grid
  • קורס Javascript כולל JQuery
  • קורס ג'אווה סקריפט מעשי - JavaScript
  • קורס TypeScript
  • קורס ריאקט - React