הפודקאסט של מיכאל

פרק 34: וואטסאפ והחפ"ק המבצעי


Listen Later

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

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

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

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

התשובה הקצרה היא Erlang. התשובה הארוכה היא ארכיטקטורה שבזה למוסכמות של עמק הסיליקון המודרני.

כן, בזמן שכל הסטארטאפים רצו לכתוב ב-Node או Go, המהנדסים של Whatsapp הלכו אחורה בזמן. הם בחרו ב-Erlang, שפה שפותחה באריקסון בשנות ה-80 עבור מתגים טלפוניים. שפה שמבטיחה דבר אחד - להיות בלתי-הריגה תחת עומס של מיליוני חיבורים מקביליים.

ארלנג, ספציפית BEAM או ה-Virtual Machine של Erlang מאפשר לתהליכים, Actors, לקרוס בלי להשפיע על אף אחד אחר. עקרון שזכה לכינוי Let it crash. ארלנג מעולה בסקייל. בפוסט "מיליון אחד זה כל כך 2011", חשפה ווטסאפ שרת בודד שמטפל ב-2 מיליון חיבורים פתוחים. מספר דמיוני במונחים של שרת HTTP רגיל. וגם Hot Reload - אפשרות לדחוף גרסה חדשה לשרת, בזמן שהוא משרת "אמהות לא אוגרות". זה קריטי כשיש לך צוות הנדסה זעיר יחסית לכמות המשתמשים. בערב המכירה, 50 מהנדסי ווטסאפ מטפלים ב-450 מיליון משתמשים (יחס של 1 ל-9 מיליון), לעומת 1 ל-20,000 בפייסבוק.

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

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

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

עד לא מזמן, הטלפון שלכם היה "מקור האמת", זוכרים? שבלי קליטה או סוללה לא היה וואטסאפ במחשב? המעבר ל-Multi-Device חייב את ווטסאפ להמציא את הגלגל מחדש, ולאמץ את פרוטוקול Signal, סטנדרט הזהב להעברת מסרים מוצפנים מקצה לקצה.

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

אבל זה רק המפתח הראשוני. ב-Signal המפתח זז קדימה בשיטת Double Ratchet, כמו המפתח ברגים הזה עם השיקשוק שמהדק רק לצד אחד. כל הודעה מסובבת את המפתח קדימה, טיק אחד. מה קורה גבר. טיק. מה שמעתי הפלת פרודקשן. טיק. ה-Forward Secrecy הזה יוצר מפתח חדש בכל פעם. גם אם ה-NSA גנבו את המפתח של היום, הם לא יכולים לפענח את ההודעות של אתמול. אבל אמרנו Double Ratchet - גם אם המוסד גנבו את המפתח של היום, המערכת תחלים בעצמה עם סט חדש שדדי ברנע לא מכיר. איך? מספיק שהנמען יענה "משהו" כדי שהמפתחות יתערבבו מחדש.

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

אבל רגע, אמרנו Multi-Device. איך מבטיחים הצפנה מקצה לקצה כשיש לי יותר ממכשיר אחד? איך השרת יכול לשכפל הודעה ליתר המכשירים שלי, כשהוא לא יודע מה התוכן? התשובה היא מאוד ווטסאפית - "השרת שלנו? לא עושה כלום. המכשיר שלכם עושה את זה!" זה נקרא Client Fanout וכשאתם שולחים הודעה ל"נופר", המכשיר שלכם בודק מול השרת אילו עוד מכשירים יש לנופר, ואילו מכשירים נוספים יש לכם. הוא מצפין את ההודעה בנפרד עבור כל אחד מהמכשירים האלה, ושולח צרור הודעות מוצפנות לשרת. והשרת? מפיץ אותן ליעדם כמו דוור עיוור.

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

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

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

אוקיי. על הנייר, WhatsApp היא מבצר. בפועל? היא גבינה שוויצרית, לא בגלל ההצפנה, אלא בגלל כל מה שמסביב.

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

ולפעמים זה לא רוגלה, אלא חולשה. כמו CVE-2019-3569 שאיפשרה לשיחת טלפון בווטסאפ לדרוס איזור בזיכרון, ולהריץ על המכשיר קוד מרחוק. גם פה, ההצפנה יכולה להיות מושלמת. אבל אם האפליקציה כתובה ב-C/C++ ויש בה באג של ניהול זיכרון, אז כל המרכלים בקבוצת "גן מרגנית - בלי הגננת" - אכלו אותה.

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

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

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

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

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

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

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

מפחיד. אבל בשליטתכם - אל תעבירו קוד אבטחה לעולם, גם אם זה למישהו שאתם מאוד אוהבים.

