nfc-emulate-uid(1) libnfc's examples nfc-emulate-uid(1)

nfc-emulate-uid - ابزار خط فرمانی شبیه‌سازی هدف NFC مبتنی بر libnfc

nfc-emulate-uid [OPTIONS] [UID]

nfc-emulate-uid ابزاری برای شبیه‌سازی تگ است که به کاربر اجازه می‌دهد هر UID دلخواهی را انتخاب کند. شبیه‌سازی تگ یکی از ویژگی‌های اصلی افزوده شده در NFC است. اما برای جلوگیری از سوءاستفاده از سامانه‌های موجود، تولیدکنندگان کنترلر NFC عمداً از شبیه‌سازی UID کاملاً سفارشی پشتیبانی نکرده و تنها از UIDهای «تصادفی» که همیشه با 0x08 آغاز می‌شوند پشتیبانی می‌کنند. ابزار nfc-emulate-uid نشان می‌دهد که این کار همچنان با استفاده از ارسال فریم‌های خام (raw frames) امکان‌پذیر است و UID مورد نظر را می‌توان به صورت اختیاری مشخص کرد.

این موضوع آن را به تهدیدی جدی برای سامانه‌های امنیتی تبدیل می‌کند که صرفاً به یکتا بودن UID اتکا دارند.

متأسفانه این نمونه نمی‌تواند مستقیماً در حالت هدف (target) کاملاً سفارشی شروع به کار کند. بلافاصله پس از اجرای این نمونه، باید مرحلهٔ اولیه ضدتداخل (anti-collision) هاردکدشده با UID دارای پیشوند 0x08 را پشت سر بگذارید. برای دستیابی به آن، می‌توانید به عنوان مثال یک دستور RATS (درخواست پاسخ به انتخاب / Request for Answer To Select) را با استفاده از یک دستگاه NFC دوم (قرار گرفته در میدان هدف) و با اجرای nfc-list یا nfc-anticol ارسال کنید. پس از این مرحلهٔ اول، اکنون یک دستگاه NFC (پیکربندی‌شده به عنوان هدف) دارید که واقعاً یک UID سفارشی را شبیه‌سازی می‌کند. می‌توانید آن را با استفاده از دستگاه NFC دوم همراه با nfc-list مشاهده کنید.

کنترل زمان‌بندی برای یک توالی ضدتداخل موفق بسیار حیاتی است:

- شبیه‌ساز باید در پاسخ‌دهی بسیار سریع باشد: استفاده از دستگاه ACR122 مشکلات زمانی متعددی ایجاد می‌کند؛ دستگاه‌های USB مبتنی بر «فقط PN53x» نیز مشکلاتی در زمان‌بندی دارند، اما یک ریزپردازنده تعبیه‌شده (embedded microprocessor) احتمالاً وضعیت را تا حد زیادی بهبود می‌بخشد.

- کارت‌خوان نباید در زمان‌بندی بیش از حد سخت‌گیر باشد (استاندارد بسیار سخت‌گیرانه است). دستگاه OmniKey CardMan 5321 به آسان‌گیری در زمان‌بندی معروف است و چنانچه بخواهید این شبیه‌ساز را با یک کارت‌خوان با مدارا آزمایش کنید، انتخاب مناسبی است. کارت‌خوان‌های Nokia NFC 6212 و Pegoda بسیار سخت‌گیر هستند و فریب نخواهند خورد.

UID قالب ۸ رقم هگزادسیمال که UID مورد نظر را مشخص می‌کند (پیش‌فرض DEADBEEF است).

دستگاه‌های ACR122 (مانند touchatag و غیره) می‌توانند در این نمونه استفاده شوند (همراه با مشکلات زمان‌بندی)، اما اگر مشکلی پیش آمد، باید دستگاه خود را از درگاه جدا کرده و دوباره وصل کنید. این یک باگ در libnfc نیست؛ این مشکل به دلیل MCU داخلی ACR122 در جلوی تراشهٔ NFC ‏(PN532) است.

لطفاً هرگونه باگ را در سامانهٔ پیگیری مشکلات libnfc گزارش دهید:
https://github.com/nfc-tools/libnfc/issues

libnfc تحت مجوز GNU Lesser General Public License (LGPL)، نسخه ۳ منتشر شده است.
بسته‌های libnfc-utils و libnfc-examples تحت پوشش مجوز BSD 2-Clause هستند.

Roel Verdult <roel@libnfc.org>

این صفحه راهنما توسط Romuald Conty <romuald@libnfc.org> نوشته شده است. این اثر تحت شرایط مجوز GNU GPL (نسخه ۲ یا بالاتر) قرار دارد.

26 ژوئن 2009 libnfc