چرا باید USSD را از نظام پرداخت کارتی کشور حذف کرد؟

  • نویسنده: محمد جواد صمدی راد
  • تاریخ انتشار: چهارشنبه ، ۱۵ فروردین ماه ۹۷
  • تعداد بازدید: 2443
  • تعداد نظرها: 0
  • دسته بندی: کارت و پرداخت

تأمین امنیت سامانه های پرداخت و حفاظت از اطلاعات دارندگان کارتهای بانکی (Card Holder Data) توسط متولیان امر، یک از مهمترین شاخصهایی است که باعث شده مردم به کارتهای بانکی اعتماد کنند و پرداخت کارتی به صورت همه گیر در کشور توسعه یابد. در صورتی که خدشه ای به این اعتماد وارد شود، قطعا ریزش قابل توجهی از تراکنشها را توسط شهروندان شاهد خواهیم بود. کانال USSD به عنوان یک رسانه جدید، راهی آسان را بین کاربر (دارنده کارت) و سامانه های پرداخت فراهم نموده است و به واسطه اینکه نیازمند نصب هیچ گونه نرم افزاری نیست و با حداقل امکانات سخت افزاری (گوشی تلفن همراه) قابل استفاده است، به سرعت توانست حجم قابل توجهی از کاربران و تراکنشهای پرداخت را به خود جذب نماید. اما واقعیت این است که این فناوری از امنیت لازم برخوردار نیست و متأسفانه حقایق آسیب پذیریهای امنیتی این فناوری نیز به شهروندان منعکس نمی گردد، همچنین از سوی دیگر بانک مرکزی نیز در این خصوص به روش کجدار و مریز رفتار می کند که خود باعث سردرگمی فعالین صنعت پرداخت و بانک شده است. جهت درک بهتر آسیب پذیریهای امنیتی پرداخت با USSD ، اجازه بدهید تا این فناوری را با درگاه پرداخت اینترنتی مقایسه نماییم و تهدیدهای این حوزه را به وضوح تشریح نماییم.

مقایسه معماری پرداخت اینترنتی (IP) و پرداخت USSD یا (UP)

همانگونه در تصویر زیر مشاهده می نمایید در معماری پرداخت اینترنتی کاربر نهایی(دارنده کارت) با بهره گیری از فناوری SSL/TLS می تواند مطمئن باشد که به سرویس دهنده مطمئنی متصل شده است (احراز هویت سرویس دهنده) و همچنین مطمئن است که اطلاعاتی که در صفحه درگاه پرداخت وارد می نماید از پایانه نهایی تا سرویس دهنده رمزنگاری می شود و به این ترتیب هیچ کس نمی تواند در بین راه اطلاعات پرداخت را مشاهده نماید و یا تغییر دهد.

 

 

