تحلیل معماری، مخاطرات امنیتی، مشکلات و راهکارهای بهبود USSD
کد USSD و مزایا و معایب آن
1-USSD (ارسال پیام از طریق کد دستوری)
نوعی فناوری مبتنی بر نشست است که از آن جهت ارایه کدهای دستوری ویژه خدمات بانکی یا شبکههای موبایلی، با (یا بدون) اینترنت و از طریق کانالهای جیاسام استفاده میشود.
برای خدمات بانکی که از USSD استفاده میکنند، اپراتور شبکه موبایل (MNO) به عنوان یک رابط بین مشتری و بانک عمل میکند. USSD یک راهکار سریع، ارزان و تعاملی است که از نظر هزینه، امنیت و مصرف کانال ارتباطی نسبت به پیامک مقرون به صرفهتر است (برای پیامک همیشه از کانال صوتی استفاده میشود اما USSD معمولاً از کانال صوتی استفاده میکند و هر زمان این کانال مشغول بود از یک کانال دیگر استفاده میکند).
این راهکار مستقل از پلتفرم بوده، به زبانهای مختلف در دسترس است و نیاز به دانلود هیچ نرم افزاری ندارد. برای کاربران مناطق غیرشهری که از گوشیهایی غیر از گوشیهای هوشمند استفاده میکنند، USSD جهت دسترسی به خدمات بانکی و راهکارهای پرداخت بانکی مناسبتر است. بهبود امنیت USSD باعث میشود که این راهکار، گزینه بهتری باشد و میزان استفاده از آن افزایش پیدا کند.
جهت تقویت امنیت USSD درک معماری، مزایا، مخاطرات و مشکلات آن ضروری است. این مقاله، جزئیات معماری USSD، مزایا و مخاطرات آن را بررسی کرده و راهکارهایی جهت ارتقای امنیت اطلاعات برنامههای بانکداری موبایلی مبتنی بر USSD مطرح میکند.
کلمات کلیدی: بانکداری موبایلی، امنیت، امنیت برنامه کاربردی، امنیت اطلاعات، USSD، احراز هویت ، رمزنگاری، خدمات مالی
-
مقدمه
امروزه با رونق گرفتن راهکارها و پروژههایی مثل «هند دیجیتال» (Digital India)، تراکنش بدون پول نقد و پرداخت الکترونیک، میزان استفاده از گوشیهای موبایل و سایر دستگاههای همراه افزایش پیدا کرده است. اپراتورهای شبکه موبایل از این دستگاهها برای ارایه سرویسهای مخابراتی متداول و همچنین ترویج و گسترش باند خودشان استفاده میکنند.
مشتریان از موبایل برای استفاده از خدمات موبایلی ارایه شده توسط این اپراتورها، اجرای تراکنشهای مالی آنلاین و انجام کارهای شخصی و اداری روزمره خودشان استفاده میکنند. تراکنشهای موبایلی به دلیل مزایایی همچون صرفه جویی در زمان، راحتی استفاده، قابلیت حمل، دسترس پذیری و غیره محبوبیت زیادی دارند. حتی این روزها بانکها هم خدمات و تراکنشهای مبتنی بر موبایل را ارایه میدهند زیرا این روش در کنار کاهش هزینهها، افزایش سهم بازار، تقویت برند و غیره منجر به ارایه خدماتی بهتر به مشتریان میشود.
خدمات مالی موبایلی از طریق فناوریهای مختلفی مثل سرویس پیام کوتاه (SMS)، کدهای دستوری (USSD)، برنامههای کاربردی تحت مرورگر، برنامههای کاربردی مبتنی بر کلاینت، پاسخ صوتی تعاملی (IVR)، پروتکل دسترسی بیسیم (WAP) و غیره ارایه میشوند. تمرکز این مقاله بر معماری USSD، تحلیل مزایا، مخاطرات و مشکلات امنیتی آن است و در نهایت پیشنهادهایی جهت بهبود امنیت آن ارایه خواهیم کرد.
این مقاله شامل هفت بخش است. در بخش دوم معماری USSD بررسی میشود، بخش سوم مزایای این راهکار و بخش چهارم مشکلات و مخاطرات امنیتی آن را بررسی میکند. در بخش پنجم پیشنهادهایی جهت بهبود امنیت این راهکار ارایه میشود. در بخش ششم، نتیجه گیری و در بخش هفتم چشم انداز کارهای آتی بررسی خواهد شد.
2-معماری USSD
در USSD از کدهایی استفاده میشود که پیشوند * و پسوند # دارند. استاندارد TS 24.390 از پروژه همکاری نسل سوم (3GPP)، تعیین کننده رشتههایی تحت عنوان MMI (رشتههای Man Machine برای خدمات USSD) است. این رشتهها در ابتدا یا توسط ایستگاه موبایل (MS) یا ایستگاه شبکه (NS) ارسال میشوند. USSD در واقع در دو حالت pull (برای مدیریت درخواستهای آغاز شده توسط NS) و push (برای مدیریت درخواستهای آغاز شده توسط MS) پیادهسازی میشود.
شکل 1: شبکه جیاسام
در ادامه توضیحی مختصر از این بلاکها ارایه میکنیم.
MS: ایستگاه موبایل متشکل از ME (تجهیزات موبایل) و SIM (ماژول شناسایی مشترک یا سیم کارت) است که مسئول ارسال و دریافت درخواستها است.
BSS: زیرسیستم ایستگاه پایه، مسئول مدیریت ترافیک و ارسال سیگنال بین MS و زیرسیستم سوئیچینگ شبکه (MSC) است. این بخش، ترانسکدینگ کانالهای گفتار، تخصیص کانالهای رادیویی به گوشیهای موبایل، انتقال و دریافت از طریق خطوط ارتباط هوایی را انجام میدهد. BSS از BTS و BSC تشکیل شده است.
BTS: ایستگاه فرستنده گیرنده پایه متشکل از فرستنده و گیرنده (فرستنده گیرنده)، آنتنها و تجهیزات لازم برای رمزنگاری و رمزگشایی ارتباطات با BSC است. BTS چندین فرستنده و گیرنده دارد تا استفاده از فرکانسهای متفاوت و بخشهای مختلف سلول مخابراتی را تسهیل کند.
BSC: کنترلگر ایستگاه پایه که اطلاعات لازم را برای BTS فراهم میکند. هر BSC تقریباً 10 یا تعداد بیشتری BTS را مدیریت میکند.
MSC: مرکز سوئیچینگ موبایل که یک یا تعدادی BSC را مدیریت میکند. این بخش مسئول احراز هویت اولیه موبایل، تنظیمات، مسیریابی و هدایت تماسها، بهروزرسانی موقعیت مکانی در HLR، VLR، مدیریت امنیت، حسابرسی، شارژ و اجرای سایر سرویسها (مثل USSD، SMS و غیره) است.
HLR: مرکز ثبت موقعیت خانه، حاوی اطلاعات مربوط به مشترکین جدید است. این بخش، اطلاعات دایمی (IMSI یا شناسه بین المللی مشترک موبایلی)، MSIISDN (شمارهای که هر مشترک را در شبکه موبایلی به صورت منحصر به فرد مشخص میکند)، اطلاعات محرمانه مشترک (کلیدهای مورد استفاده جهت رمزنگاری و رمزگشایی مسیر بین HLR و MS) و همچنین اطلاعات غیرمحرمانه (نام و آدرس) را ذخیره میکند.
VLR: هدف بخش ثبت موقعیت مکانی بازدید کننده، کاهش بار HLR است و حاوی اطلاعات پویایی در رابطه با مشترک (اطلاعاتی غیرمحرمانه) است.
AUC: هدف مرکز احراز هویت، اطمینان از مجاز بودن کاربر است. احراز هویت در ارتباط اولیه MS، وقتی تماسی برقرار یا دریافت میشود یا در هنگام بهروزرسانی موقعیت مکانی انجام میشود.
EIR: بخش ثبت شناسه تجهیزات، شماره IMEI را ذخیره میکند و از آن برای مسدود کردن شماره در صورت به سرقت رفتن یک دستگاه استفاده میشود.
معماری USSD با استفاده از جیاسام برای خدمات بانکی در شکل 2 ارایه شده است.
شکل 2. معماری USSD با استفاده از جیاسام برای خدمات بانکی
جهت دریافت خدمات بانکی با استفاده از USSD، ابتدا کاربر از طریق MS رشته MMI USSD مخصوص سرویس مورد نظر را وارد میکند. سپس بخش مدیریت USSD در MS یک نشست تنظیم میکند و درخواست USSD حاوی رشته USSD را ارسال میکند.
ترتیب هدایت درخواست با استفاده از رابط کاربری MAP (بخش برنامه کاربردی موبایلی) MSC- >VLR->HLR->USSD است. بسته به نوع سرویس مورد تقاضا، درخواست USSD یا از طریق بخش مدیریت USSD یا از طریق یک نود خاص در مسیر (اگر آن درخواست برای آن نود خاص در نظر گرفته شده باشد) اجرا میشود یا به نود بعدی در مسیر هدایت میشود. در رابطه با سرویس مالی بانکی، تقریباً تمام درخواستها فقط از طریق درگاه USSD هدایت و اجرا میشوند.
درگاه USSD این امکان را برای MN فراهم میکند تا برای تسهیل نمایش سرویسهای مالی ارایه شده توسط بانک، یک سرویس مبتنی بر منوی تعاملی ارایه کند و به کمک سرور برنامه کاربردی مالی (که خود آن هم از سرور بانکی مرکزی جهت احراز هویت، صدور مجوز و غیره استفاده میکند) امکان اجرا و نمایش سرویس مالی فراخوانی شده توسط کاربر را فراهم کند.
رابط کاربری MAP یک لایه برنامه کاربردی ارایه میکند تا امکان توسعه سرویسهای برنامه کاربردی برای شبکه جیاسام فراهم شود. MAP با پروتکلهای SS7 (سیستم سیگنالینگ شماره 7) ترابری و بستهبندی میشود.
3-مزایای USSD
در ادامه، مزایای USSD را بررسی میکنیم.
- یک نشست مستقیم بین فرستنده و گیرنده برقرار و حفظ کرده و به همین دلیل انتقال داده را تسریع میکند. مثل TRAI زمان پاسخ USSD هم 2 ثانیه و هزینه به ازای هر بار استفاده برای هر نشست USSD (چه موفق یا غیرموفق) 1.50 Rs است.
- عدم ذخیره اطلاعات محرمانه در موبایل
- پیادهسازی آسان، منوی کاربرپسند (همراه با امکان زمان خروج گزینههای منو) که برای توسعه برنامههای کاربردی پرداخت موبایلی بسیار مناسب است.
- پشتیبانی همزمان از سرویس USSD و تماس صوتی بدون نیاز به اینترنت
- امنیت بیشتر، به دلیل ذخیره نشدن در موبایل برخلاف پیامک
- مقرون به صرفه بودن برای ارایه دهنده خدمات زیرا USSD از SS7 استفاده میکند و میتوان از آن برای ارسال اعلامیههای مربوط به سرویسهای جدید استفاده کرد.
- میتوان از فضای کاراکتری استفاده نشده در پیام استعلام موجودی مشتریان اعتباری، جهت پیش فروش و فروش مکمل خدمات استفاده کرد.
- مستقل از پلتفرم است یعنی به مدل گوشی و نوع سیم کارت بستگی ندارد و روی تمام گوشیهای جیاسام کار میکند.
- از آنجایی که تمام پیامهای USSD از طریق شبکه خانگی کاربر مسیریابی میشوند، تمام سرویسهای USSD در دسترس در شبکههای خانگی بدون هیچ هزینه اضافهای در حالت رومینگ هم در دسترس هستند.
4-مخاطرات و مشکلات امنیتی
در ادامه، مشکلات امنیتی موجود در USSD (از جمله چند مشکل محدود جیاسام) را بررسی میکنیم.
- پیش از این، الگوریتم COMP128 که توسط سیم کارت و AUC جهت تولید درخواست RES اولیه استفاده میشود، به نوعی هک شده است. این الگوریتم هنوز هم در برخی موبایلهای قدیمی استفاده میشود و جایگزین نشده است.
- امکان اجرای حملات «محروم سازی از سرویس» از طریق دستکاری در مقادیر اولیه RAND که هنگام فاز اولیه احراز هویت به MS ارسال میشود، وجود دارد.
- کلید خصوصی (Kc) تولید شده توسط الگوریتم A5 با استفاده از مقادیر RAND و Ki قابل تشخیص است و امکان شنود سیگنال ارسال شده بین MS و BSS وجود دارد.
- پیامهای درخواست و انتقال اطلاعات IMSI (شناسه بین المللی مشترک موبایل) رمزنگاری و احراز هویت نمیشوند.
- عدم وجود رمزنگاری مبدأ به مقصد. رمزنگاری به کانال بین MS و BTS محدود میشود.
در این قسمت محدودیتهای خاص جیاسام در UMTS (سرویس جهانی مخابرات سیار) که مبتنی بر استاندارد 3G است، بررسی شد.
علاوه بر موارد گفته شده، ویژگیهای امنیتی زیر هم در UMTS مورد توجه هستند.
- استفاده از شناسه موقت برای TMSI (شناسه موقت مشترک موبایلی)
- احراز هویت متقابل کاربر و شبکه
- رمزنگاری شبکه دسترسی رادیویی
- محافظت از جامعیت سیگنالینگ جهت پیشگیری از حملات مرد میانی
در ادامه برخی از مخاطرات امنیتی مختص USSD را بررسی میکنیم.
- امکان دستکاری پیامهای درخواست و پاسخ به USSD و اجرای حملات بازپخش وجود دارد.
- تأخیر موجود در پیامهای درخواست و پاسخ USSD میتواند امکان دستکاری درخواست و پاسخ را فراهم کند.
- هنگام استفاده از USSD برای خدمات بانکداری، اطلاعات محرمانه کاربر مثل MPIN، شماره حساب و غیره نمایش داده میشود و ممکن است کسی که تراکنش را مشاهده میکند از آن سوءاستفاده کند.
- سوءاستفاده از کدهای کثیف USSD (dirty USSD) برای عملیات زیر میتواند منجر به سرقت اطلاعات محرمانه شود:
- تغییر پین کد
- بازگشت به تنظیمات کارخانه
- نمایش شماره IMEI
USSD سیستم انتقال پیامی مبتنی بر نشست با بیشترین طول نشست 2 دقیقه است. در رابطه با نشستهای حالت بیکار (یا idle)، نشست سرور بعد از 20 ثانیه از اعتبار ساقط میشود.
ممکن است پیش از زمان خارج شدن یک نشست، کاربر به آن خاتمه دهد.
5-پیشنهادهایی جهت بهبود امنیت
راهکارهای امنیتی محدودی برای استفاده از USSD در برنامههای کاربردی بانکداری و کاهش مخاطرات امنیتی آن ارایه شدهاند. اطلاعات کامل در جدول زیر ارایه شده است.
تهدید یا مشکل امنیتی | راهکار(های) پیشنهاد شده |
نمایش اطلاعات محرمانه در هنگام استعلام موجودی | · در حال حاضر در برنامه کاربردی USSD، شماره حساب و MPIN (پین موبایل) به همان صورتی که است، نمایش داده میشوند و ممکن است فردی که هنگام اجرای تراکنش آن را مشاهده میکند، بعداً از آن سوءاستفاده کند.
· در هنگام ورود MPIN (پین موبایل) توسط کاربر، نباید این کد به صورتی که است نمایش داده شود بلکه باید به جای کاراکترهای وارد شده، کاراکتر * نمایش داده شود. · نباید شماره حساب به صورت کامل نمایش داده شود بلکه فقط باید 4 رقم آخر آن نمایش داده شود. |
نمایش اطلاعات محرمانه در هنگام انتقال وجه توسط MMID (شناسه مبادلات پولی موبایل) | · در حال حاضر در برنامه کاربردی USSD، ورودی MMID بدون تغییر نمایش داده میشود و ممکن است فردی که هنگام اجرای تراکنش آن را مشاهده میکند، بعداً از آن سوءاستفاده کند.
· در هنگام ورود MMID توسط کاربر باید به جای کاراکترهای وارد شده، کاراکتر * نمایش داده شود. |
نمایش اطلاعات محرمانه – MMID | · هنگام اجرای درخواست نمایش MMID، این اطلاعات فقط پس از اعتبارسنجی شماره موبایل نمایش داده شوند.
· این اعتبارسنجی باید شامل فاکتورهای دیگر (زیستی) هم باشد تا اعتبار آن قابل تأیید باشد. این کار جهت مقابله با سوءاستفاده از گوشیهای به سرقت رفته یا گم شده ضرورت دارد. |
تولید رمز یکبار مصرف (OTP 23) غیرمجاز و تأیید نشده | · هنگام تولید OTP، علاوه بر استفاده از شماره موبایل و MMID باید استفاده از اطلاعات دیگری مثل شماره کارت بدهی یا کارت اعتباری هم در نظر گرفته شود تا در صورت به سرقت رفتن گوشی، امکان تولید کد OTP وجود نداشته باشد. |
دستکاری درخواستها و پاسخهای USSD جهت اجرای حملات بازپخش و محرومسازی از سرویس | · ورودیهای محرمانه کاربر مثل MPIN، شماره موبایل، شماره حساب و MMID در حملات بازپخش برای محرومسازی از سرویس یا انتقال وجه به یک گیرنده ناشناس قابل استفاده هستند.
· جهت پیشگیری از حمله میتوان پیامها را با استفاده از برچسب زمانی (به عنوان کلید) رمزنگاری کرد. به کار بردن برچسب زمانی میتواند منجر به لغو اعتبار درخواستها یا پاسخهای بازپخش شده شود. |
تأخیر در پاسخ که میتواند منجر به دستکاری درخواستها و پاسخهای USSD شود. | · مدیریت نشستهای غیرفعال (idle) با استفاده از، از زمان خارج شدن نشست در سمت کلاینت جهت پیشگیری از پردازش درخواستها یا پاسخهای دستکاری شده.
· مدیریت و کنترل مناسب تمام اعتبارسنجیهای خطاهای دادهای و سایر خطاها هم در سمت سرور و هم در سمت کلاینت، به گونهای که تمام درخواستها و پاسخهای غیرمجاز شناسایی شده و پردازش نشوند. به عنوان مثال موفقیت آمیز نبودن اعتبارسنجی MMID و شماره موبایل یا شماره حساب هنگام درخواست یا پاسخ به انتقال وجه میتواند منجر به انتقال نادرست وجه یا شکست در انتقال وجه به صورت درست و مورد انتظار شود. · بستن تمام نشستهای باز در هنگام خروج جهت مقابله با سوءاستفاده از شناسه نشستهای باز و تسهیل شروع دوباره نشست در صورت بروز خطا. |
سوءاستفاده از کدهای کثیف USSD | · در حال حاضر هیچ اعتبارسنجی برای بررسی سوءاستفاده عمدی از کدهای کثیف USSD در صورت گم شدن گوشی وجود ندارد. یکی از این سوءاستفادهها، بهروزرسانی پین کد و سپس فراهم شدن دسترسی غیرمجاز به گوشی در صورت گم شدن یا به سرقت رفتن آن است.
· جهت پیشگیری از چنین سوءاستفادهای برای اجرای کدهای کثیف USSD میتوان فاکتورهای احراز هویت و مجوزدهی دیگری را هم قبل از اجرای کد در نظر گرفت. |
6-نتیجه گیری
در این مقاله معماری برنامه کاربردی بانکی موبایلی مبتنی بر USSD و مزایای USSD را بررسی کرده و مشکلات جیاسام و مخاطرات امنیتی مختص USSD را بررسی کردیم.
همچنین منوی فعلی USSD برای خدمات بانکداری را تحلیل کرده و سازوکارهایی جهت مقابله با مشکلات و مخاطرات امنیتی شناسایی شده مطرح کردیم، از جمله مشکلات و مسایل مربوط به نمایش اطلاعات محرمانه، عدم اعتبارسنجی دادهای یا اعتبارسنجی نامناسب، کنترل خطاها، شناسایی و مدیریت درخواستهای دستکاری شده یا غیرمجاز، حملات بازپخش و نشستهای نامعتبر. هر چند سرویسهای مالی مبتنی بر USSD نسبت به پیامک امنتر هستند اما هنوز جای بهبود و تقویت امنیتی در زمینههایی مثل صدور مجوز، محرمانگی، احراز هویت و حفظ درستی و جامعیت دادهها وجود دارد.
7-کارهای آتی
در این مقاله مشکلات فعلی USSD شناسایی و مورد بحث قرار گرفتند و همچنین راهکارهایی برای حل این مشکلات ارایه شد. بنابراین گام بعدی طراحی، پیادهسازی و ارزیابی راهکارهای پیشنهادی است. این کار باید شامل طراحی و ارزیابی یک سیستم چند ماژولی و چند فاکتوری باشد که خلاهای امنیتی موجود در زمینههای صدور مجوز، محرمانگی، احراز هویت و حفظ درستی و جامعیت دادهها در برنامههای کاربردی بانکداری موبایلی را رفع کند.