Examples: misc fixed & enhancements in the doc

This commit is contained in:
Philippe Teuwen 2010-10-08 19:24:54 +00:00
parent 74a8ebde41
commit 7128eabfad
9 changed files with 59 additions and 42 deletions

View file

@ -1,6 +1,6 @@
.TH NFC-ANTICOL 1 "June 26, 2009"
.SH NAME
nfc-anticol \- Demonstration NFC anti-collison command line tool based on libnfc
nfc-anticol \- Demonstration of NFC anti-collision command line tool based on libnfc
.SH SYNOPSIS
.B nfc-anticol
.SH DESCRIPTION
@ -14,6 +14,9 @@ software and should hope it does not contain vulnerabilities during the
anti-collision phase. Performing the anti-collision using custom frames could
protect against a malicious tag that, for example, violates the standard by
sending frames with unsupported lengths.
Note that this is only a demonstration tool, which can not handle multiple tags
as real life anti-collisions with multiple tags generate "messy" bits which
are neither 0 nor 1.
.SH BUGS
Please report any bugs on the

View file

@ -19,7 +19,7 @@
/**
* @file nfc-anticol.c
* @brief Generate one ISO14443-A anticollision process "by-hand"
* @brief Generate one ISO14443-A anti-collision process "by-hand"
*/
#ifdef HAVE_CONFIG_H

View file

@ -5,17 +5,17 @@ nfc-emulate-forum-tag4 \- NFC Forum tag type 4 emulation command line demonstrat
.B nfc-emulate-forum-tag4
.SH DESCRIPTION
.B nfc-emulate-forum-tag4
is an demonstration tool that emulate a NFC Forum tag type 4 with NDEF content.
is a demonstration tool that emulates a NFC Forum tag type 4 with NDEF content.
Currently, this tool only works with a Nokia 6212 Classic phone as initiator
and a PN532 equipped NFC device as target.
and a PN532-equipped NFC device as target.
This example use the hardware capability of PN532 to handle ISO/IEC 14443-4
This example uses the hardware capability of PN532 to handle ISO/IEC 14443-4
low-level frames like RATS/ATS, WTX, etc.
At the moment, only the Nokia 6212 Classic can be used with this example
because its based on a pre-established communication plan: example send the
expected replies to the initiator without interprete queries.
because it's based on a pre-established communication plan and the tool sends
blindly the expected replies to the initiator without having interpreted the queries.
.SH BUGS
Please report any bugs on the

View file

@ -5,26 +5,28 @@ nfc-emulate-tag \- Simple tag emulation command line demonstration tool
.B nfc-emulate-tag
.SH DESCRIPTION
.B nfc-emulate-tag
is an simple tag emulation tool that demonstrate how emulation can be done
is a simple tag emulation tool that demonstrates how emulation can be done
using libnfc.
Currently, this tool partialy emulates a Mifare Mini: its shown as Mifare Mini
but internal MIFARE proprietary commands are not yet implemented.
Currently, this tool partially emulates a Mifare Mini: it is detected as
Mifare Mini but internal MIFARE proprietary commands are not yet implemented.
To be able to emulate a target, there are two main parts:
- communication: handle modulation, anticollision, etc.
- computation: process commands (input) and produce results (output).
This demonstration tool purpose a logical structure to handle communication and
This demonstration tool proposes a logical structure to handle communication and
a simple function to deal with computation.
To improve the target capabilities, we can now implement more allowed commands
in a single function: target_io()
Please note that, due to timing issues is quiet impossible to implement a
ISO14443-4 tag this way: RATS request expect a quick ATS answer. By the way,
even you implements another kind of tag, timing issues are often the source of
Please note that, due to timing issues, it is very difficult to implement an
ISO14443-4 tag this way: RATS request expects a quick ATS answer. By the way,
even if you implement another kind of tag, timing issues are often the source of
problems like CRC or parity errors.
The OmniKey CardMan 5321 is known to be very large on timings and is a good
choice if you want to experiment with this emulator with a tolerant reader.
.SH BUGS
Please report any bugs on the

View file

@ -22,7 +22,7 @@
* @brief Emulate a simple tag
*/
// Note that depending on the device (initiator) you'll use against this
// Note that depending on the device (initiator) you'll use against, this
// emulator it might work or not. Some readers are very strict on responses
// timings, e.g. a Nokia NFC and will drop communication too soon for us.

View file

