مقدمهای بر کارتهای هوشمند(قسمت دوم )
نویسنده: امیر رحیقی
قسمت دوم: نحوه عملکرد کارتهای هوشمند
الگوها و برنامهریزیهای جدید در سیستم عامل کارتهای هوشمند، سیستم عامل JavaCard است. این سیستم عامل توسط شرکت Sun Microsystem توسعه داده شده است و بعد از آن در فروم JavaCard گسترش یافته است. این سیستم عامل بسیار مورد توجه است زیرا در معماری برای طراحان و برنامهنویسان استقلال و آزادی عمل فراهم میآورد. همچنین برنامههای کاربردی مبتنی بر سیستم عامل جاوا میتواند برای هر کارتهوشمندی که سیستم عامل JavaCard را پشتیبانی میکند استفاده گردد.
امروزه بیشتر کارتهای هوشمند برای انجام ارتباط و عملیات برنامهریزی شده ، سیستم عامل ویژه خود را استفاده میکنند. اما برای پشتیبانی واقعی از برنامههای کاربردی، سیستمهای عامل کارتهای هوشمند بر اساس عملیاتی که توسط استاندارد جهانی ISO7816 فراهم گردیده، میباشند. با این حال برای انتقال برنامهای که بر اساس تولیدات یک شرکت سازنده کارت فراهم شده، به سیستم تولیدکننده دیگر، کاری سخت و دشوار نیاز خواهد بود.
مزیت دیگر سیستم عامل JavaCard این است که مفهوم انتشار سریع بارکنش برنامه کاربردی را پشتیبانی میکند. این قابلیت امکان بروزرسانی برنامه موجود در کارت بعد از توزیع کارتها به کاربر را فراهم مینماید. نکته مهم این است که برای یک کاربرد خاص، فرد نیاز به کارت هوشمند دارد. اما نیازهای آتی وی، نیاز به تغییر برنامههای روی کارت را موجب خواهد شد که با این سیستم عامل ممکن خواهد بود.
سیستم عامل دیگری که برای کارتهای هوشمند فراهم شده MULTOS(Multi-Application Operating System) یا سیستم عامل چند منظوره است. همچنان که از نام این سیستم برمیآید، این سیستم عامل قابلیت پشتیبانی چندین برنامه کاربردی را دارد. اما این سیستم عامل برای کاربردهایی با امنیت بالا طراحی شده است و در بسیاری از کشورها به ITSec E6 High دست یافته است. شرکت مایکروسافت نیز در این مسیر با سیستم SmartCard for Windows قرار دارد.
این سیستم عاملها، رابطهای برنامههای کاربردی درون کارتها(Card-Side API) هستند برای اجرا نمودن برنامههای کوچک و مبتنی بر کارت روی آنها. اما رابطهای طرف کارتخوان (Reader-Side API)مانند زیرساخت OpenCard و GlobalPlatform نیز ارائه شدهاند.
رابطهای برنامهنویسی برنامههای کاربردی(API) بسیاری برای کارتهای هوشمند فراهم شده است. برخی از آنها عبارتند از:
- CT-API: این رابط به ترمینال استفاده شده روی کارت وابسته است، اما توابع عمومی که اجازه ارتباط و تبادل داده با کارتهای حافظه یا کارتهای پروسسوری را میدهند فراهم مینماید. این API یک رابط سطح پائین(Low-Level API) برای کارتخوان است، اما بدلیل اعمال استاندارد ISO7816 و داشتن منطق برنامهنویسی ساده شبه اسمبلی، هنوز مورد استفاده قرار میگیرد. فقط لازم است تا کدها و بستههای داده ارسال شود و بعد از جواب دریافت خواهد شد!
- PC/SC: گروهکاری PC/Sc مسئول توسعه مشخصات و خصوصیات PC/SC است. رابطهای مناسب و مربوط به ویندوز، MacOS و لینوکس قابل استفاده میباشند.
- OpenCard: چارچوب OpenCard یعنی OCF یک چارچوب شیءگرا برای ارتباط و تبادل داده با کارتهای هوشمند است. OCF از قابلیت میان-عملیاتی جاوا(Java Inter-operability) در بین محیطهای مختلف برای اعمال معماری و رابطهای توسعهدهندگان برنامههای کاربردی یا فراهمآورندگان سرویسها استفاده میکند.
- GlobalPlatform: این رابط در سال 1999 توسط سازمانهایی که به صدور کارتهای چندمنظوره علاقهمند بودند ارائه گردید. مهمترین هدف GlobalPlatform تعریف مشخصات و زیرساخت برای کارتهای هوشمند چند منظوره(Multi-Application) است.
کارتهای هوشمند و PKI
کارتهای هوشمند محلی امن برای نگهداری اطلاعات حساس و مهم از قبیل شناسایی، اطلاعات مالی و اعتباری میباشند، و وقتی شناسایی لازم است، بررسی PKI یا زیرساخت کلید عمومی(Public Key Infrastructure) و کارتهای هوشمند بسیار مهم است.
مثلا در یک شرکت که دارای شعبهها، واحدها و بخشهای بسیاری است و کارکنان در آن به محدودهها و مکانهای مرتبط خود اجازه دسترسی دارند. همچنین کارکنان به شبکه و سرورها برای انجام فعالیتهای خود و کارهای مختلف دسترسی خواهند داشت از قبیل ارسال نامه الکترونیکی، دسترسی به اینترنت، دسترسی به اطلاعات و بانکهای اطلاعاتی. بنابراین کلیدها، کلمههای عبور و کدهای امنیتی مختلفی را کارکنان باید در اختیار داشته باشند و برای استفاده از رستوران شرکت و مکانهای رفاهی باید همیشه پول همراه خود داشته باشند. میتوان با استفاده از کارتهای هوشمند چند منظوره پروسسوری (که سیستمعامل جاوا در آن اجازه این عملیات چندگانه را میدهد) کلیه این عملیات امنیتی و اعتباری را مدیریت نمود. بنابراین شرکت باید یک سیستم مدیریت و گواهی دسترسی(CA, Certificate Authority) محلی فراهم نماید. شکل زیر یک ساختار ساده PKI را شبیه به آنچه در RFC2459 آمده نشان میدهد:
- End entity: کاربر گواهیهای PKI یا/و کاربر سیستمی که موضوع یک گواهی دسترسی است
- RA: اجازه ثبت(RA, Registration Authority). یک سیستم اختیاری که CA برخی از توابع مدیریتی را به آن محول نموده است. (در برخی از پیادهسازیها، جایی که کاربر خود را در سیستم ثبت مینماید)
- CA: گواهی دسترسی
- Repository: یک سیستم یا مجموعهای از سیستمهای توزیع شده که گواهیها و لیستهای لغو گواهی (CLR, Certificate Revocation Lists) را در خود نگه میدارد و وسیلهای جهت توزیع و رساندن این گواهیها به موجودیتهای نهایی است.
کارتهای هوشمند محلی امن برای نگهداری اطلاعات حساس و مهم از قبیل شناسایی، اطلاعات مالی و اعتباری میباشند، و وقتی
شناسایی لازم است، بررسی PKI یا زیرساخت کلید عمومی (Public Key Infrastructure) و کارتهای هوشمند بسیار مهم است.
کارتهای هوشمند دارای مزایا و قابلیتهای بسیاری هستند و این باعث شده است تا بسیار مورد توجه قرارگیرد و کاربردهای آنها بسیار گسترش یابد. برخی از مزایای این کارتها عبارتند از:
- اندازه: اندازه این قبیل کارت کوچک است و نیاز به حمل مدارک و پول را برطرف میسازد.
- امنیت: به دلیل وجود سیستمهای حفاظتی روی کارت نظیر رمزنگاری، از دادههای موجود بر روی آن به خوبی محافظت میشود.
- حجم اطلاعات قابلحمل: کارتهای هوشمند قادرند حجم زیادتری از اطلاعات را در مقایسه با کارتهای مغناطیسی درخود ذخیره کنند.
برخی دیگر از مزایای کارتهای هوشمند غیرتماسی عبارتند از :
• راهکار ایده آل برای Transaction سریع ) مانند Toll collection و Mass Transit )
• امکان برقراری ارتباط در فواصل
• کاربردهای Hand-free
• طول عمر بیشتر کارت و Reader (بدلیل عدم نیاز به تماس مستقیم بین کارت و کارتخوان)
• امکان سرویس به بیش از یک شخص در آن واحد
• جلوگیری از بروز مشکل در استفاده از کارت
امروزه در بسیاری ازکشورها، از کارتهای هوشمند در کاربردهای مختلفی استفاده میشود، این کاربردها به طور کلی به سه دسته طبقهبندی میشوند:
1. کاربردهای شناسایی: از این کارتها برای شناسایی هویت افراد و صاحبان آنها استفاده میشود؛ مثل کارت تردد، کارت پارکینگ.
2. کابردهای مالی
2.1. کارتهای پیشپرداخته: این کارتها را کاربر میخرد و با ارائة آن به دستگاه کارتخوان، به جای پرداخت پول، هزینه موردنظر از موجودی کارت کسر میشود. مانند کارت تلفن همگانی.
2.2. کارتهای بانکی: این کارتها را بانکها به مشتریان خود عرضه میکنند که معرف هویت الکترونیکی مشتری نزد بانک صادرکننده است. با ارائه این کارتها به دستگاههای خودپرداز، مشتری میتواند از خدمات بانک بهرهمند شود.
3. کاربردهای نگهداری اطلاعات: دراین قبیل کارتها، کد شناسایی و اندکی از اطلاعات شخصی فرد درج شده است که با ارائه به دستگاه کارتخوان، از این اطلاعات استفاده میشود. کارتهایی نظیر کارت گواهینامة هوشمند، کارتهای درمان، کارتهای شناسنامه، کارت دانشجویی از این نوع محسوب میشود.
برخی مثالها از کاربردهای کارتهای هوشمند عبارتند از:
• کارت تلفن از نوع Contact
• سیم کارت موبایل
• بانکداری ( کارت های پرداخت Credit و Debit )
• کارت خرید
• پرداخت هزینه کانال های تلویریونی
• حمل و نقل
• کارتهای شناسایی
برای تحقق دولت الکرونیک، هر فرد نیاز به چندین کارت از انواع مذکور دارد؛ کارت مترو، بنزین، اتوبوس شهری، شهربازی، سلامت، شناسایی، گواهینامه، گذرنامه و انواع کارتهای بانکی و... پیشبینی میشود برای تحقق دولت الکترونیک این تعداد به بیش از پانزده کارت برای هر نفر برسد. یعنی هر فرد باید همزمان چندین کارت همراه خود داشته باشد که هر کارت توسط یک سازمان یا شرکت ارائه شده است. شهروند برای تهیه و یا اصلاح هرکدام از آنها باید به محل صدور آن رفته و هزینهای جداگانه بپردازد.
این تعدد کارت مشکلاتی به همراه دارد از جمله:
o صرف هزینه جداگانه برای صدور هریک
o بالارفتن احتمال گم شدن یا سرقت کارت
o زحمت بیشتر شهروندان در حمل آنها و درنتیجه استقبال کمتر از آنها
o بالا رفتن مراجعات اداری شهروندان به ادارات و موسسات صادر کننده کارت
o سردرگمی شهروندان در به خاطر سپردن رمز هر کارت
طرح تجمیع کارتهای مذکور راه حلی برای حل مشکلات فوق است و علاوه برآن باعث بالا رفتن ضریب ایمنی میشود؛ زیرا وقتی بهجای چندین کارت متعدد برای هرفرد دو یا سه کارت صادر شود:
o میتوان در طراحی و ساخت آن کارت تدابیر امنیتی بیشتری در نظر گرفت تا احتمال جعل و سوءاستفاده آنها کمتر شود.
o چون تعداد کارتهایی که هر نفر با خود حمل میکند اندک است احتمال گم شدن و یا فراموش شدن رمز آنها کمتر میشود.
برای تجمیع و ادغام کارتهایی که در عصر فناوری اطلاعات هر نفر میتواند داشته باشد و یکی از ملزومات دولت الکترونیک است، میتوان کارتهایی را که از حیث کارکرد در یک دسته قرار میگیرند را در هم ادغام کرد. به عنوان مثال یک کارت هوشمند چندمنظوره درکاربردهای زیر استفاده میشود:
ü به عنوان کارت شناسایی ملی و گواهینامه رانندگی
ü برای نگهداری اطلاعات گذرنامه (بدون اینکه جایگزین گذرنامه شود)
ü نگهداری اطلاعات و سوابق پزشکی افراد
ü پرداخت عوارض بزرگراهها، هزینة سیستمهای حمل و نقل عمومی و غیره
ü انجام تعاملات بانکی (استفاده از دستگاههای خودپرداز یاATM )
ü پرداخت هزینه خریدهای مختصر
فرآیند توسعه استانداردهای کارتهای هوشمند به صورت پیوسته ادامه دارد. برخی از استانداردهای موجود در خصوص سیستمهای کارتهوشمند عبارتند از:
· Contact Smart Card
o ISO 78016
o ISO 7810
مشخص کننده شکل فیزیکی کارت ،اجزای الکتریکی، پروتکل های ارتباطی و شکل فرامین ارسالی و دریافتی
· Contactless Smart Card
o ISO 14443
استاندارد کارتهایی که می توانند با فاصله حداکثر 10 سانتی متر از Reader قرار بگیرد.
o ISO 15693
استاندارد کارتهایی که می توانند با فاصله بیش از 10 سانتی متر از Reader قرار بگیرد.
از استانداردهایی که بیشتر مورد ارجاع و بحث است، استاندارد ISO-7816 است. این استاندارد ISO در مورد بررسی "کارتهای شناسایی، کارتهای مدار مجتمع تماسی" است و شامل قسمتهای مختلفی است. 5 قسمت اولین آن در پیوست این سند آمده است.