דף הבית   על אודות   צרו קשר   לפני האיתחול  
27 בינואר2018

איך עובד HTTPS


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

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

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

http

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

צורת התקשורת הזו היא בעצם מה שאנחנו מכירים ברשת בתור HTTP, ראשי תיבות של Hypertext Transfer Protocol. פרוטוקול פשוט ובלתי מוצפן, שהתקשורת בו חשופה לכל צד אשר שותף להעברת ההודעה. כשאתם מבקרים באתרים אשר הכתובת שלהם מתחילה ב: http (ולא https), דעו שכל מי שנמצא ביניכם לבין האתר בו אתם גולשים חשוף לכל פרט בתקשורת שלכם.

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

שיטת ההצפנה הזו נקראת “הצפנה א-סימטרית” (Asymmetric encryption) או “הצפנת מפתח פומבי” (Public key encryption). בדוגמה של לודה ובלעם הקופסה היא המפתח הציבורי של לודה, והמפתח שלה הוא המפתח הפרטי. רק המפתח הפרטי של לודה יוכל לפתוח את הקופסה ולראות את תוכנה.

a-symetric encryption

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

man in the middle attack

התחבולה של מפקד הכלא נקראת “Man in the middle attack”’ או “התקפת אדם בתווך”. בעזרת ההתקפה הזו יכול צד שלישי מרושע להתחזות לשני הצדדים האחרים והם לא יחשדו בדבר.

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

https

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

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

למרות שהמנגנון הזה (שנקרא SSL - ראשי תיבות של Secure Sockets Layer, והגרסה המעודכנת שלו TLS - ראשי תיבות של Transport Layer Security) נפוץ מאוד ונמצא בשימוש נרחב מאוד, גם הוא לא חף מפגמים. אציין בקצרה שלושה מהם:

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

פרצה נוספת במנגנון יכולה להיות שיוהן, רשות האישורים שלנו, הוא אדם עסוק מאוד, לכן הוא מסמיך כמה מידידיו לחתום בשמו על אישורי אבטחה כאלה. הסמכה כזו יוצרת “שרשרת אמון” (chain of trust), אבל מספיק שאחד מידידיו של יוהן, שנקראים “intermediate certificate authority” (רשות ביניים לאישורים, בתרגום חופשי), יתפתה לבגוד באמון שניתן בו, וכל העסק נכשל. מקרה מסוג זה קרה ב-2013, כאשר רשות ביניים טורקית “חתמה” על אישור לדומיין של גוגל, ומקרה אחר כשרשות צרפתית גם היא חתמה על תעודה דומה. המשמעות של החתימה הזו היתה שמשתמשים היו עלולים לחשוב שהם מתקשרים בצורה מאובטחת עם גוגל בשעה שבפועל תיקשרו עם גורם מרושע שרק התחזה לגוגל.

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

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