סיכום איתור באגים בכרטיסי Mifare Plus

Dec 07, 2020

השאר הודעה

כברירת מחדל, כרטיס הפלוס המונפק על ידי nxp הוא כרטיס שאינו מאושר ברמת L0. בשלב זה, הפעולה הפעילה מראה שהיא תומכת במאפייני כרטיס המעבד של ISO1443-4 (ATQA: 02 00, SAK: 20 UID: CD 65 E5 03), כאשר מבצעים AES קשור לכתיבה לאחר מפתח ה- KEY וחסימת הנתונים מחויב, הוא נכנס לרמת האבטחה L1. פעולתו הפעילה מציגה את המאפיינים של כרטיס M1S70 (ATQA: 02 00, SAK: 18 UID: CD 65 E5 03), אך למעשה היא עדיין יכולה לתמוך ב- ISO1443-4, החולדות מבוצעות בהצלחה (יש לתמוך בה גם, אחרת לא ניתן לבצע פעולות switchL2 ו- switch3). לאחר ביצוע אימות switchL2 ברמת L1 והומר לרמת L2, ערך ההחזרה לאחר הפעולה הפעילה הוא (ATQA: 02 00 SAK: 11, UID: CD 65 E5 03). בשלב זה, אם אין SAK תואם כזה במנהל ההתקן הקיים, זה יהיה סוג כרטיס לא ידוע. לאחר ביצוע אימות switch3 ברמת האבטחה 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, וששת הבתים התחתונים של בסיס מקשי ההפעלה שנוצרו על ידי AES ממוקמים במקור M1 של הבלוק בפועל כדי להפוך לאימות M1 האמיתי של הבלוק. מפתח. לאחר הבדיקה, סוג מפתח AES חייב להיות עקבי עם סוג מפתח M1 (כלומר, שניהם A או B), אחרת אימות M1 ייכשל! כאשר AES ו- M1 סוגים וערכיםמגזר A עולה בקנה אחד עם המגזר B, הגישה למגזר B לאחר אימות מגזר A עולה בקנה אחד עם הגישה למגזר A, ואין צורך לגשת למגזר B. הסמכה.

במהלך ניפוי הבאגים של mifPLAuthInPro ברמת האבטחה L2, כאשר קוראים ל- s_AESCbcEnDecrypt, הקלט IV יועתק מחדש לאחר שההצפנה והפענוח הושלמו, וכתוצאה מכך ההצפנה והפענוח הבאים משתנים IV וההצפנה והפענוח נכשלים! חייבים לשים לב לערך של iv!

ברמת האבטחה L2, על אימות מפתח MES AES + חובה לשמור על סוג מפתח AES בקנה אחד עם סוג מפתח M1 (כלומר מפתח AES TypeA + M1 TypeA מפתח או AES TypeB מפתח {{6} } מפתח M1 TypeB, כגון AES TypeA Key + אימות מפתח M1 TypeB ייכשל גם אם המפתחות נכונים!)

לאחר השלמת איתור באגים ברמת L2, ניתן לבצע FirstAuth שוב ושוב, וערך ה- TI המתקבל על ידי FirstAuth שונה בכל פעם. לאחר ביצוע אימות נכון של FirstAuth וקבלת TI, ניתן לבצע את followAuth הנכון (followAuth' 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, ואת המהות של פקודת ההעברה היא לערך מאגר ההעברה בתוך כרטיס M1 מועתק לבלוק הנתונים הנכנס. המהות של פקודת ה- Increment היא להוסיף את הערך של חסימת ארנק הקלט לערך המוסף ולהעתיק אותו למאגר ההעברה, ולכן יש לקרוא שוב לפקודת ההעברה כדי להעתיק את ערך המאגר העברה לבלוק הנתונים שצוין.


_0003s_0001_A981B9EF78ED2D226AB9184F3A7BDCDF

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