How to read RFID/NFC passes with SpringCard PC/SC couplers

SpringCard contactless PC/SC couplers (NFC/RFID HF) can be used to read contactless passes carried by NFC smartphones.

In particular, the Prox'N'Roll HSP PC/SC and the PUCK configured as PC/SC have been certified :

  • by Apple for reading NFC passes stored in the Apple Wallet application ("Apple VAS" protocol, formerly branded as "PassKit"),
  • by Google for reading NFC passes stored in the Google Pay application ("Google VAS" protocol, still branded as "Smart Tap" or now "Google Wallet").

Read More

Using SpringCard PC/SC Couplers with a Raspberry Pi 4

SpringCard PC/SC Couplers like the H663 family (CrazyWriter HSP, Prox'N'Roll HSP, TwistyWriter HSP...) and the new SpringCore family (PUCK...) are well supported by Linux systems thanks the open-source PCSC-Lite stack and its CCID driver. All these devices are easy to operate on early Raspberry Pi with little to no specificities.

This has changed on Raspberry Pi 4 and Raspian Bullseye and their new power-saving policy: by default, the system now shuts down any USB device that appears as being "unused" -- which is namely the case of any PC/SC Coupler until a card is inserted or presented ;-).

For correct operations of any SpringCard PC/SC Coupler with a Raspberry Pi 4 and Raspian Bullseye, the integrator must therefore disable the USB power control, and this article explains how to do so. It may also be useful to anyone trying to troubleshoot disconnection issues affecting any PC/SC device when used together with an embedded Linux system where USB power saving is enabled by default.

Read More

SCardSniffer2 spies the exchanges between a PC/SC application and a smart card

5 years ago, SpringCard introduced SCardSniffer, a tool that spies the exchanges between Windows applications and the PC/SC subsystem. SCardSniffer works by introducing a hook over winscard.dll.

Although this method is still perfectly working in most cases, it comes with some technical complexity (1. the sniffer and the sniffed application must both run on the same subsystem, either Win32 or Win64, hence 2 versions of the sniffer and 2. the injection of the hook is likely to be disabled on security-enforced computers and 3. it may also triggers some antivirus/malware detection tools, which leads to an unnecessary stress).

SCardSniffer2 is a new tool that offers basically the same function, but with a much simpler architecture.

SCardSniffer2 installs a new virtual smart card reader and acts as a relay between this virtual reader and the real reader, where the real card is.

The application to be spied must be reconfigured to connect to the virtual reader (instead of the real reader); SCardSniffer2 is then able to record all the APDUs exhanged between the application and the card.

Read More

PCSCCheck, the all-in-one tool to validate and tune your PC/SC installation

An analysis of the questions that are the most frequently asked to our technical support shows that many issues and concerns are due to the settings or the behaviour of Windows operating system itself.

This is particularly the case in security-enforced corporate environments, where strict administrative policies may prevent the user to install the right driver, or even prevent the applications to access local smart card readers.

The fact that Windows raises a couple of notifications ("Setting up a device", then "The smart card requires drivers that are not present on this system") every time a card is inserted in a PC/SC reader for the first time is also the source of many questions, that this article will address.

Read More

How to be sure that the SpringCard PC/SC driver is installed on Windows?

Since all SpringCard USB PC/SC couplers comply with the USB CCID specification, they are supported by the generic CCID driver supplied by Microsoft as a part of the Windows operating system. As a consequence, when connecting a SpringCard PC/SC coupler to a computer for the first time, this coupler is associated to the generic "Microsoft Usbccid Smartcard Reader (WUDF)" driver by default.

This is a problem for many users, since this generic driver has many limitations that make it un-suitable for most of the use cases.

In this article, we'll expose its 3 most obvious limitations, and expose the 2 different methods to installing the right driver.

Read More

PC/SC on Linux and Mac OS X with Mono

One the goals of the Mono project is to make Microsoft .NET applications runnable on Unix systems. Using Mono, it is therefore now possible to maintain a single C#/.NET code base, that runs on Linux, Mac OS X and Windows.

In this context, SpringCard's PC/SC SDK (https://www.springcard.com/en/download/find/file/pcsc-sdk) has been updated, so that it now enables developers to write PC/SC applications in C#/.NET, that can execute on Windows, as well as on Linux and Mac OS X platforms.

Read More

SCardSniffer spies the exchanges between a PC/SC application and PC/SC middleware

SCardSniffer is a new tool used to spy the exchanges between Windows applications and the smart cards or NFC tags that are accessed through a PC/SC reader (or coupler).

SCardSniffer
SCardSniffer main window

On a Windows computer, all card-aware applications communicate with smart cards or NFC tags through the system's PC/SC library, winscard.dll.

Read More

Limitation of 10 smart card readers with SCardListReaders

Many customers have noticed that the Windows' PC/SC subsystem is not able to handle more than 10 readers (or slots in case of multi-slot readers). Actually, the SCardListReaders function -the system call to get the list of available PC/SC readers- is limited to 10 readers max. On old versions of Windows it was possible (although complex) to overcome this limitation by grouping the readers in "reader groups" and querying one group after the other. This is not possible anymore, starting with Windows 8.

Microsoft clearly states in KB #3144446:

Starting in Windows 8, the Windows platform supports a maximum of 10 smartcard readers. If more than 10 smartcard readers are available, APIs such as SCardListReaders return a maximum of 10. All other readers are ignored.

So, sorry, but there's no way to use more than 10 PC/SC readers (or slots) on a Windows 8 or Windows 10 system. To make things clear, if you connect 2 SpringCard CSB HSP or 2 SpringCard CrazyWriter HSP with the +3 SIM/SAM expansion board, you already have reached the limit.

SpringCard NetPCSC for PCSC-Lite

Introduction

In 2016, SpringCard introduces a new family of network-attached NFC/RFID couplers, providing PC/SC functionnality on top of TCP/IP. The family is built from the SpringCard E663 module, the Ethernet-world counterpart of H663 (for USB world) and K663 (for serial world). The two first products of the family are the TwistyWriter-IP PC/SC, made for OEMs, and the FunkyGate-IP PC/SC, targetting access-control applications. The second one is also available as a FunkyGate-IP+POE PC/SC, where 'POE' stands for 'power-over-Ethernet', i.e. the device takes its power from the network cable.

To support all the devices based on the E663 module, SpringCard has developed from scratch a PC/SC driver for Windows (see this page).

Read More