חתימה דיגיטלית

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

חתימה דיגיטלית היא שיטה קריפטוגרפית, שמטרתה לאמת את זהות השולח של קובץ שנשלח ממחשב אחד לאחר.

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

הגדרה כלליתעריכה

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

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

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

דוגמה ליצירת ייחודיותעריכה

בחשבון מודולרי, קל יחסית להוציא שורש מודולו מספר ראשוני, אך הוצאת שורש מודולו מכפלה של שני ראשוניים דורשת את היכולת לפרק את המכפלה לגורמים (ואף שקולה אליה מבחינה חישובית), והרי פירוק מספר גדול לגורמיו הראשוניים היא בעיה קשה. עובדות אלה מציעות סכימה לחתימה דיגיטלית: החותם יבחר זוג ראשוניים גדולים, P,Q, ויפרסם את המכפלה שלהם N=PQ. ברצותו לחתום על הודעה X, הוא יחשב את השורש הריבועי שלה מודולו N (על ידי חישוב השורשים מודולו P ו-Q, ושילובם באמצעות משפט השאריות הסיני). השורש הוא חתימה, שאותה קל לבדוק על ידי העלאה בריבוע, וקשה לזייף.

הגדרה מתמטיתעריכה

חתימה דיגיטלית מורכבת משלושה אלגוריתמים: אלגוריתם הכנה "Gen", אלגוריתם חתימה "Sign" ואלגוריתם אימות "Verify" המוגדרים ביתר פירוט כך:

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

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

 .

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

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

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

ביטחוןעריכה

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

ניסוי  
  1. פונקציית ההכנה   מייצרת מפתחות ( ) באורך  .
  2. המפתח   ניתן למתקיף   וכן ניתנת לו גישה לאורקל חתימה שנקרא  . האורקל הוא מעין קופסה שחורה שהמתקיף מסוגל להפעיל כרצונו ולקבל עבור כל   שיבחר את   אך הוא אינו רשאי לראות את  .
  3. נניח ש-  מייצגת את השאילתות שהמתקיף שלח לאורקל. תוצאת הניסוי תוגדר מוצלחת אם א.   ב.  .

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

 .

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

שימושי חתימה דיגיטליתעריכה

דואר אלקטרוניעריכה

  • וידוא זהות שולח דואר אלקטרוני. הודעה חתומה דיגיטלית מאשרת את זהות השולח, ומוודאת שלא מדובר בהודעה מזויפת.
  • וידוא הקריאה של ההודעה. באמצעות החתימה האלקטרונית ומנגנון אישור S/MIME אפשר לוודא ששום אדם זולת הנמען לא קרא באמצע את הודעת הדואר ואם היא נקראה מי היו אנשים והמועדים. כל אלו מגיעים בדואר חוזר לשולח.
  • הצפנה. ניתן להצפין הודעת הדואר, באופן שרק הנמען יוכל לקרוא את תוכנה. תהליך ההצפנה נעשה באופן הבא: השולח משיג את המפתח הציבורי של המקבל (בחלונות קובץ בסיומת cer) שתואם למפתח הפרטי של החתימה הדיגיטלית (בחלונות קובץ בסיומת PFX) ולהצפין באמצעותו את ההודעה. רק בעל החתימה הדיגיטלית שמחזיק במפתח הפרטי יוכל לפענח את ההודעה (בעל החתימה יכול להפיץ בדרכים שונות את המפתח הציבורי שלו. בתוכנת אאוטלוק הליך זה נעשה באופן אוטומטי. ברגע שאדם מקבל הודעה שחתומה בחתימה דיגיטלית, הוספה של אדם זה לספר הטלפונים, תוסיף גם את המפתח הציבורי שלו, כך שבעת שליחת הודעה אליו, לחיצה על כפתור הצפן, תצפין את ההודעה).

הבטחת שלמותעריכה

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

סוגי חתימה דיגיטליתעריכה

מנגנוני חתימה דיגיטלית מתחלקים בין היתר לסוגים אלה (קיימים סוגים נוספים שלא תוארו בפרק):

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

הכנת חתימה דיגיטליתעריכה

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

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

רשות מאשרתעריכה

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

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

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

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

רשת אמון (Web of trust) היא אסטרטגיה לאימות מפתח ציבורי שננקטה לראשונה על ידי חברי מיזם PGP[דרוש מקור]; ההתאמה של מפתח ציבורי לאדם מסוים אפשרית בדרך הפשוטה של הכרות אישית. כדי לעשות כן יש להכיר את האדם, לפוגשו ולזהותו באמצעי זיהוי מקובלים (למשל תעודת זהות). לאחר שזוהה האדם בתור האישיות שהוא טוען לה, ניתן לרשום את המפתח הציבורי השייך לו. אולם, בעולם האמיתי דרך זו אינה מעשית כי ארגונים מסחריים רבים נדרשים לעיתים קרובות לתקשר עם עמיתיהם או לקוחותיהם בצד האחר של העולם ולכן הפתרון הוא רשת אמון במסגרתה מקבל המסמך יכול לסמוך על אמינות המפתח הציבורי של השולח אם ואך ורק אם קיימת שרשרת אנשים אשר וידאו זה את מפתחו של זה שבראשה עומדת ישות בעלת אמינות גבוהה[דרושה הבהרה]. החוליה האחרונה בשרשרת - מקבל המסמך, יכול ליהנות מאמינות המפתח הציבורי של השולח על סמך אמינות השרשרת כולה.

מניעת הכחשה וחותם-זמןעריכה

מניעת הכחשה (Non-repudiation) מסייעת במניעת ישות כלשהי מלהכחיש או לכפור בהתחייבות שנתנה או פעולה שביצעה.

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

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

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

אחסון וגיבויעריכה

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

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

חקיקהעריכה

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

בחוק הישראליעריכה

להסדרת השימוש בחתימה אלקטרונית בישראל חוקקה הכנסת בשנת 2001 את חוק החתימה האלקטרונית. על מטרתו ועקרונותיו של חוק זה עומדים דברי ההסבר להצעת החוק[3]. מחוקקי החוק הלכו בעקבות השפה הגרמנית וכללו בביטוי חתימה אלקטרונית גם חתימה דיגיטלית[דרושה הבהרה]

בחוק הישראלי הובאה הבחנה בין שלושה מונחים:

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

ראו גםעריכה

קישורים חיצונייםעריכה

הערות שולייםעריכה

  1. ^ Root Certificate
  2. ^ שרשרת פעולות זו היא אנלוגית לאימות כרטיס חיוב (בכדי לוודא שכרטיס חיוב נתון הוא הוא כרטיס החיוב המחויב ולא זיוף שלו)
  3. ^ דברי ההסבר להצעת החוק