טוב, בוא נדבר קצת AI. מארק צוקרברג בבעיה. הוא רוצה ש-WhatsApp תהיה סייעת AI חכמה (כמו ChatGPT), אבל הבטיח שההודעות מוצפנות ושהוא לא יכול לקרוא אותן בשרת. הוא גם לא יכול להריץ מודל שפה של 70 מיליארד פרמטרים במכשיר עצמו. הפתרון לבעיה, Private Processing. כשהטלפון שלכם שולח שאלה ל-Meta AI, הוא לא פונה ישירות לשרתים של Meta. הוא משתמש בשרת צד-שלישי. השרת הזה רואה את את המזהה שלכם אבל לא את התוכן. השרת של Meta רואה את התוכן אבל לא את המזהה, כך מנתקים את "מי שאל" ל"מה נשאל".

והשרת שרואה את התוכן, רץ בתוך Trusted Execution Environment, מעין "מובלעת" מאובטחת במעבד, אזור שמוצפן ברמת החומרה, מקום שגם מנהל השרת של Meta, עם הרשאות sudo, לא יכול לגשת אליהם. בשרת הזה לא נשמרים לוגים וברגע שהתשובה נוצרה, היא נמחקת מהזיכרון לגמרי.

זה וואחד הישג הנדסי, אבל הוא דורש מאיתנו להאמין בשני דברים: במעבדים של אינטל/AMD, ובמטא, שבעצם אומרת: "אנחנו כן מריצים AI על ההודעות שלכם, אבל תסמכו עלינו שזה בארון סגור עם מנעול כפול".

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

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

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

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

אותה תמי 4 גם משלמת על הודעות, במסגרת Whatsapp for Business. מודל שגובה יותר אם העסק פנה למשתמש, פחות אם המשתמש פנה לעסק וממש בזול אם העסק ענה ללקוח תוך 24 שעות. זה דוחף עסקים להיות יעילים, והופך את ווטסאפ למערכת CRM מהגדולות בעולם.

ווטסאפ גם אחראית לערוץ סופר צומח של מטא בפרסום. כפתור ה-Click to WhatsApp פותח צ'אט עם העסק מתוך המודעה, כך שכל האינטראקציה קורית בתוך אותה Ecosystem. מהלך שגם עוקף את מגבלת המעקב במכשירי אפל.

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

איזה בזבוז. בישראל, שמשלמת ב-Bit ופייבוקס, 90% מהגולשים (לפי "בזק") משתמשים בווטסאפ. זה נתון מטורף. אנחנו - מכורים.

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

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

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

עד הפעם הבאה, תהיו טובים, ותמשיכו להיות סקרנים. יאללה ביי.

...more
View all episodesView all episodes
Download on the App Store

הפודקאסט של מיכאלBy מיכאל לוגסי

  • 5
  • 5
  • 5
  • 5
  • 5

5

2 ratings


More shows like הפודקאסט של מיכאל

View all
גיקונומי by ראם שרמן ודורון ניר

גיקונומי

90 Listeners

עושים חשבון Osim Heshbon by רשת עושים היסטוריה

עושים חשבון Osim Heshbon

21 Listeners

עושים היסטוריה עם רן לוי Osim Historia With Ran Levi by רשת עושים היסטוריה

עושים היסטוריה עם רן לוי Osim Historia With Ran Levi

168 Listeners

חיות כיס Hayot Kiss by כאן | Kan

חיות כיס Hayot Kiss

145 Listeners

עושים טכנולוגיה עם ד״ר יובל דרור I רשת עושים היסטוריה by רשת עושים היסטוריה

עושים טכנולוגיה עם ד״ר יובל דרור I רשת עושים היסטוריה

38 Listeners

מנועי הכסף by כלכליסט

מנועי הכסף

37 Listeners

חצי שעה של השראה עם ערן גפן by חצי שעה של השראה עם ערן גפן

חצי שעה של השראה עם ערן גפן

11 Listeners

האינטרסנטים by TheMarker

האינטרסנטים

82 Listeners

התשובה עם דורון פישלר Hatshuva With Doron Fishler by רשת עושים היסטוריה

התשובה עם דורון פישלר Hatshuva With Doron Fishler

194 Listeners

הצוללת by גלובס - Globes

הצוללת

25 Listeners

בזמן שעבדתם by mako מאקו

בזמן שעבדתם

93 Listeners

אחד ביום by N12

אחד ביום

312 Listeners

הפודקאסט של נדב פרי by All•in & Nadav Perry

הפודקאסט של נדב פרי

52 Listeners

השקעות לעצלנים - פודקאסט על כסף, השקעות והחיים עצמם by תמיר מנדובסקי

השקעות לעצלנים - פודקאסט על כסף, השקעות והחיים עצמם

29 Listeners

הקרנף - עם יואב רבינוביץ׳ by בית הפודיום

הקרנף - עם יואב רבינוביץ׳

23 Listeners