זיהוי חסימה וזיופים של GNSS

אפשר לחלק את ההפרעות ל-GNSS לשתי קטגוריות:

  • רעשי רקע
  • זיוף

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

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

מידע על זיוף או ערפול של GNSS

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

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

השוואה בין עוצמות האותות שמציינת הפרעה
איור 1. ערך ה-AGC יורד במהלך הפרעה (אזור אדום), ועולה חזרה לרמות רגילות כשהפרעה מסירה (אזור ירוק). (מקור התמונה: https://doi.org/10.33012/navi.537)

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

בדיקה של זיוף או חסימה של GNSS

אפשר להשתמש בכרטיסייה Spoof/Jam באפליקציה GnssLogger כדי לבדוק את ההשפעה של הסביבה על C/N0 ו-AGC בזמן אמת.

תרשים של AGC ו-C/N0 בזמן אמת

בכרטיסייה Spoof/Jam מוצג תרשים בזמן אמת של AGC ו-C/N0 לכל קבוצת כוכבים ותדר של GNSS (למשל, "GPS L1" או "G:L1:",‏ "Galileo E5a" או "E:E5A:").

תרשים של AGC ו-C/N0 לכל קבוצת כוכבים ותדר של GNSS.
איור 2. הערכים של AGC ו-C/N0 יורדים כשהטלפון מוחזק ליד נתב Wi-Fi (אליפסה אדומה). 3 האותות הממוצעים המובילים בכל קבוצת כוכבים ותדר מוצגים כקווים מקווקווים. ה-AGC לכל קבוצת כוכבים ותדר, שהוא ערך יחיד, מוצג כקו רציף. הקטע שמוקף באדום בתרשים מראה איך הערכים של AGC ו-C/N0 יורדים כשהטלפון מוחזק ליד נתב Wi-Fi, ולכן נראה הפרעה.

בדיקות בזמן אמת למניעת זיופים והפרעות

מתחת לתרשים בזמן אמת של AGC ו-C/N0, האפליקציה מציגה סדרה של בדיקות נתונים אוטומטיות שמזהות תנאים שקשורים להפרעות GNSS.

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

בקטע בדיקות רעשי גלי רדיו, האפליקציה בודקת אם הממוצע של 10 ה-epochs האחרונים של C/N0 ו-AGC השתנה בהשוואה ל-50 ה-epochs הקודמים. אם הערכים של C/N0 ו-AGC יורדים בו-זמנית, יכול להיות שמדובר בתסמין של חסימה של GNSS. אם המצב הזה מזוהה, בכרטיס תוצג הודעת FAIL עם מידע נוסף:

תנאים שעשויים להיגרם כתוצאה מהפרעה של GNSS.
איור 4. כשל שמציין שזוהו תנאים שעשויים לנבוע מהפרעה של GNSS.

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

הבדיקה השנייה שקשורה לזיוף מחפשת הבדל של יותר משנייה בין זמן ה-GNSS שמחושב במכשיר לבין הזמן שאוחזר דרך האינטרנט משרת של Network Time Protocol‏ (NTP) (זמן הרשת - זמן ה-GNSS). אם ההפרש גדול, יכול להיות שזמן ה-GNSS המחושב לא תקין.

טיפים, טריקים וסייגים

ריכזנו כאן כמה דברים שכדאי לזכור כשמשתמשים בתכונה Spoof/Jam ב-GnssLogger:

  • זוהי תכונה ניסיונית. ככל שנלמד יותר על המאפיינים של AGC במכשירי Android שונים, יכול להיות שנעדכן את האלגוריתמים המדויקים שמשמשים לזיוף ולשינויים של רעשי גלי רדיו.
  • התכונה הזו לא מזהה את כל הזיוף וההפרעה – בדיקות הנתונים והתרשים בזמן אמת עוזרים לגלות תכונות של נתונים בזמן אמת, אבל הן לא חזקות מספיק כדי לזהות כל דוגמה של זיוף או הפרעה.
  • התכונה הזו נועדה לזהות שינוי ב-C/N0 וב-AGC. אם פותחים את האפליקציה בנוכחות זיוף או חבלה והערכים של C/N0 ו-AGC נשארים קבועים, לא מתבצע זיהוי של זיוף או חבלה.
  • שרתי NTP לא בהכרח מאובטחים – גם שעון הרשת יכול להיות מזויף.

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