
הטקסט המלא של הדקות הראשונות בהרצאה «איך פועלת חתימה דיגיטלית?» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום וברוכים הבאים לסרט על איך עובדת חתימה דיגיטלית, זה הולך להיות סרט מעניין עם האקינג ואנחנו נפרוץ את החתימה וזה הולך להיות מאוד מעניין. בואו בהתחלה נבין מה המטרה של החתימה הדיגיטלית.
המטרה של החתימה הדיגיטלית זה א', לוודא זהות של השולח, ושזה לא המתחזה ששלח את ההודעה, ושתיים, לוודא שהמידע שנשלח אינו בגרסה המקורית שלו, כמו ששלחו אותו, ולא מישהו שינה אותו בדרך.
בהאקינג יש שיטה מאוד ידועה להתחזות לראוטר, וזה נקרא Man in the Middle. כאילו, אני נעמד באמצע של התקשורת, משחק אותה ראוטר, וכל התקשורת עוברת דרכי, ואני, כשהתקשורת עוברת דרכי, משנה את המידע שמגיע ללקוח.
אז בעצם חתימה דיגיטלית באה לפתור את זה, היא מוודאת שהשולח הוא השולח המקורי ולא מישהו אחר. שתיים, שהמידע לא שונה בדרך.
באיזה מקרים משתמשים בחתימה דיגיטלית? משתמשים בזה במסמכים, באימיילים, בהוראות שמעבירים לבנק, בדרייברים וחתימה על תוכנה, בכל דבר שהזהות של השולח היא חשובה.
בעצם, לפי החוק בישראל, חתימה דיגיטלית היא כמו חתימה ידנית על הדף. כמו שחתמת על הדף וזה מחייב אותך, גם חתימה דיגיטלית דינה זהה. זה גם בארצות הברית וגם באיחוד האירופי, חתימה דיגיטלית תופסת בבית משפט.
איך עובדת כל החתימה הדיגיטלית? איך אנחנו מוודאים זהות? איך אנחנו מוודאים שהמידע לא שונה? השיטה היא מאוד מעניינת, זה שימוש הפוך במפתחות.
אנחנו מצפינים את ההודעה עם ה-Private Key. שימו לב, עד עכשיו הצפנו הודעה עם ה-Public. עכשיו אנחנו עושים הפוך, מצפינים הודעה עם ה-Private Key שלי, ואז אני שולח.
ברגע ששלחתי הודעה שמוצפנת ב-Private Key שלי, הצד השני שמקבל פותח את זה עם ה-Public, והפאבליק יש אצל כולם, הוא מפורסם באתר האינטרנט, אני שולח אותו במייל.
אז הצד המקבל לוקח את הפאבליק שלי, שהוא ידוע, ופותח את ההודעה. ברגע שהוא פותח את ההודעה, הוא יודע שההודעה הזאת אני שלחתי אותה ולא מישהו אחר, כי היא ה-private key, קיים רק אצלי במחשב ולא אצל מישהו אחר.
איך לוודא שהמידע הוא מקורי ולא שונה? נדבר על זה בהמשך. איך שומרים על המפתח הפרטי? איפה המפתח הפרטי הסודי הזה נמצא?
יש שתי אופציות האפשרות הראשונה זה לשמור אותו בארדיסק בדיסק הקשיח כשאני מכבה את הווינדוס הוא מוחבא בווינדוס כדי שלא יגנבו את זה דרך אופליין אטאק שלא יגנבו את זה דרך בוט מ־CD-ROM או מ־USB מישהו יבוא לווינדוס לא יפעיל אותו אלא יפעיל את ה־USB שלו או את ה־CD שלו ויגש לארדיסק לנתונים
שלו מאחורי הקלעים כשהווינדוס לא עובד בשביל שהדבר הזה יהיה בלתי אפשרי לגנוב ככה את התעודה התעודה עצמה בארדיסק מוצפנת עם סיסמה של היוזר שלי ולכן רק מי שמחליף סיסמה באופן מסודר יכול להוציא את התעודה, מי שמכניס את הסיסמה באופן מסודר.
אני אראה לכם אפילו הודעת שגיאה כשאתם באים לאפס סיסמה של יוזר, תסתכלו, סתם ווינדוס רגיל, אני רוצה להראות לכם שיש הודעת אזהרה, תראו, כשאתם לוחצים פה על יוזר, לא משנה אם זה באיזה ווינדוס, כשאני עושה סט פסוורד זה אומר לאפס סיסמה, שימו לב זה ייפוס סיסמה בכוח, הוא אומר תיזהר תיזהר יהיה מידע שאי אפשר יהיה לשחזר אותו הנה כתוב פה
יהיה פה מידע שילך לאיבוד ואי אפשר יהיה לשחזר אותו בשביל זה אם אתה רוצה להחליף את הסיסמה the data will lose בגלל זה לא מחליפים סיסמה בכוח לא מאפסים סיסמה ליוזר בכוח כי אז התעודות הדיגיטליות שמוחבאות ה private key שמוחבא הולך לאיבוד אם אני
הייתי רוצה להחליף סיסמה הייתי צריך לעשות control על delete change password באופן מסודר בקיצור המפתח הפרטי מורבה פעם אחת בהארדיסק ומוגן על ידי סיסמת המשתמש שלי, שבמקרה כזה אסור לי לאפס את הסיסמה של היוזר שלי.
2. הוא יכול להיות בסמארט-קארד, בכרטיס חכם כזה, כמו כרטיס מנהל בקופה בסופר. ואז כשהוא נמצא בסמארט-קארד הרבה יותר קשה לגנוב אותו, כי סמארט-קארד, הכרטיס החכם הזה נמצא אצלי בכיס וצריך לגנוב לי את הארנק.
ולא רק שזה נמצא בסמארט-קארד, הרבה פעמים התעודה בתוך הסמארטקארד מוצפנת עם פין קוד, ואת הפין קוד רק אני יודע. זאת אומרת, גם אם תגנוב לי את הכרטיס, אתה לא תוכל לפתוח אותו כי הוא בפנים מוצפן עם הפין קוד.
טוב מאוד, דיברנו מה עושה תעודה דיגיטלית, דיברנו איפה היא שמורה. עכשיו אנחנו רוצים לעבור לחלק הבא, שבו אני אסביר איך המערכת מונעת, מערכת של חתימה דיגיטלית מונעת אפשרות לשנות מידע, מזהה שינוי של מידע כשהוא היה על הקו.
נניח אני מוריד דרייבר, איך יודעים שזה דרייבר המקורי? אני שולח הודעה לבנק, איך יודעים שזו הודעה מקורית ולא השתנתה בדרך?
אז בשביל להבין את הדבר הזה אנחנו חייבים לדעת מה זה האש. שימו לב, האש זה אלגוריתם שמערבל מידע בצורה חד-כיוונית. מה זה מערבל מידע?
זה כמו להצפין, אבל זה חד-כיווני. כשאני מצפין משהו, אני עושה אותו ג'יבריש, אבל אני יכול להחזיר אותו חזרה. כי זה הצפנה היא דו-כיוונית, אפשר להצפין ולהחזיר, האש הוא חד-כיווני.
אתה יכול להכניס לו כל אורך של מידע, גם קבצים גדולים, ובסוף אתה מקבל ערבול, כזה אוסף מספרים בגודל קבוע. לדוגמה, ב-MD5, האלגוריתם שנקרא MD5, אתה מקבל תמיד 128 ביט.
ב-SH1 אתה תמיד מקבל 160 ביט. לא משנה, הכנסת ג'יגה של קובץ או שתי אותיות. הג'יבריש הזה שמתקבל מהאש, ותכף נראה דוגמה לזה, נקרא דייג'סט.
בואו אני אראה לכם דוגמא ל-hash. לדוגמא הכנסתי מילת Fox, העברתי את זה דרך hash אלגוריתם, זה אלגוריתם מתמטי, ראינו md5 ו-sh1, נראה עוד כמה בהמשך, וזה מה שאני מקבל, אוסף של מספרים כאלו.
אני מכניס משפט, אני מקבל אוסף אחר של מספרים. שימו לב פה בדוגמא, שינו אות אחת, במקום over, במקום v כתבו u, בטעות.
הדייג'סט, הג'יברי שיצא אחרי hash הוא שונה לגמרי, תראו, המספרים פה שונים לגמרי מהמספרים כאן. זאת המטרה של האש. מה העקרונות החשובים בהאש?
למה זה, כשבונים את ההאש, מה חשוב? שיהיה בלתי אפשרי בזמן סביר למצוא הודעה שמתאימה להאש מסוים. זאת אומרת שאני נותן לכם רק את ההאש הזה, ואני אומר, תמצא איזו הודעה הייתה.
מה ההודעה הגלויה? אני נותן לך רק את ההאש. אז אלגוריתם טוב, אלגוריתם חזק, זה אלגוריתם כזה שאי אפשר בזמן סביר למצוא את המשפט המקורי או משפט אחר שנותן בדיוק אותו האש, כאשר אלגוריתם חלש זה משהו שאפשר בזמן סביר למצוא את זה.
מה עוד חשוב בהאש? שקשה למצוא שתי הודעות שנותנות אותו האש, אותו ערבול, הרי ערבול הוא בגודל קבוע, בגלל שהוא בגודל קבוע תמיד יהיו שתי הודעות, תמיד יהיו שתי הודעות שיהיה להם אותו דייג'סט, החתימה כי האינפוט פה יכול להיות ענקי אז יש שתי הודעות בעלות דייג'ס זהה אבל עתה קשה לך למצוא אותן מבחינה מתמטית קשה למצוא אותן
שזה קשה למצוא בזמן סביר וכמובן שכל שינוי באינפוט כל שינוי בהודעה גלויה חייב שינוי ב-hash מה זה לפרוץ את ה-hash זה להצליח למצוא הודעה אחרת שתיתן לך בדיוק אותו hash בזמן סביר הכל מדובר בזמן סביר בואו אני אתן לכם דוגמאות ככה שתדעו קצת המחשה.
לדוגמה, לפרוץ אלגוריתמים של SH-1 לוקח 2 בחזקת 51 ניסיונות של פעולת האשינג. ולפרוץ אלגוריתמים של MD-5 הצליחו ב-2 בחזקת 20 פעולות האש. כמה כל פעולה לוקחת, כמה זמן זה לוקח בפועל, תלוי במחשב.
אם תחבר הרבה מחשבים ביחד, או תביא איזה מחשב על, אז זה ייקח כמה שנים. נדיפה F2 בחזקת 20, זה כבר לוקח כמה ימים בודדים.
F2 בחזקת 51, פעולות האש, לוקח כמה שנים, לפי הטכנולוגיה של היום. בגלל זה, כל מיני מחשבי-על שהם מאוד מאוד חזקים, כשבאים לקנות אותם, אתה לא יכול לקנות אותם בחנות, אתה צריך אישור של נניח FBI בשביל לקנות מחשב-על.
לדוגמה סלקום קנו מחשב-על גדול, הם, FBI באו, בדקו שזה באמת סלקום, שלא עושים בזה שימושים לרעה ולא מפצחים הצפנות.
בעצם כל אלגוריתם אפשר לשבור אותו, פשוט שאלה של זמן סביר. לדוגמה, שעה 256, שזה כבר SH-1 256, שזה שדרוג של שעה 1, שעה 2, שעה 3, כבר בזמן סביר לא ניתן לפרוץ אותו. אוקיי, אז הבנו מה זה ערבול, הבנו מה זה לפרוץ אותו, מה עושים עם כל הערבול הזה? למה אני צריך
אותו? פה נכנס הסיפור של חתימה דיגיטלית, וזה מה שאני הולך להראות לכם. אנחנו הולכים לעשות קובץ וורד עם חתימה דיגיטלית ולראות מה קורה כשמשנים את הקובץ וורד הזה.
אז בואו אני אסביר לכם במילים ואחרי זה אני אדגים לכם. החתימה הדיגיטלית, מה עושה השולח? השולח לוקח את הקובץ המקורי הגלוי ומצמיד עליו חתימה.
מה זה חתימה? קובץ מקורי גלוי שעבר האש. רק את הערבול שלו הוא לוקח, רק את הערבול של הקובץ, ואז הוא מצפין את הערבול הזה עם המפתח הפרטי.
זאת אומרת, אני לוקח את ה-hash ואני לא שולח אותו סתם על הקו, אני מצפין אותו עם ה-private key שלי. הנה, יש לנו פה הדגמה.
אני לוקח את המידע הגלוי שלי, מעביר אותו דואר ה-hash, מקבל את ה-digest שלו, את הערבול שלו, ואז אני מצפין אותו עם ה-private key ושולח יחד עם המסמך המקורי.
מה עושה זה שקיבל אותו? הוא לוקח את המסמך המקורי, עושה לו hash, מקבל תוצאה. הוא לוקח את החתימה שלי, עושה לה decrypt, פותח את החתימה הדיגיטלית שלי עם הפאבליקי זאת אומרת הוא לוקח את הפאבליקי שלי, הצד השני ופותח את החתימה הדיגיטלית ורואה האם אחרי הפתיחה ההאש שיצא לו, הערבול ששלחתי לו
זה הערבול שיצא מהמסמך המקורי. אם שניהם שווים זה אומר שהמסמך לא שונה בדרך. אם מישהו משנה את המסמך המקורי בדרך ההאש פה יהיה שונה, ההאש פה יהיה אחר לגמרי.
הנקודה הכי חשובה שמי שמשנה לי את המידע באמצע לא יכול לא יכול לייצר הוא יכול לייצר האש חדש אבל הוא לא יכול לחתום עליו עם הפרייבט קי שלי כי אין לו את הפרייבט קי.
בואו נראה איך כל זה קורה בפועל באפליקציה אנחנו נעבור עכשיו למסמך נניח word בואו נעבור למסמך word יש לי פה מסמך word עשיתי פקודה ראשונה ופקודה שנייה שימו לב הפקודה הראשונה הייתה להעביר לחשבון של כזה וכזה סכום של 10,000 שקל לקחתי את המסמך הזה וחתמתי אותו מבחינה דיגיטלית, עם תעודה דיגיטלית, תכף אני הולך להראות לכם בדיוק איך אני עושה
את זה, ואי אפשר לשנות אותו, מרגע זה וורד לא נותן לך לשנות אותו, כי המסמך הוא, עבר האשינג ונחתם, כל שינוי פה ישנה את החתימה הדיגיטלית.
יופי, זה ככה, וורד עוזר לי לעשות את זה, ואנחנו הולכים לעשות את זה עוד דקה ביחד, אבל האקר הצליח בזמן שהקובץ הזה נשלח אונליין למצוא את המילה, המספר החשבון הזה ולהחליף למספר החשבון שלו תסתכלו ומנהלת חשבונות קיבלה להעביר לחשבון אחר שימו לב השתנה פה מספר חשבון אותו סכום אבל
בזכות חתימה דיגיטלית הוורד נותן לי פה התראה למעלה This document contains invalid signature החתימה לא ולידית החתימה לא חוקית מישהו שינה פה את המסמך בדרך ואם אתם עושים view אתם רואים שיוני חתם על המסמך והיא invalid כן זה לא invalid זה לא נכה זה invalid.
אוקיי, אז איך וורד יודע לזהות שהחתימה, איך כל זה עובד, איך האקר שינה את המידע, זה בדיוק מה שאנחנו הולכים לעשות עכשיו ביחד איתכם.
אז הבנתם שהמסמך נפתח, ויחד עם הפתיחה של המסמך יש חתימה שאומרת, תקשיב, מסמך שונה בדרך. אוקיי, אז בואו נעשה מסמך חדש, או שאפילו נשתמש במסמך הזה, זה לא משנה.
בואו נעשה הכל מאפס. ניקח קובץ וורד, נרשום פקודה 3. פקודה 3, להעביר לאושרי 10,000 ש"ח.