‫ آسيب پذيري شبكه GSM و اجراي حمله SIM Cloning (قسمت دوم)

   شماره: IRCAR201407226

•   الگوريتم رمزنگاري ضعيف
براساس مهندسي معكوس روي الگوريتم‌ها و مقادير در شبكه‌هاي 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 مهاجم با دسترسي فيزيكي به سيم كارت قرباني، مي تواند يك كپي از اين سيم كارت را ايجاد كرده و به سوء استفاده از آن بپردازد. با توجه به آمدن نسل هاي جديد تلفن همراه مانند نسل سوم و چهارم، به نظر مي رسد بروز كردن نسل تلفن همراه با توجه به استفاده از الگوريتم هاي رمزنگاري قوي تر در اين نسل ها باعث مي شود كه اين آسيب پذيري تا حدودي كم تر شود


نظرات

بدون نظر
شما برای نظر دادن باید وارد شوید

نوشته

 
تاریخ ایجاد: 7 مهر 1393

دسته‌ها

امتیاز

امتیاز شما
تعداد امتیازها:0