derwowusste
Goto Top

Import eines p12-Zertifikates auf einen Yubikey

Moin Zertifikats-Profis, die Yubikeys nutzen!

Die Frage entsteht aus keiner großen Not... eher eine "wäre schön, dies zu verstehen"-Frage.
Ich habe ein p12-Zertifikat bzw. .pfx-Zertifikat mit Kennwort.
Dieses kann ich auf meine Safenet-SmartCard importieren, nicht aber auf meinen Yubikey.
Der Yubikey 5 kann nur Zertifikate bis zur Dateigröße von 3049 bytes importieren laut https://developers.yubico.com/yubico-piv-tool/Actions/key_import.html und da ist die .pfx mit 8KB schon weit drüber.

Die vermeintliche Lösung steht im selben Link:
it is possible to import larger certificates but that requires compression in order for it to fit (see examples bellow).
yubico-piv-tool -a import-certificate -s 9c -k -i cert_large.gz -K GZIP
Successfully imported a new certificate.
...von wegen. gzippen der pfx-Datei verkleinert diese nicht und das Kommando schlägt fehl mit der Ansage, dass das Zert. zu groß ist. Dass das gzippen nichts bringt, ist erklärbar, zumal die .pfx ja verschlüsselt ist und somit verkleinert sich fast nichts.

Frage: gibt es dennoch einen Weg mit Yubikeys?

Content-ID: 672294

Url: https://administrator.de/forum/import-eines-p12-zertifikates-auf-einen-yubikey-672294.html

Ausgedruckt am: 03.04.2025 um 12:04 Uhr

Spirit-of-Eli
Spirit-of-Eli 02.04.2025 um 15:58:23 Uhr
Goto Top
Moin,

was passiert wenn du die Zertifakte der Kette einzeln importierst?
Wobei ich fürchte das diese dann auch um die 4KB groß sind.

Gruß
Spirit
DerWoWusste
DerWoWusste 02.04.2025 um 16:10:51 Uhr
Goto Top
Die EInzelzertifikate sind 2 KB groß, enthalten aber nicht den privaten Schlüssel, der benötigt wird.
Crusher79
Crusher79 02.04.2025 um 16:17:42 Uhr
Goto Top
Hi, pfx sieht schlecht aus.

PEM ist ja nur Text. Zertifkat + Key Datei = 2,82 KB (2.889 Bytes)

Man kann ja auich in einer Datei Cert + Key vereinigen.

Ich denke es geht nur, wenn alles als String vorliegt. Kein Binary. PEM oder ähnliches Format. Kann man ja mit OpenSSL und anderen Tools einfach umwandeln.

Das wäre die enizig logische Erklärung für mich, wie eine Kompression greifen kann.
DerWoWusste
DerWoWusste 02.04.2025 um 17:43:06 Uhr
Goto Top
Gute Idee, läuft leider nicht.

Gewandelt in .pem : 10 KB. Diese datei gegzipped: 6 KB. Noch zu groß.
BiberMan
Lösung BiberMan 02.04.2025 aktualisiert um 17:47:44 Uhr
Goto Top
Nimm EC-Cipher Keys/Certs 😋, die brauchen weniger Speicher als ihre RSA Kollegen ....
Crusher79
Lösung Crusher79 02.04.2025 um 17:59:47 Uhr
Goto Top
Zitat von @DerWoWusste:

Gute Idee, läuft leider nicht.

Gewandelt in .pem : 10 KB. Diese datei gegzipped: 6 KB. Noch zu groß.

Mist... Let's Encypt PEM so 2 kB. Fullchain 4 kB und Key auch 2 kB.

Da würde sich das ausgehen. Sieht so fast unlösbar aus.

Die bieten ja auch biometrische Daten an. Oder ggf. Produkt wechseln? Wenn es nicht gerade mehrere hundert Stück sind.
DerWoWusste
DerWoWusste 02.04.2025 um 18:04:18 Uhr
Goto Top
Nimm EC-Cipher Keys/Certs
Ja, beim nächsten Mal ist man schlauer. Hier wurden RSA4096 geordert.

Aber das werde ich ausprobieren mit unserer internen CA. Wenn das klappt, weiß ich Bescheid beim nächsten Mal. Hier wurden lediglich 2 Zertifikate bestellt, halb so wild, es muss nicht zwingend auf yubikey passen.
Danke soweit, morgen mache ich den Test und melde.
aqui
aqui 02.04.2025 aktualisiert um 18:49:04 Uhr
Goto Top
Nimm EC-Cipher Keys/Certs 😋, die brauchen weniger Speicher als ihre RSA Kollegen ....
Z.B. wenn man sich testweise einmal ein .p12 Container erstellt ganz klassisch mit OpenSSL wie es HIER beschrieben ist mit ("ecparam -name prime256v1"):
root@server:/Mini-CA/Test# ll
total 44
-rw-r--r-- 1 root root 1005 Apr  2 17:03 Client1.crt
-rw-r--r-- 1 root root  566 Apr  2 17:00 Client1.csr
-rw------- 1 root root  227 Apr  2 16:58 Client1.key
-rw------- 1 root root 1214 Apr  2 17:05 Client1.p12
-rw-r--r-- 1 root root 1480 Jun  6  2023 TestCA.crt
-rw-r--r-- 1 root root 1704 Jun  6  2023 TestCA.key 
1214 Bytes passen leicht und locker in den Yubikey. 😉
BiberMan
BiberMan 02.04.2025 aktualisiert um 18:48:35 Uhr
Goto Top
Zitat von @aqui:

