Allow a host computer to use the smartphone’s NFC hardware as contact-less smartcard reader. On the host computer a special smart card driver, vpcd, must be installed. The app establishes a connection to vpcd over the network when a contact-less card is detected.
![\input{%(wd)s/bilder/tikzstyles.tex}
\node (pcsc) [klein, aktivbox, inner xsep=.75cm, align=center] {PC/SC\\Framework};
\node (sca) [aktivbox, klein, left=.75cm of pcsc, align=center] {Smart Card\\Application};
\node (vpcd) [box, at=(pcsc.east), kleiner] {\texttt{vpcd}};
\node (phone) [right=2cm of vpcd] {\includegraphics[width=3cm]{%(wd)s/bilder/smartphone.pdf}};
\node (app) [at=(phone.center)] {\includegraphics[width=2.8cm, height=4.9cm]{%(wd)s/bilder/remote-reader.png}};
\node (card) [right=0cm of phone, rotate=45] {\includegraphics[width=2cm]{%(wd)s/bilder/smartcard.pdf}};
\begin{pgfonlayer}{background}
\node (box) [box, fit=(pcsc) (sca) (vpcd), inner ysep=1.5em] {};
\node [at=(box.north west)] {\includegraphics[width=1cm]{%(wd)s/bilder/computer-tango.pdf}};
\path[linie]
(sca) edge (pcsc)
(vpcd) edge node {\includegraphics[width=1.5cm]{%(wd)s/bilder/simplecloud.pdf}} (app)
;
\draw [rfid] (phone.center) -- (card.center) ;
\end{pgfonlayer}](../_images/tikz-45ae84ddba64f581420710f06ccc0cdc632a6e9b.png)
Remote Smart Card Reader used to access a contact-less card
The Remote Smart Card Reader has the following dependencies:
For remotely accessing a traditional smart card reader on one computer from an other computer, the Virtual Smart Card in relay mode can be used:
![\input{%(wd)s/bilder/tikzstyles.tex}
\node (pcsc) [klein, aktivbox, inner xsep=.75cm, align=center] {PC/SC\\Framework};
\node (sca) [aktivbox, klein, left=.75cm of pcsc, align=center] {Smart Card\\Application};
\node (vpcd) [box, at=(pcsc.east), kleiner] {\texttt{vpcd}};
\node (pcsc2) [klein, aktivbox, inner xsep=.75cm, align=center, below=2.5cm of vpcd] {PC/SC\\Framework};
\node (vicc) [aktivbox, left=1cm of pcsc2, kleiner] {\texttt{vicc -t relay}};
\node (reader) [right=1cm of pcsc2] {\includegraphics[width=2cm]{%(wd)s/bilder/my_cardreader.pdf}};
\node (card) [at=(reader.east), rotate=45] {\includegraphics[width=2cm]{%(wd)s/bilder/smartcard.pdf}};
\begin{pgfonlayer}{background}
\node (box) [box, fit=(pcsc) (sca) (vpcd), inner ysep=1.5em] {};
\node (box2) [box, fit=(vicc) (pcsc2), inner ysep=1.5em] {};
\node [at=(box.north west)] {\includegraphics[width=1cm]{%(wd)s/bilder/computer-tango.pdf}};
\node [at=(box2.north west)] {\includegraphics[width=1cm]{%(wd)s/bilder/computer-tango.pdf}};
\path[linie]
(sca) edge (pcsc)
(vpcd) edge [out=south, in=north] node {\includegraphics[width=1.5cm]{%(wd)s/bilder/simplecloud.pdf}} (vicc)
(vicc) edge (pcsc2)
(pcsc2) edge [usb] (reader.center)
;
\end{pgfonlayer}](../_images/tikz-b656c61c22449778b2d8a4e7cff12ff17b559524.png)
Virtual Smart Card used in relay mode to remotely access a card
Note
This software can actually be used in a relay attack allowing full access to the card. We discussed the impact especially on the Relay attack against the German ID card, but it generally concerns all contact-less smart cards.
The Remote Smart Card Reader is available on F-Droid [2].
To manually compile the app you need to fetch the sources:
git clone https://github.com/frankmorgner/vsmartcard.git
We use Android Studio [1] to build and deploy the application. Use
to select vsmartcard/remote-reader.
Attach your smartphone and choose .
On the host system, where the smart card at the phone’s NFC interface is relayed to, vpcd needs to be installed. It can be installed on Windows and Unix. On the host computer, vpcd-config prints a QR code to configure the Remote Smart Card Reader. Scan the configuration with the bar code scanner of your choice.
Do you have questions, suggestions or contributions? Feedback of any kind is more than welcome! Please use our project trackers.