@ -7,21 +7,38 @@ nfc-emulate-uid \- NFC target emulation command line tool based on libnfc
.RI [ UID ]
.SH DESCRIPTION
.B nfc-emulate-uid
is an tag emulation tool that allow to choose tag UID. Tag emulation is one of
the main added features in NFC. To avoid abuse of existing systems,
is a tag emulation tool that allows to choose any tag UID. Tag emulation is one
of the main added features in NFC. But to avoid abuse of existing systems,
manufacturers of the NFC controller intentionally did not support emulation of
fully customized UID. The nfc-emulate-uid tool demonstrates that this can still
be done using transmission of raw-frames, and the desired UID can be optionally
specified.
Fast communication is necessary to respond in time during the anti-collision
protocol. Using the ACR122 device gives many timing issues, "PN53x only" USB
devices also give some timing issues but an embedded microprocessor could be
fast enough to emulate a tag with any UID.
fully customized UID but only of "random" UIDs, which always start with 0x08.
The nfc-emulate-uid tool demonstrates that this can still be done using
transmission of raw frames, and the desired UID can be optionally specified.
This makes it a serious thread for security systems that rely only on the
uniqueness of the UID.
Unfortunately, this example can't directly start in fully customisable
target mode. Just after launching this example, you will have to go through
the hardcoded initial anti-collision with the 0x08-prefixed UID.
To achieve it, you can e.g. send a RATS (Request for Answer To Select) command
by using a second NFC device (placed in target's field) and launching nfc-list
or nfc-anticol. After this first step, you now have a NFC device (configured
as target) that really emulates a custom UID.
You could view it using the second NFC device with nfc-list.
Timing control is very important for a successful anti-collision sequence:
- The emulator must be very fast to react:
Using the ACR122 device gives many timing issues, "PN53x only" USB
devices also give some timing issues but an embedded microprocessor
would probably improve greatly the situation.
- The reader should not be too strict on timing (the standard is very
strict). The OmniKey CardMan 5321 is known to be very large on
timings and is a good choice if you want to experiment with this
emulator with a tolerant reader.
Nokia NFC 6212 and Pegoda readers are much too strict and won't be fooled.
.SH OPTIONS
.IR UID
8 hex digits format that represents desired UID (default is DEADBEAF).

View file

@ -21,19 +21,11 @@
* @file nfc-emulate-uid.c
* @brief This example can be used to emulate a tag which which have a "really" custom UID
*
* NFC devices are able to emulate passive tags but manufacters restricts the
* customization of UID. With PN53x, UID is only 4 bytes long and the first
* byte of emulated UID is hardwarely set to 0x08. This example show how to
* emulate a full customized UID by "manually" replying to anticollision
* process sent by the initiator.
*
* @note Unfortunately, this example can't directly start in fully customisable
* target mode. Just after launching this example, you will have to unlock an
* hardware situation by sending a RATS (Request for Answer To Select) command.
* To do this, you can use a second NFC device (placed in target's field) and
* launch nfc-list or nfc-anticol. After this first step, you now have a NFC
* device (configured as target) that really emulate custom UID. You could view
* it using the second NFC device with nfc-list.
* NFC devices are able to emulate passive tags but manufacturers restrict the
* customization of UID. With PN53x, UID is only 4-byte long and the first
* byte of emulated UID is hard-wired to 0x08 which is the standard way to say
* this is a random UID. This example shows how to emulate a fully customized
* UID by "manually" replying to anti-collision process sent by the initiator.
*/
#ifdef HAVE_CONFIG_H

View file

@ -7,6 +7,9 @@ nfc-list \- List NFC targets
.B nfc-list
is a utility for listing any available targets like ISO14443-A, FeliCa, Jewel
or ISO14443-B (according to the device capabilities).
It may detect several tags at once thanks to a mechanism called anti-collision
but all types of tags don't support anti-collision and there is some physical
limitation of the number of tags the reader can discover.
This tool displays all available information at selection time.

View file

@ -12,15 +12,15 @@ nfc-mfclassic \- MIFARE Classic command line tool
.B nfc-mfclassic
is a MIFARE Classic tool that allow to read or write
.IR DUMP
file using Mifare keys provide in
file using Mifare keys provided in
.IR KEYS
file.
MIFARE Classic tag is one of the most widely used RFID tags.
The firmware in the NFC controller supports authenticating, reading and writing
to/from Mifare Classic tags. This tool demonstrate the speed of this library
and its easy-of-use. It possible to read and write the complete content of a
to/from Mifare Classic tags. This tool demonstrates the speed of this library
and its ease-of-use. It's possible to read and write the complete content of a
Mifare Classic 4KB tag within 1 second. It uses a binary Mifare Dump file (MFD)
to store the keys and data for all sectors.
@ -39,7 +39,7 @@ Use A or B Mifare keys.
MiFare Dump (MFD) used to write (card to MFD) or (MFD to card)
.TP
.IR KEYS
MiFare Dump (MFD) that contain the keys (optional)
MiFare Dump (MFD) that contains the keys (optional). Data part of the dump is ignored.
.SH BUGS