ACS ACR83 User Manual

ACR83 PINeasy
Reference Manual V1.05
Subject to change without prior notice info@acs.com.hk
www.acs.com.hk
Table of Contents
1.0. Introduction ............................................................................................................... 4
1.1. Reference Documents ........................................................................................................... 4
1.2. Symbols and Abbreviations ................................................................................................... 4
2.0. Features ..................................................................................................................... 5
3.0. Supported Card Types .............................................................................................. 6
4.0. Smart Card Interface ................................................................................................. 7
4.1. Smart Card Power Supply VCC (C1) .................................................................................... 7
4.2. Programming Voltage VPP C6 .............................................................................................. 7
4.3. Card Type Selection .............................................................................................................. 7
4.4. Interface for Microcontroller-based Cards ............................................................................. 7
4.5. Card Tearing Protection ......................................................................................................... 7
5.0. Power Supply ............................................................................................................ 8
6.0. USB Interface ............................................................................................................. 9
6.1. Communication Parameters .................................................................................................. 9
6.2. Endpoints ............................................................................................................................... 9
7.0. Communication Protocol ....................................................................................... 10
8.0. PC/SC SCardControl Application Programming Interface .................................. 12
9.0. Operation Flow for PIN Verification and Modification (PC/SC 2.0 Part 10) ........ 13
10.0. CCID SPE Data Structure ....................................................................................... 14
11.0. PIN Verification Data Structure .............................................................................. 15
11.1. Error Checking (Bit) ............................................................................................................. 16
11.2. Error Checking (Byte) .......................................................................................................... 16
11.3. Verification Example 1 ......................................................................................................... 17
11.4. Verification Example 2 ......................................................................................................... 19
11.5. Verification Example 3 ......................................................................................................... 20
12.0. PIN Modification Data Structure ............................................................................ 23
12.1. Modification (Bit) bConfirmPIN Bit1=0 ................................................................................. 24
12.2. Modification (Bit) bConfirmPIN Bit1=0 Data Structure Error Checking ............................... 24
12.3. Modification (Byte) bConfirmPIN Bit1=0 .............................................................................. 25
12.4. Modification (Byte) bConfirmPIN Bit1=0 Data Structure Error Checking ............................ 25
12.5. Modification (Bit) bConfirmPIN Bit1=1 ................................................................................. 25
12.6. Modification (Bit) bConfirmPIN Bit1=1 Data Structure Error Checking ............................... 26
12.7. Modification (Byte) bConfirmPIN Bit1=1 .............................................................................. 26
12.8. Modification (Byte) bConfirmPIN Bit1=1 Data Structure Error Checking ............................ 26
12.9. Modification Example 1 ........................................................................................................ 27
12.10. Modification Example 2 ........................................................................................................ 29
12.11. Modification Example 3 ........................................................................................................ 31
12.12. Modification Example 4 ........................................................................................................ 33
12.13. Modification Example 5 ........................................................................................................ 36
Appendix A. bmFormatString Description ..................................................................... 39
Appendix B. bmPINBlockString Description ................................................................. 40
Appendix C. bmPINLengthFormat .................................................................................. 41
Appendix D. Sample Code (PC/SC 2.0 Part 10) ............................................................. 42
Page 2 of 49
ACR83 – Reference Manual info@acs.com.hk
Version 1.05
List of Figures
Figure 1 : PIN Verification and Modification Operation Flowchart ....................................................... 13
Page 3 of 49
ACR83 – Reference Manual info@acs.com.hk
Version 1.05
1.0. Introduction
The ACR83, a cost-effective PC-linked PINpad Reader, serves as an interface for the communication between a computer (for example, a PC) and a smart card. Different types of smart cards have different commands and communication protocols, and the ACR83 PINeasy establishes a uniform interface from the computer to the smart card for a wide variety of cards.
The ACR83 is connected to the computer through a USB interface and uses the CCID interface to communicate with the USB port. CCID is the Device Class Specification for USB chip/Smart Card Interface Devices, and defines the communication protocol and commands for the USB chip-card interface devices.
Furthermore, the ACR83 supports CCID Secure PIN Entry (SPE) functionality which provides a secure user interface for PIN entry without the danger of the PIN being observed by a third party. ACR83 is a specific smart card reader which can do the PIN verification and modification in the card reader.
1.1. Reference Documents
The following related documents are available from WWW.USB.ORG
Universal Serial Bus Specification 2.0 (also referred to as the USB specification), April 27, 2000
Universal Serial Bus Common Class Specification 1.0, December 16, 1997
Universal Serial Bus Device Class: Smart Card CCID Specification for Integrated Circuit(s)
Cards Interface Devices, Revision 1.1, April 22, 2005
The following related documents can be ordered through WWW.ANSI.ORG
ISO/IEC 7816-1; Identification Cards – Integrated circuit(s) cards with contacts - Part 1: Physical Characteristics
ISO/IEC 7816-2; Identification Cards – Integrated circuit(s) cards with contacts - Part 2: Dimensions and Locations of the contacts
ISO/IEC 7816-3; Identification Cards – Integrated circuit(s) cards with contacts - Part 3: Electronic signals and transmission protocols
1.2. Symbols and Abbreviations
Symbol Abbreviation
ATR
EMV
PPS
SPE
USB
Answer-to-Reset
Europay MasterCard VISA
Protocol and Parameters Selection
Secure PIN Entry
Universal Serial Bus
Page 4 of 49
ACR83 – Reference Manual info@acs.com.hk
Version 1.05
2.0. Features
14-key keypad
2 rows x 16 characters dot matrix LCD, each character has 5x8 dots
Supports ISO 7816 Microprocessor Smart Cards with the following features:
o Class A, B, C (5 V, 3 V and 1.8 V respectively)
o T=0 and/or T=1 protocol
Supports Secure PIN Entry (SPE)
EMV Level 1 Certified
Full-speed USB Interface (12 Mbps)
Compliant to the following standards:
o PC/SC
o WHQL
o CCID
o CE/FCC
o RoHS
Page 5 of 49
ACR83 – Reference Manual info@acs.com.hk
Version 1.05
3.0. Supported Card Types
The ACR83 supports MCU cards with either T=0 or T=1 protocol. The card ATR indicates the specific operation mode (TA2 present; bit b5 of TA2 must be 0) and when that the particular mode is not supported by the ACR83 PINeasy, the reader will reset the card to a negotiable mode. If the card cannot be set to negotiable mode, the reader will then reject the card.
When the card ATR indicates the negotiable mode (TA2 not present) and communication parameters other than the default parameters, the ACR83 will execute the PPS and try to use the communication parameters that the card suggested in its ATR. If the card does not accept the PPS, the reader will use the default parameters (F=372, D=1).
For the meaning of the aforementioned parameters, please refer to ISO 7816 Part 3.
Page 6 of 49
ACR83 – Reference Manual info@acs.com.hk
Version 1.05
4.0. Smart Card Interface
ACR83 PINeasy Smart Card Reader has a 14-key keypad and LCD display consisting of 2 rows with 16 characters dot matrix.
4.1. Smart Card Power Supply VCC (C1)
The current consumption of the inserted card must not be higher than 100 mA.
4.2. Programming Voltage VPP C6
According to ISO 7816-3, the smart card contact C6 (VPP) supplies the programming voltage to the smart card. Since all common smart cards in the market are EEPROM-based and do not require the provision of an external programming voltage, the contact C6 (VPP) has been implemented as a normal control signal in the ACR83 (CCID). The electrical specifications of this contact are identical to those of the signal RST (at contact C2).
4.3. Card Type Selection
The controlling PC always has to select the card type through the proper command sent to the ACR83 prior to activation the inserted card.
For MCU-based cards the reader allows to select the preferred protocol, T=0 or T=1. However, this selection is only accepted and carried out by the reader through the PPS when the card inserted in the reader supports both protocol types. Whenever an MCU-based card supports only one protocol type, T=0 or T=1, the reader automatically uses that protocol type, regardless of the protocol type selected by the application.
4.4. Interface for Microcontroller-based Cards
For microcontroller-based smart cards only the contacts C1 (VCC), C2 (RST), C3 (CLK), C5 (GND) and C7 (I/O) are used. A frequency of 4 MHz is applied to the CLK signal (C3).
4.5. Card Tearing Protection
The ACR83 (CCID) provides a mechanism to protect the inserted card when it is suddenly withdrawn while it is powered up. The power supply to the card and the signal lines between the ACR83 (CCID) and the card are immediately deactivated when the card is being removed. As a general rule, however, to avoid any electrical damage, a card should only be removed from the reader while it is powered down.
Note: The ACR83 (CCID) does never, by itself, switch on the power supply to the inserted card. This must be explicitly done by the controlling computer through the proper command sent to the reader.
Page 7 of 49
ACR83 – Reference Manual info@acs.com.hk
Version 1.05
5.0. Power Supply
The ACR83 (CCID) requires a voltage of 5 V DC, 100 mA regulated power supply. The ACR83 (CCID) gets the power from PC through the cable supplied along with each type of reader.
Page 8 of 49
ACR83 – Reference Manual info@acs.com.hk
Version 1.05
6.0. USB Interface
The ACR83 (CCID) is connected to a computer through a USB port following the USB standard.
6.1. Communication Parameters
The ACR83 (CCID) is connected to a computer through USB as specified in the USB Specification
1.1. The ACR83 (CCID) is working in full-speed mode, i.e. 12 Mbps.
Pin Signal Function
1 VBUS
2 D-
3 D+
4 GND
Note: ACR83 PINeasy is a PC/SC Device. In order for the ACR83 (CCID) to function properly through USB interface, an ACS PC/SC driver has to be installed. Please refer to the Device Driver Installation Guide for more details.
+5 V power supply for the reader
Differential signal transmits data between ACR83 and PC
Differential signal transmits data between ACR83 and PC
Reference voltage level for power supply
Table 1: USB Interface Wiring
6.2. Endpoints
The ACR83 (CCID) uses the following endpoints to communicate with the host computer:
Control Endpoint For setup and control purpose
Bulk OUT For command to sent from host to ACR83 (CCID) (data packet size is 64
bytes)
Bulk IN For response to sent from ACR83 (CCID) to host (data packet size is 64 bytes)
Interrupt IN For card status message to sent from ACR83 (CCID) to host (data packet
size is 8 bytes)
Page 9 of 49
ACR83 – Reference Manual info@acs.com.hk
Version 1.05
7.0. Communication Protocol
ACR83 (CCID) shall interface with the host with USB connection. A specification, namely CCID, has been released within the industry defining such a protocol for the USB chip-card interface devices. CCID covers all the protocols required for operating smart cards and PIN.
The configurations and usage of USB endpoints on ACR83 (CCID) shall follow CCID Section 3. An overview is summarized below:
Control Commands are sent on control pipe (default pipe). These include class-specific requests and USB standard requests. Commands that are sent on the default pipe report information back to the host on the default pipe.
CCID Events are sent on the interrupt pipe.
CCID Commands are sent on BULK-OUT endpoint. Each command sent to ACR83 (CCID)
has an associated ending response. Some commands can also have intermediate responses.
CCID Responses are sent on BULK-IN endpoint. All commands sent to ACR83 (CCID) have to be sent synchronously. (i.e. bMaxCCIDBusySlots is equal to 1 for ACR83 (CCID)).
The supported CCID features by ACR83 (CCID) are indicated in its Class Descriptor:
Offset Field Size Value Description
0
1
2
4
5
6
10
14
18
19
bLength
bDescriptorType
bcdCCID
bMaxSlotIndex
bVoltageSupport
dwProtocols
dwDefaultClock
dwMaximumClock
bNumClockSupported
dwDataRate
1 36h Size of this descriptor (in bytes)
1 21h CCID Functional Descriptor type
2 0100h
1 00h
1 07h
4 00000003h
4 00000FA0h
4 00000FA0h
1 00h
4 00002A00h
CCID Specification Release Number in Binary-coded decimal
One slot is available on ACR83 (CCID)
ACR83 (CCID) can supply 1.8 V,
3.0 V and 5.0 V to its slot
ACR83 (CCID) supports T=0 and T=1 Protocol
Default ICC clock frequency is 4 MHz
Maximum supported ICC clock frequency is 4 MHz
Does not support manual setting of clock frequency
Default ICC I/O data rate is 10752 bps
23
27
28
32
dwMaxDataRate
bNumDataRatesSupported
dwMaxIFSD
dwSynchProtocols
4 0001F808h
1 00h
4 00000Feh
4 00000000h
Maximum supported ICC I/O data rate is 250000 bps
Does not support manual setting of data rates
Maximum IFSD supported by ACR83 (CCID) for protocol T=1 is 254
ACR83 (CCID) does not support synchronous card
Page 10 of 49
ACR83 – Reference Manual info@acs.com.hk
Version 1.05
Offset Field Size Value Description
ACR83 (CCID) does not support
36
40
44
dwMechanical
dwFeatures
dwMaxCCIDMessageLength
4 00000000h
4 00010030h
4 0000010Fh
special mechanical characteristics
ACR83 (CCID) supports the following features:
Automatic ICC clock frequency change according to parameters
Automatic baud rate change according to frequency and FI,DI parameters
TPDU level exchange with ACR83 (CCID)
Maximum message length accepted by ACR83 (CCID) is 271 bytes
48
49
50
52
53
bClassGetResponse
bClassEnvelope
wLCDLayout
bPINSupport
bMaxCCIDBusySlots
1 00h
1 00h
2 0000h No LCD
1 00h No PIN Verification
1 01h
Insignificant for TPDU level exchanges
Insignificant for TPDU level exchanges
Only one slot can be simultaneously busy
Page 11 of 49
ACR83 – Reference Manual info@acs.com.hk
Version 1.05
8.0. PC/SC SCardControl Application Programming Interface
1. IOCTL_SMARTCARD_GET_FIRMWARE_VERSION
2. IOCTL_SMARTCARD_DISPLAY_LCD_MESSAGE
3. IOCTL_SMARTCARD_READ_KEY
4. CM_IOCTL_GET_FEATURE_REQUEST (PC/SC 2.0 Part 10)
5. FEATURE_VERIFY_PIN_DIRECT
6. FEATURE_MODIFY_PIN_DIRECT
7. FEATURE_IFD_PIN_DROP
Page 12 of 49
ACR83 – Reference Manual info@acs.com.hk
Version 1.05
END
PIN?
9.0. Operation Flow for PIN Verification and Modification (PC/SC 2.0 Part 10)
ACR83 reader supports PC/SC 2.0 Part 10. The flowchart below shows the PIN verification and modification operation.
START
Connect to ACR83
(SCardConnect)
Get Feature Request
(SCardControl)
Modify the
Verify PIN Direct
(SCardControl)
Modify PIN Direct
(SCardControl)
Disconnect ACR83 (SCardDisconnect)
Figure 1: PIN Verification and Modification Operation Flowchart
Yes
In order to use PIN verification and modification, the SCardControl API must be called with Get Feature Request control code. This API will return a list of supported features from the reader.
In ACR83, only Verify PIN Direct, Modify PIN Direct and IFD PIN Properties are supported. To use these features, you can get the control codes from the list. For more information, please refer to PC/SC 2.0 Specification Part 10.
Page 13 of 49
ACR83 – Reference Manual info@acs.com.hk
Version 1.05
10.0. CCID SPE Data Structure
The ACR83 SPE is based on the CCID SPE which is fully compatible to CCOD SPE.
If the application program uses the CCID SPE, it must use the CCID PC_to_RDR_Secure to send the APDU.
According to CCID specification, the SPE has two modes:
1. PIN Verification
2. PIN Modification
The Modes setting is based on CCID abPINOperationDataStructure (Please refer to CCID specification 6.1.11.1).
bPINOperation:
00h: PIN Verification
01h: PIN Modification
Any other values will not be supported by ACR83.
Page 14 of 49
ACR83 – Reference Manual info@acs.com.hk
Version 1.05
11.0. PIN Verification Data Structure
For PIN Verification, we need to understand the PIN Verification Data Structure.
bTimeOut: Number of seconds for key press (00h: default value = 60 seconds)
abPINApdu = CLA INS P1 P2 Lc XX XX XX XX …
Example: abPINApdu = 00 20 00 01 08 FF FF FF FF FF FF FF FFh
bmFormatString (Bit 7):
0h: means the system units is bit
1h: means the system units is byte
Bit 6~3 (SpePinPos): PIN position after format in the APDU command
Bit2 (SpeLeftRight): 0=Left, 1=Right
Bit1~0 (SpePINTyp):
00h: Binary ex: 01 02 03 04 05 06
01h: BCD ex: 12 34 56
10h: ASCII ex: 31 32 33 34 35 36
bmPINBlockString:
Bit7~4 (SpePINSize):
Ex: 2 means 2*2 -1 = 4 - 1 allow maximum 3 digits PIN
If SpePINSize = 0, it means no PIN management.
Bit3~0 (SpePINLen): PIN block size in bytes after justification and formatting
bmPINLengthFormat:
Bit3~0 (SpePINLenPos): Indicate the PIN length position in the APDU command
If SpePINLenPos =0, it means no PIN management.
Bit4: 0: indicates if the SpePINLenPos is in bit or byte unit
wPINMaxExtraDigit:
XX: (SpePinMin) Minimum PIN Size
YY: (SpePinMax) Maximum PIN Size
bNumberMessage:
00h: No message display in LCD
01h: Display one message: LCD will display “Enter PIN:”
FFh: Default value equal to 01h
Page 15 of 49
ACR83 – Reference Manual info@acs.com.hk
Version 1.05
Loading...
+ 34 hidden pages