איך עובדות אפליקציות שיחות מזויפות? הטכנולוגיה מאחורי הקלעים
מ-CallKit ועד קולות AI: הסבר ברור וטכני על האופן שבו אפליקציות שיחות מזויפות מדמות שיחות נכנסות ב-iPhone וב-Android, ולמה הפער הטכנולוגי משנה.
Bמאת Baptiste Garcia
בעמוד הזה
התשובה הקצרה
אפליקציות שיחות מזויפות מפעילות שיחה נכנסת מדומה שמתרחשת כולה בתוך הטלפון שלכם. הטובות ביותר משתמשות במסגרת CallKit של Apple כדי להציג את מסך השיחה האמיתי של iOS, כולל צלצול, הצגה במסך הנעילה ורישום בשיחות האחרונות. אפליקציות פחות איכותיות מציגות רק התראה או שכבה מעוצבת משלהן. השיחה לא עוברת בכלל ברשת הטלפון, כך שאין מה לאתר. אפליקציות מודרניות מוסיפות קולות AI, תזמון ואפילו הפעלה מה-Apple Watch, לחוויה בלי ידיים לגמרי.סביר שכבר ראיתם אפליקציית שיחות מזויפות בפעולה, אם בטריק יציאה ב-TikTok ואם כשחבר חמק ממסיבה. אבל איך זה עובד בפועל, מתחת למכסה המנוע? התשובה מעניינת יותר ממה שנדמה, כי הפער בין אפליקציה זולה שמבוססת על התראות לבין אפליקציה שבנויה על מסגרת השיחות המקורית של Apple הוא עצום. הפער הזה קובע אם מי שיושב מולכם יקנה את זה או יעלה על זה תוך שנייה.
המדריך הזה עובר על הטכנולוגיה האמיתית: מה קורה כשהטלפון "מצלצל", למה חלק מהאפליקציות נראות זהות לשיחה אמיתית ואחרות ממש לא, ומה התפקיד של קולות AI, תזמון והפעלה מהשעון. אם הרעיון עצמו עדיין חדש לכם, ההסבר שלנו על מה זו בעצם שיחה מזויפת הוא נקודת התחלה טובה.
מה קורה כשאפליקציית שיחות מזויפות מצלצלת?
ברמה הבסיסית ביותר, אפליקציית שיחות מזויפות עושה דבר אחד: היא מודיעה למערכת ההפעלה של הטלפון שהגיעה שיחה נכנסת, למרות שאף אחד לא באמת מתקשר. ב-iPhone, הסטנדרט הוא מסגרת CallKit של Apple. כשאפליקציה קוראת למתודה reportNewIncomingCall של CallKit, מערכת iOS מתייחסת לזה כאל שיחת VoIP אמיתית. מכאן המערכת מטפלת בהכול ומציירת את ממשק השיחה הנכנסת המקורי, אותו ממשק במסך מלא שאתם רואים ב-FaceTime, ב-WhatsApp או בכל אפליקציית שיחות אחרת.
זו לא שכבה מעל המסך ולא צילום מסך של שיחה. זה מסך השיחה של המערכת עצמה, ש-iOS מציירת בעצמה. לכן הוא מתנהג בדיוק אותו דבר: מצלצל במסך הנעילה, משמיע קול דרך האפרכסת או הרמקול, מציג את שם המתקשר והתמונה שהגדרתם, ואחרי ש"עניתם" ובהמשך "ניתקתם", השיחה מופיעה בלשונית "אחרונים" של אפליקציית הטלפון. אין שום הבדל חזותי, כי אין שום הבדל במה ש-iOS מציירת.
CallKit מול אפליקציות מבוססות התראות: למה זה משנה
לא כל אפליקציית שיחות מזויפות משתמשת ב-CallKit, ואלה שמוותרות עליה מקבלות תוצאה גרועה בהרבה. הנה ההשוואה בין שתי הגישות.
אפליקציות CallKit (הדבר האמיתי)
- מערכת iOS מציגה את מסך השיחה המקורי של המערכת, כולל הכפתורים הירוק והאדום למענה ולדחייה, תמונת המתקשר והרקע המטושטש.
- השיחה מצלצלת במסך הנעילה, כך שהיא עובדת גם כשהטלפון לא ביד. זה קריטי לאמינות: אף אחד לא מוציא את הטלפון, פותח אפליקציה ורק אז מקבל שיחה.
- רישום בשיחות האחרונות נוצר אוטומטית. אם מישהו מציץ אחר כך ברשימת השיחות האחרונות שלכם, הוא רואה רשומה רגילה לגמרי. סקרנים לדעת אם הרשומה הזו עלולה לעשות בעיות? המאמר שלנו על האם שיחות מזויפות מופיעות ביומן השיחות נכנס לפרטים.
- השמע מושמע דרך האפרכסת בדיוק כמו בשיחה אמיתית, כך שהצד השני נשמע טבעי ומגיע מהמקום הנכון.
אפליקציות מבוססות התראות או שכבות
- האפליקציה מציירת מסך שיחה מדומה משלה, בתוך החלון שלה. במבט חטוף זה יכול להיראות משכנע, אבל רק כשהאפליקציה פתוחה ונמצאת בחזית.
- אין צלצול במסך הנעילה. אם הטלפון נעול או במצב שינה, הכי הרבה שתקבלו זה באנר של התראה. זה לא נראה כמו שיחה נכנסת בכלל, וכל מי שהשתמש בטלפון חמש דקות ישים לב.
- אין רישום בשיחות האחרונות. השיחה לא משאירה עקבות ביומן השיחות המובנה של iOS, וזה מסגיר אתכם אם מישהו במקרה מסתכל.
- הקול מושמע לעיתים קרובות דרך ערוץ המדיה ולא דרך האפרכסת, כלומר עוצמת הקול נשלטת על ידי מחוון המדיה ולא מחוון השיחות. פרט קטן, אבל הוא משנה את האופן שבו הצליל מתנהג.
השורה התחתונה פשוטה: אם האפליקציה לא משתמשת ב-CallKit (ב-iPhone), האשליה עובדת רק כל עוד אתם בוהים באפליקציה. ברגע שהטלפון ננעל או שמישהו מציץ במסך מהצד, המשחק נגמר.
איך סימולציית VoIP עובדת מקומית
המילה "VoIP" יכולה לרמוז שהשיחה עוברת באינטרנט, אבל באפליקציית שיחות מזויפות שום שיחה לא משודרת בכלל. CallKit נבנתה בשביל אפליקציות כמו WhatsApp ו-Signal שמקבלות שיחות VoIP אמיתיות דרך האינטרנט. אפליקציית שיחות מזויפות משתמשת באותו ממשק, בלי אף אחד בצד השני. זה קצת כמו לשלוח לעצמכם מכתב בדואר הפנימי של הבית שלכם.
כך זה נראה, בגרסה מפושטת:
- אתם מתזמנים שיחה באפליקציה, ובוחרים שם איש קשר, תמונה, צלצול והשהיה (למשל, "לצלצל בעוד 30 שניות").
- הטיימר מסתיים. כשהספירה לאחור מגיעה לאפס, האפליקציה מבקשת מ-CallKit לדווח על שיחה נכנסת חדשה עם הפרטים שהגדרתם.
- מערכת iOS נכנסת לפעולה. המערכת מציגה את מסך השיחה, משמיעה את הצלצול ברמקול ומרטיטה את הטלפון. אתם רואים את אותו ממשק שכולם רואים בכל שיחה.
- אתם עונים. ברגע שאתם מחליקים או מקישים על הכפתור הירוק, האפליקציה יכולה להשמיע קול: תסריט מוקלט מראש, קול שנוצר ב-AI, או שקט (אם אתם מעדיפים לדבר לבד).
- אתם מנתקים. השיחה מסתיימת, נוצרת רשומה בשיחות האחרונות, והחיים ממשיכים. שום מספר לא חויג ושום חברת סלולר לא הייתה מעורבת.
מכיוון שאף שיחה לא מתבצעת בפועל, אין רישום של השיחה אצל חברת הסלולר, ואין שום דבר שמסנני ספאם או מאגרי זיהוי מתקשר יכולים לסמן. זו ההבחנה המרכזית בין שיחה מזויפת לבין זיוף זיהוי מתקשר, שהוא טכנולוגיה שונה לגמרי (ולעיתים קרובות לא חוקית).
קולות AI והשמעת קול
אפליקציות השיחות המזויפות הראשונות השמיעו קובץ שמע פשוט, אולי כמה שניות של קול כללי שאומר "הלו?". זה עבד בשעת הצורך, אבל בפועל דיברתם עם הקלטה בלי שום גמישות. אם עצרתם ברגע הלא נכון או אמרתם משהו שההקלטה לא התאימה לו, האשליה התערערה.
אפליקציות מודרניות עובדות אחרת. הן משתמשות במנועי המרת טקסט לדיבור, ולפעמים במודלים מלאים של קולות AI, כדי לייצר את הצד של המתקשר בשיחה. אתם כותבים (או בוחרים) תסריט לצד השני, והאפליקציה מסנתזת דיבור שנשמע טבעי ומתאים להקשר. חלק מהאפליקציות אפילו מאפשרות לבחור פרופילים שונים של קול: גבר או אישה, צעיר או מבוגר, או עם מבטא מסוים.
התוצאה היא קול שמושמע דרך האפרכסת במהלך השיחה, עם הפסקות מתוזמנות כדי שתוכלו להגיב באופן טבעי. מכיוון ש-CallKit מנתבת את הקול של השיחה דרך ערוץ השיחות של הטלפון, הקול יוצא מהאפרכסת בחלק העליון של הטלפון, בדיוק מהמקום שממנו היה מגיע קול של מתקשר אמיתי. מי שעומד לידכם שומע מלמול חלש של קול, בדיוק כמו בשיחה אמיתית.
אם אתם רוצים לנסות לכתוב תסריט לצד השני של השיחה, מחולל תסריט השיחה החינמי שלנו מאפשר לכם לנסח דיאלוג שנשמע טבעי תוך שניות.
תזמון והפעלה
בשיחה מזויפת, התזמון הוא הכול. אם אתם צריכים להוציא את הטלפון, לפתוח אפליקציה וללחוץ על כפתור מול האדם שממנו אתם מנסים לברוח, כל העניין מתפרק. בגלל זה תזמון הוא אחת התכונות החשובות ביותר בכל אפליקציית שיחות מזויפות.
הגרסה הפשוטה ביותר היא טיימר עם ספירה לאחור: קובעים השהיה של חמש דקות, מכניסים את הטלפון לכיס ומחכים שיצלצל. אפליקציות מתקדמות יותר מציעות תזמון בסגנון יומן, שמאפשר לקבוע תאריך ושעה מדויקים. זה שימושי אם אתם יודעים מראש שפגישה או ארוחת ערב עלולות להימרח ואתם רוצים יציאה מובנית, נגיד ב-20:15.
ויש גם הפעלה מהשעון. ב-Introscape, למשל, אפשר להפעיל שיחה מזויפת מה-Apple Watch. נגיעה דיסקרטית בשורש כף היד, והטלפון מתחיל לצלצל שלוש שניות אחר כך. אף אחד לא רואה אתכם נוגעים בטלפון בכלל. זה שימושי במיוחד במצבים חברתיים שבהם הוצאת הטלפון הייתה נראית חשודה בפני עצמה.
פרט אחד שכדאי להכיר לגבי iPhone: מערכת iOS מגבילה את מה שאפליקציות יכולות לעשות ברקע, ולכן אפליקציה בנויה היטב נערכת מראש כדי לצלצל בזמן, גם כשהמסך נעול והאפליקציה סגורה. כשהטלפון נעול ולא מחובר לאינטרנט, שיחות שמתוזמנות יותר מ-30 שניות מראש פחות אמינות, ובמקרה כזה ספירה לאחור קצרה או הפעלה ידנית (כמו נגיעה בשעון) הן האפשרות האמינה.
שילוב במסך הנעילה ומצב "נא לא להפריע"
שיחה נכנסת אמיתית מתנהגת בצורה מאוד מסוימת: היא מדליקה את מסך הנעילה, מציגה ממשק במסך מלא ומשמיעה את הצלצול שלכם (או רוטטת, אם ה-iPhone במצב שקט). אפליקציית שיחות מזויפות איכותית שמשתמשת ב-CallKit משחזרת את כל זה, כי iOS מטפלת בתצוגה ולא האפליקציה.
יש כמה התנהגויות ברמת המערכת שכדאי להבין:
- מסך הנעילה. שיחת CallKit מצלצלת במסך הנעילה בדיוק כמו FaceTime או WhatsApp. לא צריך לבטל את נעילת הטלפון כדי לראות אותה או לענות לה. זה הסימן הכי גדול שמבדיל בין אפליקציות טובות לגרועות.
- "נא לא להפריע" ומצבי ריכוז. אם הפעלתם את "נא לא להפריע" או מצב ריכוז, ייתכן ש-iOS תשתיק את השיחה, בהתאם להגדרות שלכם. בדיוק כמו שיחת VoIP אמיתית, השיחה המזויפת פועלת לפי הכללים שהגדרתם. אם אתם רוצים שהשיחה תעבור, ודאו שהגדרות מצב הריכוז מאפשרות את זה.
- מצב שקט. כשמתג השקט הפיזי מופעל, הטלפון ירטוט אבל לא יצלצל בקול, בדיוק כמו בשיחה אמיתית. אם אתם צריכים שישמעו את הצלצול (כדי שהאשליה תהיה שלמה), כבו את המצב השקט מראש.
רוצים לראות איך החוויה המלאה נראית ונשמעת לפני שמורידים משהו? הדמו החינמי של שיחה מזויפת בדפדפן מדמה את מהלך השיחה, כדי שתוכלו לקבל תחושה של התזמון ושל התצוגה.
ומה עם Android?
ל-Android אין מקבילה מדויקת ל-CallKit, ולכן התמונה מגוונת יותר. אפליקציות השיחות המזויפות הכי מציאותיות ל-Android משלבות את מסגרת Telecom (ממשק ConnectionService) עם שכבות מעוצבות, כדי לחקות את מסך השיחה המקורי של הטלפון. מכיוון שלכל יצרן (Samsung, Pixel, OnePlus, Xiaomi) יש עיצוב משלו למסך השיחה, חלק מהאפליקציות מציעות כמה "סקינים" כדי שהשיחה המזויפת תתאים לטלפון הספציפי שלכם.
ב-Android יש גם הרשאה בשם הצגה מעל אפליקציות אחרות (מכונה גם הרשאת שכבה). אפליקציות שמסתמכות עליה יכולות להציג מסך שיחה מעל כל מה שרץ כרגע, כולל מסך הנעילה. אבל אם המשתמשים לא נתנו את ההרשאה הזו, או אם יצרן הטלפון מגביל באגרסיביות פעילות ברקע, ייתכן שהשיחה המזויפת לא תופיע בכלל כשהמסך כבוי.
העיקרון הכללי זהה ל-iPhone: ככל שהאפליקציה משתלבת יותר במערך השיחות של המערכת, התוצאה משכנעת יותר. ב-Android פשוט יש יותר משתנים לקחת בחשבון, כי האקוסיסטם מפוצל יותר.
פרטיות וביטחון
מכיוון ששיחה מזויפת היא מקומית לגמרי, היא מעוררת הרבה פחות חששות פרטיות ממה שאפשר לצפות. אלה העובדות העיקריות:
- בלי רשת טלפון. שום שיחה לא מתבצעת ושום מספר לא מחויג. השיחה קיימת רק במכשיר שלכם, והמידע המועט שנדרש כדי לתזמן אותה מטופל בזהות בדויה.
- אין זיוף זיהוי מתקשר. זיוף זיהוי מתקשר פירושו שליחת זיהוי כוזב לטלפון של אדם אחר. שיחה מזויפת עושה את ההפך: היא מצלצלת בטלפון שלכם עם שם שבחרתם. הטלפון של אף אחד אחר לא מושפע.
- הרשומות בשיחות האחרונות הן מקומיות. הרשומה ביומן השיחות שמופיעה אחרי הניתוק נמצאת רק במכשיר שלכם. היא לא מסונכרנת עם חברת הסלולר ולא גלויה לאף אחד שאין לו גישה פיזית לטלפון שלכם.
- דעו לאן הולכים נתוני הקול. קולות AI נוצרים מתוך התסריט שאתם מקלידים, ואז מושמעים בטלפון שלכם. אפליקציה אמינה אומרת לכם מה היא עושה עם הטקסט הזה.
למבט מעמיק יותר על השאלה אם מישהו יכול לזהות את השיחה בדיעבד, המאמר שלנו על האם אנשים יכולים לזהות שיחה מזויפת מכסה גם את הצד החזותי וגם את הצד ההתנהגותי.
מקורות וקריאה נוספת
- Apple Developer: CallKit: התיעוד הרשמי של Apple למסגרת שמאפשרת לאפליקציות להציג את ממשק השיחה הנכנסת המקורי, לדווח למערכת על שיחות ולהשתלב ברשימת השיחות האחרונות של הטלפון.
- Apple Developer: reportNewIncomingCall: המתודה הספציפית של CallKit שמפעילה התראת שיחה נכנסת ב-iOS, הקריאה היחידה שגורמת לשיחה מזויפת להיראות זהה לשיחה אמיתית.
- Android Developer: ConnectionService: המקבילה של Android להשתלבות במערך השיחות של המערכת, שבה משתמשות אפליקציות השיחות המזויפות הכי מציאותיות ל-Android.
עיקרי הדברים
- אפליקציות CallKit מציגות את מסך השיחה האמיתי של iOS כי המערכת עצמה מציירת את הממשק, ולכן השיחה המזויפת זהה חזותית לשיחה אמיתית.
- אפליקציות מבוססות התראות מוותרות על CallKit ועובדות רק כשהאפליקציה פתוחה, כך שהאשליה קורסת במסך הנעילה.
- השיחה עצמה מקומית: בלי רשת טלפון, בלי חברת סלולר ובלי שום דבר לאתר.
- קולות AI, תזמון והפעלה מה-Apple Watch הופכים צלצול מזויף פשוט לדרך יציאה משכנעת, בלי לגעת בטלפון.