לדף הכניסה של ישרא-בלוג
לדף הראשי של nana10
לחצו לחיפוש
חפש שם בלוג/בלוגר
חפש בכל הבלוגים
חפש בבלוג זה
 

יומן אבטחה

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

מלאו כאן את כתובת האימייל
שלכם ותקבלו עדכון בכל פעם שיעודכן הבלוג שלי:

הצטרף כמנוי
בטל מנוי
שלח

RSS: לקטעים  לתגובות 
ארכיון:


2/2007

מבוא להצפנה - חתימה דיגיטלית (חלק ד')


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

 

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

 

בתיאוריה

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

 

במעשה

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

 

דוגמאות

אני משתמש בתוכנת PGP, שמאפשרת להצפין ולחתום, כך שאמחיש באמצעותה. לקחתי קובץ בשם אפיון.doc וחתמתי אותו דיגיטלית. התמונה להלן היא מסך אפשרויות החתימה. האליפסה האדומה העליונה מקיפה את מפתח החתימה שלי. לתשומת לבכם, מפתח זה שונה ממפתח ההצפנה ובדרך כלל מקובל לעשות שימוש במפתחות שונים להזדהות, הצפנה וחתימה ולמעשה להקצות מפתח פרטי לכל סוג שימוש בעל שונות מהותית. המפתח הזה ספציפית הוא מפתח 1024bit של אלגוריתם Digital Signature Algorithm, המבוסס על ה-Digital Signature Standard (DSS) שפותח על ידי מכון התקנים האמריקאי.

באליפסה התחתונה ניתן לראות כי ניתן לבחור באפשרות של Detached Signature, כלומר - האם החתימה תהיה חלק מהקובץ או בנפרד ממנו.

 

אפשרויות חתימה pgp

 

אם נבחר חתימה שהיא חלק מהקובץ נקבל קובץ PGP מוצפן רגיל (אלא שהוא הוצפן באמצעות המפתח הפרטי שלנו). במקרה זה די לשלוח את הקובץ המוצפן.

קובץ PGP מוצפן

אם נבחר חתימה שאינה חלק מהקובץ נקבל קובץ חתימה ועלינו יהיה לשלוח את קובץ החתימה עם הקובץ המקורי. 

קובץ חתימה של PGP

 

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

חתימה תקיפה

 

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

חתימה לא תקיפה

 

אפילוג

חתימות דיגיטליות הן עוף מוזר. להבדיל מהצפנות או פונקציות hash, הנוכחות של חתימות דיגיטליות מתקיימת במקביל בעולם הוירטואלי ובעולם האמיתי. חוק חתימה אלקטרונית שנחקק ב-2001 משווה את התוקף של חתימה אלקטרונית (בהזדמנות אביא הסבר מקוצר על החוק) לחתימה רגילה. תוקפן של חתימות אינו פג, אך מה לגבי תוקפן של חתימות דיגיטליות? תוקפן של חתימות דיגיטליות אינו אמור לפוג, אלא שחוזקן עשוי לפוג, כפועל יוצא של היחלשות מנגנוני אבטחה. מה קורה אם בעוד שנה מגלים דרך יעילה מאוד לפצח מפתח הצפנה פרטי על בסיס המפתח הציבורי. כיצד ניתן יהיה למנוע זיוף בדיעבד של מסמכים? אך מתקפה יותר סבירה תנצל את השימוש בפונקציות hash בחתימות דיגיטליות. זהו עקב האכילס של חתימות דיגיטליות, כיוון שמשנה לשנה אנו מגלים מתקפות נוספות על הפונקציות המקובלות ומלכתחילה פונקציות hash חשופות יותר למתקפות מפונקציות ההצפנה בהן נעשה שימוש בחתימה דיגיטלית (מה שמחזק את הטיעון על חוזק השרשרת כחוזק החוליה החלשה). אני חושב שמבחינת היקף השימוש וזמן השימוש בחתימות דיגיטליות עוד לא הגיע העולם לשלב הזה, אך ייתכן ובעשור או שניים הקרובים, במידה ויחולו עוד התקדמויות בפיצוח sha-1 ייתכן ונגיע לשם.

נכתב על ידי , 6/2/2007 08:54   בקטגוריות אבטחת מידע כללי, כרטיסים חכמים, הצפנות ושמונצס, מושגי יסוד  
4 תגובות   הצג תגובות    הוסף תגובה   2 הפניות לכאן   קישור ישיר   שתף   המלץ   הצע ציטוט



כינוי: 

גיל: 48




65,156
הבלוג משוייך לקטגוריות: אינטרנט
© הזכויות לתכנים בעמוד זה שייכות לעומר טרן אלא אם צויין אחרת
האחריות לתכנים בעמוד זה חלה על עומר טרן ועליו/ה בלבד
כל הזכויות שמורות 2024 © עמותת ישראבלוג (ע"ר)