From 04fcf436ea33fcdf2c7cb65b6eca0444cf344605 Mon Sep 17 00:00:00 2001 From: Frank Morgner Date: Fri, 27 Feb 2015 23:36:38 +0100 Subject: [PATCH] moved example use cases to the sub-components --- ccid/doc/README.txt | 141 ++++++++++++++++++- ccid/doc/README.txt.in | 129 +++++++++++++++++ ccid/doc/autotools.txt | 5 + ccid/doc/download.txt | 4 +- doc/index.txt | 263 ----------------------------------- pcsc-relay/doc/README.txt | 88 +++++++++++- pcsc-relay/doc/README.txt.in | 88 +++++++++++- 7 files changed, 444 insertions(+), 274 deletions(-) diff --git a/ccid/doc/README.txt b/ccid/doc/README.txt index 3fb5737..2b566ea 100644 --- a/ccid/doc/README.txt +++ b/ccid/doc/README.txt @@ -25,6 +25,54 @@ standard USB CCID reader. USB CCID Emulator can be used as trusted intermediary enabling secure PIN entry and PIN modification. In combination with the |libnpa| also |PACE| can be performed by the emulator. +.. tikz:: Portable smart card reader with trusted user interface + :stringsubst: + :libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows + + \input{%(wd)s/bilder/tikzstyles.tex} + \tikzstyle{bla}=[kleiner, text width=.45\textwidth] + + \node (reader) + {\includegraphics[width=1cm]{%(wd)s/bilder/my_cardreader.pdf}}; + \node (readertext) [right=0of reader, bla] + {Smartphone provides smart card reader via USB}; + \node (display) [below=0of reader] + {\includegraphics[width=1cm]{%(wd)s/bilder/display.pdf}}; + \node (displaytext) [right=0of display, bla] + {Secure display of service provider and purpose of transaction}; + \node (keyboard) [below=0of display] + {\includegraphics[width=1cm]{%(wd)s/bilder/keyboard.pdf}}; + \node (keyboardtext) [right=0of keyboard, bla] + {Secure PIN Entry}; + \node (firewall) [below=0of keyboard] + {\includegraphics[width=1cm]{%(wd)s/bilder/Firewall.pdf}}; + \node (firewalltext) [right=0of firewall, bla] + {Verification of terminal authentication and sanitiy checks}; + + \node (features) [fit=(display) (keyboard) (reader) (firewall)] {}; + + \node (moko) [left=0of features.west] {\includegraphics[height=4cm]{%(wd)s/bilder/phone-fic-neo-freerunner.pdf}}; + + \node (epa) [left=1.5of moko, yshift=-2cm] + {\includegraphics[width=3cm]{%(wd)s/bilder/nPA_VS.png}}; + \node (pc) [left=1.5of moko, yshift=1.5cm] + {\includegraphics[width=3cm]{%(wd)s/bilder/computer-tango.pdf}}; + + \begin{pgfonlayer}{background} + + \node (mokobox) + [box, + fit=(moko) (readertext) (displaytext) (keyboardtext) (firewalltext) + (features)] {}; + + \draw [usb] + (moko) -- (pc.center) ; + \draw [decorate, decoration={expanding waves, angle=20, segment length=6}, nichtrundelinie] + (moko) -- (epa) ; + + \end{pgfonlayer} + + If the machine running :command:`ccid-emulator` is in USB device mode, a local reader is forwareded via USB to another machine. If in USB host mode, the USB CCID reader will locally be present. @@ -49,6 +97,87 @@ PIN verification/modification and |PACE| can also be started by the application transmitting (SCardTransmit) specially crafted APDUs. Only the alternative initialization of |PACE| using SCardControl requires patching the driver (available for libccid, see :file:`patches`). The pseudo APDUs with no need for + +.. tikz:: Implementation of a mobile smart card reader for the German ID card + :stringsubst: + :libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows + + \input{%(wd)s/bilder/tikzstyles.tex} + \tikzstyle{keks}=[to path={-- ++(.1,0) |- (\tikztotarget)}] + + \tikzstyle{bla}=[shape=rectangle split, rectangle split parts=2, + every text node part/.style={align=center, klein}, text width=7cm, + every second node part/.style={kleiner}, inner sep=0pt] + + \node (ccid-emulator) + {\texttt{ccid-emulator}}; + + \node (basis) [below=3of ccid-emulator] + {\includegraphics[keepaspectratio, height=2cm, + width=2cm]{%(wd)s/bilder/moko/basisleser_plain_klein.png}}; + \node (basisbeschreibung) [below=0cm of basis, kleiner, text width=2cm] + {Reiner SCT RFID basis}; + + \node (npa) [left=1.5of basis] + {\includegraphics[keepaspectratio, height=3cm, + width=3cm]{%(wd)s/bilder/nPA_VS.png}}; + \node (npabeschreibung) [below=0cm of npa, kleiner] + {German identity card}; + + \node (funktionenchat) [right=.6cm of ccid-emulator.east, anchor=text west, bla] + { + PACE + \nodepart{second} + \begin{itemize} + + \item Display CHAT + \begin{itemize} + \item Display context (eID/eSign) + \item Display requested permissions + \end{itemize} + + \item Display certificate description + \begin{itemize} + \item Identification of service provider + \item Display purpose of transaction + \end{itemize} + + \item Secure PIN entry + \end{itemize} + }; + \node (funktionenpace) [below=.5 of funktionenchat, bla] + { + Terminal Authentication + \nodepart{second} + \begin{itemize} + \item Verify authenticy of terminal + \item Check freshness of cv certificate + \end{itemize} + }; + + \begin{pgfonlayer}{background} + \node (box) [fit=(ccid-emulator) (basis) (basisbeschreibung) + (funktionenchat) (funktionenpace), box, inner sep=.5cm] {}; + \node (boxbild) at (box.north west) + {\includegraphics[keepaspectratio, height=1.5cm, + width=1.5cm]{%(wd)s/bilder/moko/moko_reader.png}}; + \node [right=0cm of boxbild.east, yshift=.3cm] + {Openmoko Neo FreeRunner}; + \end{pgfonlayer} + + \node (a) [above=1of npa] + {\includegraphics[keepaspectratio, height=3cm, + width=3cm]{%(wd)s/bilder/computer-tango.pdf}}; + + + \begin{pgfonlayer}{background} + \path + (ccid-emulator) edge [doppelpfeil] (basis) + (basis) edge [rfid] (npa) + (a.center) edge [usb] (ccid-emulator) + (ccid-emulator.east) edge [pfeil, keks] (funktionenchat.text west) + (ccid-emulator.east) edge [pfeil, keks] (funktionenpace.text west); + \end{pgfonlayer} patches are defined as follows (see `BSI TR-03119 1.3`_ p. 33-34): +--------------------------+----------------------------------------------------------------------------+------------------------------------------------+ @@ -126,12 +255,6 @@ tools. \texttt{/dev/gadget/ep3-bulk}\\}; - -.. include:: download.txt - - -.. include:: autotools.txt - Running the USB CCID Emulator has the following dependencies: - Linux Kernel with GadgetFS_ @@ -143,6 +266,12 @@ needs a usable PC/SC middleware with USB CCID driver. This is the case for most modern Windows and Unix-like systems by default. +.. include:: download.txt + + +.. include:: autotools.txt + + ================= Hints on GadgetFS ================= diff --git a/ccid/doc/README.txt.in b/ccid/doc/README.txt.in index 1a07db2..a1faaaa 100644 --- a/ccid/doc/README.txt.in +++ b/ccid/doc/README.txt.in @@ -25,6 +25,54 @@ standard USB CCID reader. @PACKAGE_NAME@ can be used as trusted intermediary enabling secure PIN entry and PIN modification. In combination with the |libnpa| also |PACE| can be performed by the emulator. +.. tikz:: Portable smart card reader with trusted user interface + :stringsubst: + :libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows + + \input{%(wd)s/bilder/tikzstyles.tex} + \tikzstyle{bla}=[kleiner, text width=.45\textwidth] + + \node (reader) + {\includegraphics[width=1cm]{%(wd)s/bilder/my_cardreader.pdf}}; + \node (readertext) [right=0of reader, bla] + {Smartphone provides smart card reader via USB}; + \node (display) [below=0of reader] + {\includegraphics[width=1cm]{%(wd)s/bilder/display.pdf}}; + \node (displaytext) [right=0of display, bla] + {Secure display of service provider and purpose of transaction}; + \node (keyboard) [below=0of display] + {\includegraphics[width=1cm]{%(wd)s/bilder/keyboard.pdf}}; + \node (keyboardtext) [right=0of keyboard, bla] + {Secure PIN Entry}; + \node (firewall) [below=0of keyboard] + {\includegraphics[width=1cm]{%(wd)s/bilder/Firewall.pdf}}; + \node (firewalltext) [right=0of firewall, bla] + {Verification of terminal authentication and sanitiy checks}; + + \node (features) [fit=(display) (keyboard) (reader) (firewall)] {}; + + \node (moko) [left=0of features.west] {\includegraphics[height=4cm]{%(wd)s/bilder/phone-fic-neo-freerunner.pdf}}; + + \node (epa) [left=1.5of moko, yshift=-2cm] + {\includegraphics[width=3cm]{%(wd)s/bilder/nPA_VS.png}}; + \node (pc) [left=1.5of moko, yshift=1.5cm] + {\includegraphics[width=3cm]{%(wd)s/bilder/computer-tango.pdf}}; + + \begin{pgfonlayer}{background} + + \node (mokobox) + [box, + fit=(moko) (readertext) (displaytext) (keyboardtext) (firewalltext) + (features)] {}; + + \draw [usb] + (moko) -- (pc.center) ; + \draw [decorate, decoration={expanding waves, angle=20, segment length=6}, nichtrundelinie] + (moko) -- (epa) ; + + \end{pgfonlayer} + + If the machine running :command:`ccid-emulator` is in USB device mode, a local reader is forwareded via USB to another machine. If in USB host mode, the USB CCID reader will locally be present. @@ -49,6 +97,87 @@ PIN verification/modification and |PACE| can also be started by the application transmitting (SCardTransmit) specially crafted APDUs. Only the alternative initialization of |PACE| using SCardControl requires patching the driver (available for libccid, see :file:`patches`). The pseudo APDUs with no need for + +.. tikz:: Implementation of a mobile smart card reader for the German ID card + :stringsubst: + :libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows + + \input{%(wd)s/bilder/tikzstyles.tex} + \tikzstyle{keks}=[to path={-- ++(.1,0) |- (\tikztotarget)}] + + \tikzstyle{bla}=[shape=rectangle split, rectangle split parts=2, + every text node part/.style={align=center, klein}, text width=7cm, + every second node part/.style={kleiner}, inner sep=0pt] + + \node (ccid-emulator) + {\texttt{ccid-emulator}}; + + \node (basis) [below=3of ccid-emulator] + {\includegraphics[keepaspectratio, height=2cm, + width=2cm]{%(wd)s/bilder/moko/basisleser_plain_klein.png}}; + \node (basisbeschreibung) [below=0cm of basis, kleiner, text width=2cm] + {Reiner SCT RFID basis}; + + \node (npa) [left=1.5of basis] + {\includegraphics[keepaspectratio, height=3cm, + width=3cm]{%(wd)s/bilder/nPA_VS.png}}; + \node (npabeschreibung) [below=0cm of npa, kleiner] + {German identity card}; + + \node (funktionenchat) [right=.6cm of ccid-emulator.east, anchor=text west, bla] + { + PACE + \nodepart{second} + \begin{itemize} + + \item Display CHAT + \begin{itemize} + \item Display context (eID/eSign) + \item Display requested permissions + \end{itemize} + + \item Display certificate description + \begin{itemize} + \item Identification of service provider + \item Display purpose of transaction + \end{itemize} + + \item Secure PIN entry + \end{itemize} + }; + \node (funktionenpace) [below=.5 of funktionenchat, bla] + { + Terminal Authentication + \nodepart{second} + \begin{itemize} + \item Verify authenticy of terminal + \item Check freshness of cv certificate + \end{itemize} + }; + + \begin{pgfonlayer}{background} + \node (box) [fit=(ccid-emulator) (basis) (basisbeschreibung) + (funktionenchat) (funktionenpace), box, inner sep=.5cm] {}; + \node (boxbild) at (box.north west) + {\includegraphics[keepaspectratio, height=1.5cm, + width=1.5cm]{%(wd)s/bilder/moko/moko_reader.png}}; + \node [right=0cm of boxbild.east, yshift=.3cm] + {Openmoko Neo FreeRunner}; + \end{pgfonlayer} + + \node (a) [above=1of npa] + {\includegraphics[keepaspectratio, height=3cm, + width=3cm]{%(wd)s/bilder/computer-tango.pdf}}; + + + \begin{pgfonlayer}{background} + \path + (ccid-emulator) edge [doppelpfeil] (basis) + (basis) edge [rfid] (npa) + (a.center) edge [usb] (ccid-emulator) + (ccid-emulator.east) edge [pfeil, keks] (funktionenchat.text west) + (ccid-emulator.east) edge [pfeil, keks] (funktionenpace.text west); + \end{pgfonlayer} patches are defined as follows (see `BSI TR-03119 1.3`_ p. 33-34): +--------------------------+----------------------------------------------------------------------------+------------------------------------------------+ diff --git a/ccid/doc/autotools.txt b/ccid/doc/autotools.txt index 37c64b6..231d186 100644 --- a/ccid/doc/autotools.txt +++ b/ccid/doc/autotools.txt @@ -4,6 +4,11 @@ Installation ************ + +======================================= +Installation on Linux, Unix and similar +======================================= + The USB CCID Emulator uses the GNU Build System to compile and install. If you are unfamiliar with it, please have a look at :file:`INSTALL`. If you can not find it, you are probably working bleeding edge in the repository. Run the diff --git a/ccid/doc/download.txt b/ccid/doc/download.txt index f952002..5fc75bb 100644 --- a/ccid/doc/download.txt +++ b/ccid/doc/download.txt @@ -4,7 +4,9 @@ Download ******** -You can find the latest release of USB CCID Emulator on `Sourceforge +You can find the latest release of USB CCID Emulator on `Github +`_. Older releases are +still available on `Sourceforge `_. Alternatively, you can clone our git repository:: diff --git a/doc/index.txt b/doc/index.txt index bbbb651..6f588e6 100644 --- a/doc/index.txt +++ b/doc/index.txt @@ -70,269 +70,6 @@ have a look at these programming guides and try yourself: npa/api -Example Use Cases ------------------ - -Mobile Phone with Virtual Smartcard connected via NFC -***************************************************** - -.. tikz:: Emulating a smart card for checking an untrusted device - :stringsubst: - :libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows - - \input{%(wd)s/bilder/tikzstyles.tex} - \tikzstyle{bla}=[kleiner, text width=.45\textwidth] - - \node (antenna) - {\includegraphics[width=1cm]{%(wd)s/bilder/network-wireless.pdf}}; - \node (antennatext) [right=0of antenna, bla] - {Smartphone emulates nPA via NFC}; - \node (display) [below=.25of antenna] - {\includegraphics[width=1cm]{%(wd)s/bilder/display.pdf}}; - \node (displaytext) [right=0of display, bla] - {Display service provider, purpose of transaction, security context, - requested permissions}; - \node (firewall) [below=.25of display] - {\includegraphics[width=1cm]{%(wd)s/bilder/Firewall.pdf}}; - \node (firewalltext) [right=0of firewall, bla] - {Verification of terminal authentication and sanitiy checks}; - - \node (features) [fit=(display) (antenna) (firewall)] {}; - - \node (moko) [left=0of features.west] {\includegraphics[height=4cm]{%(wd)s/bilder/phone-fic-neo-freerunner.pdf}}; - - \node (pc) [left=1.5of moko] - {\includegraphics[width=2cm]{%(wd)s/bilder/ivak_kiosk-terminal.pdf}}; - - \begin{pgfonlayer}{background} - - \node (mokobox) - [box, - fit=(moko) (antennatext) (displaytext) (firewalltext) - (features)] {}; - - \draw [rfid] - (pc) -- (moko) ; - - \end{pgfonlayer} - - -.. tikz:: Implementation of the nPA emulator - :stringsubst: - :libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows - - \input{%(wd)s/bilder/tikzstyles.tex} - \tikzstyle{bla}=[shape=rectangle split, rectangle split parts=2, - every text node part/.style={align=center, klein}, text width=7cm, - every second node part/.style={kleiner}, inner sep=0pt] - - \tikzstyle{keks}=[to path={-- ++(.1,0) |- (\tikztotarget)}] - - \node (touchatag) - {\includegraphics[keepaspectratio, height=2cm, - width=2cm]{%(wd)s/bilder/touchatag.png}}; - \node (touchatagbeschreibung) [below=0cm of touchatag, kleiner] - {touchatag}; - - \node (pcsc-relay) [right=of touchatag] - {\texttt{pcsc-relay}}; - \node (pcsc-relaybeschreibung) [below=0cm of pcsc-relay, kleiner] - {NFC emulator - }; - - \node (vicc) [right=of pcsc-relay] - {\texttt{vicc -t nPA}}; - \node (viccbeschreibung) [below=0cm of vicc, kleiner] - {nPA emulator}; - - \node (group) [fit=(touchatag) (pcsc-relay) (vicc) (touchatagbeschreibung) - (pcsc-relaybeschreibung) (viccbeschreibung)] {}; - \node (funktionenchat) [below=0cm of group, bla] - { - PACE - \nodepart{second} - \begin{itemize} - \item Display context (eID/eSign) - \item Display requested permissions - \end{itemize} - }; - \node (funktionenpace) [below=.5 of funktionenchat, bla] - { - Terminal Authentication - \nodepart{second} - \begin{itemize} - \item Verify authenticy of terminal - \item Check freshness of cv certificate - \item With certificate database - \begin{itemize} - \item Identification of service provider - \item Display purpose of transaction - \end{itemize} - \end{itemize} - }; - - \begin{pgfonlayer}{background} - \node (box) [fit=(touchatag) (pcsc-relay) (vicc) (touchatagbeschreibung) - (pcsc-relaybeschreibung) (viccbeschreibung) (funktionenchat) - (funktionenpace), box, inner sep=.5cm] {}; - \node (boxbild) at (box.north west) - {\includegraphics[keepaspectratio, height=1.5cm, - width=1.5cm]{%(wd)s/bilder/moko/moko_reader.png}}; - \node [right=0cm of boxbild.east, yshift=.3cm] - {Openmoko Neo FreeRunner}; - \end{pgfonlayer} - - \node (a) [left=1.5of box] - {\includegraphics[keepaspectratio, height=4cm, - width=4cm]{%(wd)s/bilder/ivak_kiosk-terminal.pdf}}; - \node (e) [below=0cm of a, text width=2.5cm, align=center] - {(Public) Terminal}; - - - \begin{pgfonlayer}{background} - \path - (touchatag) edge [doppelpfeil] (pcsc-relay) - (pcsc-relay) edge [doppelpfeil] (vicc) - (vicc.east) edge [keks, pfeil] (funktionenchat.text east) - (vicc.east) edge [keks, pfeil] (funktionenpace.text east) - (a) edge [decorate, decoration={expanding waves, angle=20, segment - length=6}, nichtrundelinie] (touchatag.south west); - \end{pgfonlayer} - - -Mobile Smart Card Reader -************************ - -.. tikz:: Portable smart card reader with trusted user interface - :stringsubst: - :libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows - - \input{%(wd)s/bilder/tikzstyles.tex} - \tikzstyle{bla}=[kleiner, text width=.45\textwidth] - - \node (reader) - {\includegraphics[width=1cm]{%(wd)s/bilder/my_cardreader.pdf}}; - \node (readertext) [right=0of reader, bla] - {Smartphone provides smart card reader via USB}; - \node (display) [below=0of reader] - {\includegraphics[width=1cm]{%(wd)s/bilder/display.pdf}}; - \node (displaytext) [right=0of display, bla] - {Secure display of service provider and purpose of transaction}; - \node (keyboard) [below=0of display] - {\includegraphics[width=1cm]{%(wd)s/bilder/keyboard.pdf}}; - \node (keyboardtext) [right=0of keyboard, bla] - {Secure PIN Entry}; - \node (firewall) [below=0of keyboard] - {\includegraphics[width=1cm]{%(wd)s/bilder/Firewall.pdf}}; - \node (firewalltext) [right=0of firewall, bla] - {Verification of terminal authentication and sanitiy checks}; - - \node (features) [fit=(display) (keyboard) (reader) (firewall)] {}; - - \node (moko) [left=0of features.west] {\includegraphics[height=4cm]{%(wd)s/bilder/phone-fic-neo-freerunner.pdf}}; - - \node (epa) [left=1.5of moko, yshift=-2cm] - {\includegraphics[width=3cm]{%(wd)s/bilder/nPA_VS.png}}; - \node (pc) [left=1.5of moko, yshift=1.5cm] - {\includegraphics[width=3cm]{%(wd)s/bilder/computer-tango.pdf}}; - - \begin{pgfonlayer}{background} - - \node (mokobox) - [box, - fit=(moko) (readertext) (displaytext) (keyboardtext) (firewalltext) - (features)] {}; - - \draw [usb] - (moko) -- (pc.center) ; - \draw [decorate, decoration={expanding waves, angle=20, segment length=6}, nichtrundelinie] - (moko) -- (epa) ; - - \end{pgfonlayer} - -.. tikz:: Implementation of a mobile smart card reader - :stringsubst: - :libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows - - \input{%(wd)s/bilder/tikzstyles.tex} - \tikzstyle{keks}=[to path={-- ++(.1,0) |- (\tikztotarget)}] - - \tikzstyle{bla}=[shape=rectangle split, rectangle split parts=2, - every text node part/.style={align=center, klein}, text width=7cm, - every second node part/.style={kleiner}, inner sep=0pt] - - \node (ccid-emulator) - {\texttt{ccid-emulator}}; - - \node (basis) [below=3of ccid-emulator] - {\includegraphics[keepaspectratio, height=2cm, - width=2cm]{%(wd)s/bilder/moko/basisleser_plain_klein.png}}; - \node (basisbeschreibung) [below=0cm of basis, kleiner, text width=2cm] - {Reiner SCT RFID basis}; - - \node (npa) [left=1.5of basis] - {\includegraphics[keepaspectratio, height=3cm, - width=3cm]{%(wd)s/bilder/nPA_VS.png}}; - \node (npabeschreibung) [below=0cm of npa, kleiner] - {German identity card}; - - \node (funktionenchat) [right=.6cm of ccid-emulator.east, anchor=text west, bla] - { - PACE - \nodepart{second} - \begin{itemize} - - \item Display CHAT - \begin{itemize} - \item Display context (eID/eSign) - \item Display requested permissions - \end{itemize} - - \item Display certificate description - \begin{itemize} - \item Identification of service provider - \item Display purpose of transaction - \end{itemize} - - \item Secure PIN entry - \end{itemize} - }; - \node (funktionenpace) [below=.5 of funktionenchat, bla] - { - Terminal Authentication - \nodepart{second} - \begin{itemize} - \item Verify authenticy of terminal - \item Check freshness of cv certificate - \end{itemize} - }; - - \begin{pgfonlayer}{background} - \node (box) [fit=(ccid-emulator) (basis) (basisbeschreibung) - (funktionenchat) (funktionenpace), box, inner sep=.5cm] {}; - \node (boxbild) at (box.north west) - {\includegraphics[keepaspectratio, height=1.5cm, - width=1.5cm]{%(wd)s/bilder/moko/moko_reader.png}}; - \node [right=0cm of boxbild.east, yshift=.3cm] - {Openmoko Neo FreeRunner}; - \end{pgfonlayer} - - \node (a) [above=1of npa] - {\includegraphics[keepaspectratio, height=3cm, - width=3cm]{%(wd)s/bilder/computer-tango.pdf}}; - - - \begin{pgfonlayer}{background} - \path - (ccid-emulator) edge [doppelpfeil] (basis) - (basis) edge [rfid] (npa) - (a.center) edge [usb] (ccid-emulator) - (ccid-emulator.east) edge [pfeil, keks] (funktionenchat.text west) - (ccid-emulator.east) edge [pfeil, keks] (funktionenpace.text west); - \end{pgfonlayer} - - - Download -------- diff --git a/pcsc-relay/doc/README.txt b/pcsc-relay/doc/README.txt index d1ae7b7..f1c0f81 100644 --- a/pcsc-relay/doc/README.txt +++ b/pcsc-relay/doc/README.txt @@ -30,8 +30,9 @@ Command APDUs are received with the contact-less interface and relayed. The Response APDUs are then sent back via RFID. The contact-less data will be relayed to one of the following: -- to a smart card inserted into one of the systems smart card readers. The - smart card reader must be accessible with PC/SC. +- to a *real* smart card inserted into one of the systems' smart card readers. + The smart card reader must be accessible with PC/SC. The smart card may be + contact-based *or* contact-less. - to a :ref:`vicc` that directly connects to :command:`pcsc-relay`. The virtual smart card's native interface is used and (despite its name) PC/SC Relay does not need to access PC/SC in this case. @@ -40,6 +41,89 @@ With PC/SC Relay you can relay a contact-less or contact based smart card over a long distance. Also you can use it in combination with the :ref:`vicc` to completely emulate an ISO/IEC 14443 smart card. +.. tikz:: Emulate a contact-less German ID card to perform sanity checks + :stringsubst: + :libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows + + \input{%(wd)s/bilder/tikzstyles.tex} + \tikzstyle{bla}=[shape=rectangle split, rectangle split parts=2, + every text node part/.style={align=center, klein}, text width=7cm, + every second node part/.style={kleiner}, inner sep=0pt] + + \tikzstyle{keks}=[to path={-- ++(.1,0) |- (\tikztotarget)}] + + \node (touchatag) + {\includegraphics[keepaspectratio, height=2cm, + width=2cm]{%(wd)s/bilder/touchatag.png}}; + \node (touchatagbeschreibung) [below=0cm of touchatag, kleiner] + {touchatag}; + + \node (pcsc-relay) [right=of touchatag] + {\texttt{pcsc-relay}}; + \node (pcsc-relaybeschreibung) [below=0cm of pcsc-relay, kleiner] + {NFC emulator + }; + + \node (vicc) [right=of pcsc-relay] + {\texttt{vicc -t nPA}}; + \node (viccbeschreibung) [below=0cm of vicc, kleiner] + {nPA emulator}; + + \node (group) [fit=(touchatag) (pcsc-relay) (vicc) (touchatagbeschreibung) + (pcsc-relaybeschreibung) (viccbeschreibung)] {}; + \node (funktionenchat) [below=0cm of group, bla] + { + PACE + \nodepart{second} + \begin{itemize} + \item Display context (eID/eSign) + \item Display requested permissions + \end{itemize} + }; + \node (funktionenpace) [below=.5 of funktionenchat, bla] + { + Terminal Authentication + \nodepart{second} + \begin{itemize} + \item Verify authenticy of terminal + \item Check freshness of cv certificate + \item With certificate database + \begin{itemize} + \item Identification of service provider + \item Display purpose of transaction + \end{itemize} + \end{itemize} + }; + + \begin{pgfonlayer}{background} + \node (box) [fit=(touchatag) (pcsc-relay) (vicc) (touchatagbeschreibung) + (pcsc-relaybeschreibung) (viccbeschreibung) (funktionenchat) + (funktionenpace), box, inner sep=.5cm] {}; + \node (boxbild) at (box.north west) + {\includegraphics[keepaspectratio, height=1.5cm, + width=1.5cm]{%(wd)s/bilder/moko/moko_reader.png}}; + \node [right=0cm of boxbild.east, yshift=.3cm] + {Openmoko Neo FreeRunner}; + \end{pgfonlayer} + + \node (a) [left=1.5of box] + {\includegraphics[keepaspectratio, height=4cm, + width=4cm]{%(wd)s/bilder/ivak_kiosk-terminal.pdf}}; + \node (e) [below=0cm of a, text width=2.5cm, align=center] + {(Public) Terminal}; + + + \begin{pgfonlayer}{background} + \path + (touchatag) edge [doppelpfeil] (pcsc-relay) + (pcsc-relay) edge [doppelpfeil] (vicc) + (vicc.east) edge [keks, pfeil] (funktionenchat.text east) + (vicc.east) edge [keks, pfeil] (funktionenpace.text east) + (a) edge [decorate, decoration={expanding waves, angle=20, segment + length=6}, nichtrundelinie] (touchatag.south west); + \end{pgfonlayer} + + PC/SC Relay has the following dependencies: - PC/SC middleware diff --git a/pcsc-relay/doc/README.txt.in b/pcsc-relay/doc/README.txt.in index 4d72779..062c0bc 100644 --- a/pcsc-relay/doc/README.txt.in +++ b/pcsc-relay/doc/README.txt.in @@ -30,8 +30,9 @@ Command APDUs are received with the contact-less interface and relayed. The Response APDUs are then sent back via RFID. The contact-less data will be relayed to one of the following: -- to a smart card inserted into one of the systems smart card readers. The - smart card reader must be accessible with PC/SC. +- to a *real* smart card inserted into one of the systems' smart card readers. + The smart card reader must be accessible with PC/SC. The smart card may be + contact-based *or* contact-less. - to a :ref:`vicc` that directly connects to :command:`pcsc-relay`. The virtual smart card's native interface is used and (despite its name) @PACKAGE_NAME@ does not need to access PC/SC in this case. @@ -40,6 +41,89 @@ With @PACKAGE_NAME@ you can relay a contact-less or contact based smart card over a long distance. Also you can use it in combination with the :ref:`vicc` to completely emulate an ISO/IEC 14443 smart card. +.. tikz:: Emulate a contact-less German ID card to perform sanity checks + :stringsubst: + :libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows + + \input{%(wd)s/bilder/tikzstyles.tex} + \tikzstyle{bla}=[shape=rectangle split, rectangle split parts=2, + every text node part/.style={align=center, klein}, text width=7cm, + every second node part/.style={kleiner}, inner sep=0pt] + + \tikzstyle{keks}=[to path={-- ++(.1,0) |- (\tikztotarget)}] + + \node (touchatag) + {\includegraphics[keepaspectratio, height=2cm, + width=2cm]{%(wd)s/bilder/touchatag.png}}; + \node (touchatagbeschreibung) [below=0cm of touchatag, kleiner] + {touchatag}; + + \node (pcsc-relay) [right=of touchatag] + {\texttt{pcsc-relay}}; + \node (pcsc-relaybeschreibung) [below=0cm of pcsc-relay, kleiner] + {NFC emulator + }; + + \node (vicc) [right=of pcsc-relay] + {\texttt{vicc -t nPA}}; + \node (viccbeschreibung) [below=0cm of vicc, kleiner] + {nPA emulator}; + + \node (group) [fit=(touchatag) (pcsc-relay) (vicc) (touchatagbeschreibung) + (pcsc-relaybeschreibung) (viccbeschreibung)] {}; + \node (funktionenchat) [below=0cm of group, bla] + { + PACE + \nodepart{second} + \begin{itemize} + \item Display context (eID/eSign) + \item Display requested permissions + \end{itemize} + }; + \node (funktionenpace) [below=.5 of funktionenchat, bla] + { + Terminal Authentication + \nodepart{second} + \begin{itemize} + \item Verify authenticy of terminal + \item Check freshness of cv certificate + \item With certificate database + \begin{itemize} + \item Identification of service provider + \item Display purpose of transaction + \end{itemize} + \end{itemize} + }; + + \begin{pgfonlayer}{background} + \node (box) [fit=(touchatag) (pcsc-relay) (vicc) (touchatagbeschreibung) + (pcsc-relaybeschreibung) (viccbeschreibung) (funktionenchat) + (funktionenpace), box, inner sep=.5cm] {}; + \node (boxbild) at (box.north west) + {\includegraphics[keepaspectratio, height=1.5cm, + width=1.5cm]{%(wd)s/bilder/moko/moko_reader.png}}; + \node [right=0cm of boxbild.east, yshift=.3cm] + {Openmoko Neo FreeRunner}; + \end{pgfonlayer} + + \node (a) [left=1.5of box] + {\includegraphics[keepaspectratio, height=4cm, + width=4cm]{%(wd)s/bilder/ivak_kiosk-terminal.pdf}}; + \node (e) [below=0cm of a, text width=2.5cm, align=center] + {(Public) Terminal}; + + + \begin{pgfonlayer}{background} + \path + (touchatag) edge [doppelpfeil] (pcsc-relay) + (pcsc-relay) edge [doppelpfeil] (vicc) + (vicc.east) edge [keks, pfeil] (funktionenchat.text east) + (vicc.east) edge [keks, pfeil] (funktionenpace.text east) + (a) edge [decorate, decoration={expanding waves, angle=20, segment + length=6}, nichtrundelinie] (touchatag.south west); + \end{pgfonlayer} + + @PACKAGE_NAME@ has the following dependencies: - PC/SC middleware