GSM

GSM או Global System for Mobile Communications הוא תקן לרשתות תקשורת סלולרית. רשתות אלו הן הנפוצות ביותר בעולם. ב־2010 היו בעולם כחמישה מיליארד מנויי GSM. בישראל מופעלות רשתות כאלו על ידי החברות פרטנר, סלקום, ופלאפון.
GSM עושה שימוש בטכנולוגית גישה מרובה מבוססת זמן, Time Division Multiple Access (אין הכוונה לתקן ה-IS-136 המכונה לעיתים TDMA). הקול מועבר באופן דיגיטלי ולכן רשתות GSM מקוטלגות כ-"דור שני". הרשת הבסיסית שמותאמת לשיחות קוליות בלבד הורחבה באמצעות שתי טכנולוגיות משלימות להעברת נתונים: GPRS ו-EDGE. טכנולוגיות אלו מכונות "דור 2.5" ו-"דור 2.75" בהתאמה.

בישראל

בישראל הוקמה מערכת סלולרית בשיטת GSM על ידי חברת פרטנר תקשורת בשנת 1999 שהפעילה רשת בשם המסחרי אורנג'. 
בשנת 2001 הצטרפה חברת סלקום למפעילי ה־GSM. במדינת ישראל, עם הקמת רשת GSM במקביל לרשת ה־TDMA שהפעילה קודם לכן. 
בשנת 2009 השיקה חברת פלאפון את שירות ה-GSM ביחד עם השקת הדור השלישי, לאחר שנים רבות בהן השתמשה בשיטה המתחרה (CDMA).

טכנולוגיה

GSM התחיל כדור שני (2G) לטכנולוגיית טלפונייה ניידת בתחומי אירופה בלבד והפך במהרה לרשת התקשורת המצליחה ביותר בעולם עם מעל שלושה וחצי מיליארד מנויים נכון ל-2014. המטרה הראשונה הייתה פיתוח מערכת הכוללת טכנולוגיות מתקדמות כדי לספק צורכי תקשורת לאוכלוסייה גדולה יותר מאשר יכלה המערכת הסלולרית האנלוגית מהדור הראשון. לצורך כך נבחרה שיטת ריבוב TDMA בשילוב עם FDMA המאפשרת חיבור משתמשים מרובים בערוץ אחד במקביל וכן נוספו שיטות קידוד מתקדמות לאיתור ותיקון שגיאות שידור. במערכת הסלולרית האנלוגית היה קל מאוד לצותת לשיחה באמצעים פשוטים, לכן לראשונה נוספה טכנולוגיית  הצפנה לאימות המשתמש ולהבטחת פרטיות השיחה. הכוונה המקורית הייתה לספק פרטיות ברמה כזו שאינה נופלת לכל הפחות מטלפון נייח. 
GSM מגדיר לא רק את ממשק השיחה אלא את התשתית כולה, זאת כדי לאפשר תאימות בין יצרנים שונים וכן לאפשר ממסר בין תחנות ונדידה - קבלת שירות עבור המכשיר או כרטיס ה-SIM בין מדינות שונות. ארכיטקטורת GSM כוללת מספר אלמנטים שביניהם קיימת אינטראקציה באופן שקוף למשתמש. אפשר לחלקם לארבעה תחומים עיקריים:

תחנה ניידת - Mobile station

תחנה ניידת (MS) או ציוד נייד (ME) מתייחסים למכשיר או הטלפון הנמצא בקצה הרשת ומופעל על ידי משתמש הקצה. במכשיר קיים מספר זיהוי ייחודי בינלאומי שנקרא IMEI קיצור של International Mobile Equipment Identity שתפקידו לזהות את המכשיר עצמו ברשת, מאפשר לחסום אותו ובכך לסכל ניסיון גניבה שלו. בנוסף קיים ב-SIM מספר סודי ייחודי חסין מגע המשמש כמזהה פנימי של המשתמש ברשת והוא נקרא IMSI קיצור של International Subscriber Identity. כרטיס הסים עוזר לזיהוי המשתמש ברשת ולשייכו לזהות המנוי הרשום במערכת על מנת למנוע התחזות או גניבת שיחה וכדי לאפשר חיובים. הרעיון הוא שיהיה אפשר לנייד את זהות המשתמש ממכשיר למכשיר בקלות.

