include references and pictures from our papers

This commit is contained in:
Frank Morgner
2013-06-17 23:30:20 +02:00
parent 59eaa16c45
commit 70a11cdbe8
24 changed files with 765 additions and 20 deletions

View File

@@ -69,6 +69,89 @@ The USB CCID Emulator is implemented using GadgetFS_. Some fragments of the sour
code are based on the GadgetFS example and on the source code of the OpenSC code are based on the GadgetFS example and on the source code of the OpenSC
tools. tools.
.. tikz:: Software stack of the USB CCID Emulator running on the OpenMoko Neo FreeRunner
: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
\definecolor{hublue}{cmyk}{1.00, 0.60, 0.00, 0.20}
\definecolor{hured}{cmyk}{0.00, 0.90, 0.80, 0.40}
\definecolor{hugreen}{cmyk}{0.90, 0.10, 0.80, 0.40}
\definecolor{husand}{cmyk}{0.00, 0.05, 0.50, 0.20}
\definecolor{huslategreen}{cmyk}{0.00, 0.00, 0.10, 0.20}
\definecolor{huslateblue}{cmyk}{0.10, 0.00, 0.00, 0.20}
\tikzstyle{klein}=[font={\small}]
\tikzstyle{kleiner}=[font={\footnotesize}]
\tikzstyle{box}=[line width=2pt, draw=huslateblue, rounded corners, inner
sep=.2cm, shadeslate, drop shadow={opacity=.15}, shadow scale=1.05]
\tikzstyle{aktivbox}=[box, darkshadeslate]
\tikzstyle{nichtrundelinie}=[line width=2pt, draw=hublue, kleiner, color=hublue]
\tikzstyle{linie}=[nichtrundelinie, line cap=round]
\tikzstyle{pfeil}=[linie, -stealth']
\tikzstyle{doppelpfeil}=[linie, stealth'-stealth']
\tikzstyle{usb}=[line width=2pt, line cap=round, draw=black, decorate,
decoration=coil, kleiner]
\tikzstyle{rfid}=[decorate, decoration={expanding waves, angle=30, segment
length=6}, nichtrundelinie]
\tikzstyle{shadeslate}=[shade, top color=huslateblue!2, bottom color=huslateblue!10]
\tikzstyle{darkshadeslate}=[shade, top color=huslateblue!20, bottom
color=huslateblue!50]
\tikzstyle{internet}=[cloud, cloud ignores aspect, minimum height=1.5cm, kleiner,
line width=2pt, draw=huslateblue, inner sep=.2cm, darkshadeslate,
drop shadow={opacity=.15}, shadow scale=1.05]
\pgfdeclarelayer{foreground}
\pgfsetlayers{background,main,foreground}
[klein]
\tikzstyle{schicht}=[text width=5cm, align=right]
\tikzstyle{fade down}=[path fading=south, color=huslateblue]
\node (kernel)
[box, shape=rectangle split, rectangle split parts=3, kleiner]
{Linux Kernel
\nodepart{second}
\footnotesize S3C24xx Controller Driver
\nodepart{third}
\footnotesize GadgetFS
};
\node (ccid)
[aktivbox, shape=rectangle split, rectangle split parts=2, below=of kernel]
{CCID Emulator
\nodepart{second}
\texttt{usb}\qquad\texttt{ccid}
};
\draw [box] ($(ccid.text split)-(.05cm,0)$) -- ($(ccid.south)-(.05cm,0)$);
\node (opensc) [box, below=of ccid, kleiner] {\texttt{libnpa} or OpenSC};
\node (controller) [klein, right=0of kernel.two east, schicht]
{Driver for USB Controller};
\node (gadget) [klein, right=0of kernel.three east, schicht]
{Gadget Driver};
\node (upper) [klein, right=0of kernel.three east, schicht, yshift=-1.75cm]
{Upper Layers};
\tikzstyle{rechts}=[to path={-- ++(1,0) |- (\tikztotarget)}]
\tikzstyle{links}=[to path={-- ++(-1,0) |- (\tikztotarget)}]
\begin{pgfonlayer}{background}
\path
(ccid.two west) edge [links, linie] (kernel.three west)
(ccid.two east) edge [rechts, linie] (opensc.east)
;
\path [color=black!30]
(controller.north east) edge +(-9,0)
(gadget.north east) edge +(-9,0)
(upper.north east) edge +(-9,0)
;
\end{pgfonlayer}
\node [kleiner, anchor=east, text width=3cm]
at ($($(ccid.two west)+(-3,0)$)!.5!(kernel.three west)$)
{\color{hublue}
\texttt{/dev/gadget/ep1-bulk}\\
\texttt{/dev/gadget/ep2-bulk}\\
\texttt{/dev/gadget/ep3-bulk}\\};
.. include:: download.txt .. include:: download.txt

View File

@@ -69,6 +69,89 @@ The @PACKAGE_NAME@ is implemented using GadgetFS_. Some fragments of the source
code are based on the GadgetFS example and on the source code of the OpenSC code are based on the GadgetFS example and on the source code of the OpenSC
tools. tools.
.. tikz:: Software stack of the @PACKAGE_NAME@ running on the OpenMoko Neo FreeRunner
: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
\definecolor{hublue}{cmyk}{1.00, 0.60, 0.00, 0.20}
\definecolor{hured}{cmyk}{0.00, 0.90, 0.80, 0.40}
\definecolor{hugreen}{cmyk}{0.90, 0.10, 0.80, 0.40}
\definecolor{husand}{cmyk}{0.00, 0.05, 0.50, 0.20}
\definecolor{huslategreen}{cmyk}{0.00, 0.00, 0.10, 0.20}
\definecolor{huslateblue}{cmyk}{0.10, 0.00, 0.00, 0.20}
\tikzstyle{klein}=[font={\small}]
\tikzstyle{kleiner}=[font={\footnotesize}]
\tikzstyle{box}=[line width=2pt, draw=huslateblue, rounded corners, inner
sep=.2cm, shadeslate, drop shadow={opacity=.15}, shadow scale=1.05]
\tikzstyle{aktivbox}=[box, darkshadeslate]
\tikzstyle{nichtrundelinie}=[line width=2pt, draw=hublue, kleiner, color=hublue]
\tikzstyle{linie}=[nichtrundelinie, line cap=round]
\tikzstyle{pfeil}=[linie, -stealth']
\tikzstyle{doppelpfeil}=[linie, stealth'-stealth']
\tikzstyle{usb}=[line width=2pt, line cap=round, draw=black, decorate,
decoration=coil, kleiner]
\tikzstyle{rfid}=[decorate, decoration={expanding waves, angle=30, segment
length=6}, nichtrundelinie]
\tikzstyle{shadeslate}=[shade, top color=huslateblue!2, bottom color=huslateblue!10]
\tikzstyle{darkshadeslate}=[shade, top color=huslateblue!20, bottom
color=huslateblue!50]
\tikzstyle{internet}=[cloud, cloud ignores aspect, minimum height=1.5cm, kleiner,
line width=2pt, draw=huslateblue, inner sep=.2cm, darkshadeslate,
drop shadow={opacity=.15}, shadow scale=1.05]
\pgfdeclarelayer{foreground}
\pgfsetlayers{background,main,foreground}
[klein]
\tikzstyle{schicht}=[text width=5cm, align=right]
\tikzstyle{fade down}=[path fading=south, color=huslateblue]
\node (kernel)
[box, shape=rectangle split, rectangle split parts=3, kleiner]
{Linux Kernel
\nodepart{second}
\footnotesize S3C24xx Controller Driver
\nodepart{third}
\footnotesize GadgetFS
};
\node (ccid)
[aktivbox, shape=rectangle split, rectangle split parts=2, below=of kernel]
{CCID Emulator
\nodepart{second}
\texttt{usb}\qquad\texttt{ccid}
};
\draw [box] ($(ccid.text split)-(.05cm,0)$) -- ($(ccid.south)-(.05cm,0)$);
\node (opensc) [box, below=of ccid, kleiner] {\texttt{libnpa} or OpenSC};
\node (controller) [klein, right=0of kernel.two east, schicht]
{Driver for USB Controller};
\node (gadget) [klein, right=0of kernel.three east, schicht]
{Gadget Driver};
\node (upper) [klein, right=0of kernel.three east, schicht, yshift=-1.75cm]
{Upper Layers};
\tikzstyle{rechts}=[to path={-- ++(1,0) |- (\tikztotarget)}]
\tikzstyle{links}=[to path={-- ++(-1,0) |- (\tikztotarget)}]
\begin{pgfonlayer}{background}
\path
(ccid.two west) edge [links, linie] (kernel.three west)
(ccid.two east) edge [rechts, linie] (opensc.east)
;
\path [color=black!30]
(controller.north east) edge +(-9,0)
(gadget.north east) edge +(-9,0)
(upper.north east) edge +(-9,0)
;
\end{pgfonlayer}
\node [kleiner, anchor=east, text width=3cm]
at ($($(ccid.two west)+(-3,0)$)!.5!(kernel.three west)$)
{\color{hublue}
\texttt{/dev/gadget/ep1-bulk}\\
\texttt{/dev/gadget/ep2-bulk}\\
\texttt{/dev/gadget/ep3-bulk}\\};
.. include:: download.txt .. include:: download.txt

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

BIN
doc/bilder/Firewall.pdf Normal file

Binary file not shown.

Binary file not shown.

BIN
doc/bilder/display.pdf Normal file

Binary file not shown.

Binary file not shown.

BIN
doc/bilder/keyboard.pdf Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 531 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

BIN
doc/bilder/nPA_VS.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

Binary file not shown.

BIN
doc/bilder/touchatag.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 421 KiB

View File

@@ -35,7 +35,7 @@ needs_sphinx = '1.1'
# Add any Sphinx extension module names here, as strings. They can be extensions # Add any Sphinx extension module names here, as strings. They can be extensions
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
extensions = ["breathe", "sphinxcontrib.doxylink", "sphinx.ext.autosummary", "sphinxcontrib.programoutput", "sphinx.ext.inheritance_diagram"] extensions = ["breathe", "sphinxcontrib.doxylink", "sphinx.ext.autosummary", "sphinxcontrib.programoutput", "sphinx.ext.inheritance_diagram", "sphinxcontrib.tikz", 'sphinxcontrib.bibtex']
# Add any paths that contain templates here, relative to this directory. # Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates'] templates_path = ['_templates']

View File

@@ -2,17 +2,70 @@
.. |vsmartcard| replace:: Virtual Smart Card Architecture .. |vsmartcard| replace:: Virtual Smart Card Architecture
################################################################################
Welcome to the |vsmartcard| documentation! Welcome to the |vsmartcard| documentation!
========================================================== ################################################################################
Welcome to the |vsmartcard|. |vsmartcard| is an umbrella project for various Welcome to the |vsmartcard|. |vsmartcard| is an umbrella project for various
projects concerned with the emulation of different types of smart card readers projects concerned with the emulation of different types of smart card readers
or smart cards themselves. or smart cards themselves.
.. image:: _static/vsmartcard.jpeg .. tikz:: |vsmartcard| connects different aspects of smart card handling
:alt: |vsmartcard| connects different aspects of smart card handling :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
:scale: 50%
:align: center \definecolor{hublue}{cmyk}{1.00, 0.60, 0.00, 0.20}
\definecolor{hured}{cmyk}{0.00, 0.90, 0.80, 0.40}
\definecolor{hugreen}{cmyk}{0.90, 0.10, 0.80, 0.40}
\definecolor{husand}{cmyk}{0.00, 0.05, 0.50, 0.20}
\definecolor{huslategreen}{cmyk}{0.00, 0.00, 0.10, 0.20}
\definecolor{huslateblue}{cmyk}{0.10, 0.00, 0.00, 0.20}
\tikzstyle{klein}=[font={\small}]
\tikzstyle{kleiner}=[font={\footnotesize}]
\tikzstyle{box}=[line width=2pt, draw=huslateblue, rounded corners, inner
sep=.2cm, shadeslate, drop shadow={opacity=.15}, shadow scale=1.05]
\tikzstyle{aktivbox}=[box, darkshadeslate]
\tikzstyle{nichtrundelinie}=[line width=2pt, draw=hublue, kleiner, color=hublue]
\tikzstyle{linie}=[nichtrundelinie, line cap=round]
\tikzstyle{pfeil}=[linie, -stealth']
\tikzstyle{doppelpfeil}=[linie, stealth'-stealth']
\tikzstyle{usb}=[line width=2pt, line cap=round, draw=black, decorate,
decoration=coil, kleiner]
\tikzstyle{rfid}=[decorate, decoration={expanding waves, angle=30, segment
length=6}, nichtrundelinie]
\tikzstyle{shadeslate}=[shade, top color=huslateblue!2, bottom color=huslateblue!10]
\tikzstyle{darkshadeslate}=[shade, top color=huslateblue!20, bottom
color=huslateblue!50]
\tikzstyle{internet}=[cloud, cloud ignores aspect, minimum height=1.5cm, kleiner,
line width=2pt, draw=huslateblue, inner sep=.2cm, darkshadeslate,
drop shadow={opacity=.15}, shadow scale=1.05]
\pgfdeclarelayer{foreground}
\pgfsetlayers{background,main,foreground}
\tikzstyle{bla}=[box, klein, rounded rectangle, inner sep=.3cm]
\node (a) {};
\node[bla, above left=.5cm of a]
(usb) {USB Terminal};
\node[bla, below left=.5cm of a]
(nfc) {NFC Terminal};
\node[bla, rounded rectangle left arc=concave, above right=.5cm of a]
(sc) {Real Smart Card};
\node[bla, rounded rectangle left arc=concave, below right=.5cm of a]
(vsc) {Virtual Smart Card};
\begin{pgfonlayer}{background}
\path[line width=.8cm,color=hublue!20]
(a.mid) edge [out=180, in=0] (usb.center)
edge [out=180, in=0] (nfc.center)
edge [out=0, in=180] (sc.center)
edge [out=0, in=180] (vsc.center)
;
\end{pgfonlayer}
Currently the following projects are part of |vsmartcard|: Currently the following projects are part of |vsmartcard|:
@@ -41,24 +94,373 @@ Example Use Cases
Mobile Phone with Virtual Smartcard connected via NFC Mobile Phone with Virtual Smartcard connected via NFC
***************************************************** *****************************************************
.. image:: _static/nfc-emulator.jpeg .. tikz:: Emulating a smart card for checking an untrusted device
:alt: Overview :stringsubst:
:width: 320px :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
.. image:: _static/nfc-emulator-arch.jpeg \definecolor{hublue}{cmyk}{1.00, 0.60, 0.00, 0.20}
:alt: Architecture \definecolor{hured}{cmyk}{0.00, 0.90, 0.80, 0.40}
:width: 320px \definecolor{hugreen}{cmyk}{0.90, 0.10, 0.80, 0.40}
\definecolor{husand}{cmyk}{0.00, 0.05, 0.50, 0.20}
\definecolor{huslategreen}{cmyk}{0.00, 0.00, 0.10, 0.20}
\definecolor{huslateblue}{cmyk}{0.10, 0.00, 0.00, 0.20}
\tikzstyle{klein}=[font={\small}]
\tikzstyle{kleiner}=[font={\footnotesize}]
\tikzstyle{box}=[line width=2pt, draw=huslateblue, rounded corners, inner
sep=.2cm, shadeslate, drop shadow={opacity=.15}, shadow scale=1.05]
\tikzstyle{aktivbox}=[box, darkshadeslate]
\tikzstyle{nichtrundelinie}=[line width=2pt, draw=hublue, kleiner, color=hublue]
\tikzstyle{linie}=[nichtrundelinie, line cap=round]
\tikzstyle{pfeil}=[linie, -stealth']
\tikzstyle{doppelpfeil}=[linie, stealth'-stealth']
\tikzstyle{usb}=[line width=2pt, line cap=round, draw=black, decorate,
decoration=coil, kleiner]
\tikzstyle{rfid}=[decorate, decoration={expanding waves, angle=30, segment
length=6}, nichtrundelinie]
\tikzstyle{shadeslate}=[shade, top color=huslateblue!2, bottom color=huslateblue!10]
\tikzstyle{darkshadeslate}=[shade, top color=huslateblue!20, bottom
color=huslateblue!50]
\tikzstyle{internet}=[cloud, cloud ignores aspect, minimum height=1.5cm, kleiner,
line width=2pt, draw=huslateblue, inner sep=.2cm, darkshadeslate,
drop shadow={opacity=.15}, shadow scale=1.05]
Mobile Phone with Virtual Smartcard connected via USB \pgfdeclarelayer{foreground}
***************************************************** \pgfsetlayers{background,main,foreground}
[klein]
\tikzstyle{bla}=[kleiner, text width=.45\textwidth]
.. image:: _static/usb-emulator.jpeg \node (antenna)
:alt: Overview {\includegraphics[width=1cm]{%(wd)s/bilder/network-wireless.pdf}};
:width: 320px \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
\definecolor{hublue}{cmyk}{1.00, 0.60, 0.00, 0.20}
\definecolor{hured}{cmyk}{0.00, 0.90, 0.80, 0.40}
\definecolor{hugreen}{cmyk}{0.90, 0.10, 0.80, 0.40}
\definecolor{husand}{cmyk}{0.00, 0.05, 0.50, 0.20}
\definecolor{huslategreen}{cmyk}{0.00, 0.00, 0.10, 0.20}
\definecolor{huslateblue}{cmyk}{0.10, 0.00, 0.00, 0.20}
\tikzstyle{klein}=[font={\small}]
\tikzstyle{kleiner}=[font={\footnotesize}]
\tikzstyle{box}=[line width=2pt, draw=huslateblue, rounded corners, inner
sep=.2cm, shadeslate, drop shadow={opacity=.15}, shadow scale=1.05]
\tikzstyle{aktivbox}=[box, darkshadeslate]
\tikzstyle{nichtrundelinie}=[line width=2pt, draw=hublue, kleiner, color=hublue]
\tikzstyle{linie}=[nichtrundelinie, line cap=round]
\tikzstyle{pfeil}=[linie, -stealth']
\tikzstyle{doppelpfeil}=[linie, stealth'-stealth']
\tikzstyle{usb}=[line width=2pt, line cap=round, draw=black, decorate,
decoration=coil, kleiner]
\tikzstyle{rfid}=[decorate, decoration={expanding waves, angle=30, segment
length=6}, nichtrundelinie]
\tikzstyle{shadeslate}=[shade, top color=huslateblue!2, bottom color=huslateblue!10]
\tikzstyle{darkshadeslate}=[shade, top color=huslateblue!20, bottom
color=huslateblue!50]
\tikzstyle{internet}=[cloud, cloud ignores aspect, minimum height=1.5cm, kleiner,
line width=2pt, draw=huslateblue, inner sep=.2cm, darkshadeslate,
drop shadow={opacity=.15}, shadow scale=1.05]
\pgfdeclarelayer{foreground}
\pgfsetlayers{background,main,foreground}
[klein]
\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
\definecolor{hublue}{cmyk}{1.00, 0.60, 0.00, 0.20}
\definecolor{hured}{cmyk}{0.00, 0.90, 0.80, 0.40}
\definecolor{hugreen}{cmyk}{0.90, 0.10, 0.80, 0.40}
\definecolor{husand}{cmyk}{0.00, 0.05, 0.50, 0.20}
\definecolor{huslategreen}{cmyk}{0.00, 0.00, 0.10, 0.20}
\definecolor{huslateblue}{cmyk}{0.10, 0.00, 0.00, 0.20}
\tikzstyle{klein}=[font={\small}]
\tikzstyle{kleiner}=[font={\footnotesize}]
\tikzstyle{box}=[line width=2pt, draw=huslateblue, rounded corners, inner
sep=.2cm, shadeslate, drop shadow={opacity=.15}, shadow scale=1.05]
\tikzstyle{aktivbox}=[box, darkshadeslate]
\tikzstyle{nichtrundelinie}=[line width=2pt, draw=hublue, kleiner, color=hublue]
\tikzstyle{linie}=[nichtrundelinie, line cap=round]
\tikzstyle{pfeil}=[linie, -stealth']
\tikzstyle{doppelpfeil}=[linie, stealth'-stealth']
\tikzstyle{usb}=[line width=2pt, line cap=round, draw=black, decorate,
decoration=coil, kleiner]
\tikzstyle{rfid}=[decorate, decoration={expanding waves, angle=30, segment
length=6}, nichtrundelinie]
\tikzstyle{shadeslate}=[shade, top color=huslateblue!2, bottom color=huslateblue!10]
\tikzstyle{darkshadeslate}=[shade, top color=huslateblue!20, bottom
color=huslateblue!50]
\tikzstyle{internet}=[cloud, cloud ignores aspect, minimum height=1.5cm, kleiner,
line width=2pt, draw=huslateblue, inner sep=.2cm, darkshadeslate,
drop shadow={opacity=.15}, shadow scale=1.05]
\pgfdeclarelayer{foreground}
\pgfsetlayers{background,main,foreground}
[klein]
\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
\definecolor{hublue}{cmyk}{1.00, 0.60, 0.00, 0.20}
\definecolor{hured}{cmyk}{0.00, 0.90, 0.80, 0.40}
\definecolor{hugreen}{cmyk}{0.90, 0.10, 0.80, 0.40}
\definecolor{husand}{cmyk}{0.00, 0.05, 0.50, 0.20}
\definecolor{huslategreen}{cmyk}{0.00, 0.00, 0.10, 0.20}
\definecolor{huslateblue}{cmyk}{0.10, 0.00, 0.00, 0.20}
\tikzstyle{klein}=[font={\small}]
\tikzstyle{kleiner}=[font={\footnotesize}]
\tikzstyle{box}=[line width=2pt, draw=huslateblue, rounded corners, inner
sep=.2cm, shadeslate, drop shadow={opacity=.15}, shadow scale=1.05]
\tikzstyle{aktivbox}=[box, darkshadeslate]
\tikzstyle{nichtrundelinie}=[line width=2pt, draw=hublue, kleiner, color=hublue]
\tikzstyle{linie}=[nichtrundelinie, line cap=round]
\tikzstyle{pfeil}=[linie, -stealth']
\tikzstyle{doppelpfeil}=[linie, stealth'-stealth']
\tikzstyle{usb}=[line width=2pt, line cap=round, draw=black, decorate,
decoration=coil, kleiner]
\tikzstyle{rfid}=[decorate, decoration={expanding waves, angle=30, segment
length=6}, nichtrundelinie]
\tikzstyle{shadeslate}=[shade, top color=huslateblue!2, bottom color=huslateblue!10]
\tikzstyle{darkshadeslate}=[shade, top color=huslateblue!20, bottom
color=huslateblue!50]
\tikzstyle{internet}=[cloud, cloud ignores aspect, minimum height=1.5cm, kleiner,
line width=2pt, draw=huslateblue, inner sep=.2cm, darkshadeslate,
drop shadow={opacity=.15}, shadow scale=1.05]
\pgfdeclarelayer{foreground}
\pgfsetlayers{background,main,foreground}
[klein]
\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}
.. image:: _static/usb-emulator-arch.jpeg
:alt: Architecture
:width: 320px
======== ========
@@ -71,3 +473,10 @@ You can download the latest release of the |vsmartcard| `here
Alternatively, you can clone our git repository:: Alternatively, you can clone our git repository::
git clone git://vsmartcard.git.sourceforge.net/gitroot/vsmartcard/vsmartcard git clone git://vsmartcard.git.sourceforge.net/gitroot/vsmartcard/vsmartcard
References
----------
.. bibliography:: references.bib
:all:

66
doc/references.bib Normal file
View File

@@ -0,0 +1,66 @@
@INPROCEEDINGS{MoOe10,
author = {Frank Morgner and Dominik Oepen},
title = {"Die gesamte Technik ist sicher". Besitz und Wissen: Relay-Angriffe auf den neuen Personalausweis},
booktitle = {27th Chaos Communication Congress},
organization = {Chaos Computer Club},
year = {2010},
pages = {26--31},
month = {12},
url = {http://media.ccc.de/browse/congress/2010/27c3-4297-de-die_gesamte_technik_ist_sicher.html},
}
@INPROCEEDINGS{MuMO11,
author = {Wolf Müller and Frank Morgner and Dominik Oepen},
title = {Mobiles Szenario für den neuen Personalausweis},
event = {21. SIT-SmartCard Workshop},
isbn = {978-3-8396-0215-7},
eventdate = {2011-02-02/2011-02-03},
booktitle = {Tagungsband zum 21. SIT-SmartCard Workshop},
organization = {{Fraunhofer-Institut für sichere Informationstechnologie}},
publisher = {Fraunhofer Verlag},
editor = {Ulrich Waldmann},
address = {Stuttgart},
year = {2011},
pages = {179--188},
url = {http://sar.informatik.hu-berlin.de/research/publications/SAR-PR-2011-01/SAR-PR-2011-01.pdf}
}
@MASTERSTHESIS{Oepen2010,
author = {Dominik Oepen},
title = { Authentisierung im mobilen Web: Zur Usability eID-basierter Authentisierung auf einem NFC Handy},
school = {Humboldt-Universität zu Berlin},
year = {2010},
address = {Berlin},
type = {Diplomarbeit},
url = {http://sar.informatik.hu-berlin.de/research/publications/#SAR-PR-2010-11}
}
@INPROCEEDINGS{mobisec2012,
year={2012},
isbn={978-3-642-33391-0},
booktitle={Security and Privacy in Mobile Information and Communication Systems},
volume={107},
series={Lecture Notes of the Institute for Computer Sciences, Social Informatics and Telecommunications Engineering},
editor={Schmidt, Andreas. and Russello, Giovanni and Krontiris, Ioannis and Lian, Shiguo},
doi={10.1007/978-3-642-33392-7_3},
title={Mobile Smart Card Reader Using NFC-Enabled Smartphones},
publisher={Springer Berlin Heidelberg},
author={Morgner, Frank and Oepen, Dominik and Müller, Wolf and Redlich, Jens-Peter},
pages={24-37},
url = {http://sar.informatik.hu-berlin.de/research/publications/SAR-PR-2012-07/SAR-PR-2012-07_.pdf},
}
@MASTERSTHESIS{morgner2012,
author = {Frank Morgner},
title = { Mobiler Chipkartenleser für den neuen Personalausweis: Sicherheitsanalyse und Erweiterung des "Systems nPA"},
school = {Humboldt-Universität zu Berlin},
year = {2012},
type = {Diplomarbeit},
}
@UNPUBLISHED{linuxtag,
author = {Dominik Oepen and Frank Morgner},
title = { FOSS im Umfeld des neuen Personalausweis},
note = {LinuxTag 2011},
year = {2011},
}

View File

@@ -35,6 +35,58 @@ implements and initializes Secure Messaging wrappers of OpenSC to allow a
transparent SM usage in OpenSC. This allows nPA Smart Card Library to be fully transparent SM usage in OpenSC. This allows nPA Smart Card Library to be fully
compatible with OpenSC. compatible with OpenSC.
.. tikz:: Architecture of the nPA Smart Card Library
: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
\definecolor{hublue}{cmyk}{1.00, 0.60, 0.00, 0.20}
\definecolor{hured}{cmyk}{0.00, 0.90, 0.80, 0.40}
\definecolor{hugreen}{cmyk}{0.90, 0.10, 0.80, 0.40}
\definecolor{husand}{cmyk}{0.00, 0.05, 0.50, 0.20}
\definecolor{huslategreen}{cmyk}{0.00, 0.00, 0.10, 0.20}
\definecolor{huslateblue}{cmyk}{0.10, 0.00, 0.00, 0.20}
\tikzstyle{kleiner}=[font={\footnotesize}]
\tikzstyle{klein}=[font={\small}]
\tikzstyle{box}=[line width=2pt, draw=huslateblue, rounded corners, inner
sep=.2cm, shadeslate, drop shadow={opacity=.15}, shadow scale=1.05]
\tikzstyle{aktivbox}=[box, darkshadeslate]
\tikzstyle{nichtrundelinie}=[line width=2pt, draw=hublue, kleiner, color=hublue]
\tikzstyle{linie}=[nichtrundelinie, line cap=round]
\tikzstyle{pfeil}=[linie, -stealth']
\tikzstyle{doppelpfeil}=[linie, stealth'-stealth']
\tikzstyle{usb}=[line width=2pt, line cap=round, draw=black, decorate,
decoration=coil, kleiner]
\tikzstyle{rfid}=[decorate, decoration={expanding waves, angle=30, segment
length=6}, nichtrundelinie]
\tikzstyle{shadeslate}=[shade, top color=huslateblue!2, bottom color=huslateblue!10]
\tikzstyle{darkshadeslate}=[shade, top color=huslateblue!20, bottom
color=huslateblue!50]
\tikzstyle{internet}=[cloud, cloud ignores aspect, minimum height=1.5cm, kleiner,
line width=2pt, draw=huslateblue, inner sep=.2cm, darkshadeslate,
drop shadow={opacity=.15}, shadow scale=1.05]
\pgfdeclarelayer{foreground}
\pgfsetlayers{background,main,foreground}
[klein]
\node (npa-tool) [aktivbox] {\texttt{npa-tool}};
\node (libnpa) [box, below=of npa-tool] {\texttt{libnpa}};
\node (opensc)
[klein, box, shape=rectangle split, rectangle split parts=2, right=of libnpa,
kleiner, yshift=-1cm]
{OpenSC (\texttt{libopensc})
\nodepart{second}
\footnotesize PC/SC\qquad CT-API
};
\draw [box] ($(opensc.text split)-(.05cm,0)$) -- ($(opensc.south)-(.05cm,0)$);
\node (openpace) [klein, box, left=of libnpa, yshift=-1cm] {OpenPACE};
\begin{pgfonlayer}{background}
\path[linie]
(npa-tool) edge (libnpa)
(libnpa) edge (opensc)
(libnpa) edge (openpace);
\end{pgfonlayer}
.. include:: download.txt .. include:: download.txt

View File

@@ -35,6 +35,58 @@ implements and initializes Secure Messaging wrappers of OpenSC to allow a
transparent SM usage in OpenSC. This allows @PACKAGE_NAME@ to be fully transparent SM usage in OpenSC. This allows @PACKAGE_NAME@ to be fully
compatible with OpenSC. compatible with OpenSC.
.. tikz:: Architecture of the @PACKAGE_NAME@
: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
\definecolor{hublue}{cmyk}{1.00, 0.60, 0.00, 0.20}
\definecolor{hured}{cmyk}{0.00, 0.90, 0.80, 0.40}
\definecolor{hugreen}{cmyk}{0.90, 0.10, 0.80, 0.40}
\definecolor{husand}{cmyk}{0.00, 0.05, 0.50, 0.20}
\definecolor{huslategreen}{cmyk}{0.00, 0.00, 0.10, 0.20}
\definecolor{huslateblue}{cmyk}{0.10, 0.00, 0.00, 0.20}
\tikzstyle{kleiner}=[font={\footnotesize}]
\tikzstyle{klein}=[font={\small}]
\tikzstyle{box}=[line width=2pt, draw=huslateblue, rounded corners, inner
sep=.2cm, shadeslate, drop shadow={opacity=.15}, shadow scale=1.05]
\tikzstyle{aktivbox}=[box, darkshadeslate]
\tikzstyle{nichtrundelinie}=[line width=2pt, draw=hublue, kleiner, color=hublue]
\tikzstyle{linie}=[nichtrundelinie, line cap=round]
\tikzstyle{pfeil}=[linie, -stealth']
\tikzstyle{doppelpfeil}=[linie, stealth'-stealth']
\tikzstyle{usb}=[line width=2pt, line cap=round, draw=black, decorate,
decoration=coil, kleiner]
\tikzstyle{rfid}=[decorate, decoration={expanding waves, angle=30, segment
length=6}, nichtrundelinie]
\tikzstyle{shadeslate}=[shade, top color=huslateblue!2, bottom color=huslateblue!10]
\tikzstyle{darkshadeslate}=[shade, top color=huslateblue!20, bottom
color=huslateblue!50]
\tikzstyle{internet}=[cloud, cloud ignores aspect, minimum height=1.5cm, kleiner,
line width=2pt, draw=huslateblue, inner sep=.2cm, darkshadeslate,
drop shadow={opacity=.15}, shadow scale=1.05]
\pgfdeclarelayer{foreground}
\pgfsetlayers{background,main,foreground}
[klein]
\node (npa-tool) [aktivbox] {\texttt{npa-tool}};
\node (libnpa) [box, below=of npa-tool] {\texttt{libnpa}};
\node (opensc)
[klein, box, shape=rectangle split, rectangle split parts=2, right=of libnpa,
kleiner, yshift=-1cm]
{OpenSC (\texttt{libopensc})
\nodepart{second}
\footnotesize PC/SC\qquad CT-API
};
\draw [box] ($(opensc.text split)-(.05cm,0)$) -- ($(opensc.south)-(.05cm,0)$);
\node (openpace) [klein, box, left=of libnpa, yshift=-1cm] {OpenPACE};
\begin{pgfonlayer}{background}
\path[linie]
(npa-tool) edge (libnpa)
(libnpa) edge (opensc)
(libnpa) edge (openpace);
\end{pgfonlayer}
.. include:: download.txt .. include:: download.txt