قسمت دوم: نحوه عملكرد كارتهاي هوشمند
سيستم عامل
الگوها و برنامهريزيهاي جديد در سيستم عامل كارتهاي هوشمند، سيستم عامل 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 آمده نشان ميدهد:
- RA: اجازه ثبت(RA, Registration Authority). يك سيستم اختياري كه CA برخي از توابع مديريتي را به آن محول نموده است. (در برخي از پيادهسازيها، جايي كه كاربر خود را در سيستم ثبت مينمايد)
- CA: گواهي دسترسي
- Repository: يك سيستم يا مجموعهاي از سيستمهاي توزيع شده كه گواهيها و ليستهاي لغو گواهي (CLR, Certificate Revocation Lists) را در خود نگه ميدارد و وسيلهاي جهت توزيع و رساندن اين گواهيها به موجوديتهاي نهايي است.
كارتهاي هوشمند محلي امن براي نگهداري اطلاعات حساس و مهم از قبيل شناسايي، اطلاعات مالي و اعتباري ميباشند، و وقتي
شناسايي لازم است، بررسي PKI يا زيرساخت كليد عمومي (Public Key Infrastructure) و كارتهاي هوشمند بسيار مهم است.
نويسنده: امير رحيقي(Amirr@sgnec.net )
ناشر: مهندسي شبكه همكاران سيستم (مشورت)