תחום תדרים

GSM תומך בטווח רחב של תדרים המוגדרים בתקן 3GPP TS 45.005. באופן כללי בטווח שבין 380MHz ל-1900MHz (טווח התדרים הורחב מספר פעמים בהתאם לדור הסלולרי הנוכחי, בתקן החדש UMTS שהוא ממשיכו של GSM טווח התדרים הורחב עד ל-2600MHz). הקביעה מראש של תחום התדרים מאפשר את פעולת המכשיר הנייד במדינות שונות. למרות התקן תחומי התדרים בכל מדינה מושפע גם מתקנות רשויות מקומיות, בגלל שתדרים מסוימים מוקצים לכוחות הביטחון או למערכות קריטיות. באירופה, אפריקה ואסיה נוטים להשתמש בתדרים 900MHz ו-1800MHz לעומת זאת באמריקה מעדיפים את התדרים 850MHz ו-1900MHz. 
בישראל באופן כללי משדרים בתדרים 900MHz ו-1800MHz בדור שני ו-850, 900 ו-2100 בדור שלישי. פרטנר והמתארחות הווירטואליות עובדים בדור שני ב-900 ו-1800, ובדור שלישי ב-2100. סלקום והמתארחות הווירטואליות עובדים בדור שני ב-1800, ובדור שלישי בעיקר ב-2100. פלאפון והמתארחות עובדים בדור שלישי בלבד בתדרים 850 ו-2100. כאשר קיימת נטייה של החברות למחזר תדרים ישנים שהוקצו לדור שני.
מרבית הטלפונים הניידים כיום תומכים בריבוי תדרים כך שבמעבר ממדינה למדינה החיבור נעשה אוטומטי אם המדינה בה המכשיר מבקר משדרת בטווח התדרים הנתמך על ידו.

תקן אוויר

תקן הרדיו או "תקן האוויר" של GSM נבחר תוך מתן דגש על  הוזלת עלויות, שמירה על יעילות והפחתה בצריכת אנרגיה. הגל הנושא מאופנן בשיטת GMSK שהיא סוג של אפנון פאזה שידוע ביתרונות שלו; עמידות לרעש, קרינה נמוכה וצריכת אנרגיה קבועה. רוחב הפס של ערוץ הרדיו בשיטה זו הוא 200 kHz והמרווח גם הוא 200 kHz. בכל גל נושא מעבירים אותות משמונה מכשירים בבת אחת על ידי חלוקה לחלונות זמן. תפוקה מרבית של גל בסיסי אמורה להיות בערך 270 kbps אולם בשל תקורה הנובעת מהקצאת חלק מרוחב הפס לניהול ובקרה התפוקה האפקטיבית היא רק 24.8 kbps, לכך יש להוסיף את התקורה הנובעת מקוד תיקון שגיאות שנדרש בגלל הפרעות בקו או החלשות הגל לכן בפועל התפוקה היא 13 kbps עם קידוד קולי בסיסי. אחד החסרונות ב-GSM מדור שני הוא התפוקה הנמוכה. היות שהדרישות מצד הצרכנים טפסו בחדות נוצר מצב שיצרני הסלולר לא עמדו בקצב. מאז יציאתו נעשים מאמצים רבים לשיפור התפוקה המרבית של הרשת.
אמנם התפקיד העיקרי של GSM הוא שיחה סלולרית אך בנוסף לשיחה קולית ל-GSM (מדור שני ואילך) מגוון שירותי העברת דטה בקצב של 9.6 Kbps ומעלה (בדור הרביעי קצב ההורדה עומד על כ-300 MBit/s). שירות הודעות קצרות SMS וכן פקסימילייה, וידאוטקסט וטלטקסט. כל שיחה מחולקת למנות, מקודדת, מוצפנת ומשודרת על גבי תשתית הרדיו באופן דיגיטלי במקטעים הקרויים "פריים" (Frame). תקן GSM משלב את שיטות הריבוב FDMA ו-TDMA כאשר הראשון מחלק את הערוץ שהוא ברוחב פס מרבי של 25 MHz ל-124 גלי תדרים במרווחים של 200 kHz. השני מחלק את הערוץ לחלונות זמן. כל חלון זמן שנקרא Slot מוקצה למשתמש אחד והוא יחידת הזמן הקטנה ביותר הזמינה עבור כל נייד. השידור שעובר במסגרת חלון זמן אחד נקרא פרץ (burst). כל פרץ כזה נמשך 0.577 מילי שניות. שמונה פרצים ברצף מכונים "פריים".

