בעמוד הבא תצללו לעקרונות ההצפנה המודרנית.
תבינו כיצד הצפנה סימטרית שונה מהצפנה אסימטרית ומה היתרון בזוג מפתחות של RSA.
נכיר את תפקיד המפתח הפרטי בחתימה דיגיטלית ואת ההבטחה שמעניקה שרשרת האמון של רשויות מאשרות.
נעבור על חולשות MD5 ונראה מדוע SHA-256 נחשב בטוח יותר.
נבחן איך HMAC משלב מפתח סודי בגיבוב ומגן מפני שינוי הודעות.
נסקור את מעבר הארגונים ל-ECC ואת חשיבות מנגנוני Padding במניעת מתקפות מתמטיות.
הקריאה תספק בסיס יציב לפני העמקה בסמינרים או בהכנה למיוני גאמא סייבר.
תחום האבטחה בעולם הדיגיטלי מסתמך רבות על הבנת עקרונות כמו הצפנה, גיבוב
וניהול מפתחות.
ככל שהמידע הופך לנכס חשוב יותר, עולה הצורך לשמור עליו מפני גישה לא מורשית
או שינויים זדוניים.
במדריך זה נעסוק בנושאים מרכזיים הנוגעים לAsymmetric
Encryption, הצפנה סימטרית, אלגוריתמי גיבוב דוגמת
MD5 וSHA-256, וכן במנגנוני תעודות
דיגיטליות ורשויות מאשרות.
הבנה זו חיונית למגוון תפקידים בתחום אבטחת המידע, לרבות מי שמבצע הכנה
למיונים גאמא סייבר, וכן למי שמתעניין במסלול טכנולוגי ביחידה 8200.
במדריך ניגע בשאלות שונות שנוגעות ליתרונות הצפנה אסימטרית לעומת סימטרית,
תפקיד המפתח הפרטי והציבורי, הסיכונים בשימוש בMD5, וגם
משמעות שרשרת האמון בתעודות דיגיטליות.
כל אלו יאפשרו קבלת רקע מספק לענות על הסוגיות המעשיות והעיוניות הכרוכות
בנושא.
הצפנה סימטרית מתבססת על מפתח בודד שמשמש הן להצפנה והן לפענוח.
בשיטה זו נדרש לשמור על סודיות המפתח ולשתף אותו בצורה בטוחה בין שני הצדדים.
לעומת זאת, הצפנה אסימטרית (או Asymmetric Encryption) עושה
שימוש בשני מפתחות: מפתח ציבורי ומפתח פרטי.
המפתח הציבורי יכול להיות חשוף לכל דורש, ומשמש להצפנת המידע.
רק באמצעות המפתח הפרטי המתאים, אשר נשמר בסוד אצל בעליו, ניתן לפענח את
המידע המוצפן.
היתרון המרכזי הוא שניתן לשתף בבטחה את המפתח הציבורי ברבים, מבלי להסתכן
בחשיפת המפתח הפרטי.
המשמעות המעשית היא שנחסך הצורך לשלוח מפתח סודי דרך ערוץ מאובטח מראש.
כך ניתן להתחיל תקשורת מאובטחת גם בלי מפגש מוקדם להחלפת מפתחות.
הדוגמה הנפוצה להצפנה אסימטרית היא RSA.
בRSA נוצרים זוג מפתחות: ציבורי לפרסום ופרטי לשמירה רק אצל
הבעלים.
כשמדברים על גודל המפתח בRSA, מתכוונים לאורך הביטים (למשל
2048 ביט).
כדי להשיג רמת אבטחה גבוהה, מומלץ להשתמש באורך מפתח של 2048 ביט ומעלה.
בסביבה הדורשת הגנה מוגברת יש העדפה גם למפתח באורך 4096 ביט, אם כי הדבר
כרוך בעומסי חישוב מוגדלים.
המפתח הפרטי בRSA חיוני לצורך פענוח של המסרים שהוצפנו
באמצעות המפתח הציבורי.
רק מי שמחזיק במפתח הפרטי יוכל לפתוח ולקרוא את הנתונים, ולכן יש לשמור עליו
בסודיות.
מעבר לכך, המפתח הפרטי משמש גם לחתימה דיגיטלית.
כאשר בעל המפתח יוצר חתימה על מסמך, הוא מצפין ערך גיבוב של המסמך בעזרת
המפתח הפרטי.
כל גורם אחר יכול לבדוק את החתימה באמצעות המפתח הציבורי של החותם, ולוודא
שהחתימה אכן תקפה.
גיבוב הוא פעולה חד-כיוונית ליצירת טביעת אצבע ייחודית למידע, ללא אפשרות
שחזור המידע המקורי מתוך התוצאה.
לדוגמה, אלגוריתם MD5 מקבל קובץ או הודעה, ומפיק מחרוזת קצרה
שמייצגת את תוכן הנתונים.
בכל שינוי קל בקובץ, ערך הגיבוב ישתנה באופן משמעותי, ולכן ניתן לגלות
שינויים לא רצויים.
הצפנה, לעומת זאת, מאפשרת את שחזור המידע המקורי בעזרת המפתח המתאים.
כך, אם נתונים הוצפנו בעזרת AES או RSA,
ניתן לפענח אותם ולשחזר את התוכן.
בעבר היה מקובל להשתמש רבות בMD5 לצורך בדיקת שלמות קבצים או
לצורך אימות.
אך עם הזמן נמצאו התנגשויות באלגוריתם MD5, כלומר מצבים שבהם
שתי הודעות שונות מפיקות את אותו ערך גיבוב.
תופעה זו מעמידה בספק את יכולת האימות שMD5 מספק, שכן תוקף
עלול ליצור שתי גרסאות של מסמך עם אותו ערך גיבוב.
לכן ביישומים מודרניים ובתעודות דיגיטליות מעדיפים להשתמש באלגוריתמים חזקים
יותר, כגון SHA-256.
בSHA-256, נכון להיום, לא ידוע על התנגשויות מעשיות, ולכן
רמת האמון באלגוריתם גבוהה יותר.
גיבוב בלבד מאפשר לזהות שינויים בנתונים אך לא מונע מתוקף לשנות את הנתונים
ואת הגיבוב בו-זמנית.
לכן פותחו שיטות כמו HMAC, המשלבות מפתח סודי בגיבוב וכך
מאמתות גם את מקור ההודעה.
רק הצד המחזיק במפתח הסודי יכול ליצור את הערך התואם, ולכן לא ניתן להחליף את
המידע והגיבוב ללא ידיעתו.
במקרים של הצפנה אסימטרית, אפשר גם להשתמש בחתימה דיגיטלית כדי להבטיח שלמות
ואותנטיות ללא מפתח סודי משותף.
חתימה דיגיטלית היא מנגנון המאפשר להוכיח שמידע נחתם על ידי גורם מסוים, וכן
לוודא שלא בוצעו שינויים במידע מאז החתימה.
בתהליך החתימה, החותם מחשב Hash של המסמך ולאחר מכן מצפין את
ערך הגיבוב בעזרת המפתח הפרטי שלו.
מקבל המסמך יכול לקחת את המפתח הציבורי של החותם, לפענח את החתימה, ולהשוות
את ערך הגיבוב לזה שהוא מחשב בעצמו.
אם הערכים זהים, ניתן להסיק שהמסמך לא שונה ושהחותם הוא מי שמחזיק במפתח
הפרטי המתאים.
כך מתקבלת ודאות לגבי שלמות המסמך ומקורו.
תעודה דיגיטלית משמשת לקשור מפתח ציבורי לזהות מסוימת, כגון שם מתחם (דומיין)
של אתר.
רשות מאשרת (CA) היא גורם שרבים סומכים עליו, שמוודא את זהות
המבקש ומנפיק עבורו תעודה דיגיטלית.
התעודה כוללת מידע על הזהות, על המפתח הציבורי, ועל החתימה הדיגיטלית של
הCA.
כאשר דפדפן או יישום רואה תעודה כזאת, הוא בודק אם רשות החתימה מוכרת ומאושרת
(באמצעות שרשרת האמון).
באופן זה, המשתמש יכול לסמוך על כך שהמפתח הציבורי בתעודה באמת שייך לגורם
הנכון.
שרשרת האמון בנויה מסדרת תעודות, כאשר כל תעודה נחתמת על ידי גורם מוסמך
בדרגה גבוהה יותר ממנה.
בראש השרשרת נמצאת רשות מאשרת עליונה (Root CA), אשר מובנית
כבר כגורם מהימן במערכות הפעלה ודפדפנים.
כאשר דפדפן בודק תעודה, הוא למעשה בודק גם את התעודות של הרשויות החתומות
מעליה, עד שמגיעים לRoot CA המוכרת.
כך אפשר לאמת באופן מלא שהתעודה הופקה על ידי גורם מורשה שאישר את זהות האתר
או השירות.
כאשר תעודה דיגיטלית נחתמת בעזרת אלגוריתם גיבוב חלש כמו
MD5, תוקף עלול ליצור התנגשויות ולהפיק תעודה מזויפת.
במקרה כזה, הדפדפן עשוי לקבל את התעודה המזויפת כתקפה, כי חתימתה תיראה זהה
לחתימת התעודה המקורית.
כדי למנוע סיכון זה, רשויות מאשרות ודפדפנים מודרניים חדלו להנפיק או לתמוך
בתעודות המבוססות על MD5.
השימוש באלגוריתמים חזקים כמו SHA-256 מגן יותר מפני מתקפות
המבוססות על התנגשויות.
בPrefix Collision Attack, התוקף יוצר מראש שני קבצים שונים
בעלי מקטע פתיחה זהה, באופן שמוביל לאותו ערך גיבוב בסוף.
כך ניתן לחתום על קובץ אחד (התמים) ולספח את החתימה גם לקובץ הזדוני,
שהHash שלו זהה, לכל הפחות באזורים הרלוונטיים.
מתקפה נוספת נקראת Length Extension Attack, שבה תוקף יכול
להרחיב הודעה מקורית באופן שעדיין שומר על מבנה גיבוב מתאים.
אלגוריתמים כמו MD5 וSHA-1 רגישים יותר
להתקפות אלה, בעוד גרסאות מתקדמות כמו SHA-2
וSHA-3 עמידות יותר.
בRSA, שימוש בPadding נכון חיוני למניעת
התקפות מתמטיות המנצלות את המבנה האלגברי של ההצפנה.
ללא מנגנון Padding (כמו PSS בחתימות או
OAEP להצפנה), תוקף עשוי לנחש או לבנות חתימה כך שתיראה
חוקית למסמך אחר.
לכן יש להקפיד שהיישום ישתמש במודלי Padding סטנדרטיים
ובדוקים כדי לשמור על אבטחת החתימה.
בChosen Plaintext Attack, התוקף יכול להזין הודעות לבחירתו
לתוך מערכת ההצפנה, ולראות את התוצאות המוצפנות.
אם במערכת RSA אין שימוש במנגנוני הגנה כמו
OAEP, ייתכן שהתוקף ילמד מכך מידע על המבנה הפנימי של ההצפנה
או על המפתח הפרטי.
לכן בהצפנה אסימטרית מודרנית מקפידים להשתמש בPadding מאובטח
ובפרוטוקולים תקניים המונעים פענוח חלקי או תבניות ניתנות לחיזוי.
קריפטוגרפיה מבוססת עקומות אליפטיות (EC או
ECC) מציעה רמת אבטחה דומה לRSA אך באורך
מפתח קצר יותר.
המשמעות היא שניתן להשיג חוזק הצפנה מקביל עם עומסי חישוב נמוכים יותר.
זו הסיבה שארגונים רבים עוברים לשימוש בחתימות דיגיטליות ועבודת מפתח
המבוססות על ECC (דוגמת ECDSA).
עם זאת, ביישומים מסוימים עדיין קיים שימוש נרחב בRSA מטעמי
תאימות ומורשת מערכות קודמות.
אימות הודעה באמצעים קריפטוגרפיים נועד למנוע מצבים שבהם תוקף משבש את המסר
בזמן מעברו.
מתקפה מסוג MITM (איש באמצע) מאפשרת לתוקף ליירט ולשנות את
המידע תוך כדי העברתו, אם המידע אינו מוגן כראוי.
אם משתמשים רק בMD5 לצורך בדיקת שלמות, התוקף עלול לשנות גם
את ההודעה וגם את הHash ולהשאיר את הצד המקבל ללא חשד.
שימוש בHMAC או בחתימה דיגיטלית מגביר משמעותית את ההגנה, כי
נדרש מפתח או מפתח פרטי כדי ליצור את האימות הנכון.
במדריך זה ראינו כיצד הצפנה אסימטרית פועלת, ולמה יש יתרון מהותי בכך שמפתח
ציבורי ניתן לשיתוף רחב בעוד המפתח הפרטי נשמר בסוד.
למדנו שגיבוב (Hash) הוא תהליך חד-כיווני, ושמדוע
MD5 נחשב לא בטוח עקב התנגשויות.
חתימות דיגיטליות, תעודות ורשויות מאשרות (CA) מעניקים בסיס
לאמון במרחב הדיגיטלי, ומספקים דרך לוודא את זהותו של גורם ואת שלמות המסמך
החתום.
ראינו גם כיצד שרשרת האמון (Chain of Trust) מאפשרת לדפדפנים
ולמשתמשים לבדוק אם התעודה נחתמה על ידי גורם מהימן.
בשל סיכוני Prefix Collision Attack וLength
Extension Attack, קיימת עדיפות להשתמש במשפחות גיבוב מתקדמות יותר
כמו SHA-256.
בנוסף, הבנו את חשיבות הPadding בRSA ואת
הצורך במנגנוני הגנה מפני מתקפות כמו Chosen Plaintext
Attack.
מדריך זה נכתב עבור העוסקים באבטחת מידע או מי שעובר הכנה למיונים של גאמא סייבר.
נושאים אלו נמצאים בבסיס עולם הקריפטוגרפיה המודרנית, ומשפיעים באופן ישיר על
הדרך שבה אנו מגנים על מידע רגיש, מנהלים זהויות דיגיטליות ומבטיחים שלמות של
נתונים במערכות מקוונות.
שילוב של הצפנה חזקה, גיבוב מתקדם וחתימה דיגיטלית מספקים מעטפת הגנה אשר
מאפשרת תקשורת בטוחה ואימות הדדי של זהות ושלמות.