لذا دارندگان کارتهای شتابی در زمان پرداختهای اینترنتی صرفا با دیدن اتصال SSL به درگاه های مجاز (https://*.shaparak.ir) با آسودگی تراکنش خود را انجام می دهند و یک تراکنش مبتنی بر اعتماد (Authenticity, Confidentiality and Integrity) شکل می گیرد.

 

 

 

حال باید ببینم در دنیای USSD آیا می توان به این مدل اعتماد دست یافت؟ و هر یک از ارکان اعتماد چگونه در USSD قابل دستیابی است. همانطور که در تصویر زیر مشاهده می نمایید در معماری شبکه موبایل و ارتباطات USSD عناصر مختلفی درگیر هستند.

 

 

پیامهای USSD مبتنی بر پروتکل MAP/SS7 بین عناصر شبکه موبایل تبادل می گردد و از آنجایی که این پروتکل یک پروتکل مدیریتی و سیگنالینگ مخابراتی است، عناصر درگیر در شبکه موبایل به تفصیل به ترجمه این پیامها می پردازند و به عبارتی شبکه موبایل به تفصیل در جریان کلیه پیامهای تبادل شده خواهد بود و در صورت لزوم به ذخیره سازی پیامهای تبادل شده نیز می پردازد.

 

 

به دلیل ضرورت مدیریت خطا در شبکه موبایل، کلیه پیامهای USSD مشخصا در MSC, VLR, HLR پردازش می گردند و در نهایت از طریق درگاه USSD به شبکه پرداخت هدایت می گردد.

 

 

با توجه به موارد فوق، کاربر نهایی (مشترک شبکه موبایل و دارنده کارت) نمی تواند شرایط اعتماد را احراز کند، یا به عبارت دیگر:

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

جدول مقایسه این دو روش پرداخت از منظر مدل اعتماد، در ادامه به طور خلاصه آمده است:

 

پرداخت اینترنتی

پرداخت USSD

احراز هویت پذیرنده تراکنش

از طریق گواهی دیجیتال SSL و نام دامنه در URL می توان پذیرنده را احراز نمود.

مکانیزم مطمئن بی واسطه ای برای احراز هویت پذیرنده وجود ندارد.

محرمانه بودن جزئیات تراکنش

رمزنگاری از ابتدا تا انتها بین پذیرنده و رایانه کاربر، یک کانال امن و انتقال پیام محرمانه فراهم می نماید.

جزئیات تراکنش توسط عناصر میانی شبکه موبایل و یا مشابه آنها قابل شنود می باشد.

تغییر ناپذیری جزئیات تراکنش

رمزنگاری از ابتدا تا انتها بین پذیرنده و رایانه کاربر، یک کانال امن و تضمین کننده صحت پیامهای تبادلی را فراهم می آورد.

جزئیات تراکنش توسط عناصر میانی شبکه موبایل و یا مشابه آنها قابل شنود، تغییر و ارسال مجدد می باشد.

عدم انکار انجام تراکنش

بواسطه دریافت شماره کارت و رمز دوم، تراکنش توسط دارنده قابل انکار نیست.

بواسطه دریافت شماره کارت و رمز دوم، تراکنش توسط دارنده قابل انکار نیست، همچنین به واسطه اطلاعات کنترلی شبکه موبایل می توان جزئیات اطلاعات گوشی و سیم کارت بکار رفته در تراکنش را نیز برای اثبات عدم انکار بکار گرفت.

 

آیا تراکنش قبض بر روی USSD امن است ؟

با توجه به مطالب فوق الذکر، انجام هرگونه تراکنشی بر روی بستر USSD امن نیست و امکان شنود شماره کارت و رمزدوم کارت توسط حوزه خارج از شبکه پرداخت مقدور می باشد و لذا انجام تراکنش قبض بر روی USSD مخاطرات مشابهی را برای دارندگان کارت فراهم می آورد.

آیا سامانه پیوند می تواند تضمین کننده امنیت پرداخت با USSD باشد ؟

سامانه پیوند با بهره گیری از ایده نشانگذاری (Tokenization) تلاش می نماید که نشان دیگری بجای شماره کارت از کاربر دریافت گردد که این موضوع قطعا به بهبود شرایط امنیتی بستر USSD کمک می کند اما ریسکهای متعددی همچنان وجود دارد که اهم آن به شرح زیر است:

  • اغلب USSD Gatewayهای موجود دارای پایگاه داده های بزرگ از شماره کارتهای بانکی هستند که ناشی از رسوب اطلاعات چند ساله فعالیت این سامانه هاست و استخراج شماره کارت واقعی از شماره کارت تراکنکیت شده (فرمت 4*****6 ) در سامانه پیوند کاری نسبتا ساده خواهد بود.
  • هیچ یک از اشکالات طرح شده در مدل اعتماد را به طور کامل برطرف نمی نماید:
    • احراز هویت پذیرنده
    • محرمانگی اجزای تراکنش
    • غیرقابل تغییر بودن اجزای تراکنش
  • به دلیل عدم ثبت مداوم کارتهای جدید و کارتهای پیش پرداخت (نظیر کارت هدیه و ...) در سامانه پیوند توسط بانکها، همچنین فرآیندهای کاری پیچیده جهت مدیریت چرخه حیات اطلاعات کارت در سامانه پیوند، شرایط کاربر پسند بودن USSD دچار تغییر شده و PSPها روشهای گذشته خود را در کنار سامانه پیوند حفظ نموده اند.

آیا بکارگیری اپلت بر روی سیم کارت می تواند در ایجاد شبکه امن USSD موثر باشد ؟

یکی از روشهایی که برای امن سازی پرداخت USSD مطرح شد، استفاده از اپلت روی سیم کارت و رمزنگاری ابتدا تا انتها بین سیم کارت و درگاه پرداخت شرکت PSP می باشد. به لحاظ تئوری پیشنهاد مطرح شده می تواند تأمین کننده نیازمندیهای مدل اعتماد باشد و شرایط امنیتی مطلوبی را برای پرداخت USSD فراهم آورد. اما به لحاظ اجرایی انجام این موضوع با مشکلات متعددی مواجه خواهد بود که در ادامه به طرح چالشهای اجرایی این حوزه می پردازیم.

 

 

فناوری مورد استفاده جهت اپلت سیم کارت (اپلت، نرم افزار کاربردی کوچکی است که بر روی بستر جاوا کارت/سیم کارت بارگذاری می گردد) را STK (Simcard Tool Kit) می نامند. در این فناوری با بهره گیری از قابلیتهای فنی جاوا کارت می توان یک برنامه خاص منظور تولید نمود که در حوزه پرداخت USSD انتظار می رود که این اپلت نسبت به دریافت امن شماره کارت و رمز دوم اقدام نموده و یک تراکنش امن رمز شده را تولید نماید و سپس پیام رمز شده از بستر USSD به درگاه پرداخت بانک ارسال گردد. درگاه پرداخت بانک بخش رمزنگاری شده پیام را استخراج نموده، و پس از رمزگشایی به شبکه پرداخت ارسال کند.

اهم مشکلات اجرایی که در این حوزه قابل طرح است به شرح زیر می باشد:

  • طراحی و توسعه معماری مناسب قابل اعتماد جهت بهره گیری سه اپراتور تلفن همراه و 12 شرکت PSP:

به منظور تأمین شرایط مدل اعتماد ضرورت دارد تا یک مکانیزم مدیریت کلید مناسب طراحی گردد که سه اپراتور و 12 شرکت PSP بتوانند از آن استفاده نمایند و همچنین این ساختار مدیریت کلید باید بتواند برای سیم کارتهای موجود نیز قابل پیاده سازی باشد. طراحی و پیاده سازی چنین ساختار که مورد توافق 15 ذینفع متفاوت است امری نسبتا زمانبر، پرهزینه و پرچالش خواهد بود.

 

  • نصب و راه اندازی اپلت مذکور بر روی سیم کارتهای مشترکین

در صورت نهایی سازی ساختار فنی و توسعه اپلت مورد نیاز مطابق با شرایط فوق و تبیین روشهای شخصی سازی و تزریق کلید اپلت، بارگذاری اپلت بر روی سیم کارتهای موجود در بازار امری پرچالش خواهد بود. با توجه به محدودیتهای اپراتورهای موبایل کشور در حوزه نصب از راه دور اپلت (OTA) بر روی سیم کارت، این امر باید با مراجعه حضوری مشتریان به مراکز خدماتی مورد اعتماد و از طریق بروز رسانی سیم کارت با کارتخوان خاص و یا تعویض سیم کارت انجام پذیرد.

پس از بارگذاری اپلت بر روی سیم کارت، بخشی از اپلت مذکور بر روی JVM گوشی تلفن همراه نصب خواهد شد و واسطهای کاربری مورد نیاز را از این طریق فراهم می نماید. لذا پشتیبانی گوشی تلفن همراه از JVM سازگار با اپلت توسعه یافته، خود یکی دیگر از پیش نیازهای استقرار این راه حل می باشد.

 

  • کاربرپسند بودن سرویس پرداخت USSD

بزرگترین مزیت USSD ، کاربرپسند بودن آن و استفاده از آن بدون نصب هیچ نرم افزاری و بر روی حداقل سخت افزارهای گوشی تلفن همراه بود، که در راه حل اپلت بر روی سیم کارت، تقریبا اغلب این مزیتها منتفی خواهد شد. کاربر ضرورت دارد تا یک نرم افزار جاوایی (اپلت) را بر روی گوشی خود نصب کند و امکانات این سرویس محدود به منوها و کاربردهایی است که در این نرم افزار تعریف شده و در صورت نیاز به تغییر در آن ضرورت دارد تا اپلتها نصب شده بر روی سیم کارتها بروز رسانی گردد.

در تصویر زیر یک نمونه ساختار منویی تولید شده برای سرویس MPESA مبتنی بر فناوری STK و اپلت ویژه این موضوع را مشاهده می نمایید که پس از نصب اپلت بر روی گوشی فراهم شده است.

 

 

بنظر می رسد که تصمیم گیری در خصوص راه اندازی کانال امن USSD مبتنی بر اپلت سیم کارت، نیازمند به تحلیلهای دقیقتری می باشد تا ضمن تحلیل هزینه فایده چنین سرویسی در مقایسه با امکانات گوشی های هوشمند، بتوان تصمیم منطقی برای این موضوع در سطح ملی گرفت.

 

در مورد پرداخت USSD چه باید کرد ؟

با توجه به نکات مطرح شده در فوق، اقدامات زیر پیشنهاد می گردد:

  • ممنوعیت هر نوع پرداخت کارتی و خدمات بانکی بر روی کانال USSD (اعم از قبض، شارژ، خرید و ...)
  • راه اندازی شبکه های بسته(Close Loop) با کاربردهای خاص منظوره مبتنی بر USSD و ایجاد درگاه های مجاز (مبتنی بر ظرفیتهای شبکه پرداخت کارتی)، جهت Cash-in و Cash-out به این شبکه های بسته
  • تعیین مهلت حداکثر شش ماهه جهت تعویض رمز دوم کارتهای شتابی صادر شده جهت پوشش ریسکهای احتمالی
  • انجام مطالعه دقیق فنی و اجرایی در خصوص بکارگیری سرویس رمزنگاری مبتنی بر سیم کارت برای بستر USSD و اخذ تصمیم کارشناسی

 

آیا برنامه های کاربردی پرداخت موبایلی از امنیت لازم برخوردار هستند ؟

راه کار جایگزین شرکتهای PSP و بانک مرکزی برای سرویس USSD استفاده از برنامه های کاربردی پرداخت موبایلی (نظیر تاپ، آپ، سکه، پات و ...) است که با بهره گیری از امکانات گوشی های هوشمند شرایط کاربرپسند و متنوعی را برای شهروندان فراهم نموده است. حال سوال این است که آیا شرایط امنیتی مورد نیاز در مدل اعتماد برای برنامه های کاربردی پرداخت موبایلی فراهم شده است؟ با یک بررسی اولیه می توان گفت که مخاطرات جدی در این حوزه نیز وجود دارد و در صورتی که بانک مرکزی، شاپرک و شرکتهای PSP در این خصوص اقدام مناسب و عاجلی به عمل نیاورند مشکلات جدیدی گریبانگیر شبکه پرداخت کشور خواهد شد، اهم این مخاطرات به شرح زیر می باشد:

1- عدم معرفی یک مرجع برخط قابل استناد(AppStore) در کشور جهت دریافت آخرین نسخ معتبر نرم افزارهای کاربردی پرداخت موبایلی

متأسفانه نسخ متعدد دستکاری شده (با امکان نشر اطلاعات حساس) از برنامه های پرداخت موبایلی در اینترنت، گروه های تلگرامی و .... موجود است که در صورت نصب آنها توسط کاربران، قطعا منجر به انتشار اطلاعات حساس ایشان خواهد شد.

2- عدم بکارگیری فناوریهای مناسب امنیت موبایل

به طور کلی راه کارها و فناوری های امنیتی در حوزه اپلیکیشن های موبایل در دو سطح ایستا (ایمن سازی برنامه در مقابل آن دسته از تهدیدات و آسیب پذیری هایی که نرم افزار را در حالت نصب نشده از طریق دستکاری در سورس کد، فایل های نصبی و ... مورد هجوم قرار می دهند) و همچنین پویا (ایمن سازی برنامه در مقابل آن دسته از تهدیدات و آسیب پذیری هایی که نرم افزار را در حالت نصب شده و در حال اجرا از طریق دستکاری ارتباطات، فرآیندها و ... مورد هجوم قرار می دهند) مطرح می شوند. در ادامه برخی از راهکارها و فناوریهای امنیتی محوری حوزه برنامه های موبایل در دو سطح ایستا و پویا آورده شده است.

سطح ایستا (Static):

  • Name Obfuscation
  • Control Flow Obfuscation
  • String Encryption
  • Package Signing and Protection
  • Arithmetic Obfuscation
  • Removal of Logging code
  • Protection of Webview and Cardova
  • Call Hiding
  • Code Packing
  • Native Code Obfuscation

 

سطح پویا (Dynamic):

  • SSL Pining
  • Root Detection
  • RASP - runtime application self-protection
  • Debugger and emulator checks
  • Hook Detection
  • Tamper Detection
  • Certificate Check

 

3- عدم پایش مستمر امنیتی اپلیکیشن های موبایل

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

 

نویسنده: محمد جواد صمدی راد دسته بندی: کارت و پرداخت