איך להקריא אימוג'י מגן עליכם מהאזנות סתר

10/04/2017

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

1. מהי הצפנת קצה לקצה

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

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

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

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

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

2. איך לשבור הצפנת קצה לקצה

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

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

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

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

3. אמוג'י

הפתרון של טלגרם? אמוג'י! מפתח ציבורי הוא די קצר, אבל לא מספיק קצר בשביל להקריא אותו בטלפון בתחילת כל שיחה. טלגרם יצרו מנגנון החלפת מפתחות משלהם שמקצר עוד יותר את המידע הרלוונטי והגיעו ל 33 ביטים שצריך לוודא שמתואמים בין הצדדים. את הביטים האלה הם מתרגמים לרצף של 4 אמוטיקונים מתוך מאגר של 333 תמונות אפשריות.

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

4. אז אפשר להיות רגועים?

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

naturally, it doesn’t have access to the contents of the conversation, it has only technical information such as network speed, ping times, packet loss percentage, etc.

מהו אותו technical information? כמה מידע אפשר לדלות ממנו על המסביב של השיחה? האם יש חשיבות למידע זה? אין לי מושג וזה דברים שיהיה מעניין לבדוק.

מידע נוסף על אימות שיחות קוליות אפשר למצוא באתר של טלגרם בקישור: https://core.telegram.org/techfaq#q-how-are-voice-calls-authenticated