כל הזכויות שמורות לטל בן שושן – Shushan.co.il
הסבר ויצירת מפתחות ע"י PGP ו GPG
חתימה דיגיטלית
Digital Signatures
תחילה נבין מהו Digital Signatures, חתימה דיגיטלית, היא מצב בו משתמש “חותם” מסמך, קובץ, אימייל וכו’, החתימה מייצרת מצב בו המשתמש מייצר זוג מפתחות על ידי RSA האחד Private Key והשני Public Key, המשתמש חותם את התעודה עם ה Private Key שלו ושולח למשתמש אחר, המשתמש הזה פותח המסמך ויכול לראות שאותו אדם חתם על המסמך ולכן המסמך אותנטי.
כיצד הוא מוודא שהקובץ אכן אותנטי? הוא משתמש ב Public Key של אותו אדם על מנת לאמת שהוא אכן "חתם" את המסמך עם ה Private Key שלו.
צורה נוספת להסתכל על זה, עורך דין ולקוח נמצאים כל אחד בצד אחר בעולם, העורך דין בקנדה והלקוח בברזיל, העורך דין שולח למשתמש מסמך שעליו לחתום עליו, הלקוח מקבל את המסמך מעיין בו, ועל ידי תוכנת חתימות חותם את המסמך ושולח בחזרה אל עורך הדין כך למעשה הם חוסכים זמן, חתימה בדיו, ואימות חזק יותר
- המשתמש מייצר על ידי RSA זוג מפתחות Key-Pair האחד Private Key והשני Public Key
- המשתמש מייצר על ידי Hash אלגוריתם כמו MD5 את הmessage-digest של המידע
- המשתמש, משתמש בPrivate Key על מנת לחתום את הmessage-digest וכך נוצר ה”חתימה הדיגיטלית”
- המשתמש שמקבל את המסמך חתום, פותח את החתימה הדיגיטלית על ידי ה Public Key של המשתמש ששלח לו את המסמך
כעת אחרי שהבנתם מהי חתימה דיגיטלית נבצע זאת בעזרת GPG, אך תחילה נבין מהו PGP ו GPG:
PGP
PGP הוא קיצור של Pretty Good Privacy ונוצר ב1991 והוא לוקח את הרעיון של Web Of Trust שאומר שמשתמש הקצה לא צריך להחזיק שרת תעודות על מנת לאמת \ לזהות\ להצפין את המידע ובכך לאמת\ לחתום\ להצפין מידע
PGP מכיל יכולות כמו
- Hashing
- Data Compression
- PKI
- Symmetric Key
GPG
GPG הוא קיצור של GNU Privacy Guard והוא כלי קוד פתוח והמשכיות של OpnePGP ובמדריך זה נשתמש על מנת להסביר על הפעולות אותו הוא מבצע:
תחילה נוריד את GPG4WIN
מהאתר https://www.gpg4win.org
והוא מכיל את הפיצ'רים הבאים
GnuPG 2.2.10
Kleopatra 3.1.3
GPA 0.9.10
GpgOL 2.3.0
GpgEX 1.0.6
Kompendium (de) 4.0.1
Compendium (en) 3.0.0
כעת נריץ את התוכנה Kleopatra שאיתה נבצע את רוב המדריך,
כעת עלינו ליצור KeyPair על מנת ליצור PKI האחד Private Key והשני Public Key
כעת נגדיר את הפרטים לתעודה (המכילה מפתח פרטי ומפתח ציבורי)
אם נלחץ על מתקדם נוכל להבחין שזהו RSA 2048Bit
נכניס את הסיסמא לפתיחת ההצפנה ה Key Passphrase
כעת נוכל לגבות את צמד המפתחות
כעת ניקח קובץ כמו בתמונה ונבצע לו Encrypt
ונלחץ על Encrypt
כעת ההודעה מוצפנת
קליק ימני שוב ואז Decrypt
יאלץ אותנו להכניס את הסיסמא
כעת ההודעה חזרה
כך למעשה נוכל לשלוח לאדם אחר את המסמך כאשר הוא מוצפן ואילו רק על ידי הסיסמא הוא יוכל לפתוח אותה.
חתימה דיגיטלית על ידי GPG
כעת נבצע חתימה דיגיטלית למסמך ואז נבצע לו אימות
קליק ימני על המסמך ואז Sign
כעת אשרו שאתם חותמים את המסמך בעזרת התעודה הקיימת, המסמך ייחתם על ידי ה Private Key
כעת נייצא את התעודה של Admin@shushan.co.il
כעת נמחק אותה – למה אנחנו מוחקים?
כעת נדמה את המשתמש אליו שלחתם את התעודה שלפני כמה רגעים ייצאתם וכך נאמת את המסמך אם הוא חתום על ידי Admin@shushan.co.il
נמחק את התעודה (אשרו את כל האזהרות)
כעת נייבא אותה, התעודה הזו מכילה רק את ה Public Certificate או יותר נכון ה Private Key
כעת לחצו על התעודה
ותקבלו אזהרה שעליכם להיות בטוחים שאכן התעודה הזו שייכת לאותו אדם
כעת התעודה הזו לא "בוטחה" על ידכם ולכן נצטרך לבטוח בה לחצו קליק ימני ואז Certify
ואז לחצו על הכפתור Certfiy
התוכנה תבקש ממכם ליצור סט מפתחות חדש
אני יצרתי תעודה עם האימייל tal@shushan.co.il
כעת נאמת את התעודה שייבאנו
אשרו
כעת יש את התעודה שהוספנו ה Admin@shushan.co.il וסט המפתחות החדש שאני הקמתי שזה tal@shushan.co.il
כעת נלחץ קליק ימני ואז Verfiy
והתוצאה שהמסמך נחתם על ידי Admin@shushan.co.il
על מנת להבין את זה במציאות צריך להבין את זה כך:
- ברגע שביצעתם את החתימה על המסמך עם ה Private Key בצעתם חתימה למסמך
- ייצאתם ושלחתם את ה Public Certificate או יותר נכון את ה Private Key למשתמש שאתם רוצים שיוכל לאמת שכל מסמך שתשלחו אליו הוא יוודא שאכן אתם "חתמתם אותו"
- הוא יבצע אימות למסמך ויוודא שאכן אתם חתמתם עליה בכך שהוא ישתמש ב Public Key שהוא היחיד שיכול לפתוח את ה Private Key