Erstellen einer Smartcard

1. Eine Java Smartcard besorgen

2. Den Computer vorbereiten

Was du brauchst:

Abhängigkeiten installieren

[MotokoKusanagi@Laptop ~]$ su
[root@Latop ~]$ dnf install maven \
java-1.8.0-openjdk-devel \
java-1.8.0-openjdk \
ant \
pcsc-tools \
git

Herunderladen von GlobalPlatformPro

[MotokoKusanagi@Laptop ~]$ mkdir -p src
[MotokoKusanagi@Laptop ~]$ cd src
[MotokoKusanagi@Laptop src]$ git clone https://github.com/martinpaljak/GlobalPlatformPro.git
Klone nach 'GlobalPlatformPro' ...
remote: Counting objects: 3832, done.
remote: Total 3832 (delta 0), reused 0 (delta 0), pack-reused 3832
Empfange Objekte: 100% (3832/3832), 16.68 MiB | 1.77 MiB/s, Fertig.
Löse Unterschiede auf: 100% (2009/2009), Fertig.
[MotokoKusanagi@Laptop src]$

Übersetzen von GlobalPlatformPro

[MotokoKusanagi@Laptop ~]$ cd GlobalPlatformPro
[MotokoKusanagi@Laptop GlobalPlatformPro]$ mvn package
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:02 min
[INFO] Finished at: 2018-05-07T19:37:08+02:00
[INFO] Final Memory: 35M/269M
[INFO] ------------------------------------------------------------------------
BUILD SUCCESSFUL
Total time: 25 seconds
[MotokoKusanagi@Laptop GlobalPlatformPro]$ cd ~

Herunterladen von Java Card Classic Development Kit 3.0.4

Das Java card Development Kit bei Oracle herunterladen und anschließend nach ~/src/ entpacken. Link zur Oracle-Download-Seite

MotokoKusanagi@Laptop ~/Downloads]$ java -jar java_card_kit-classic-3_0_4-rr-bin-do-b28-windows-06_sep_2011.jar

Das ~/src/ Verzeichnis sollte nun so aussehen:


MotokoKusanagi@Laptop ~]$ cd src/
MotokoKusanagi@Laptop src]$ ls
GlobalPlatformPro
JavaCard3DevelopmentKit


MotokoKusanagi@Laptop src]$ export JC_HOME=~/src/JavaCard3DevelopmentKit/

Übersetzen des „SmartPGP applet“

[MotokoKusanagi@Laptop
[MotokoKusanagi@Laptop ~]$ cd src/
[MotokoKusanagi@Laptop src]$ git clone https://github.com/TIF-IT/SmartPGP.git
[MotokoKusanagi@Laptop src]$ cd SmartPGP/
[MotokoKusanagi@Laptop SmartPGP]$ ant
...
BUILD SUCCESSFUL
Total time: 1 minute 15 seconds

3. Die Karte bauen

Finde dein Lesegerät


[MotokoKusanagi@Laptop ~]$ pcsc_scan
PC/SC device scanner
V 1.5.2 (c) 2001-2017, Ludovic Rousseau <ludovic.rousseau@free.fr>
Using reader plug'n play mechanism
Scanning present readers...
0: OMNIKEY CardMan 4040 Socket 0 00 00
1: HID Global OMNIKEY 5422 Smartcard Reader [OMNIKEY 5422CL Smartcard Reader] (KJ0H6V012G10673746) 00 00
2: HID Global OMNIKEY 5422 Smartcard Reader [OMNIKEY 5422 Smartcard Reader] (KJ0H6V012G10673746) 01 00
...

GNUPG Applet auf die Karte installieren

[MotokoKusanagi@Laptop ~]$ cd ~/src/SmartPGP/
[MotokoKusanagi@Laptop SmartPGP]$ export reader="OMNIKEY CardMan 4040 Socket 0 00 00"
[MotokoKusanagi@Laptop SmartPGP]$ export cardID="CCXXXXXX"
[MotokoKusanagi@Laptop SmartPGP]$ java -jar ../GlobalPlatformPro/tool/target/gp.jar -r "$reader" --install SmartPGPApplet.cap --create "D2760001240103045443${cardID}0000"

Kartenschlüssel ändern


[MotokoKusanagi@Laptop ~]$ export reader="OMNIKEY CardMan 4040 Socket 0 00 00"
[MotokoKusanagi@Laptop ~]$ export newKey=$(hexdump -n 16 -e '4/4 "%08X" 1 "\n"' /dev/random)
[MotokoKusanagi@Laptop ~]$ echo "sicher aufbewahren: $newKey"
[MotokoKusanagi@Laptop ~]$ cd ~/src/GlobalPlatformPro/
[MotokoKusanagi@Laptop GlobalPlatformPro]$ java -jar ./gp.jar -r "$reader" -lock "$newKey"