אבטחה

GSM (וממשיכו UMTS) נחשב למערכת תקשורת סלולרית בטוחה ועדיין נחשב לאלטרנטיבה הטובה ביותר למרות מספר חסרונות ופגמים שהתגלו במרוצת הזמן. בדור השלישי נעשו מאמצים לתקן אחדים מהליקויים. אחד החסרונות של GSM היה שתהליך התיקנון וכן מפרט האלגוריתמים היה סודי, מעין ניסיון להשיג אבטחה באמצעות עמימות מה שנוגד את עקרון קרקהופס. בדור השלישי הדבר תוקן בכך שמפרט האבטחה פורסם ברבים ונהנה מביקורת עולמית. תקן GSM מנסה להשיג ביטחון באמצעות הצפנה להגנה על פרטיות השיחה, הבטחת שלמות הנתונים באמצעות קוד אימות וכן הבטחת אנונימיות המתקשר על ידי אימות זהויות חזק באמצעות פרוטוקול אתגר-מענה. כאן נכנס לתמונה כרטיס ה-SIM המכיל בתוכו מספר ייחודי המשמש לאימות זהותו ולמניעת התחזות וזיופים, כל מספר מנוי יכול להיות רשום רק פעם אחת ואם נוצרת כפילות המערכת יודעת לנטרל את המספר הכפול. כדי להקשות על מעקב ארוך טווח אחר מנויים, שעלול להוביל לפריצת המערכת, מוקצה לכל מנוי מספר זיהוי זמני (Temporary Mobile Subscriber Identity). כאשר אימות המנוי מושלם בהצלחה תחנת הבסיס שולחת לנייד את ה-TMSI שלו והוא משמש אותה למעקב אחריו כל עוד הוא נמצא בטווח התחנה. כאשר המנוי יוצא מהטווח יש צורך בשרות נוסף שנקרא Location Area Identification בקיצור LAI שתפקידו לייצר מספר זיהוי זמני חדש. כאשר המשתמש סוגר את הציוד מועתק המספר לתוך ה-SIM כדי לאפשר מעקב חלק מיד לאחר ההפעלה מחדש.

אימות זהויות

