بخشی از مقاله
یک سیستم پرداخت آفلاین پول الکترونیکی به وسیله سیمکارت بر پایه شمارنده
کلمات کلیدی : پول الکترونیکی، پرداخت الکترونیکی، تجارت موبایل، رمزنگاری کلید عمومی، کارت هوشمند
-1 مقدمه
سرعت تکامل تکنولوژی در سالهای اخیر سبب رشد عظیم در بسیاری از زمینهها شده است. یکی از این زمینهها، تلاش برای از میان برداشتن همه اشکال پول نقد اعم از کاغذی و غیرکاغذی در معاملات اقتصادی و جایگزینی آن با سیستم پرداخت الکترونیکی است. با توجه به رشد روز افزون آشنایی و استفاده از کارتهای هوشمند، کاهش قابل توجه هزینههای ساخت آن در سالهای اخیر و مزایای دیگری همچون حملونقل آسان، حجم کم و نیز مسائل بهداشتی، که برتری این کارتها را بر پول فیزیکی کاملاً واضح نموده، پیشبینی میشود که در آینده نه چندان دور پول الکترونیکی تا حد زیادی جایگزین پول فیزیکی شود هرچند هنوز هم جای تردید است که این جایگزینی به طور کامل عملی شود.[1] در این مقاله ابتدا به معرفی معماری توزیع شده پرداخت آفلاین پول الکترونیکی میپردازیم و به طور مشخص طرح مطرح شده در [16] را بررسی میکنیم و سپس راه حلی جدید برای بهبود و رفع برخی نارسایی های آن ارائه میکنیم.
در طی سالهای متمادی تعداد زیادی طرح پول الکترونیکی پیشنهاد شده است، که سعی در تقلید طرحهای مبتنی بر پول نقد امروزی کردهاند2]،[3، اما یک طرح برای آنکه موفق باشد، باید چندین نیازمندی را تأمین کند.
تعدادی از مشخصههای اصلی که باید از یک طرح ایدهآل انتظار داشت، عبارتند از:
امنیت : سیستم حداقل باید به اندازه سیستم پرداخت سنتی امن باشد. امنیت مهمترین ویژگی معاملات اقتصادی است.
عملکرد آفلاین : توانایی دو طرف معامله (خریدار و فروشنده) برای انجام معامله بدون مداخله شخص سوم از جمله بانک صادرکننده یا سرور تأیید هویت.
گمنامی : برای بانک و دولت نباید ردیابی اطلاعات و شناسایی فرد در معاملهای خاص آسان باشد. از سوی دیگر گمنامی کامل میتواند به عنوان ابزاری برای مجرمان برای فعالیتهای غیرقانونی مانند پولشویی استفاده شود.
مقیاسپذیری : تعداد کاربران سیستم نباید توسط سرویس-دهندگان محدود شود و افزودن کاربر به شبکه نباید از کارایی آن بکاهد.
-2 کارهای مرتبط
[4] Mondex که در انگلستان توسعه داده شد، چشمانداز عملی از جایگزینی پول الکترونیکی با پول نقد را بهبود بخشید. کیف الکترونیکی، یک نرمافزار ویژه کارتهوشمند است که میتواند به عنوان ابزار پرداخت برای انواع خریدهای با مبلغ کم مورد استفاده قرارگیرد.
4] CAFE،[5 یک پروژه تأمین مالی برای سازمانهای بانکی و یک طرح کیف الکترونیکی کارت هوشمند آفلاین بود که انتقال کارت به کارت پول الکترونیکی را اجازه میداد. پول دیجیتالی ارائه شده توسط چام 6]، 7،[8 یک پروتکل پول الکترونیکی ناشناس است که در اصل یک راهحل نرمافزاری آنلاین است.
با وجود این برای پروژههای با مقیاس بزرگ معایب گوناگونی وجود دارد که باید ذکر شود. CAFE قابلیت مقابله با خرج مجدد سکه را ندارد و نیز ممکن است با مشکلات مقیاسپذیری در موقعیتهای خاص مواجه شود. Mondex از آنجایی که شرکت طراح آن، جزئیات پروتکل را افشا نکرده است، یک طرح بسته محسوب میشود. این طرح همچنین از گمنامی کاربر پشتیبانی نمی کند. پول دیجیتالی آنلاینِ چام هم تنها تا زمانیکه سکههای الکترونیکی تنها یکبار بتوانند خرج شوند، میتواند با مشکلات مقیاسپذیری مقابله کند.
پروژههای مهم دیگر عبارتند از :
Netcheque [9], Net card [10], MMPS [11],Programmable Bank notes [12,13].
-3 معماری سیستم پرداخت موبایل
-1-3 چشمانداز سیستم
در این بخش یک چشمانداز از سیستم پرداخت ارائه شده است. اصول طراحی سیستم بر اساس 14 ]،[15 استوار است.
موجودیتهایی که در سیستم دخیل هستند عبارتند از : بانک : نگهدارنده حسابهای شبکه که پول را از ارائه-دهندگان مختلف شبکه موبایل قبول و توزیع میکند.
ارائهدهندگان سرویس موبایل: این موجودیت، مهمترین موجودیت در کل سیستم است که مسئولیتهای گوناگونی
از جمله توزیع پول دیجیتال به کاربر نهایی و پذیرش پرداخت از کاربران نهایی و پایانههای فروش به عهده دارد. کاربر موبایل (سیار) : این گروه از نظر تعداد بزرگترین است. کاربران موبایل یک حساب کاربری با ارائهدهندگان سرویس/شبکه خود دارند که از طریق آن میتوانند پول واریز یا برداشت کنند. آنها همچنین دارای کیف الکترونیکی هستند که پولهای برداشت شده در آن نگهداری میشود و می توانند هم به عنوان گیرنده و هم پرداختکننده عمل کنند و علاوه بر معاملات با تاجر با یکدیگر نیز معامله کنند.
تاجر : این موجودیتها از آنجایی که نمایانگر فروشگاههای معمولی هستند، نیاز به سیار بودن ندارند، و همچنین تا زمانیکه نقش آنها عمدتاً جمعآوری پول از مشتریان و واریز آنها به بانک است، نیازی به برداشت پول از پایگاه داده شبکه ندارند.
-2-3 روند معاملات
سه نوع روال در سیستم موجود است :
روال برداشت : کاربر سیار پول الکترونیکی را از ارائهدهنده سرویس/شبکه درخواست میکند. اگر کاربر شرایط لازم را داشته باشد، ارائه دهنده پول درخواست شده را به او تحویل میدهد.
روال پرداخت : این روال وظیفه اصلی سیستم بوده و کاربر سیار را به فرستادن پول به بقیه کاربران، حمل کیف الکترونیکی و دسترسی به پایانههای فروش قادر میسازد.
روال واریز : کاربران پول موجود در کیف پول خود را به پایگاهداده شبکه میفرستند و درواقع به حساب خود واریز میکنند.
-3-3 معماری سیستم پرداخت
پیش از پرداختن به جزئیات طرح پیشنهادی، به ذکر مقدمهای در باب پیشفرضهای سیستم پرداخت موبایل که در [16] به آن اشاره شده میپردازیم.
در شبکههای تلفن همراه، کاربر به صورت یکتا توسط سیمکارت شناسایی میشود.[18] کیف الکترونیکی یک نرمافزار شخصیشده محسوب میشود زیرا یک نگاشت مستقیم از هر کیف به مشترک دارنده اش باید وجود داشته باشد. کیفهای الکترونیکی موجود را میتوان به دو دسته کلی مشخص کرد :
در دسته اول پول به فرم سکه الکترونیکی ارائه میشود. هر سکه یک رشته از بایتها به صورت منحصر به فرد است.
در دسته دوم پول به صورت یک مبلغ از یک فایل شمارنده ارائه میشود.
با توجه به محدودیت های حافظه سیمکارت، کیف الکترونیکی بر پایه شمارنده پیاده سازی شده است.
در طرح پرداخت الکترونیکی [16] کیف الکترونیکی تعبیه-شده در ماژول GSM SIM ، بر پایه شمارنده و با اهداف تحقق امنیت، گمنامی کاربر، توانایی عملکرد آفلاین، سیاربودن کاربر، سازگاری با گذشته و قابلیت انتقال طراحی شده است.
-4-3 فرآیند پرداخت
برای نرمافزار کیف الکترونیکی، فقط دو نوع موجودیت وجود دارد. موجودیت فرستنده یا پرداختکننده، که پول الکترونیکی را می فرستد و موجودیت گیرنده یا دریافتکننده وجه، که آن را میگیرد. هر موجودیت سیستم در طی فرآیند پرداخت هم میتواند پرداختکننده و هم دریافتکننده باشد. بنابراین نیاز به قابلیت انتقال برآورده شده است.
-5-3 ایده اصلی
مهمترین بخش نرمافزار معرفیشده در[16] پروتکل معامله میباشد (شکل (2 که دنبالهای از روالهاست. یک روال دنبالهای از دستورات و پاسخهای مبادلهشده بین موجودیتهای پرداختکننده و دریافتکننده با هدف انجام یک وظیفه دقیقاً تعریف شده است.
TCP شامل سه روال اصلی است که در شکل 2 به ترتیب وقوع از چپ به تصویر کشیده شدهاند
اولین روال، مرحله شروع است که موجودیت فرستنده آن را آغاز میکند و آغاز روند معاملات را تعریف میکند.
پس از انجام موفقیتآمیز این روال،روالِ فرآیند" پرداختِ "TCP اجرا میشود. این روال شامل چهار روال فرعی دیگر میشود که در سمت راست شکل 2 دیده میشود.
اولین روال ِفرآیند پرداخت TCP،توافقِ کلید رمزنگاری است که مکانیزمی جهت محرمانهکردن اطلاعات فراهم میکند.
روال بعدی مبادله [17] shadow است. در این قسمت، فرستنده و گیرنده، shadowهایی که نگه داشتهاند را مبادله می کنند.
روال بعدی سفارش پول است که در آن موجودیت فرستنده، اطلاعاتی را درباره مقدار پولی که انتقال داده خواهد شد، از گیرنده دریافت میکند.
آخرین روال در این سطح اثبات دانش کلید K است. در طی این روال هر دو موجودیت، به هم ثابت میکنند که دارای shadow معتبر هستند و در نتیجه، فرآیند پرداخت میتواند صورت گیرد.
آخرین روالِ TCP، مرحله خاتمه است که روال پرداخت را خاتمه میدهد. شکل 4 جزئیات پیام نمودار TCP را نمایش میدهد.
پیش از پرداختن به جزئیات پروتکل، ذکر مقدمهای از اصول آن لازم است. میتوانیم روند پرداخت را مطابق آنچه در شکل 3 نمایش داده شده است، تصور کنیم. پرداخت همواره شامل دو موجودیت دارنده کیف پول مثلا A و B است.
هر نرمافزار دارای یک فایل شمارنده است. همانطور که در شکل 3، گام 1 نشان داده شده است، پیش از اینکه پرداخت صورت گیرد، هر دو شمارنده نرمافزار، دارای مقدار اولیه هستند.
فرض کنیم که موجودیت A می خواهد به B مقداری پول به مبلغ m پرداخت کند. در گام 3 شمارنده موجودیت A دارای مقداری برابر با مبلغ ابتدایی منهای m، و شمارنده موجودیت B نیز دارای مقداری برابر با مبلغ اولیه بعلاوه m می باشد.
گام 2 یک تصویر از ایده پشت پرده پروتکل معامله ارائه میکند. به هریک از دو موجودیت دهنده و گیرنده وجه یک کلید توسط نویسنده نرم افزار اختصاص داده میشود ( شکل .(3 هر کلید خودش به تنهایی نمیتواند هیچ عملی انجام دهد. بنابراین زمانیکه shadow دو کلید در کنار هم قرار میگیرند، کلید معامله K را میسازند. زمانیکه کلید K ساخته شد، فرآیند معامله میتواند صورت گیرد. به بیان دیگر، بدون کلید معامله K، جابجایی ارزش (مبلغ) فایل های شمارنده، برای هیچ یک از دو کیف الکترونیکی امکانپذیر نیست.
T تنظیم میشود. گیرنده با دریافت این پیام، تصدیق (اعلام وصول) آن را به فرستنده میفرستد (یعنی .(Ack(Init)در یک روال نرمال، این تصدیق پیش از اینکه تایمر منقضی شود، به فرستنده میرسد.
به این ترتیب، روال مرحله شروع با موفقیت انجام شده و پروتکل می تواند با روال بعدی ادامه یابد.
شکل شماره 3
کلید معامله، وسیلهای است برای ارتباط بین دو کیف الکترونیکی. با توجه به اینکه در یک انتقال، نیاز است که دو جزء با هم ترکیب شوند این ارتباط در هر انتقال پولی ضروری است.
کلیدهای A و B هر کیف، یک راه احراز هویت دوجانبه نرمافزاری فراهم مینمایند، به این معنا که اگر یک نرمافزار کیف الکترونیکی دارای کلید معتبر است، نرمافزار خودش معتبر است. بنابراین نیازی به یک نهاد متمرکز جهت احراز هویت در طی فرآیند پرداخت نیست.این حقیقت، دو نیاز پایهای برای نرمافزار یعنی امکان آفلاین بودن عملیات و گمنامی را تحقق میبخشد.
هر دو کلید برای تأمین امنیت در مقابل کاربران غیر قابل اطمینان که در تلاشند مقدار پول الکترونیکی خود را بدون اینکه پرداختی انجام شود، افزایش دهند، مورد نیازند. بنابراین تغییر مقدار فایل شمارنده به علت وجود این خصوصیات، امکانپذیر نیست.
سیستم کامل خیلی بیشتر از دو موجودیت دارد و یک نیاز اساسی این است که هر موجودیت باید توانایی تعامل با دیگری را در سیستم داشته باشد. باید راهی تعریف شود که در آن تعداد زیادی کلید تولید شود، به طوریکه هر جفت آن به کلید معامله K متفاوتی منتج شود. رمزنگاری آستانه نامتقارن این مسئله را حل میکند 19]،.[20
مرحله شروع
اولین روالِفرآیند پرداخت TCP، مرحله شروع است. در طی این روال دو پیام مبادله میشود : Init، پیامی است که فرستنده برای فعال کردن گیرنده میفرستد و همزمان تایمر
مرحلهتوافقِ کلید رمزنگاری
در این مرحلهدو موجودیت به روشی که ذیلاً شرح داده میشود، به کلید معامله K دست مییابند. روشی که در [16] استفاده شده به این صورت است که در آن هر موجودیت باید یک جفت کلید برای خود اختیار کند. سپس با استفاده از روشهای توان رسانی این کلید را بین یکدیگر مبادله میکنند بدون اینکه کسی بر روی خط مطلع شود. اما در روش پیشنهادی ما، راهی برای این عمل پیشنهاد شده که با استفاده از خصوصیات ذاتی عملگر XOR این توافق کلید صورت می گیرد. مزیت این پیاده سازی که در زیر شرح داده میشود در این است که پیچیدگی زمانی به مراتب کمتری نسبت به عملگر توان داشته، و از این لحاظ این پیادهسازی بهینه شده روش ارائه شده در [16] محسوب میشود.
همانطور که در شکل شماره 5 مشاهده میکنید، در مرحله 1، موجودیت A ، تصمیم میگیرد با موجودیت مقابلش به زبان K