به طور پیش فرض ، کارت بعلاوه صادر شده توسط nxp یک کارت غیر اولیه در سطح L0 است. در این زمان ، عملیات فعال نشان می دهد که از مشخصات کارت CPU ISO1443-4 پشتیبانی می کند (ATQA: 02 00 ، SAK: 20 UID: CD 65 E5 03) ، هنگام اجرای AES مربوط به نوشتن پس از شروع کلید و بلوک داده و متعهد ، آن را وارد سطح امنیتی L1 می کند. عملکرد فعال آن ویژگی های کارت M1S70 را نشان می دهد (ATQA: 02 00 ، SAK: 18 UID: CD 65 E5 03) ، اما در واقع هنوز هم می تواند از ISO1443-4 پشتیبانی کند ، موش ها با موفقیت اعدام می شوند (همچنین باید پشتیبانی شود ، در غیر این صورت عملیات SwitchL2 و switch3 قابل انجام نیست). پس از احراز هویت سوئیچ L2 در سطح L1 انجام شده و به سطح L2 تبدیل می شود ، مقدار بازگشتی پس از عمل فعال است (ATQA: 02 00 SAK: 11 ، UID: CD 65 E5 03). در این زمان ، اگر چنین SAK منطبقی در درایور موجود وجود نداشته باشد ، نوع کارت ناشناخته ای خواهد بود. پس از انجام احراز هویت سوئیچ 3 در سطح امنیتی L2 ، کارت به سطح امنیتی L3 ارتقا می یابد و مقدار برگشتی (ATQA: 02 00 ، SAK: 20 ، UID: CD 65 E5 03) است.
عملیات سطح L1 و L2 را در حالت فعال (لایه ISO14443-3) اجرا کنید. وقتی کارت در سطح L1 باشد ، رابط های مربوط به M1 می توانند به طور کامل پیاده سازی شوند ، یا ابتدا می توان گواهینامه AES SL1 را انجام داد و سپس گواهی M1 را انجام داد. پس از انجام احراز هویت AES SL1 ، نیازی به ایجاد پایه کلید جلسه و محاسبه با کلید M1 برای بدست آوردن کلید M1 جدید به عنوان کلید احراز هویت واقعی M1 نیست ، فقط از کلید اصلی M1 مستقیم استفاده کنید (این نکته با L2 متفاوت است مرحله).
در سطح L0 ، کد بازگشت PICC پس از اجرا ACK / NAK مطابق با کارت M1 است ، این یک کد بازگشتی نیش دار و بدون CRC است ، بنابراین هنگامی که چک CRC روشن است ، یک خطای CRC رخ می دهد.
در مراحل احراز هویت سطح L1 AES SL1 ، هنگامی که اجرا صحیح باشد ، کد بازگشتی و اطلاعات را با CRC برمی گرداند و در صورت بروز خطا (خطای کلیدی AES ، خطای رمزگشایی RNDB و غیره) ، NAK را برمی گرداند با کارت M1 سازگار است ، که یک نیم بایت است و هیچ خطای CRC وجود ندارد ، بنابراین هنگامی که چک CRC روشن است ، یک خطای CRC رخ می دهد.
دستورالعمل switchL2 در سطح ISO14443-4 اجرا می شود. پس از موفقیت آمیز بودن اجرا ، PICC وارد سطح امنیتی L2 می شود. در این زمان ، دستورالعمل switchL2 در اولین انتقال Cmd + BNo + LenCap + PCDCap2 اجرا می شود که دو بایت وضعیت 0x02، 0x09 را برمی گرداند. 0x09 را می توان به عنوان یک شماره بلوک نامعتبر درک کرد ، اما 0x02 قابل درک نیست.
در سطح L2 ، همانطور که در کتابچه راهنما بیان شده است ، احراز هویت AES باید قبل از احراز هویت M1 انجام شود و 6 بایت پایین پایه کلید جلسه تولید شده توسط AES با کلید M1 بلوک واقعی XOR می شوند تا به احراز هویت واقعی بلوک M1 تبدیل شوند کلید بعد از آزمایش ، نوع کلید AES باید با نوع کلید M1 مطابقت داشته باشد (یعنی هر دو A یا B هستند) ، در غیر این صورت احراز هویت M1 از کار می افتد! وقتی کلیدهای AES و M1 انواع و مقادیر را دارندبخش A با بخش B سازگار است ، دسترسی به بخش B پس از احراز هویت بخش A با دسترسی به بخش A سازگار است و نیازی به دسترسی به بخش B نیست.
در هنگام خطایابی mifPLAuthInPro در سطح امنیتی L2 ، هنگامی که s_AESCbcEnDecrypt فراخوانی می شود ، پس از رمزگذاری و رمزگشایی ، ورودی iv بازنویسی می شود ، در نتیجه رمزگذاری و رمزگشایی بعدی تغییر می کند و رمزگذاری و رمزگشایی با شکست مواجه می شود! باید به ارزش iv توجه کنید!
در سطح امنیتی L2 ، احراز هویت اجباری کلید AES + باید نوع کلید AES را با نوع کلید M1 مطابقت دهد (یعنی کلید AES TypeA + کلید M1 TypeA یا کلید AES TypeB {{6}) } کلید M1 TypeB مانند کلید AES TypeA + احراز هویت کلید M1 TypeB حتی در صورت درست بودن کلیدها از کار می افتد!)
پس از اتمام خطایابی سطح L2 ، می توانید FirstAuth را به طور مکرر انجام دهید ، و مقدار TI بدست آمده توسط FirstAuth هر بار متفاوت است. پس از انجام یک تأیید اعتبار صحیح FirstAuth و بدست آوردن TI ، می توان followAuth صحیح را انجام داد (followAuth 39 ؛ iv براساس احراز هویت FirstAuth است). بعد از اینکه FirstAuth صحیح یک بار اجرا شد ، followAuth می تواند تکرار شود. از آنجا که FirstAuth و followAuth در حالت ISO14443-4 اجرا می شوند ، PICC در صورت بروز هرگونه خطا در حالت ISO14443-4 باقی می ماند و نیازی به جستجوی مجدد کارت نیست.
دستورات MultiWriteBlock و MultiReadBlock در سطح امنیتی L2 فقط از چندین عملیات خواندن و نوشتن بلوک داده پشتیبانی می کنند! دستورات ReadBlock و WriteBlock سطح امنیتی L3 از خواندن و نوشتن مداوم بلوک داده ها در بخشها پشتیبانی می کند (فقط در این بخش !!!)
L3 سطح امنیتی followAuth عملیات برای بدست آوردن رمزگذاری ENC KEY و MAC KEY استفاده شده بردار iv 0 به جای TI + W_ctr + R_ctr است!
در عملکرد حالت ISO14443-4 ، تا زمانی که خطایی وجود دارد ، باید عملیات FirstAuth انجام شود!
درک عملکردهای مربوط به مقدار کارت M1: اصل دستور Restore این است که مقدار مربوط به بلوک داده های ورودی را کپی کنید (باید در قالب کیف پول باشد) در یک بافر انتقال 16 بایت در داخل کارت M1 ، و اصل آن دستور Transfer به مقدار Transfer Buffer درون کارت M1 در بلوک داده های ورودی کپی می شود. ماهیت دستور افزایش این است که مقدار بلوک کیف پول ورودی را به مقدار اضافه شده اضافه کرده و در Transfer Buffer کپی کنید ، بنابراین برای کپی کردن مقدار Transfer Buffer در بلوک داده مشخص شده باید دوباره دستور Transfer فراخوانی شود.

https://www.szrcloud.com/card-reader/rfid-card-reader/rfid-card-reader-in-games.html
