● معرفی، ساختار
کارت هوشمند معمولا کارتی از جنس PVC با ابعادی در حدود ۵/۵ در ۵/۸ سانتیمتر است که بر روی آن یا در بین لایههای آن، تراشههای حافظه و ریزپردازنده برای ذخیرهسازی دادهها و پردازش آنها قرارداده شده است. یک کارت هوشمند کامپیوتر کوچکی است که بر روی یک کارت پلاستیکی نصب شده است. قرار دادن یک تراشه در کارت به جای نوار مغناطیسی، آن را تبدیل به یک کارت هوشمند با کاربردهای گوناگون مینماید. این کارتها به دلیل دارا بودن تراشه، قابلیت کنترل عملکرد را داشته و علاوه بر نگهداری اطلاعات شخصی و تجاری کاربر، امکان پردازش را نیز فراهم مینماید.
اختراع کارت هوشمند را برای اولین بار فردی فرانسوی با نام رولاند مورنو در سال ۱۹۷۴ به ثبت رساند. از آن زمان به بعد، شرکتهایی نظیر Bull، Honeywell،Motorola دراین زمینه به فعالیت پرداختند و در نتیجة فعالیتهای آنها، در سال ۱۹۷۹ اولین کارت هوشمند ریزپردازندهای ساخته شد. اولین استاندارد برای کارت هوشمند در سال ۱۹۸۶ و با عنوان ISO ۷۸۹۱۱۶/۱ مطرح شد. استفاده از کارت هوشمند در سطح ملی برای نخستین بار در فرانسه در سال ۱۹۸۶ و برای کارتهای اعتباری تلفن انجام گرفت. پس از آن، از اوایل دهة ۹۰ میلادی، استفاده از کارتهای هوشمند درکشورهای مختلف رواج پیدا کرد و به تدریج کاربردهای جدیدی برای آن پیدا شد.
● بررسی ساختار و انواع
کارتهوشمند کارتی است که از یک ریزپردازنده و چیپ حافظه و یا فقط چیپ حافظه (بدون منطق برنامهپذیر) تشکیل شده است. کارت دارای ریزپردازنده میتواند اطلاعات روی کارت را اضافه، تغییر، حذف و مدیریت نماید، درحالیکه کارت فقط دارای حافظه (مانند کارتهای اعتباری تلفن)، میتواند فقط یک عملیات از پیش تعریف شده را قبول کند.
کارتهای هوشمند برخلاف کارتهای نوار مغناطیسی، میتوانند کلیه توابع عملیاتی و اطلاعات مربوطه را در خود داشته باشند، بنابراین در زمان انجام تراکنش نیاز به ارتباط با بانک اطلاعاتی نخواهد داشت. در حال حاضر سه گروه (بر اساس نوع تراشه بکار رفته در آن، حافظه و ریزپردازنده) از کارتهای هوشمند در کاربردهای مختلف در دنیا و به صورت گسترده مورد استفاده قرار میگیرند:
ـ کارتهای دارای ریزپردازنده مدار مجتمع(Integrate Circuit (IC) Microprocessor Cards): کارتهای ریزپردازنده (همچنین عموما در صنعت بنام chip card نامبرده میشود) حافظه ذخیرهسازی و امنیت بیشتر ی را نسبت به کارتهای نوار مغناطیسی فعلی ارائه میکند. این نوع کارتها همچنین میتوانند داده روی کارت را پردازش نمایند. نسل فعلی و تجاری این کارتها دارای پردازنده ۸ بیتی، ۱۶ کیلوبایت حافظه فقط-خواندنی و ۵۱۲ بایت حافظه دسترسی تصادفی (RAM) میباشند، که به آنها قابلیت پردازشی معادل کامپیوترهای IBM-XT (البته با حافظه کمتر) را میدهد.
این کارتها برای کاربردهای بسیار گوناگونی استفاده میشوند، بخصوص کاربردهایی که در خود رمزنگاری داشته و نیاز به مدیریت و محاسبات روی اعداد بزرگ را دارند. بنابراین چیپ کارتها زیرساخت کارتهایی که ابزار شناسایی دیجیتال و امن را در خود دارند، میباشند. برخی از کاربردهای این نوع کارتها عبارتند از:
▪ کارتهای اعتباری و حاوی اطلاعات مالی
▪ کارتهای امنیتی و دسترسی شبکه
▪ کارتهای تلفنهای سلولار (SIM Cards)
▪ نگهداری سیستمعامل کارت هوشمند
▪ نگهداری موقت دادهها
▪ نگهداری برنامة کاربردی و دادههای مرتبط با آن
▪ Security Logic: مهمترین قسمتهای آن پردازنده امنیتی(Random Generator) و تولید کننده اعداد تصادفی(Random Generator)است.
واحد واسطة (Interface) این کارت ممکن است به یکی از صورتهای تماسی، غیرتماسی و یا ترکیبی باشد که وظیفة برقراری ارتباط با محیط خارج از کارت را برعهده دارد. در شکل (۲) نحوة ارتباط یک واحد واسطة تماسی با CPU و واحدهای حافظه نمایش داده شده است:
ـ کارتهای دارای حافظه مدار مجتمع(Integrate Circuit (IC) Memory Cards): کارتهای حافظه مدار مجتمع میتوانند ۱ تا ۴ کیلو بایت از داده را درخود نگهدارند، ولی هیچ پردازندهای روی کارت برای عملیات روی داده ندارند. بنابراین این نوع کارتها برای انجام پردازش وابسته به کارتخوان (که همچنین دستگاه گیرنده کارت نیز نامیده میشود) میباشند و برای کاربردهایی که در آن کارت یک عملیات ثابتی را انجام میدهد مناسب میباشند.
ـ کارتهای دارای حافظه نوری(Optical Memory Cards): این نوع کارتها شبیح یک دیسک فشرده است که در بالای کارت چسبانده شده است. کارتهای حافظه نوری میتوانند تا ۴MB اطلاعات ذخیره کنند، ولی یکبار قابل نوشتن میباشند و داده قابل ویرایش یا حذف نمیباشد. این نوع کارتها برای کاربردهایی که نیاز به ثبت سوابق است بسیار مناسب میباشند، مانند پروندههای پزشکی، کارتهای رانندگی و یا سوابق مسافرتی. در حال حاضر این نوع کارتها هیچ پردازندهای ندارند (هرچند که بزودی انواع دارای حافظه نیز عرضه خواهد شد). با وجود اینکه این نوع کارتها از نظر قیمت با کارتهای تراشه قابل رقابت میباشد، اما کارتخوانها از پروتکلهای غیر استاندارد استفاده میکنند و گران میباشند.
● کارتهای هوشمند همچنین بر اساس نحوه ارتباط با کارتخوان به صورت زیر دستهبندی شده است:
ـ کارتهای هوشمند تماسی(Contact Smart Card): برای استفاده از این قبیل کارتها، باید اتصال فیزیکی بین کارت و دستگاه کارتخوان برقرار گردد. دادههای موجود برروی کارت به صورت سریال به کارتخوان ارسال میشود و پس از پردازش، اطلاعات جدید از طریق همان پورت به روی کارت منتقل میشود. به عنوان نمونه، کارتهای تلفن عمومی جزو این دسته محسوب میشوند. مشکل اصلی این قبیل کارتها، خراب شدن کنتاکتهای فلزی (محلهای تماس) بر اثر عوامل خارجی نظیر ضربه و شرایط فیزیکی محیط است.
- کارتهای هوشمند غیرتماسی(Contactless Smart Card): در این نوع کارت هوشمند، ارتباط بین کارت و کارتخوان بهصورت فیزیکی بر قرار نمیشود؛ بلکه از طریق میدانهای الکترومغناطیسی و یا امواج RF صورت میگیرد. برای برقرای ارتباط، آنتن مخصوصی بین تراشههای کارت قرار داده شده است که در فاصلههای کم، تا حدود ۵۰ سانتیمتر، میتواند ارتباط ایجاد کند. کاربرد اصلی این قبیل کارتها در مواردی است که عملیات مورد نظر باید سریع انجام گیرد، به عنوان نمونه میتوان به کارتهای مترو اشاره کرد. مزیت اصلی این قبیل کارتها علاوه بر سهولت استفاده، عمر طولانیتر و ضریب ایمنی بالاتر آن است؛ زیرا در این نوع کارت، تراشه به همراه آنتن در میان لایههای تشکیلدهندة کارت قرار میگیرد.
هر دو نوع دستگاههای کارتخوان سازگار است. از این نوع کارتها برای ساخت کارتهای چندمنظوره استفاده می شود.
● نحوه عملکرد کارتهای هوشمند
▪ سیستم عامل
الگوها و برنامهریزیهای جدید در سیستم عامل کارتهای هوشمند، سیستم عامل JavaCard است. این سیستم عامل توسط شرکت Sun Microsystem توسعه داده شده است و بعد از آن در فروم JavaCard گسترش یافته است. این سیستم عامل بسیار مورد توجه است زیرا در معماری برای طراحان و برنامهنویسان استقلال و آزادی عمل فراهم میآورد. همچنین برنامههای کاربردی مبتنی بر سیستم عامل جاوا میتواند برای هر کارتهوشمندی که سیستم عامل JavaCard را پشتیبانی میکند استفاده گردد.
امروزه بیشتر کارتهای هوشمند برای انجام ارتباط و عملیات برنامهریزی شده ، سیستم عامل ویژه خود را استفاده میکنند. اما برای پشتیبانی واقعی از برنامههای کاربردی، سیستمهای عامل کارتهای هوشمند بر اساس عملیاتی که توسط استاندارد جهانی ISO۷۸۱۶ فراهم گردیده، میباشند. با این حال برای انتقال برنامهای که بر اساس تولیدات یک شرکت سازنده کارت فراهم شده، به سیستم تولیدکننده دیگر، کاری سخت و دشوار نیاز خواهد بود.
مزیت دیگر سیستم عامل JavaCard این است که مفهوم انتشار سریع بارکنش برنامه کاربردی را پشتیبانی میکند. این قابلیت امکان بروزرسانی برنامه موجود در کارت بعد از توزیع کارتها به کاربر را فراهم مینماید. نکته مهم این است که برای یک کاربرد خاص، فرد نیاز به کارت هوشمند دارد. اما نیازهای آتی وی، نیاز به تغییر برنامههای روی کارت را موجب خواهد شد که با این سیستم عامل ممکن خواهد بود.
سیستم عامل دیگری که برای کارتهای هوشمند فراهم شده MULTOS(Multi-Application Operating System) یا سیستم عامل چند منظوره است. همچنان که از نام این سیستم برمیآید، این سیستم عامل قابلیت پشتیبانی چندین برنامه کاربردی را دارد. اما این سیستم عامل برای کاربردهایی با امنیت بالا طراحی شده است و در بسیاری از کشورها به ITSec E۶ High دست یافته است. شرکت مایکروسافت نیز در این مسیر با سیستم SmartCard for Windows قرار دارد.
این سیستم عاملها، رابطهای برنامههای کاربردی درون کارتها(Card-Side API) هستند برای اجرا نمودن برنامههای کوچک و مبتنی بر کارت روی آنها. اما رابطهای طرف کارتخوان (Reader-Side API)مانند زیرساخت OpenCard و GlobalPlatform نیز ارائه شدهاند.
● برنامهنویسی
رابطهای برنامهنویسی برنامههای کاربردی(API) بسیاری برای کارتهای هوشمند فراهم شده است. برخی از آنها عبارتند از:
-CT-API: این رابط به ترمینال استفاده شده روی کارت وابسته است، اما توابع عمومی که اجازه ارتباط و تبادل داده با کارتهای حافظه یا کارتهای پروسسوری را میدهند فراهم مینماید. این API یک رابط سطح پائین(Low-Level API) برای کارتخوان است، اما بدلیل اعمال استاندارد ISO۷۸۱۶ و داشتن منطق برنامهنویسی ساده شبه اسمبلی، هنوز مورد استفاده قرار میگیرد. فقط لازم است تا کدها و بستههای داده ارسال شود و بعد از جواب دریافت خواهد شد!
ـ PC/SC: گروهکاری PC/Sc مسئول توسعه مشخصات و خصوصیات PC/SC است. رابطهای مناسب و مربوط به ویندوز، MacOS و لینوکس قابل استفاده میباشند.
ـ OpenCard: چارچوب OpenCard یعنی OCF یک چارچوب شیءگرا برای ارتباط و تبادل داده با کارتهای هوشمند است. OCF از قابلیت میان-عملیاتی جاوا(Java Inter-operability) در بین محیطهای مختلف برای اعمال معماری و رابطهای توسعهدهندگان برنامههای کاربردی یا فراهمآورندگان سرویسها استفاده میکند.
ـ GlobalPlatform: این رابط در سال ۱۹۹۹ توسط سازمانهایی که به صدور کارتهای چندمنظوره علاقهمند بودند ارائه گردید. مهمترین هدف GlobalPlatform تعریف مشخصات و زیرساخت برای کارتهای هوشمند چند منظوره(Multi-Application) است.
● کارتهای هوشمند و PKI
کارتهای هوشمند محلی امن برای نگهداری اطلاعات حساس و مهم از قبیل شناسایی، اطلاعات مالی و اعتباری میباشند، و وقتی شناسایی لازم است، بررسی PKI یا زیرساخت کلید عمومی(Public Key Infrastructure) و کارتهای هوشمند بسیار مهم است.
مثلا در یک شرکت که دارای شعبهها، واحدها و بخشهای بسیاری است و کارکنان در آن به محدودهها و مکانهای مرتبط خود اجازه دسترسی دارند. همچنین کارکنان به شبکه و سرورها برای انجام فعالیتهای خود و کارهای مختلف دسترسی خواهند داشت از قبیل ارسال نامه الکترونیکی، دسترسی به اینترنت، دسترسی به اطلاعات و بانکهای اطلاعاتی. بنابراین کلیدها، کلمههای عبور و کدهای امنیتی مختلفی را کارکنان باید در اختیار داشته باشند و برای استفاده از رستوران شرکت و مکانهای رفاهی باید همیشه پول همراه خود داشته باشند. میتوان با استفاده از کارتهای هوشمند چند منظوره پروسسوری (که سیستمعامل جاوا در آن اجازه این عملیات چندگانه را میدهد) کلیه این عملیات امنیتی و اعتباری را مدیریت نمود. بنابراین شرکت باید یک سیستم مدیریت و گواهی دسترسی(CA, Certificate Authority) محلی فراهم نماید. شکل زیر یک ساختار ساده PKI را شبیه به آنچه در RFC۲۴۵۹ آمده نشان میدهد:
- 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 (بدلیل عدم نیاز به تماس مستقیم بین کارت و کارتخوان)
▪ امکان سرویس به بیش از یک شخص در آن واحد
▪ جلوگیری از بروز مشکل در استفاده از کارت
امروزه در بسیاری ازکشورها، از کارتهای هوشمند در کاربردهای مختلفی استفاده میشود، این کاربردها به طور کلی به سه دسته طبقهبندی میشوند:
۱) کاربردهای شناسایی: از این کارتها برای شناسایی هویت افراد و صاحبان آنها استفاده میشود؛ مثل کارت تردد، کارت پارکینگ.
۲) کابردهای مالی
۲.۱) کارتهای پیشپرداخته: این کارتها را کاربر میخرد و با ارائة آن به دستگاه کارتخوان، به جای پرداخت پول، هزینه موردنظر از موجودی کارت کسر میشود. مانند کارت تلفن همگانی.
۲.۲) کارتهای بانکی: این کارتها را بانکها به مشتریان خود عرضه میکنند که معرف هویت الکترونیکی مشتری نزد بانک صادرکننده است. با ارائه این کارتها به دستگاههای خودپرداز، مشتری میتواند از خدمات بانک بهرهمند شود.
۳) کاربردهای نگهداری اطلاعات: دراین قبیل کارتها، کد شناسایی و اندکی از اطلاعات شخصی فرد درج شده است که با ارائه به دستگاه کارتخوان، از این اطلاعات استفاده میشود. کارتهایی نظیر کارت گواهینامة هوشمند، کارتهای درمان، کارتهای شناسنامه، کارت دانشجویی از این نوع محسوب میشود.
برخی مثالها از کاربردهای کارتهای هوشمند عبارتند از:
▪ کارت تلفن از نوع Contact
▪ سیم کارت موبایل
▪ بانکداری ( کارت های پرداخت Credit و Debit )
▪ کارت خرید
▪ پرداخت هزینه کانال های تلویریونی
▪ حمل و نقل
▪ کارتهای شناسایی
● کارتهای هوشمند چند منظوره
برای تحقق دولت الکرونیک، هر فرد نیاز به چندین کارت از انواع مذکور دارد؛ کارت مترو، بنزین، اتوبوس شهری، شهربازی، سلامت، شناسایی، گواهینامه، گذرنامه و انواع کارتهای بانکی و... پیشبینی میشود برای تحقق دولت الکترونیک این تعداد به بیش از پانزده کارت برای هر نفر برسد. یعنی هر فرد باید همزمان چندین کارت همراه خود داشته باشد که هر کارت توسط یک سازمان یا شرکت ارائه شده است. شهروند برای تهیه و یا اصلاح هرکدام از آنها باید به محل صدور آن رفته و هزینهای جداگانه بپردازد.
● این تعدد کارت مشکلاتی به همراه دارد از جمله:
▪ صرف هزینه جداگانه برای صدور هریک
▪ بالارفتن احتمال گم شدن یا سرقت کارت
▪ زحمت بیشتر شهروندان در حمل آنها و درنتیجه استقبال کمتر از آنها
▪ بالا رفتن مراجعات اداری شهروندان به ادارات و موسسات صادر کننده کارت
▪ سردرگمی شهروندان در به خاطر سپردن رمز هر کارت
طرح تجمیع کارتهای مذکور راه حلی برای حل مشکلات فوق است و علاوه برآن باعث بالا رفتن ضریب ایمنی میشود؛ زیرا وقتی بهجای چندین کارت متعدد برای هرفرد دو یا سه کارت صادر شود:
▪ میتوان در طراحی و ساخت آن کارت تدابیر امنیتی بیشتری در نظر گرفت تا احتمال جعل و سوءاستفاده آنها کمتر شود.
▪ چون تعداد کارتهایی که هر نفر با خود حمل میکند اندک است احتمال گم شدن و یا فراموش شدن رمز آنها کمتر میشود.
برای تجمیع و ادغام کارتهایی که در عصر فناوری اطلاعات هر نفر میتواند داشته باشد و یکی از ملزومات دولت الکترونیک است، میتوان کارتهایی را که از حیث کارکرد در یک دسته قرار میگیرند را در هم ادغام کرد. به عنوان مثال یک کارت هوشمند چندمنظوره درکاربردهای زیر استفاده میشود:
▪ به عنوان کارت شناسایی ملی و گواهینامه رانندگی
▪ برای نگهداری اطلاعات گذرنامه (بدون اینکه جایگزین گذرنامه شود)
▪ نگهداری اطلاعات و سوابق پزشکی افراد
▪ پرداخت عوارض بزرگراهها، هزینة سیستمهای حمل و نقل عمومی و غیره
▪ انجام تعاملات بانکی (استفاده از دستگاههای خودپرداز یاATM )
▪ پرداخت هزینه خریدهای مختصر
● استانداردهای کارتهای هوشمند
فرآیند توسعه استانداردهای کارتهای هوشمند به صورت پیوسته ادامه دارد. برخی از استانداردهای موجود در خصوص سیستمهای کارتهوشمند عبارتند از:
▪ Contact Smart Card
▪ ISO ۷۸۰۱۶
▪ ISO ۷۸۱۰
● مشخص کننده شکل فیزیکی کارت ،اجزای الکتریکی، پروتکل های ارتباطی و شکل فرامین ارسالی و دریافتی
▪ Contactless Smart Card
▪ ISO ۱۴۴۴۳
● استاندارد کارتهایی که می توانند با فاصله حداکثر ۱۰ سانتی متر از Reader قرار بگیرد.
▪ ISO ۱۵۶۹۳
● استاندارد کارتهایی که می توانند با فاصله بیش از ۱۰ سانتی متر از Reader قرار بگیرد.
از استانداردهایی که بیشتر مورد ارجاع و بحث است، استاندارد ISO-۷۸۱۶ است. این استاندارد ISO در مورد بررسی "کارتهای شناسایی، کارتهای مدار مجتمع تماسی" است و شامل قسمتهای مختلفی است. ۵ قسمت اولین آن در پیوست این سند آمده است.