לאימות המנוי המשתמש בנייד מופעל פרוטוקול אתגר-מענה בשלושה מהלכים כמתואר בתרשים משמאל. במהלך הראשון תחנת הבסיס שולחת את RAND - מספר אקראי בן 128 סיביות במצב גלוי לתחנה הניידת (MS) והיא בתורה משתמשת באלגוריתם A3 שנמצא בתוך ה-SIM כדי להצפין את המספר האקראי שקיבלה באמצעות מפתח האימות האישי  המוטמע בכרטיס ושולחת בחזרה את התוצאה החתומה SRES. הרשת מפענחת את המידע שהתקבל עם המספר הסודי  השמור במסד הנתונים המתאים למנוי ומשווה את התוצאות ובכך זהותו מאושרת, כי רק המחזיק במפתח הסודי המתאים יכול לשלוח את המסר המוצפן הנכון. בנוסף המערכת מייצרת מפתח הצפנה המשמש בחלקו להצפנת השידור אל הנייד ובחלקו לפענוח השידור החוזר ממנו. חיסרון אחד במנגנון זה שהאימות חד צדדי, כלומר המנוי אינו מאמת את זהות הרשת ועובדה זו נוצלה היטב בעבר כדי לזייף תחנת בסיס בעלות סבירה.
חישוב תג האימות SRES מתבצע בתוך הכרטיס ומפתח האימות האישי כפי שהוא צרוב בכרטיס ה-SIM ורשום במסד הנתונים של ה-AUC, HLR ו-HLV אינו משודר לעולם על גבי ערוץ הרדיו במצב גלוי ואינו ניתן לחילוץ מתוך הכרטיס גם לא במהלך האימות. 
כרטיס ה-SIM מכיל בתוכו גם את הצופן A8 המוגדר לפי התקן על מנת לייצר מפתח הצפנה סודי  זמני (לצורך הצפנת שיחה אחת) באורך 64 סיביות (או 128 סיביות בגרסאות החדשות), המופק מאותו מספר אקראי RAND שנשלח לנייד על ידי הרשת קודם לכן יחד עם מפתח האימות האישי. החישוב מתבצע בתוך הכרטיס ולעולם אינו נחשף מחוצה לו. כנדבך נוסף של אבטחה GSM מאפשר להחליף את מפתח ההצפנה לפרקים כדי להקשות על ציתות ארוך טווח. 
להצפנת השיחה או נתונים משתמש GSM באלגוריתם A5 כאשר הדרישה להצפנה כמו גם סוג האלגוריתם ואורך המפתח מתקבלים מהרשת. הנייד פועל בהתאם לדרישה ומצפין את השיחה באמצעות האלגוריתם A5 יחד עם המפתח  ועם קלט נוסף שנלקח ממספר הפריים. העובדה שהרשת קובעת את סוג ההצפנה יכולה להוות נקודת תורפה אם התחזות לתחנה אפשרי כי אז הרשת המתחזה יכולה לדרוש מהנייד לבצע שיחה לא מוצפנת כלל (במכשירים מסוימים תופיע הודעת אזהרה במקרה כזה), או לבחור בהצפנה חלשה מאוד. מסיבה זו בוטל השימוש באלגוריתם A5/2 (להלן).
האלגוריתמים A8 ו-A3 הם למעשה גרסאות של פונקציית גיבוב עם מפתח קניינית שהייתה בעבר סודית, הנקראת COMP128. הפונקציה מקבלת את  ואת RAND שניהם באורך 128 סיביות ומפיקה את , כאשר מעצם ההגדרה יהיה קשה מבחינה חישובית לבצע את הפעולה ההפוכה, דהיינו על ידי  לחשב את . קיימות ארבע גרסאות של האלגוריתם כאשר שלוש הראשונות היו סודיות. שלוש הגרסאות הראשונות חלשות מאוד, שתי הגרסאות הראשונות חלשות באופן מביך וכן הסתבר שכתוצאה מלחץ ממשלות המפתח הוחלש במכוון כך שעשר הסיביות האחרונות מאופסות ולכן אפקטיבית המפתח בעל אנטרופיה של 54 סיביות. הגרסה הרביעית COMP128-4 שנקראת גם MILENAGE מבוססת על AES.
בשל העובדה שבמדינות רבות קיימים חוקים נוקשים המכבידים על הצפנה חזקה, GSM עוקף את הבעיה על ידי כך שרשת המבצעת אימות של המכשיר במדינה זרה, פונה לרשת המקומית של המכשיר ומבקשת את מפתחות האימות, כך שלמעשה אין לה צורך לבצע אימות ישיר מולו וכן אין לה צורך לדעת איזה אלגוריתמים מוטמעים בו.

בטיחות או עמימות

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

הצפנת שיחה

