الگوریتم رمزنگاری ضعیف
براساس مهندسی معکوس روی الگوریتم‌ها و مقادیر در شبکه‌های GSM معلوم شده است که الگوریتم‌های A5 وA8 از پیاده‌سازی COMP128 استفاده می‌کنند که باعث ضعف الگوریتم‌ها می‌شود. کلید Kc که توسط COMP128 تولید می‌شود هموارد 10بیت با ارزش آن را صفر قرار می‌دهد که این نشان می‌دهد ار 64 بیت کلید در عمل فقط 54 بیت آن مورد استفاده قرار می‌گیرد که این به شدت امنیت الگوریتم را کم می‌کند، زیرا در بدترین حالت و امتحان تمامی حالات ممکن با brute force در زمان معقولی می‌توان این کلید را به دست آورد.



•    انتخاب آزادانه‌ی الگوریتم توسط اپراتور
اپراتورها در انتخاب الگوریتم و هم‌چنین روش پیاده‌سازی آن مختارند و این به آنها این اجازه‌را می‌دهد که هیچ رمزنگاری ای را انتخاب نکنند و داده‌ها را به صورت متن آشکار اسال کنند.

3.    حمله SIM Cloning روی GSM
تمامی ایرادات امنیتی موجود در شبکه‌های GSM، سبب بوجود آمدن حمله‌ی بسیار قوی و جدی ای به نام  SIM Cloning می‌شود که در این حمله مهاجم می‌تواند دو مقدار سری IMSI و Ki را بدست آورد که در این حالت می‌تواند گفت که مهاجم به طور منطقی نمونه‌ای از سیم‌کارت قربانی را ساخته است. پس از آن می‌تواند تمامی تماس‌های قربانی را پاسخ دهد، پیام‌های او را دریافت کند، به جای قربانی تماس بگیرد و یا پیام ارسال کند و استراق سمع کند. این مورد را کاربر متوجه نمی‌شود، اما هزینه‌ی زیادی را برای او ایجاد خواهد کرد.

4.    COMP-128
COMP-128 یک تابع درهم‌ساز است. این تابع 128بیت کلید(K) و 128بیت از داده(R) را دریافت می‌کند و 96 بیت مقدار درهم‌سازی شده را برمی‌گرداند. کلید K همان مقدار Ki است که در شبکه‌ی GSM مورد استفاده قرار می‌گیرد و در سیم‌کارت ذخیره می‌شود. مقدار ورودیR نیز چالشی است که ایستگاه از آن استفاده می‌کند. 32بیت اول hash به عنوان پاسخ چالش مورد استفاده قرار می‌گیرد و 64بیت باقی‌مانده هم به عنوان کلید نشست برای تماس‌های صوتی در الگوریتم A5 مورد استفاده قرار می‌گیرد. الگوریتم ابتدا مقادیر K و R را در بردار 256بیتی(X) بارگذاری می‌کند کهX[0...127] مقدار K و X[128…255] مقدار R است. شبه کد زیر این روش را نشان می‌دهد:
comp128 : RAND, Ki -> SRES, Kc
{
 x[32]:      array of bytes
 bit[128]:   array of bits
 m, n, y, z: integers

 x[16..31] := RAND
 for i := 1 to 8
   x[0..15] := Ki
   for j := 0 to 4
     for k := 0 to 2j-1
       for l := 0 to 24-j-1
         m := l + k * 25-j
         n := m + 24-j
         y := (x[m] + 2 * x[n]) mod 29-j
         z := (2 * x[m] + x[n]) mod 29-j
         x[m] := Tj[y]
         x[n] := Tj[z]    
   for j := 0 to 31
     for k := 0 to 3
       bit[4 * j + k] := x[j]3-k
   if i < 8  
     for j := 0 to 15
       for k := 0 to 7
         x[j + 16]7-k := bit[((8 * j + k) * 17) mod 128]
 SRES := bit[0..31]
 Kc := bit[74..127]   00000000002
}

این الگوریتم آسیب‌پذیر است و نشان داده شده است که می‌توان کلید Ki را در زمان معقولی، از آن به دست آورد که جزئیات این مورد را می‌توان در منبع اول این گزارش یافت. هم‌چنین همانطور که در کد با رنگ قرمز مشخص شده است، این الگوریتم 10بیت اول کلید نشست را صفر قرار می‌دهد که باعث می‌شود عملا کلید نشست 54 بیتی شود که این نیز سبب کاهش امنیت در A5 می‌شود.







5.    حمله‌ی SIM cloning

