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

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

חתימה דיגיטלית היא שיטה קריפטוגרפית שמטרתה לאמת את זהות השולח של קובץ מחשב שנשלח ממחשב אחד לאחר (הבטחת אותנטיות)[1].

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

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

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

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

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

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

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

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

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

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

 .

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

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

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

ביטחוןעריכה

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

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

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

 .

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

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

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

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

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

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

תקשורתעריכה

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

חקיקהעריכה

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

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

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

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

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

ראו גםעריכה

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

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

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