استاندارد GSM  در سال 1982 با عنوان موبایل ویژه‌ی گروپ  شروع به کار کرد و هدف آن، توسعه و ایجاد یک سیستم فراگیر برای موبایل بود. سپس این سیستم نام خود را تغییر داد و این بار با نام GSM و به عنوان "سیستم جهانی برای ارتباطات موبایل" به کار خود ادامه می‌دهد. این استاندارد، پروتکل‌هایی را برای شبکه‌های سلولار دیجیتالی در نسل دوم ارتباطات(2G) که توسط تلفن‌های همراه استفاده‌ می‌شود تعریف می‌کند. شکل زیر شمای کلی ارتباطات در شبکه‌های GSM یا شبکه‌های موبایل معمولی را نشان می‌دهد:

 


شکل1- ساختار شبکه‌های GSM

همانطور که در شکل نیز مشاهده می‌شود، در این شبکه‌ها هر فرد دارای یک SIM  Card است که آن را در ستگاه تلفن همراه خودقرار می‌دهد و از طریق آن ارتباطات در شبکه را برقرار می‌کند.
هر سیم‌کارت‌ حداقل موارد زیر را شامل می‌شود:
•    IMSI : که اطلاعات دارنده‌ی سیم‌کارت را در خود دارد. این مقدار در HLR  کاربر ذخیره می‌شود.
•    Ki: یک کلید 128-بیتی با طول عمر طولانی است که برای رمزنگاری اطلاعات و احرازهویت مورد استفاده قرار می‌گیرد.
•    پیاده‌سازی رمزنگاری های A3 و A8.
در دهه‌ی اخیر تعداد دستگاه‌های موبایل نیز به طور شگفت‌آوری افزایش پیدا کرده‌است. دلیل این افزایش چشم‌گیر، کوچک بودن، قابل حمل بودن و راحتی استفاده از این دستگاه‌ها است. بر اساس پیش‌بینی‌های ارائه شده توسط Gartner در سال 2014 حدود 3میلیارد کاربر از دستگاه‌های موبایل استفاده خواهندکرد. در ایران بیش از 100 میلیون سیم‌کارت ثبت شده وجود دارد. شکل زیر پوشش این شبکه را در جهان نشان می‌دهد.


شکل2-پوشش شبکه‌های GSM در جهان

این آمار حاکی از این است که افراد بسیار زیادی از این شبکه و سرویس‌های ارائه شده توسط آن استفاده می‌کنند و بر این اساس نیازمند بررسی امنیت در این شبکه هستیم.  به رغم محبوبیت بسیار این شبکه و قدیمی بودن آن، آسیب پذیری‌های امنیتی زیادی برای آن مطرح شده است:
•    احرازهویت یک طرفه
•    الگوریتم رمزنگاری ضعیف
•    مختاربودن اپراتور در انتخاب الگوریتم

 این آسیب‌پذیری‌ها در مجموع سبب می‌شود که تهدیدی به نام SIM Cloning روی سیم‌کارت‌ها به وجود بیاید و این امکان را به مهاجم بدهد که بتواند مکالمات و پیام‌های قربانی را شنود کند، تماس‌ها را پاسخ دهد و با شماره‌ی کاربر از تمامی سرویس‌های فراهم‌شده برای او استفاده کند، بدون اینکه قربانی از این قضیه اطلاعی داشته باشد. بدیهی است این حمله در صورت وقوع باعث افزایش هزینه‌های قربانی خواهد شد.



1.    امنیت در شبکه‌های GSM
شبکه‌های GSM با سطح متوسطی از امنیت طراحی شده‌اند. معماری این سیستم برپایه‌ی شناسایی کاربر بر اساس کلید سری به اشتراک گذاشته شده و چالش-پاسخ  است.
ارتباطات بین کاربر و ایستگاه می‌تواند رمزگذاری شود. GSM از چندین الگوریتم امنیتی برای فراهم کردن امنیت استفاده می‌کند، از آن جمله می‌تواند A5/1 و A5/2 و A5/3 را نام برد.
در بخش امنیت مربوط به شبکه‌های GSM موارد زیر به چشم می‌خورد که در زیر بخش‌هایی در مورد آنها بحث می‌کنیم:
1.    SIM card
2.    PIN Code
3.    احرازهویت کاربران شبکه
4.    رمزگذاری داده‌های ارسالی
5.    استفاده از TMSI

SIM card
یکی از ویژگی‌های کلیدی موجود در شبکه‌های GSM  ماژول شناسایی کاربر  است که آن را با نام SIM card می‌شناسیم. این کارت اطلاعات کاربر را مستقل از دستگاهی که سیم کارت را در آن قرار می‌دهد حفظ می‌کند. این کارت تمامی اطلاعات مورد نیاز برای برقراری ارتباط کاربر با کاربر دیگر در شبکه‌ی GSM را نگه می‌دارد. این اطلاعات شامل IMSI و کلید شناسایی کاربر با نام Ki است.
IMSI یک عدد بیش از 15 رقمی ده دهی است که اطلاعاتی مانند کشور کاربر و اطلاعاتی مانند این را در خود دارد. این شماره معمولا از طریق ارتباط با سیم کارت به دست می‌آید. این شماره فقط یک بار آن‌هم زمانی که کاربر برای بار اول با شبکه ارتباط برقرار می‌کند و قبل از تولید کلید ردوبدل می‌شود. از آن پس به دلیل مسائل امنیتی TMSI به جای آن استفاده می‌شود.
 Ki یک عدد تصادفی 128-بیتی است که به کاربر خاصی اختصاص می‌یابد و در SIM Card قرار می‌گیرد. این شماره به دلیل حساسیت بسیار بالا فقط در دست مرکز احرازهویت قرار دارد و از طریق خود تلفن نمی‌توان به آن سترسی داشت.