ב-1987 פותח A5/1 להצפנת שיחה אלחוטית לפי תקן GSM. בתחילה נשמרו פרטיו בסוד, אך נחשפו חלקית עקב מספר הדלפות. ב-1999 ביצעו ברינקו, גולברג ווגנר הנדסה לאחור של האלגוריתם בשלמותו וכיום ידוע שיש בו חולשות רבות והוא אינו בטוח לשימוש, לפי התקפה אחת שפורסמה די בהאזנה לשתי דקות של שיחה כדי לחשוף את המפתח הסודי. ייעודו המקורי היה לשימוש באירופה וארצות הברית ואילו צופן A5/2 שהוחלש במכוון יועד למדינות אחרות. נכון לשנת 2014 כארבעה מיליארד טלפונים ניידים עשו שימוש ב-A5/1 להגנה על פרטיות שיחות סלולריות. דווח כי במשך שנים התגלעו חילוקי דעות בין חברות נאטו לגבי חיזוק הצפנת השיחות הסלולריות, גרמניה תמכה ומדינות אחרות כמו בריטניה התנגדו.
צופן A5/1 הוא צופן זרם שמייצר אחת ל-4.6 מילישניות זרם מפתח באורך 228 סיביות להצפנה בו זמנית של פריימים של שיחת GSM באורך 114 סיביות, אחד עבור פריים נכנס ואחד עבור פריים יוצא. ההצפנה מבוצעת על ידי חיבור ב-XOR של פריים השיחה עם המפתח. 
הצופן מיושם בחומרה ומורכב ממעגל משולב המכיל שלושה אוגרי LFSR באורכים שונים; 19, 22 ו-23 סיביות (כמתואר בתרשים משמאל). בתחילת כל שיחה האוגרים מאופסים ואז במשך 64 פעימות שעון, סיביות מפתח השיחה מחוברות ב-XOR עם סיביות ההזנה (feedback) וכל האוגרים מקודמים בהתאם, סיבית אחר סיבית. החל מהפעימה ה-65 עד לפעימה ה-86 נוסף מספר השיחה. לאחר 86 מחזורי שעון קידום האוגר הראשון מתבצע בשיטת stop/go על פי "החלטת הרוב" של שלוש סיביות במיקומים שונים, אחת במיקום 8 באוגר הראשון ושתים במיקום 10 בשני האוגרים האחרים בהתאמה. אם החלטת הרוב היא 1 האוגר הראשון מקודם אחרת לא. לדוגמה אם ערך שלושת המיקומים האמורים הוא (1,0,0) אזי 0 הוא רוב ולכן האוגר הראשון אינו מקודם. פלט הצופן בכל פעימה הוא XOR של שלוש הסיביות הראשונות בשלושת האוגרים בהתאמה. 100 הסיביות הראשונות שמופקות בדרך זו לא משמשות כמפתח הצפנה אלא נפטרים מהן ולאחר מכן הצופן מוכן לשימוש.
הפריצה הראשונה של הצופן פורסמה ב-1994 על ידי רוס אנדרסון. הרעיון הבסיסי היה לנסות לנחש את המצב הפנימי, דהיינו תכולת האוגרים. אם תכולת האוגרים בזמן נתון ידועה למתקיף, קל לחשב את מפתח השיחה. מאז פורסמו התקפות רבות נגד הצופן. בשנת 2009 פרסמו צוות חוקרים התקפת איזון זמן/זיכרון נגד A5/1 בשיטה שנקראת טבלת ריינבו. הטבלאות המכילות שני טרה של מידע הופצו באמצעות ביטורנט.

פיצוח צופן ה-GSM

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

A5/2

צופן A5/2 הוא גרסת יצוא של הצפנת שיחת GSM שפותחה ב-1999 ויועדה למדינות מחוץ לארצות הברית ואירופה. באותו חודש שבו פורסם הצופן פורסמה פריצה שלו והוכח שהוא מאוד חלש. כל כך חלש שניתן לפרוץ אותו במצב מקוון במחשב ביתי. בשנת 2006 הוחלט על ידי ETSI לא לתמוך יותר בצופן זה. במילים אחרות אם הטלפון הנייד אינו תומך בגרסת A5/1 אזי השיחה לא מוצפנת כלל.
הצופן מכיל ארבעה אוגרי LFSR, פונקציית שעון לא סדירה ופונקציית שילוב אי-ליניארית. האוגר הרביעי אחראי לסדירות פעימות האוגרים הראשונים בשיטת stop/go. כאשר פלט הצופן נקבע בשיטת "החלטת הרוב" לפי הנוסחה . שיטת ההצפנה זהה לצופן A5/1, כל פריים מכיל 228 סיביות, 114 לכל כיוון. את הפריים מצפינים בחיבור XOR עם פלט הצופן. האתחול מתבצע באמצעות מפתח השיחה שהוא באורך 64 סיביות ומספר השיחה. תחילה מחברים את סיביות המפתח לכל האוגרים ומקדמים באופן סדיר ללא שיטת stop/go ולאחר מכן משולבות הסיביות המייצגות את מספר השיחה ולבסוף נפטרים מ-100 הסיביות הבאות ומתחילים להשתמש בצופן בשיטת stop/go.