Forum: PC Hard- und Software Welche Smartcard ist die richtige? OpenSSL CA, User Cert


von Sören K. (burnersk)


Lesenswert?

Seit längerer Zeit habe ich einen Yubikey 4 und nutze dort u.a. das 
OpenPGP-Applet recht häufig. Neben dem OpenPGP-Applet bietet der Yubikey 
parallel aber auch ein PIV-Applet, mit dem man "echte" X509-Zertifikate 
nutzen kann.

Ich möchte meine (eh schon Offline-) CA noch ein wenig mehr absichern 
und den CA-Key/Zertifikat auf die Smartcard übertragen.

Gleichzeitig soll der Kartentyp sich aber auch für normale Nutzer 
eignen. Also neben der "CA-Smartcard" soll es auch eine "User-Smartcard" 
geben, mit der Benutzer z.B. Code signieren (Git commits, Authenticode, 
APK) oder E-Mails/Dateien ver-/entschlüsseln können.

Die Karte sollte/muss die Möglichkeit bieten, die Signatur-PIN direkt am 
Kartenleser eingeben zu können. Genau dieser Umstand hier soll auch die 
(nicht physikalische) Sicherheit erhöhen. So kann z.B. ein Trojaner 
(zumindest) nicht mehr den Key bzw. dessen Passphrase klauen.

Cool wäre es natürlich auch, wenn das Display des Kartenlesers das 
Subject anzeigen würde, welches die Smartcard signieren soll (z.B. wie 
bei ChipTAN-Generatoren). Ich schätze aber, dass das protokolltechnisch 
nicht möglich ist. Der Standard beschreibt glaube ich nur maximal die 
Signatur-PIN-Eingabe am Gerät und darüber hinaus nicht noch eine 
Anzeigemöglichkeit auf dem Display.

Soweit zum Intro...

Da ich vom Yubikey her komme habe ich erst mal nach "PIV Smartcards" 
gesucht und nur die Yubikey-Familie oder das Standardpapier selbst
 bzw. US-Verfahrensanweisungen (daher kommt es ja auch) gefunden.

Eine allgemeine Suche nach "Smartcard kaufen" (u.ä.) brachte überwiegend 
nur JCOP Ergebnisse. Ich möchte aber (vorerst) nicht mein eigenes Applet 
schreiben (ist ja "immer gut", seine Krypto selbst zu schreiben statt 
offene und auditierte Krypto zu nehmen, gelle :P ).

Könnt ihr mir Smartcards empfehlen, mit denen ich X509-Zertifikate mit 
Schlüsseln verwalten kann? Sie müssen die Signatur-PIN erzwingen, bzw. 
die Möglichkeit der Erzwingung (Konfigurierbarkeit) bereitstellen. Die 
Ver-/Entschlüsselung/Signierung muss natürlich auf der Smartcard 
passieren, was hoffentlich bei jeder so ist. Deswegen muss der RNG auf 
der Smartcard auch gut sein und nicht z.B. nie eine 0 oder häufiger die 
gleichen "Zufallszahlen" herausspucken.

: Bearbeitet durch User
von Gerd E. (robberknight)


Lesenswert?

Sören K. schrieb:
> Ich möchte meine (eh schon Offline-) CA noch ein wenig mehr absichern
> und den CA-Key/Zertifikat auf die Smartcard übertragen.

Denk aber auch an Beschädigung oder Verlust der Smartcard. Entweder 
mehrere Ersatzkarten an unterschiedlichen Orten oder den Schlüssel in 
mehrere Teile aufteilen und dann Papierkopien an mehreren Orten lagern:

https://github.com/intra2net/paperbackup

> Cool wäre es natürlich auch, wenn das Display des Kartenlesers das
> Subject anzeigen würde, welches die Smartcard signieren soll (z.B. wie
> bei ChipTAN-Generatoren). Ich schätze aber, dass das protokolltechnisch
> nicht möglich ist.

korrekt. Das ist bei Klasse 3-Kartenlesern (die mit eigener Tastatur) 
nicht vorgesehen. Du müsstest komplett eigene Karten und 
Kartenlesegeräte entwickeln...

> Könnt ihr mir Smartcards empfehlen, mit denen ich X509-Zertifikate mit
> Schlüsseln verwalten kann?

OpenPGP Card:
https://g10code.com/p-card.html

