How to query internal Smart Card reader information

book

Article ID: 181907

calendar_today

Updated On:

Products

Endpoint Encryption

Issue/Introduction

 

Resolution

It is difficult to get information concerning built-in internal Smart Card readers. Windows only allows access to the abstracted information provided by the Smart Card reader's driver. How can the details of an internal smart card reader be gathered for support or engineering purposes?

Solution: Boot to live Linux distribution and query the reader using the lsusb command.

Step-by-step:

  1. Boot to live Linux distribution
  2. Open a “terminal” window
  3. At the terminal type “sudo su” and press enter. This should drop the terminal prompt to “root” (Command prompt will shift to something containing the word "root," the actual text varies by distribution)
  4. Put a smart card (SC) into the SC reader. Many laptops do not power the reader until a card is present, so this step ensures it is available to query
  5. At the terminal type “lsusb” and press enter to list the available devices on the USB bus
    Example:
    Bus 001 Device 002: ID 8087:8008 Intel Corp.
    Bus 002 Device 002: ID 8087:8000 Intel Corp.
    Bus 003 Device 002: ID 0781:5572 SanDisk Corp.
    Bus 003 Device 003: ID 138a:003f Validity Sensors, Inc.
    Bus 003 Device 004: ID 058f:9540 Alcor Micro Corp.
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

    • In the list above the “Alcor Micro Corp.” device is the SC reader.
       
  6. Get the details for the SC reader using lsusb –D <device bus location>
    • The command for the example device would be: lsusb –D  /dev/bus/usb/003/004
    • In the output there should be some indicator that this is a smartcard reader. The device in the example stated “iProduct  2 EMV Smartcard Reader”
       
  7. To output the returned information to a text file use standard Linux IO redirect
    • For the example above use: lsusb –D  /dev/bus/usb/003/004 > Output_file.txt
    • This will create a file in the location the prompt is at. You can use “ls” and "cd" to navigate the folder structure within the prompt.
    • By default most Linux distributions will place the "sudo su" prompt in "/home" for the "root" user.
    • The resulting output is tab delimited and will show properly in Wordpad. (Notepad does not interpret the delimiters properly)

Alternative names: SmartCard, Smart Card, smart-card, SC, CAC, PIV