User Tools

Site Tools


smartcard:etoken

This is an old revision of the document!


Nutzung eines SafeNet eToken PRO unter Linux

Installation von Paketen unter Debian/GNU Linux 9 (stretch)

# aptitude install opensc-pkcs11 libpkcs11 libengine-pkcs11-openssl \
libengine-pkcs11-openssl1.1 gnupg-pkcs11-scd

Initialisierung des Tokens

$ pkcs11-tool --module /usr/lib/libeToken.so --init-token --label <Etikett>
Using slot 0 with a present token (0x0)
Please enter the new SO PIN: 
Please enter the new SO PIN (again): 
Token successfully initialized

Setzen der Benutzer-PIN

$ pkcs11-tool -l --init-pin 
Using slot 0 with a present token (0x0)
Logging in to "MB".
Please enter SO PIN: 
Please enter the new PIN: 
Please enter the new PIN again: 
User PIN successfully initialized

Erzeugen eines Schlüssels

$ pkcs11-tool --module /usr/lib/libeToken.so \
  -l -k --key-type RSA:1024 -d 1 -a "<Etikett>"
Using slot 0 with a present token (0x0)
Logging in to "MB".
Please enter User PIN: 
Key pair generated:
Private Key Object; RSA 
  label:      <Etikett>
  ID:         01
  Usage:      decrypt, sign, unwrap
Public Key Object; RSA 1024 bits
  label:      <Etikett>
  ID:         01
  Usage:      encrypt, verify, wrap

Zertifikatsanfrage erstellen, signieren und in das benötigte DER-Format konvertieren. Als Vorarbeit muss der Pfad zur Bibliothek der zur OpenSSL-Version passenden PKCS#11-Engine gefunden werden.

$ openssl version
OpenSSL 1.1.0f  25 May 2017
$ find /usr/ -iname "*pkcs11.so"
/usr/lib/x86_64-linux-gnu/openssl-1.0.2/engines/libpkcs11.so
/usr/lib/x86_64-linux-gnu/openssl-1.0.2/engines/pkcs11.so
/usr/lib/x86_64-linux-gnu/pkcs11/gnome-keyring-pkcs11.so
/usr/lib/x86_64-linux-gnu/pkcs11/onepin-opensc-pkcs11.so
/usr/lib/x86_64-linux-gnu/pkcs11/opensc-pkcs11.so
/usr/lib/x86_64-linux-gnu/onepin-opensc-pkcs11.so
/usr/lib/x86_64-linux-gnu/opensc-pkcs11.so
/usr/lib/x86_64-linux-gnu/engines-1.1/libpkcs11.so
/usr/lib/x86_64-linux-gnu/engines-1.1/pkcs11.so
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/libj2pkcs11.so
/usr/lib/libeTPkcs11.so
$ openssl
OpenSSL> engine dynamic -pre SO_PATH:/usr/lib/x86_64-linux-gnu/engines-1.1/pkcs11.so \
  -pre ID:pkcs11 -pre LIST_ADD:<Schlüssel ID> -pre LOAD -pre MODULE_PATH:libeToken.so
OpenSSL> req -engine pkcs11 -new -key 1 -keyform engine -x509 -out <Dateiname>.pem -text
OpenSSL> x509 -in <Dateiname>.pem -out <Dateiname>.der -outform der

Schließlich können wir dieses Zertifikat in den eToken schreiben. Achtung: Korrekte ID (-d) und Label (-a) verwenden.

pkcs11-tool --module /usr/lib/libeToken.so -l -w <Dateiname>.der -y cert -d <Schlüssel ID> -a "<Etikett>"
smartcard/etoken.1508511241.txt.gz · Last modified: 2017/10/20 14:54 by Martin