שיעור 16: הצפנה בעולם הסייבר
האינטרנט אינו בטוח כברירת מחדל — הצפנה היא ה'מנעול' של המידע הדיגיטלי. בשיעורים קודמים כבר פגשנו הצפנה כרעיון: 'בתנועה' (TLS/VPN) מול 'במנוחה' (דיסק, מסד נתונים). השיעור הזה פותח את הקופסה השחורה: איך הצפנה בכלל עובדת? נכיר שני סוגי הצפנה — סימטרית (מפתח יחיד, מהירה, AES) ואסימטרית (זוג מפתחות, איטי
בקיצור: הצפנה סימטרית משתמשת במפתח אחד ומהירה, אבל קשה להעביר את המפתח בבטחה. הצפנה אסימטרית משתמשת בזוג מפתחות (ציבורי+פרטי) שפותר את בעיית ההעברה, אבל איטית מאוד. הפתרון: הצפנה היברידית — משתמשים באסימטרית רק כדי להסכים על מפתח סודי זמני (או ב-Diffie-Hellman, שיוצר סוד משותף בלי לשלוח אותו בכלל), ואז עוברים לסימטרית המהירה להעברת המידע בפועל. Hash הוא טביעת אצבע חד-כיוונית של מידע; חתימה דיגיטלית היא Hash מוצפן במפתח פרטי, שמוכיח מי שלח ושזה לא שונה. TLS מרכיב את כל זה יחד לפרוטוקול אחד שמריץ כל אתר מאובטח.
- הצפנה סימטרית
- אותו מפתח משמש גם להצפנה וגם לפענוח — מהירה מאוד ומתאימה להעברת כמויות אדירות של נתונים (AES הוא התקן המוביל כיום). האבטחה מבוססת על שמירת המפתח בסוד (עקרון קרקהופס), לא על הסתרת האלגוריתם — בניגוד לצפנים היסטוריים כמו צופן קיסר, שהסתמכו על הסתרת השיטה עצמה.
- האתגר הניהולי: הפצת מפתחות סימטריים
- שליחת המפתח ברשת גלויה חושפת אותו לגניבה. בארגון גדול, ניהול מפתח נפרד לכל זוג משתמשים דורש כמות עצומה של מפתחות (לדוגמה, כ-500,000 מפתחות עבור 1,000 עובדים שצריכים לתקשר זה עם זה). וחשיפת מפתח אחד חושפת את כל המידע שהוצפן איתו — בעבר ובעתיד.
- הצפנה א-סימטרית (מפתח ציבורי)
- זוג מפתחות: מפתח ציבורי גלוי לכולם, שכל אחד יכול להשתמש בו כדי להצפין הודעה עבורכם; ומפתח פרטי, שנשמר בסוד ורק הוא יכול לפענח מה שהוצפן בציבורי. כמו תיבת דואר — כל אחד יכול להכניס מכתב דרך החריץ (הציבורי), אך רק בעל המפתח הפיזי (הפרטי) יכול לפתוח ולקרוא. פותר את בעיית הפצת המפתחות — אין צורך להעביר סוד מראש.
- מגבלות ההצפנה הא-סימטרית
- איטית משמעותית — דורשת פי 1,000 עד 10,000 יותר כוח עיבוד מהצפנה סימטרית, ולא מתאימה להצפנת קבצים גדולים או הזרמת וידאו ביעילות. הפתרון המעשי: להשתמש בה רק לשלב ה'לחיצת יד' הראשונית להחלפת מפתח סימטרי, לא להצפנת המידע עצמו.
- הצפנה היברידית
- השילוב המנצח: משתמשים בהצפנה א-סימטרית (כמו RSA) רק כדי להעביר בבטחה מפתח סודי זמני, ואז עוברים להצפנה סימטרית המהירה (כמו AES) להעברת המידע הכבד בפועל. המפתח הזמני משמש רק לשיחה הנוכחית ומושמד בסופה — התוצאה היא גם ביטחון של חלוקת מפתחות וגם מהירות מקסימלית.
- Diffie-Hellman: סוד משותף בלי לשלוח אותו
- מנגנון שמאפשר לשני צדדים ליצור מפתח סודי משותף, גם אם מישהו מאזין לכל התקשורת ביניהם. כל צד מוסיף 'סוד פרטי' משלו שמעולם לא נשלח ברשת, ולאחר החלפת תוצאות ביניים, כל צד מחשב את אותו מפתח סודי. מאזין רואה רק מידע ציבורי ותוצאות ביניים — לא את הסודות הפרטיים. Diffie-Hellman לא מצפין את המידע עצמו — הוא רק יוצר את המפתח המשותף, שמשמש אחר כך עם הצפנה סימטרית.
- פונקציות Hash (טביעת אצבע)
- קל לייצר Hash ממידע, אך בלתי אפשרי לשחזר את המידע המקורי מהפלט (חד-כיווניות). שינוי של ביט אחד בלבד בקלט משנה לחלוטין את ה-Hash שיתקבל. משמש לשמירת סיסמאות (שומרים רק את ה-Hash, לא את הסיסמה עצמה) ולבדיקת שלמות קבצים שהורדו מהאינטרנט.
- חתימה דיגיטלית
- החתימה לא מסתירה את המידע — היא מוכיחה מי שלח אותו ושהוא לא שונה. תהליך: מייצרים Hash (טביעת אצבע) של המסמך, מצפינים אותו במפתח הפרטי של השולח (זו החתימה), ושולחים את המסמך + החתימה. המקבל מאמת עם המפתח הציבורי של השולח. שינוי ביט אחד במסמך שובר את החתימה לגמרי, ומעניקה אי-הכחשה — השולח לא יכול לטעון בעתיד שלא הוא שלח.
- TLS: לא אלגוריתם, אלא פרוטוקול
- TLS אינו אלגוריתם בודד אלא מסגרת עבודה (Framework) המאגדת: לחיצת יד (הזדהות), הסכמה על חליפת הצפנה, החלפת מפתחות (א-סימטרי, כמו RSA או Diffie-Hellman), והצפנת המידע בפועל (סימטרי, כמו AES) — עם Hash (כמו SHA-256) לבדיקת שלמות. HTTPS הוא ה'מעטפת' (הפרוטוקול המאגד); TLS הוא ה'מנוע' המאובטח בתוכה; AES/RSA הם הכלים המתמטיים שמבצעים את העבודה בפועל.
- Kerberos: אימות ארגוני מבוסס-כרטיסים
- מערכת האימות המרכזית בסביבות Windows/Active Directory. המשתמש מקבל 'כרטיס' זמני (Ticket) מגורם מרכזי (KDC) לאחר אימות ראשוני, ומשתמש בו כדי לגשת לשירותים בלי להקליד סיסמה שוב — הסיסמה עצמה לעולם לא עוברת ברשת בצורה גלויה.