פונקציית חשיש קריפטוגרפית היא אלגוריתם שניתן להריץ על נתונים כגון קובץ בודד או סיסמה כדי ליצור ערך הנקרא בדיקת.
השימוש העיקרי בפונקציה חשיש קריפטוגרפי הוא לאמת את האותנטיות של פיסת נתונים. ניתן להניח כי שני קבצים זהים רק אם הבדיקות שנוצרו מכל קובץ, תוך שימוש באותה פונקציית חשיש קריפטוגרפית, זהות.
כמה פונקציות חשיש קריפטוגרפיות נפוץ כוללות MD5 ו SHA-1, אם כי רבים אחרים גם קיימים.
פונקציות חשיש קריפטוגרפיות נקראות לעתים קרובות "פונקציות hash", אבל זה לא נכון מבחינה טכנית. הפונקציה hash הוא מונח כללי הכולל פונקציות חשיש קריפטוגרפי יחד עם סוגים אחרים של אלגוריתמים כמו בדיקות יתירות מחזורית.
פונקציות הצפנה קריפטוגרפיות: מקרה שימוש
תגיד שאתה מוריד את הגירסה האחרונה של דפדפן פיירפוקס. מסיבה כלשהי, אתה צריך להוריד אותו מאתר שאינו מוזילה. מכיוון שהוא אינו מתארח באתר שלמדת לתת בו אמון, אתה רוצה לוודא שקובץ ההתקנה שהורדת זהים בדיוק לזה של Mozilla One.
באמצעות מחשבון המחשוב, אתה מחשב המחשוב באמצעות פונקציית חשיש קריפטוגרפית מסוימת, כגון SHA-2, ולאחר מכן להשוות את זה לזו שפורסמה באתר של Mozilla. אם הם שווים, אתה יכול להיות בטוח למדי כי יש לך להוריד את זה הוא אחד מוזילה התכוון לך.
האם פונקציות הצפנה חשיש יכול להיות הפוך?
פונקציות חשיש חשיש נועדו למנוע את היכולת להפוך את checksums הם ליצור בחזרה את הטקסטים המקוריים. עם זאת, למרות שהם כמעט בלתי אפשרי להפוך, הם לא 100 אחוז מובטחת כדי להגן על הנתונים.
האקרים יכולים להשתמש בטבלה קשת כדי להבין את הטקסט רגיל של בדיקת.
טבלאות קשת הם מילונים כי רשימה אלפי, מיליונים, או אפילו מיליארדים של checkums לצד הערך המקביל שלהם טקסט רגיל.
אמנם זה לא מבחינה טכנית היפוך האלגוריתם חשיש הצפנה, זה יכול גם להיות, בהתחשב בכך שזה כל כך פשוט לעשות. במציאות, מאחר ששום טבלת קשת לא יכולה לרשום כל בדיקה אפשרית, הם בדרך כלל מועילים רק לביטויים פשוטים כמו סיסמאות חלשות.
הנה גרסה פשוטה של שולחן קשת כדי להראות איך אחד יעבוד בעת שימוש SHA-1 פונקציה חשיש קריפטוגרפי:
| כתב יד | בדיקת SHA-1 |
| 12345 | 8cb2237d0679ca88db6464eac60da96345513964 |
| סיסמה 1 | e38ad214943daad1d64c102faec29de4afe9da3d |
| אני אוהב את הכלב שלי | a25fb3505406c9ac761c8428692fbf5d5ddf1316 |
| ג'ני | Dd5e9629eef8bdb408c1f |
| dallas1984 | c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2 |
האקר חייב לדעת איזה אלגוריתם חשיש קריפטוגרפי שימש כדי ליצור את checkums כדי להבין את הערכים.
להגנה נוספת, אתרים מסוימים שמאחסנים סיסמאות משתמש מבצעים פונקציות נוספות באלגוריתם החשיש הצפוני לאחר יצירת הערך, אך לפני שהוא מאוחסן. תהליך זה מייצר ערך חדש שרק שרת האינטרנט מבין ואינו תואם את בדיקת המקור.
לדוגמה, לאחר הזנת סיסמה והמחשב שנוצר, ניתן להפריד אותה למספר חלקים ולסדר מחדש לפני שהיא מאוחסנת במסד הנתונים של הסיסמה, או שתווים מסוימים עשויים להיות מוחלפים עם אחרים. בעת ניסיון האימות בפעם הבאה שהמשתמש נכנס למערכת, שרת האינטרנט הופך את הפונקציה הנוספת הזו, והבודק המקורי נוצר שוב כדי לוודא שסיסמה של משתמש תקפה.
נקיטת צעדים אלה מגבילה את התועלת של גרזן שבו כל הבדיקות נגנבות. הרעיון הוא לבצע פונקציה לא ידועה, אז אם האקר יודע את האלגוריתם חשיש קריפטוגרפי אבל לא אחד מותאם אישית, אז לדעת את checkums הסיסמה אינה מועילה.
סיסמאות פונקציות הצפנה חשיש
מסד נתונים שומר סיסמאות משתמש באופן דומה טבלת קשת. כאשר הסיסמה שלך מוזנת, בדיקת הסיכום נוצרת ומשווה לזו שנרשמה עם שם המשתמש שלך. לאחר מכן אתה מקבל גישה אם השניים זהים.
בהתחשב בכך פונקציה חשיש חשיש מייצרת בדיקת בלתי הפיך, זה בטוח בשבילך כדי להפוך את הסיסמה שלך פשוט כמו 12345, במקום 12@34$5, פשוט כי בדיקות עצמם לא ניתן להבין? לא, והנה הסיבה.
שתי הסיסמאות הללו הן בלתי אפשריות לפענוח רק על ידי הסתכלות על המחאות בלבד:
MD5 עבור 12345: 827ccb0eea8a706c4c34a16891f84e7b
MD5 עבור 12 @ 34 $ 5: a4d3cc004f487b18b2ccd4853053818b
במבט ראשון, אתה עשוי לחשוב שזה בסדר להשתמש באחת הסיסמאות האלה. זה נכון אם התוקף ניסה להבין את הסיסמה שלך על ידי ניחוש בדיקת MD5, אשר אף אחד לא עושה, אבל לא נכון אם כוח פראי או מתקפה מילון מבוצעת, אשר היא טקטיקה נפוצה.
התקפת כוח פראי מתרחשת כאשר מספר דקירות אקראיות נלקחים ניחוש סיסמה. במקרה זה, יהיה קל לנחש 12345, אבל די קשה באופן אקראי להבין את השני. התקפת מילון דומה בכך שהתוקף יכול לנסות כל מילה, מספר או ביטוי מתוך רשימה של סיסמאות נפוצות (ולא כל כך נפוצות), וכן12345 הוא אחד מאותם סיסמאות נפוצות.
למרות פונקציות חשיש קריפטוגרפי לייצר קשה- to-guesss לנחש, אתה עדיין צריך להשתמש בסיסמה מורכבת עבור כל חשבונות המשתמשים המקוונים שלך באינטרנט.
מידע נוסף על פונקציות הצפנה קריפטוגרפית
זה אולי נראה כמו פונקציות חשיש הצפנה קשורים הצפנה, אבל שתי דרכים בדרכים שונות.
הצפנה היא תהליך דו כיווני שבו משהו מוצפן להיות בלתי קריא ולאחר מכן מפענח מאוחר יותר כדי לשמש בדרך כלל שוב. אתה יכול להצפין קבצים מאוחסנים, כך שכל מי ניגש אליהם אינו מסוגל להשתמש בהם, או שאתה יכול להשתמש בהצפנת העברת קבצים כדי להצפין קבצים הנעים על פני הרשת, כמו אלה שאתה מעלה או להוריד באינטרנט.
פונקציות חשיש חשיש לעבוד בצורה שונה, כי בדיקות אינן אמורות להיות הפוך עם סיסמה dehashing מיוחד. מטרת הפונקציות הקריפטוגרפיות הקריפטיות היחידה היא להשוות בין שתי פיסות נתונים, כגון בעת הורדת קבצים, אחסון סיסמאות ושליפת נתונים ממסד נתונים.
זה אפשרי עבור פונקציה חשיש קריפטוגרפי לייצר את אותו בדיקה עבור חלקים שונים של נתונים. כאשר זה קורה, זה נקרא התנגשות, שהיא בעיה ענקית בהתחשב בנקודה כולה של פונקציה חשיש קריפטוגרפי היא לעשות בדיקות ייחודיים עבור כל קלט נתונים לתוכו.
התנגשויות יכולות להתרחש משום שכל פונקציית חשיש קריפטוגרפית מייצרת ערך של אורך קבוע ללא תלות בנתוני הקלט. לדוגמה, פונקציית ה- Hash של הצפנה MD5 יוצרת 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983 ו- e10adc3949ba59abbe56e057f20f883e לשלושה בלוקים שונים לחלוטין של נתונים.
הבדיקה הראשונה היא מ 12345. השני נוצר מיותר מ -700 אותיות ומספרים, והשלישי הוא מ 123456.
כל שלוש התשומות הן באורכים שונים, אך התוצאות הן תמיד רק 32 תווים זמן רב מאז בדיקת MD5 שימש.
אין גבול למספר בדיקות שניתן ליצור משום שכל שינוי זעיר בקלט אמור לייצר בדיקה שונה לחלוטין. מכיוון שיש גבול למספר הבדיקות שניתן לייצר בפונקציה חשיש אחת, תמיד קיימת אפשרות שתיתקל בהתנגשות.
זו הסיבה פונקציות חשיש קריפטוגרפיות אחרות נוצרו. בעוד ש- MD5 מייצר ערך בן 32 תווים, SHA-1 מייצר 40 תווים ו- SHA-2 (512) מייצר 128. ככל שמספר התווים שבדיקת הסיכום גבוה יותר, כך סביר להניח שהתנגשות תתרחש.