فرض کنید مهاجم یک ایستگاه قلابی بسازد و آن را با کد مربوط به شبکه‌ای که هدف آن کاربر است برچسب بزند. یعنی کد شبکه‌ی قلابی را برابر با کد شبکه‌ی کاربر قرار دهد. حال اگر مهاجم خود را در ارتباط بین کاربر و شبکه‌‌ی اصلی قرار دهد، می‌تواند چندین بار پروسه‌ی احرازهویت را انجام دهد تا آسیب‌پذیری موجود در پیاده‌سازی COMP128 را پیدا کند.
برای اینکار مهاجم می‌تواند کاربر را فراخوانی‌کند تا TMSI او را بدست آورد و از این طریق با او ارتباط رادیویی برقرار کند. سپس همانطور که گفته شد، TMSI در HLR شناخته شده نیست و IMSI مورد استفاده قرار می‌گیرد. با استفاده از این ویژگی، به راحتی می‌توان با دستور IDENTITY REQUEST  ، IMSI کاربر را به دست آورد. با توجه به استاندارد GSM، همه‌ی کاربران موظف اند که به محض دریافت پیام IDENTITY REQUEST به آن پاسخ بدهند.
سپس مهاجم می‌تواند مکرراً احرازهویت را انجام دهد، یعنی می‌تواند پروسه‌ی احرازهویت را در یک حلقه قرار دهد و چندین بار آن را فراخوانی‌کند و هربار RAND های مختلف و مناسبی را در نظر بگیرد تا بتواند از آسیب‌پذیری موجود در COMP128 استفاده کند. همانطور که انتظار می‌رود، تلفن هدف هربار مقدار SRES ها را برمی‌گرداند. مهاجم می‌تواند به تعداد مورد نیاز این مقادیر را جمع آوری کند تا بتواند از این طریق مقدار Ki را بدست آورد.
    یک بار که مقادیر IMSI و Ki به دست مهاجم افتاد، می‌تواند سیم‌کارت کاربر را clone کند، هویت کاربر را جعل کند، و به جای او پیام بدهد یا تماس بگیرد یا پیام‌ها و تماس‌های او را دریافت کند. واضح است که در شبکه به همین طریق می‌تواند مقدار Kc را بدست آورد و پیام‌های رمزشده را نیز بتواند رمزگشایی کند. باید گفت که این حمله می‌تواند در تلفن‌های  GSM بدون دسترسی قبلی و از فاصله‌های خیلی دور انجام بگیرد. 

6.    حمله به سیم کارت و کپی کردن سیم کارت
یکی از خطرناک ترین انواع حملات بر روی سیم کارت، استخراج کلید سری Ki از سیم کارت مشترک است. اشکالات عمده در الگوریتم COMP128-1 باعث می شود که با ارسال تعداد زیادی چالش به سیم کارت، کلید سری Ki را در حدود زمان هشت ساعت استخراج نمود ( بر طبق گفته انجمن توسعه دهندگان کارت هوشمند و گروه تحقیقاتی ISAAC ). سپس حملات دیگری مبتنی بر ارسال چالش های انتخابی به سیم کارت نیز پیشنهاد شد که به دلیل مشخص بودن چالش ها، به زمان به مراتب کمتری جهت یافتن کلید سری Ki نیاز بود. سرانجام شرکت IBM روش جدیدی مبتنی بر استفاده از کانال های جانبی  کشف نمودند که به وسیله آن، هکری که سیم کارت مشترک را فقط به مدت چند دقیقه در اختیار داشته باشد، قادر به استخراج کلید سری Ki وی خواهد بود. وی به کمک عدد به دست آمده خواهد توانست سیم کارت مشابه سیم کارت مشترک قربانی را تولید نموده و از آن سو استفاده نماید.

7.    سناریو کپی کردن سیم کارت
برای این کار به یک سیم کارت خالی، یک Sim FirmWare Writer جهت نوشتن و خواندن اطلاعات در سیم کارت خالی و به یک نرم افزار جهت خواندن اطلاعات سیم کارت مانند woron scan نیاز هست. سپس با در دست داشتن این امکانات نحوه کپی کردن سیم کارت خواهد بود.
ابتدا سخت افزار Sim Reader را به رایانه وصل می کنیم. سپس نرم افزار مورد نیاز را نصب کرده و سیم کارت قربانی را در آن قرار می دهیم. سپس نرم افزار را پیکر بندی می کنیم. اکنون سیم کارت کپی شده آماده است و در صورتی که با کاربر قربانی تماس گرفته شود یا به وی پیام کوتاه داده شود، مهاجم نیز آن ها را دریافت خواهد کرد. اما فقط یکی از مهاجم و کاربر قادر به برقراری تماس تلفنی در آن واحد خواهند بود.

8.    نتیجه‌گیری
با توجه به بررسی‌های انجام‌شده، یکی از حملات جدی در شبکه‌های GSM همانطور که گفته شد، SIM Cloning بود که طی آن مهاجم به صورت مجازی می‌تواند سیم‌کارت قربانی را شبیه‌سازی کرده و عیناً از همان سرویس ها استفاده کند. البته باید گفت برخی نرم‌افزارها نیز برای انجام این حمله وجود دارد و به صورت رایگان قابل دانلود می‌باشد و برای انجام حمله نیاز به دانش تخصصی وجود ندارد.
به دلیل وجود ضعف در الگوریتم رمزنگاری COMP128-1 مهاجم با دسترسی فیزیکی به سیم کارت قربانی، می تواند یک کپی از این سیم کارت را ایجاد کرده و به سوء استفاده از آن بپردازد. با توجه به آمدن نسل های جدید تلفن همراه مانند نسل سوم و چهارم، به نظر می رسد بروز کردن نسل تلفن همراه با توجه به استفاده از الگوریتم های رمزنگاری قوی تر در این نسل ها باعث می شود که این آسیب پذیری تا حدودی کم تر شود

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