Du kannst auf der Karte aber jeweils nur 3 Schlüssel speichern, die 
jeweils fest definierte Eigenschaften und Funktionen haben:
- Entschlüsseln
- Signieren
- Login Authentifizieren (z.B. für SSH)

Das ist auch in den verschiedenen ISO-Standards für Smartcards so 
festgelegt.

Lies Dir vielleicht vorher mal die Dokumentation/Spezifikation der 
Karten durch.

> Deswegen muss der RNG auf
> der Smartcard auch gut sein und nicht z.B. nie eine 0 oder häufiger die
> gleichen "Zufallszahlen" herausspucken.

Ordentliche Smartcards haben einen brauchbaren Hardware-RNG mit 
verschiedenen Zustandsüberwachungen und Kontrollfunktionen mit drauf. 
"nie eine 0" ist aber keine sinnvolle Anforderung für einen RNG. Genauso 
kann es auch passieren, daß mehrfach die selbe Zahl rauskommt. Das ist 
möglich und tritt bei einer großen Anzahl von "Ziehungen" eben auch mal 
auf. Aber die Beurteilung der Qualität von TRNGs ist ein komplett 
eigenes und komplexes Thema.

: Bearbeitet durch User
von ~Mercedes~ (Gast)


Lesenswert?

Gerd E. meinte:

> Ordentliche Smartcards haben einen brauchbaren Hardware-RNG mit
> verschiedenen Zustandsüberwachungen und Kontrollfunktionen mit drauf.

wirklich?
Einen, der mit Rauschdiode wirklichen Zufall
erzeugt?
Einen, die wirklich keine EEPROM - Zellen
zum Funktionieren braucht, die ja Verbarauchsmaterial
sind?

Kannst Du ne Karte empfehlen, die man nicht dauernd
auswechseln muß, weil sie "totgeschrieben" ist oder
die ihre Antenne "nach 14 Tagen verliert"?
Mir kommt es vor, das die Anbieter, ähnlich den
Druckerherstellern mit ihren Patronen, vom Kartennachschub
leben. ;-P ;-))

mfg

von Gerd E. (robberknight)


Lesenswert?

~Mercedes~ schrieb:
> Gerd E. meinte:
>
>> Ordentliche Smartcards haben einen brauchbaren Hardware-RNG mit
>> verschiedenen Zustandsüberwachungen und Kontrollfunktionen mit drauf.
>
> wirklich?
> Einen, der mit Rauschdiode wirklichen Zufall
> erzeugt?

Na ob die nun Dioden, Transistoren rückwärts oder, wie Intel fürs 
RDRAND/RDSEED, irgendwelche metastabilen Latches verwenden, ist doch 
erstmal zweitrangig - wenn es ordentlich implementiert ist.

> Einen, die wirklich keine EEPROM - Zellen
> zum Funktionieren braucht, die ja Verbarauchsmaterial
> sind?

EEPROM-schreiben für Nutzung des RNG ist tatsächlich nicht die feine 
Art.

> Kannst Du ne Karte empfehlen, die man nicht dauernd
> auswechseln muß, weil sie "totgeschrieben" ist oder
> die ihre Antenne "nach 14 Tagen verliert"?

"Antenne"?

Ich nutze die oben genannten OpenPGP-Cards (Zeitcontrol) regelmäßig als 
RNG und hab damit noch keine Ausfälle oder Probleme bemerkt.

Die Karten sind allerdings nicht 24/7 im RNG-Einsatz, sondern werden nur 
bei Bedarf an einem speziellen Rechner zur Schlüsselerzeugung/Signierung 
verwendet.

Wenn Du mit anderen Karten solche Probleme bemerkt hast, würde ich mich 
mal mit konkreten Problembeschreibungen / Anfrage an die 
gnupg-Mailingliste wenden. Da sind die Entwickler der OpenPGP-Karte zu 
finden und die können Dir ganz genau sagen wie dort der RNG arbeitet. 
Ein Teil der Sourcen für die Karte ist auch veröffentlicht. Leider 
dürfen die wohl nicht alles veröffentlichen, weil ein Teil der Libs 
unter NDA steht.

Wenn Du nur nach einem zuverlässigen RNG für 24/7-Einsatz suchst, würde 
ich mir mal den hier anschauen:
https://github.com/waywardgeek/infnoise

Mit dem habe ich im 24/7-Einsatz bisher gute Erfahrungen gemacht und 
füttere die Daten von dem als zusätzliche Entropie in den Entropiepuffer 
vom Linux-Kernel.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.