Hammaga xayrli kun. Men ushbu tadqiqotni o'tkazishga nima undaganligi haqida ma'lumotdan boshlayman, lekin birinchi navbatda sizni ogohlantiraman: barcha amaliy harakatlar boshqaruv tuzilmalarining roziligi bilan amalga oshirildi. Cheklangan hududga u erda bo'lish huquqisiz kirish uchun ushbu materialdan foydalanishga bo'lgan har qanday urinish jinoiy huquqbuzarlik hisoblanadi.
Началось все с того, что убираясь на столе, я случайно поместил RFID ключ от подъезда на NFC-считыватель ACR122 — каково же было мое удивление, когда Windows воспроизвела звук обнаружения нового устройства, а светодиод загорелся зеленым. Я до этого момента полагал что эти ключи работают исключительно в стандарте Proximity.

Ammo o'quvchi buni ko'rganligi sababli, bu kalit ISO 14443 standarti (yaqin maydon aloqasi, 13,56 MGts) yuqoridagi protokollardan biriga mos kelishini anglatadi. Tozalash darhol unutildi, chunki men kalitlar to'plamidan butunlay qutulish va kirish kalitini telefonimda saqlash imkoniyatini ko'rdim (kvartira uzoq vaqtdan beri elektron qulf bilan jihozlangan). O'qishni boshlaganimdan so'ng, men plastik tagida Mifare 1k NFC yorlig'i yashiringanligini bilib oldim - xuddi shu model korxona nishonlari, transport kartalari va boshqalar. Sektorlar mazmuniga kirishga urinishlar dastlab muvaffaqiyat keltirmadi va kalit nihoyat yorilib ketganda, faqat 3-sektor ishlatilganligi va chipning UID-si unda takrorlanganligi ma'lum bo'ldi. Bu juda oddiy ko'rindi va shunday bo'lib chiqdi va agar hamma narsa rejalashtirilganidek bo'lsa, maqola bo'lmaydi. Shunday qilib, men kalitning qutilarini oldim va agar siz kalitni bir xil turdagi boshqasiga nusxalashingiz kerak bo'lsa, hech qanday muammo bo'lmaydi. Ammo vazifa kalitni mobil qurilmaga o'tkazish edi, men buni qildim. Qiziq shu erda boshlandi - bizda telefon bor - iPhone SE o'rnatilgan bilan iOS 13.4.5 Beta-versiyasi 17F5044d и некоторыми кастомными компонентами для свободной работы NFC — на этом подробно останавливаться не буду в силу некоторых объективных причин. При желании все сказанное далее применимо и для системы Android, но с некоторыми упрощениями.
Yechish kerak bo'lgan vazifalar ro'yxati:
- Kalit tarkibiga kirish.
- Qurilma tomonidan kalitni taqlid qilish qobiliyatini amalga oshiring.
Если с первым все было относительно просто, то со вторым возникли проблемы. Первая версия эмулятора не сработала. Проблема была довольно быстро обнаружена — у мобильных устройств (что iOS, что Android) в режиме эмуляции — UID динамический и независимо от того, что зашито в образе — плавает. Вторая версия (запускаемая с правами суперпользователя) жестко фиксировала серийный номер на выбранном — дверь открывалась. Однако я хотел сделать все идеально, и в итоге собрал законченную версию эмулятора которая могла открывать дампы Mifare и эмулировать их. Поддавшись внезапному порыву, я изменил ключи секторов на произвольные, и попытался открыть дверь. И она… OCHILDI! Biroz vaqt o'tgach, ular ochilayotganini angladim har qanday bu qulfli eshiklar, hatto asl kaliti mos bo'lmaganlar ham. Shu munosabat bilan men bajarilishi kerak bo'lgan vazifalarning yangi ro'yxatini tuzdim:
- Kalitlar bilan ishlash uchun qanday boshqaruvchi javobgar ekanligini bilib oling
- Tarmoq ulanishi va umumiy baza mavjudligini tushuning
- Deyarli o'qib bo'lmaydigan kalit nima uchun universal bo'lishini bilib oling
Boshqaruv kompaniyasida muhandis bilan suhbatlashganimdan so'ng, men oddiy Iron Logic z5r kontrollerlari tashqi tarmoqqa ulanmasdan ishlatilishini bilib oldim.
CP-Z2 MF o'quvchi va IronLogic z5r boshqaruvchisi
Menga tajribalar uchun uskunalar to'plami berildi:

Bu erdan ko'rinib turibdiki, tizim butunlay avtonom va o'ta ibtidoiydir. Avvaliga men kontroller o'rganish rejimida deb o'yladim - ma'nosi shundaki, u kalitni o'qiydi, xotirada saqlaydi va eshikni ochadi - bu rejim barcha tugmachalarni yozib olish kerak bo'lganda ishlatiladi, masalan, kalitlarni almashtirishda. turar-joy binosida qulflash. Ammo bu nazariya tasdiqlanmadi - bu rejim dasturiy ta'minotda o'chirilgan, jumper ish holatida - va shunga qaramay, biz qurilmani ko'targanimizda, biz quyidagilarni ko'ramiz:
Qurilmadagi emulyatsiya jarayonining skrinshoti

... va boshqaruvchi ruxsat berilganligi haqida signal beradi.
Bu muammo boshqaruvchi yoki o'quvchining dasturiy ta'minotida ekanligini anglatadi. Keling, o'quvchini tekshiramiz - u iButton rejimida ishlaydi, shuning uchun Bolid xavfsizlik platasini ulaymiz - biz o'quvchidan chiqish ma'lumotlarini ko'rishimiz mumkin bo'ladi.
Kengash keyinchalik RS232 orqali ulanadi

Bir nechta testlar usulidan foydalanib, biz avtorizatsiya xatosi bo'lsa, o'quvchi bir xil kodni tarqatishini aniqlaymiz: 1219191919
Vaziyat aniqroq bo'la boshladi, ammo hozirda men nima uchun boshqaruvchi ushbu kodga ijobiy javob berayotgani aniq emas. Ma'lumotlar bazasi to'ldirilganda - tasodifan yoki ataylab boshqa sektor kalitlari bo'lgan karta taqdim etilganida - o'quvchi ushbu kodni yuborgan va boshqaruvchi uni saqlab qolgan degan taxmin mavjud. Afsuski, menda kontroller kaliti ma'lumotlar bazasini ko'rib chiqish uchun IronLogic-dan xususiy dasturchi yo'q, lekin umid qilamanki, muammoning mavjudligiga e'tibor qarata oldim. Ushbu zaiflik bilan ishlashning video namoyishi mavjud .
PS Tasodifiy qo'shilish nazariyasiga, Krasnoyarskdagi bitta biznes markazida men ham xuddi shu usul yordamida eshikni ochishga muvaffaq bo'lganimga qarshi.
Manba: www.habr.com
