SIM
Subscriber Identity Module, (בקיצור: SIM, בתרגום: מודול זיהוי המנוי) הוא מעגל מודפס על כרטיס פלסטיק קטן. התקן זה נועד לייצר זיהוי חד ערכי בינו ובין הרשת הסלולרית.
ברשת טלפון קווי, הזיהוי נעשה לפי הקו הפיזי בו מתבצעת השיחה. כלומר המספר ממנו מתבצע החיוג (ועל שמו מתבצע החיוב של השיחה) מזוהה מתוך נתוני הקו הפיזי ממנו נוצרה השיחה. ברשת הסלולרית הזיהוי נעשה בהתאם ל-SIM שנמצא בתוך המכשיר ממנו מבוצע החיוג. את כרטיס ה-SIM ניתן להעביר ממכשיר למכשיר ולהישאר מזוהה כאותו משתמש ברשת. כרטיסי ה-SIM הראשונים יוצרו ב-1991. במהלך השנים נוצרו שימושים נוספים ליכולות הזיכרון, העיבוד, וההצפנה שקיימים ב-SIM.
תכולת כרטיס ה-SIM
כרטיס ה-SIM מחובר לטרמינל (הטרמינל הוא בדרך כלל מכשיר טלפון סלולרי) בעזרת החיבורים המתוארים בהמשך. הטרמינל מספק את האנרגיה והמידע הדרושים להפעלת ה-SIM. כרטיס ה-SIM מכיל:
- CPU - סוג המערכת ויכולתה תלוי ביצרן ה-SIM
- מערכת הפעלה - יש שתי אפשרויות עקרוניות: מערכת Java סטנדרטית או מערכת ייחודית של יצרן ה-SIM. בכל מקרה כרטיס ה-SIM צריך לענות ולהגיב לפקודות ובקשות של הטרמינל בהתאם לתקינה (3gpp)
- אזור זיכרון - מרחב הזיכרון בנוי בצורה דומה לתיקיות קבצים בדיסק של מחשב. מתחת לתיקיית הבסיס (ROOT) ישנה תיקייה בשם EFMF1 המכילה את אותם נתוני בסיס שהכרטיס חייב להכיל בשביל לאפשר פעולה ברשת סלולרית. בנוסף, אפשר להוסיף תיקיות שמחזיקות לדוגמה את מספרי הטלפון לחיוג מהיר, הודעות ה-SMS שהתקבלו ונשלחו ועוד.
גודל פיזי
כרטיסי SIM הם סוג של כרטיס חכם. המפרטים הטכניים של כרטיסי ה-SIM מנוהלים במספר גופי תקינה כמו 3GPP ו-ETSI. כרטיס SIM בדרך כלל מגיע בגודל סטנדרטי של כרטיס אשראי (לפי תקן של ISO/IEC 7816-1,2). בהתאם לתקן ישנם 4 גדלים של כרטיסי SIM (כל כרטיסי ה-SIM, להוציא "נאנו" שקצת דק יותר, הם בעובי של כרטיס אשראי בהתאם לתקן שלמעלה):
- כרטיס בגודל מלא (בדרך כלל אינו בשימוש ID-1 UICC) - (בגודל של כרטיסי אשראי),85.6 מ"מ × 53.98 מ"מ × 0.76 מ"מ
- כרטיס בגודל "מיני" (Plug-In UICC) נמצא בשימוש ברוב מהמכשירים - בגודל של 25 מ"מ × 15 מ"מ × 0.76 מ"מ
- כרטיס בגודל "מיקרו" (Mini UICC) נמצא בשימוש במכשירים חדשים יותר - בגודל של 12 מ"מ × 15 מ"מ × 0.76 מ"מ
- כרטיס בגודל "נאנו" נמצא נכון לסוף 2012 רק באייפון 5 ו-5S ובמספר מכשירי HTC- בגודל של 12.3 מ"מ × 8.8 מ"מ × 0.67 מ"מ
על מנת לאפשר תאימות בין הגדלים, הכרטיסים מיוצרים בגודל המלא, עם חריצים בתוך הפלסטיק - כך שניתן להוציא את הכרטיס הקטן יותר (מיני או מיקרו) מתוך הכרטיס הגדול.
החיבור החשמלי
לכל סוגי הגדלים של כרטיסי ה-SIM יש 8 מגעים חשמליים מסודרים בשתי שורות של 4 מגעים כל אחת. מגעים אלו נראים בצבע מוזהב והקווים שמפרידים ביניהם מגיעים בכמה סוגי גאומטריות, תלוי ביצרן. מגעים אלו ממוספרים כ- C1 עד C8.
שמות החיבורים ותפקידם
- C1 הוא חיבור המתח החיובי Vcc
- C2 הוא חיבור הוראת אתחול Reset
- C3 הוא חיבור לאות שעון Clk (בקצב 1-5 מה"צ)
- C4 אינו בשימוש במערכות סטנדרטיות
- C5 הוא חיבור לאדמה Gnd
- C6 הוא חיבור למתח צריבת הזיכרון חיבור זה אינו בשימוש היום ובזמן הפעלה הוא צריך להיות מנותק או מחובר ל-Vcc
- C7 הוא חיבור כניסה ויציאה של המידע I/O
- C8 אינו בשימוש במערכות סטנדרטיות
נתוני המתח החשמלי
יש שלוש קטגוריות של מתח הפעלה (Vcc) ל-SIM:
- Class A - מתח של 5 וולט
- Class B - מתח של 3 וולט
- Class C - מתח של 1.8 וולט
בכל הקטגוריות 1 לוגי יחשב למתח שמעל ל-70% ממתח ה-Vcc. בכל הקטגוריות 0 לוגי יחשב למתח שמתחת ל-10% ממתח ה-Vcc. לדוגמה, ב-Class A מתח של 3.5 וולט ומעלה ייחשב כ-1 לוגי, ומתח של 0.5 וולט ומטה ייחשב כ-0 לוגי.
אימות ה-SIM מול מפעיל הרשת
כדי להקשות על ניסיונות לזייף כרטיסי SIM "ולגנוב שיחות" (התחזות ללקוח אחר ושימוש בקו הטלפון על חשבונו) הוגדרה טכנולוגיה של ה-SIM בצורה פתוחה סדורה ותקנית. טכנולוגיה זו פותרת את הבעיה בעזרת מערכות הצפנה תקניות ומספר מפתחות הצפנה שנמצאים ב-SIM. בין אלה נמצא גם את מפתח IMSI המשמש לזיהוי המנוי בטלפון סלולרי או במחשב בעל יכולת חיבור למערכת טלפוניה.
ה-SIM מיוצר עבור מפעיל הרשת עם שני מפתחות חשובים:
- מפתח IMSI שהוא מפתח גלוי חד ערכיי (אין שני SIM בעולם עם אותו IMSI)
- מפתח Ki מפתח אקראי סודי
מפתח IMSI
זהו מספר סידורי חד ערכי שמנוהל בהתאם לתקן. לפעמים, המספר מוגן על ידי PIN, שנסגר בין הטרמינל ל-SIM. אבל בעיקרון זהו מפתח גלוי.
מספר IMEI ו-IMSI וההבדל ביניהם
מספר IMEI משמש כרשת GSM לזיהוי התקנים חוקיים, ויכול לשמש לחסימת טלפון שנגנב מגישה לרשת. לדוגמה, אם מכשיר טלפון נגנב, הבעלים של המכשיר יכול להתקשר לספקית הרשת שלו ולבקש מהם לחסום את המכשיר באמצעות מספר ה-IMEI שלו. החסימה הופכת את המכשיר לחסר תועלת ברשת הזו וברשתות אחרות. מספר ה-IMEI משמש לזיהוי המכשיר בלבד ואין לו קשר למנוי או לבעלים של המכשיר. בשונה מזאת, המנוי מזוהה על ידי מספר IMSI, שמאוחסן בכרטיס ה-SIM שיכול (בתאוריה) לעבור לכל מכשיר. כלומר, לכל מנוי בספקית הרשת יש מספר IMSI משלו, בדומה לכך שלכל מכשיר יש את מספר IMEI משלו. עם זאת, תכונות רשת ואבטחה רבות מפעילות את המכשיר הנוכחי בשימוש על ידי מנוי.
מפתח Ki
זהו מספר אקראי בגודל 128 סיביות. זהו מפתח סודי שמועבר לתוך כרטיס ה-SIM תוך כדי תהליך היצור. (בעיקרון אין דרך להוציא את המפתח אך לאחרונה ניתן לבצע זאת דרך פרצות אבטחה שהתגלו במערכת)
תהליך האימות בין ה-SIM לבין הרשת
- הטלפון מבקש מה-SIM את מספר ה-IMSI ומעביר את המספר לרשת בצורה לא מוצפנת.
- לפי ה-IMSI, הרשת מזהה את המפעיל שסיפק את ה-SIM (החברה שמספקת את השרות הסלולרי ללקוח, במקרה של Roam או של מפעיל סלולרי וירטואלי אינה בהכרח מפעילת הרשת) ומעבירה את ה IMSI למרכז הזיהוי של המפעיל שסיפק את ה-SIM.
- מרכז הזיהוי מבצע 3 פעולות:
- מוציא מבסיס נתונים מאובטח את מפתח ה-Ki התואם למפתח ה-IMSI שהועבר אליו.
- מייצר מספר אקראי רנדומלי שנקרא RAND ומועבר ל-SIM דרך הטלפון.
- מפעיל אלגוריתם הצפנה שנקרא A3 על ה-RAND עם ה-Ki ביחד. ה-A3 מיצר מספר שנקרא SRES ומרכז הבקרה שומר מספר זה להמשך תהליך האימות.
- ה-SIM שקיבל את ה-RAND מהרשת מעביר אותו יחד עם מפתח ה-Ki הסודי שנמצא אצלו לאלגוריתם A3 שמופעל על ידי ה-CPU הפנימי ב-SIM. גם ב-SIM מתקבל SRES. ה-SRES מועבר מה-SIM לרשת דרך הטלפון.
- למרכז האימות ברשת יש עכשיו שני מספרי SRES. אחד הוא חישב בעצמו ואחד הועבר לו מכרטיס ה-SIM. אם הם זהים אז ה-SIM אומת ונמצא תקין.
תהליך הצפנת השיחה
בתהליך זהה לתהליך אימות ה-SIM שתואר למעלה, מעבירים את אותם מפתחות (RAND ו-Ki) לאלגוריתם אחר, שנקרא A8. אלגוריתם זה מוציא מספר אחר שנקרא Kc. מפתח Kc הוא מפתח שבעזרתו מצפינים את השיחה עצמה על ידי אלגוריתם הצפנה שנקרא A5 גם הרשת וגם הטלפון מצפינים ומפענחים את הדיבור ביניהם באלגוריתם A5 עם מפתח Kc. מאחר שמרכז ההצפנה מעביר את מפתח Kc לרשת, הרשת יכולה לפענח ולהצפין את השיחה. השיחה שמועברת בגלי רדיו, שניתנים לקליטה על ידי כולם. אבל רק הרשת והמכשיר עם ה-SIM הנכון יכולים להבין את השיחה.