کارت مایفر چیست ؟
کارت مایفر ۱K یا mifare 1k اساسا فقط یک دستگاه ذخیره سازی حافظه از نوع RFID است که در آن حافظه به بخش ها و بلوک ها با مکانیزم های امنیتی ساده برای کنترل دسترسی تقسیم می شود و قدرت محاسباتی محدود دارند.که این کارت ها به وسیله کارت خوان های ۱۳٫۵۶Mhz خوانده می شوند
این کارت ها به علت گستردگی بسیاری که امروزه دارن از فروانی زیاد و قیمتی بسیار مناسب دارا هستند
- کارت بدون تماس 1k کارت Read &Write بوده وموج فرکانسی 13/56 MHZ و 16 Segament دارد.
- کارت بدون تماس 4k کارت Read &Write بوده وموج فرکانسی 13/56 MHZ و 64 Segament دارد.
زمان معرفی کارت های MIFARE :
در سال ۱۹۹۴، مایفر به عنوان اولین حافظه داخلیبدون تماس با استاندارد ISO / IEC 14443 از سری کارت های RFID معرفی شد. از آن به بعد، سازمان های دولتی و خصوصی در سراسر جهان از MIFARE به عنوان پایه ای برای انواع سیستم های کارت هوشمند بدون تماس استفاده می کنند.
استاندارد ISO / IEC 14443 چیست؟
یک استاندارد بین المللی است که کارت های هوشمند مورد استفاده برای شناسایی را تعریف می کند و پروتکل های انتقال برای برقراری ارتباط با آن تعریف می شود
این استاندارد در کارت های مانند مایفر و دسفایر استفاده شده است
کاربردهای کارت مایفر :
این کارت ها به طور گسترده ای برای کیف پول الکترونیکی، کنترل دسترسی، کارت شناسایی، حضور و غیاب ، اعتباری ، پارکینگ ، کنترل دسترسی ، کارت شهروندی ، کارت مترو ، کارت وفاداری ، ژتون غذا، حمل و نقل یا خرید بلیط ورزشگاه و غیره مورد استفاده قرار می گیرند.
انواع محصولات مایفر در دنیا
سطوح مختلف امنیتی، ظرفیت حافظه و قابلیتهای کارت مایفر تعیین میکند که محصولات این شرکت در چند دسته قرار گیرند. با توجه به محصولاتی که از این شرکت در بازار موجود است، ما چهار دسته MIFARE Ultralight، MIFARE Classic، MIFARE Plus و MIFARE DESFire را در نظر گرفتهایم که در ادامه به معرفی تک تک آنها خواهیم پرداخت.
مایفر اولترالایت (MIFARE Ultralight)
مایفر اولترالایت تنها ۵۱۲ بیت یا همان ۶۴ بایت حافظه دارد و در آنها امنیت رمزنگاری شده وجود ندارد. حافظهی این کارتها به ۱۶ قسمت ۴ بایتی تقسیم شده است. کارتهای مایفرتولید شده با این تراشهها بسیار ارزان قیمت هستند و اغلب به عنوان بلیط یک بار مصرف برای رویدادهای مهم مانند جام جهانی فوتبال استفاده میشود. تنها ویژگی که در این کارتها وجود دارد، امنیت بر اساس بیتهای یکبار مصرف است که تنها یکبار میتوانید اطلاعات آنها را درج و حذف کنیم. البته هنوز هم این اطلاعات شامل رمزنگاری نمیشود.
نسل اول این کارتها، از آن زمان تا به حال توسط MIFARE Ultralight EV1 جایگزین شده است. این نسخه EV1 جدیدتر است و کاملاً با تمام سیستمهای MIFARE Ultralight سازگار است که شامل یک امضای دیجیتال برای اطمینان از اینکه تراشه یک محصول واقعی NXP است.
مایفر کلاسیک (MIFARE Classic)
کارت مایفر کلاسیک اساس آن فقط یک ابزار ذخیره سازی است که در آن حافظه کارت به بخشها و بلوکهای مختلف با مکانیزم های امنیتی ساده برای کنترل دسترسی تقسیم شده است. این کارتها مبتنی بر ASIC هستند و قدرت محاسباتی محدود دارند. به لطف قابلیت اطمینان و هزینه کم، این کارتها به طور گستردهای برای کیف پول الکترونیکی، کنترل دسترسی، کارت شناسایی، حمل و نقل یا خرید بلیط استادیوم مورد استفاده قرار میگیرند.
کارت MIFARE Classic 1K، که به عنوان کارت 1K Mifare شناخته میشود، 1،024 بایت فضای ذخیره سازی دادهها را به 16 بخش تقسیم میکند؛ هر بخش توسط دو کلید مختلف محافظت میشود که A و B نامیده میشوند.
کارت مایفر کلاسیک نیز تکامل یافته است، در حال حاضر به عنوان Mifare کلاسیک EV1 1K شناخته شده و نشان دهنده بالاترین تکامل از خانواده محصول کلاسیک MIFARE پس از تمام نسخههای قبلی است.
مایفر پلاس (MIFARE Plus)
کارت مایفر پلاس امنیت AES را برای کارتهای این شرکت به ارمغان آورده که در برنامه کارتهای هوشمند بدون تماس اهمیت دارد. این وضعیت باعث شده است که کارتهای مایفر کلاسیک نسبت به حالت پایه خود فاصله گرفته و از یک نسخه بهتر از آنها ارائه شود. این کارتها با سیستمهای مطابق با کارت مایفر کلاسیک مطابقت کامل دارد و نسبت به سیستمهای قبلی از ارتقاء امنیتی بالاتری برخوردار است.
حافظه کارت مایفر ۱K :
کارت مایفر ۱K یا ( MIFARE Classic with 1K memory) دارای ۱۰۲۴ بایت حافظه است که به ۱۶ سکتور (sectors) از سکتور ۰ تا سکتور ۱۵ تقسیم می شود و هر سکتور شامل ۴ بلاک ۱۶ بایتی است. که بلاک چهارم هر سکتور پسورد آن سکتور می باشد
بنابراین برای خواندن و نوشتن روی کارت های مایفر ابتدا باید شماره سکتور بعد پسورد آن سکتور و سپس شماره بلاکی قست خواندن آن را دارین آگاهی داشته باشیم
تقسیم بندی بلاک پسورد در کارت مایفر :
بلاک پسورد یا پلاک چهارم هر سکتور شامل دو کلید مختلف A و B است .
هر کلید می تواند برنامه ریزی شود تا عملیات مانند خواندن، نوشتن، افزایش و غیره انجام شود که این تعیین وظایف به وسیله بیت های دسترسی Access bits تعیین می گرد
پسورد شامل ۶ بایت کلید A ، تعداد ۴ بایت بیت های دسترسی و ۶ بایت کلید B می باشد
توجه فرمایید برای تعویض پسورد یک سکتور هر تو کلید A و B را تعویض کنید که در غیر اینصورت با یکی از کلید های دیگر امکان دسترسی به محتوای سکتور ها وجود دارد و همچنین توصیه می گردد جهت بالا بردن ایمنی کارت تمام سکتور ها و تمام کلید های A و B را عوض کنید
کارت های Mifare Classic دارای یک کیلو بایت حافظه داخلی است که کاربر با استفاده از آن قادر است دادهای مشخصی را با نکات مشخصی در آن ذخیره و یا بازیابی کند.
حافظه کارت های مایفر از نوع Eeprom می باشند ، این نوع حافظه با قطع برق داده ها را ده ها سال در خود نگه می دارد بی آن که به آن خدشه ای وارد شود و البته قابلیت ویرایش داده ها را نیز دارد ! البته هر کارت داری یک قسمت Rom هم هست که اصلاعات اصلی آن توسط شرکت در آن قسمت برنامه ریزی شده است و به هیچ عنوان قابل برنامه ریزی توسط کاربر نیست ، این قسمت که UID نام دارد در واقع در بر دارنده یک عدد منحصر به فرد است که هر کارت را از دیگری مجزا می کند.
بلوک صفر از سکتور صفر در هر کارت در بر دارنده اطلاعات شرکت تولید کننده و شناسه کارت می باشد ؛ این بلوک قابل نوشتن نیست و فقط کاربر قادر به خواندن است. ساختار ذخیره سازی داده ها در این بلوک را در تصویر زیر می توانید مشاهده کنید.
کارت های مایفر (Classic) هفت بایت نخست از بلوک صفرِ سکتورِ صفر مشخص کننده UID یا همان شناسه منحصر به فرد کارت است.
هر سکتور داری 4 بلاک است که بلاک آخر از هر سکتور جهت نگهداری کلید های امنیتی است ، هر سکتور دو کلید امنیتی دارد که توسط بیت های Access در سکتور آخر قابل برنامه ریزی هستند ، مثلا این که یک سکتور فقط قادر به خواندن اطلاعات باشد ، یکی فقط بتواند بنویسید ، و … ؛ سه بلاک دیگر از سکتور به داده های کاربر اختصاص دارد. برای جزییات بیشتر به تصویر زیر دقت کنید:
هر سکتور دو کلید جداگانه برای دسترسی به اطلاعات خود دارد ؛ پس هر کارت در مجموع داری 32 کلید مجزا است ، با این تکنیک اگر کلیدهای متفاوتی برای هر سکتور در نظر گرفته شود در صورت پیدا شدن هر کدام از کلید ها ، دسترسی به همان سکتور بسته وجود دارد؛ هر کلید شامل 6 بایت است یعنی هر کلید می تواند 2^6 حالت مختلف داشته باشد .
خب تو این جا فرض اینه که شما یه کارت جدید دارین و پسورد و سطح دسترسیش رو تغییر ندادید. تو این سطح دسترسی و پسوردی که این کارت های تازه دارن، میتونیم پسورد 0XFFFFFFFFFFFF رو به هر کلید امنیتی(A یا B) بدیم و اطلاعات بلوک ها رو بخونیم یا تغییر بدیم.(الان این پسوردی که تو این خط تعیین کردم برا هر دو کلید A و B هستش ولی همیشه این طور نیست، ممکنه بعضا کلید A با B فرق داشته باشه و کلید هر سکتور هم با سکتور های دیگه برابر نباشه و سطح دسترسی بولوک ها هم با هم فرق داشته باشه
با استفاده از کلید A اول میام عملیات “اعتبار سنجی” رو انجام میدم و در صورت موفق بودن بعدش میرم سراغ خوندن بلوک مد نظرم.
با کلید B بعد اعتبار سنجی و موفق بودنش میام تو بلوک مد نظرم اطلاعات مد نظرم رو مینویسم و بعد میام همون بلوک رو میخونم.
طریقه اعتبار سنجی اکسس بیته رو در لینک زیر مشاهده کنید
توضیحاتی مختصر در باره سخت افزار کارت
- همون طور که میبینید(عکس بالا رو) 16 تا Sector داریم و تو هر Sector هم 4 تا Block داریم و هر Block هم 16 بایت هستش. (16تا سکتور * 4 تا بلوک * 16بایت = 1024 بایت = اندازه حافظه کارت های مایفر 1k)
- در مکان Sector0 و Block0 از حافظه(عکس بالا!) کد کارخانه کارتمون ( UID = کد اختصاصی هر کارت ) قرار داره و این مکان از حافظه رزرو شده هتسش.
- هر Sector هم به وسیله دو کد با نام های keyA و keyB(که هر کدومشون 6 رقمی هستن!) محافظت میشه و این کد در 4 امین Block از هر Sector قرار داره ( و به این بلوک میگن sector trailer )
- هر کدوم از این کلید های امنیتی داخل هر سکتور میتونن کنترل کنن عملیات خوندن و نوشتن داخل اون سکتور رو.
- قبل انجام هر کاری بر روی کارت ابتدا باید کارت انتخاب بشه و بعد اعتبار سازی بشه!
- هر بلوک کد دسترسی داره!(اول کد رو وارد میکنی و بعد اطلاعات رو بخونی/مینویسی)
- پسورد پیشفرض تمام Sectorهای کارتها به صورت پیشفرض برابر 0xff هستش.
- از سکتور 0 بگیرید تا سکتور 15، حدود 16*4 تا بلوک دارم یعنی 64 تا بلوک، شمارش بوک ها از 0 شروع میشه تا 63، به بلوک 0 سکتور0 آدرس 0 میدن و همین طوری میریم بالا و در آخر به بلوک 3 سکتور 15 آدرسش میشه 63 (تو شکل بالا میبینید که تو هر سکتور شماره بلوک ها از 0 هستش تا 3 !!! )