Nimm EC-Cipher Keys/Certs 😋, die brauchen weniger Speicher als ihre RSA Kollegen ....
Z.B. wenn man sich testweise einmal ein .p12 Container erstellt ganz klassisch mit OpenSSL wie es HIER beschrieben ist:
root@server:/Mini-CA/Test# ll
total 44
-rw-r--r-- 1 root root 1005 Apr  2 17:03 Client1.crt
-rw-r--r-- 1 root root  566 Apr  2 17:00 Client1.csr
-rw------- 1 root root  227 Apr  2 16:58 Client1.key
-rw------- 1 root root 1214 Apr  2 17:05 Client1.p12
-rw-r--r-- 1 root root 1480 Jun  6  2023 TestCA.crt
-rw-r--r-- 1 root root 1704 Jun  6  2023 TestCA.key 
1214 Bytes passen leicht und locker in den Yubikey. 😉

Aber nicht mit RSA4096 wie der TO uns mitteilt, da hat allein schon der private Key 3,2kb ...
Wenn du dann noch ne CA mit nem langen RSA Schlüssel hast und mit in den Container packst (was im Normalfall bei selbst signierten CAs best practice ist) ist endgültig Ende Gelände ...

Aber mal ehrlich, das Ding ist ja nicht gerade billig und dann so mit dem Speicher geizen, ist ja lächerlich .... Hauptsache die Marge stimmt.
DerWoWusste
DerWoWusste 03.04.2025 um 08:55:14 Uhr
Goto Top
Soo... habe nun ein Zertifikat mit ECDSA_P521 erzeugt, als pfx exportiert (4KB) und das dann zu .pem gewandelt (5 KB). Nun mit gzip gezippt und dann liegt es mit 2709 Bytes auch unter der Höchstgröße für Yubikeys. Sauber!
Habe den Yubikey im Büro liegen lassen, der eigentliche test kommt dann morgen.
aqui
aqui 03.04.2025 um 10:55:51 Uhr
Goto Top
als pfx exportiert (4KB)
Holla die Waldfee! Die oben als Beispiel mit EC erzeugten Zertikate und .pfx Dateien liegen ja ganz ohne GZIP usw. noch deutlich darunter. Fragt sich was da bei dir noch mit drin ist. Bei 4k ist vermutlich noch ein kleines Video embedded?! 🤣
BiberMan
BiberMan 03.04.2025 aktualisiert um 11:02:00 Uhr
Goto Top
Zitat von @aqui:

als pfx exportiert (4KB)
Holla die Waldfee! Die oben als Beispiel mit EC erzeugten Zertikate und .pfx Dateien liegen ja ganz ohne GZIP usw. noch deutlich darunter. Fragt sich was da bei dir noch mit drin ist. Bei 4k ist vermutlich noch ein kleines Video embedded?! 🤣

Reicht schon wenn die CA noch nen großen RSA Schlüssel hat den man jetzt nicht ad hoc ändern kann und man den je nach Anwendung mitgeben muss.
aqui
aqui 03.04.2025 aktualisiert um 11:02:23 Uhr
Goto Top
Was bei der Vorgehensweise auch nicht ganz verständlich ist warum pfx aka p12 nochmal als .pem gewandelt wird ? Dieses Format ist doch schon das finale Format was man zwischen den Geräten transportiert.
Man erzeugt also Zertifikat in pem oder crt oder was auch immer und den Key und bündelt dann final beides in ein pfx oder p12 was man dann importiert und fertig.
DerWoWusste
DerWoWusste 03.04.2025 um 13:06:55 Uhr
Goto Top
@aqui
Der geneigte Leser wird gelesen haben, dass eine Kompression auf verschlüsselten Daten (.pfx) kaum wirksam arbeiten kann, während sie auf unverschlüsselten (.pem) ja etwa auf 50% schrumpfen konnte.
Du wirst kein .pfx erzeugen können, dass unter 3 KB hat, wenn das CA-zert drin ist und als Verschlüsselung dessen RSA gewählt wurde.
aqui
aqui 03.04.2025 um 13:48:27 Uhr
Goto Top
Da hast du Recht. Das obige CA Zert. womit getestet wurde ist mit EC generiert und hat dementsprechend nur eine Größe von 1480 Bytes.
Ist schon extrem wie da der Unterschied zu RSA ist.
Crusher79
Crusher79 03.04.2025 um 13:56:53 Uhr
Goto Top
Hab mal grob geschaut. Einige empfahlen dann die Chain of Trust weg zu lassen. Spart auch. Kamen aber auf 9 kB.

https://stackoverflow.com/questions/66782004/pfx-size-limit-error-on-azu ...

Aber @DerWoWusste du bist also nicht allein mit dem Problem. Zertifikate sind halt eine neue Erfindung, wie das Internet.
DerWoWusste
DerWoWusste 03.04.2025 um 14:07:11 Uhr
Goto Top
Zertifikate sind halt eine neue Erfindung, wie das Internet
Du sagst es. Auch für Yubico.

@aqui
und schön ist dann auch, wenn man so ein Zertifikat bestellt und gar nicht wissen kann, ob RSA oder EC, da bei einem Reseller von D-Trust bestellt wurde, der das gar nicht angibt.
Aber: wie gesagt, kein Drama

Ich danke Euch für den Ansatz mit .pem und den guten Hinweis mit EC vs. RSA.