سیم‌کارت در حقیقت یک ریزپردازنده‌ است که IMSI و Ki را در خود نگه می‌دارد. به علاوه الگوریتم رمزنگاری A3 را برای احرازهویت کاربران شبکه فراهم می‌کند و هم‌چنین برای رمزنگاری داده‌های کاربر توسطA8 کلید تولید می‌کند. یعنی تولید کلید و احرازهویت توسط SIM card صورت می‌گیرد.

PIN Code
عددی است که در SIM Card ذخیره می‌شود و به هنگام تعویض دستگاه و قرار دادن سیم کارت در یک دستگاه دیگر، از کاربر پرسیده می‌شود.

احراز هویت کاربران شبکه
همانطور که گفته شد سیم‌کارت IMSI و Ki را در خود نگه می‌دارد، این مقادیر توسط HLR نیز نگه‌داری می‌شود. و از این طریق کاربر در مکان محلی خودش قابل احراز هویت و شناسایی است. احراز هویت کاربران توسط الگوریتم A3 و به صورت چالش-پاسخ صورت می‌گیرد.
زمانی که کاربر وارد محیط جدیدی می‌شود برای ارائه‌ی سرویس نیاز به احراز هویت خواهد داشت که این کار از طریق گام‌های زیر صورت می‌گیرد.

شکل3-احراز هویت در شبکه‌های GSM
1.    ابتدا VLR با HLR ارتباط برقرار می‌کند.
2.    مقادیر (Kc, SRES and RAND) در VLR ثبت می‌شود.
3.    VLR مقدار RAND را به کاربر ارسال می‌کند، این مقدار رمز نشده ارسال می‌شود.
4.    کاربر با استفاده از کلید Ki که در سیم کارت قرار دارد و الگوریتم‌های A8 و A3 مقادیر Kc و SRES را محاسبه می‌کند.
5.    این مقادیر را رمز نشده به VLR ارسال می‌کند
6.    VLR مقدار SRES دریافتی را با آنکه خود در اختیار دارد مقایسه می ‌کند، اگر برابر بود، احراز هویت صورت گرفته است.
7.    اگر Kc محاسبه شده هم درست باشد از این پس به عنوان رمز در الگوریتم A5 مورد استفاده قرار می‌گیرد و داده‌ها موقع ارسال رمز می‌شود.

رمزگذاری داده‌های ارسالی
در احرازهویت گفتیم که Kc تولید شده توسط HLR و کاربر که در اختیار VLR هم قرار می‌گیرد بعدها برای رمزگذاری داده‌ها مورد استفاده قرار می‌گیرد. VLR زمانی که یک کانال خالی برای برقراری ارتباط کاربر با یک ایستگاه پیدا کرد این رمز Kc را در اختیار او نیز قرار می‌دهد. شکل زیر رمزنگاری داده‌های ارسالی در GSM را نمایش می‌دهد.

شکل4- رمزگذاری داده‌ها در GSM

استفاده از TMSI
همانطور که گفته شد IMSI فقط برای اولین ارتباط مورد استفاده قرار می‌گیرد و پس از آن مقدار TMSI مورد استفاده قرار می‌گیرد که در VLR کاربر ثبت شده است. TMSI برای HLR قابل شناسایی نیست و برای دانستن مدل موبایل کاربر و الگوریتم‌های رمزنگاری و ... باید IMSI کاربر در شبکه ارسال شود و این ارسال به صورت متن آشکار صورت می‌گیرد. این مورد آسیب‌پذیری بزرگی را در GSM ایجاد می‌کند که در ادامه‌ی گزارش به این موارد می‌پردازیم.

2.    ایرادات موجود در شبکه‌های GSM
طبق بررسی‌های انجام شده، چندین ایراد در شبکه‌های GSM کشف شده است. البته ناگفته نماند که الگوریتم‌ها و روش‌های موجود در GSM سری است و افشا نشده‌است، اطلاعات بدست آمده بوسیله‌ی مهندسی معکوس صورت گرفته است. ایرادات موجود در این شبکه‌ها بیشتر موارد زیر را شامل می‌شود:
1.    احرازهویت یک‌طرفه
2.    الگوریتم رمزنگاری ضعیف
3.    انتخاب آزادانه‌ی الگوریتم توسط اپراتور


•    احرازهویت یک‌طرفه
همانطور که در گام‌های احرازهویت دیدیم، در این پروسه، شبکه نیاز ندارد که Ki را بررسی کند تا احرازهویت کامل شود. این باعث می‌شود که مهاجم بتواند یک ایستگاه قلابی بسازد که کد شبکه‌ی آن با کد شبکه‌ی کاربر یکسان باشد. آغاز پروسه‌ی احراز هویت بستگی به تنظیمات اپراتور دارد. بنابراین این شبکه‌ی قلابی ممکن ایت هیچ گونه مکانیزم امنیتی را فراهم نکند و این باعث می‌شود در نهایت هیچ رمزنگاری‌ای صورت نگیرد. در نهایت مهاجم می‌تواند پارامترهای انتخاب ایستگاه را طوری تغییر دهد که کاربر را تشویق کند که حتما به این ایستگاه متصل شود و در حقیقت حمله‌ی  MITM را شکل دهد.

منبع:http://certcc.ir