ich habe den Nitrokey Pro 2 vor ein paar Tagen bekommen und habe es bisher geschafft OTP in Betrieb zu nehmen, aber an S/MIME mit Outlook scheitere ich.
Mit dem ersten USB-C auf USB-A Adapter schien es noch mehr Probleme zu machen. Nun am Monitor scheint er weniger Fehler zu machen. Aber Outlook weigert sich noch immer.
pkcs15-init --delete-objects privkey,pubkey --id 2 --store-private-key test1.pfx --format pkcs12 --auth-id 3 --verify-pin
Using reader with a card: Nitrokey Nitrokey Pro
User PIN required.
Please enter User PIN [Admin PIN]:
Deleted 2 objects
error:23076071:PKCS12 routines:PKCS12_parse:mac verify failure
Please enter passphrase to unlock secret key:
Importing 4 certificates:
0: /emailAddress=<removed>
1: /C=GB/ST=Greater Manchester/L=Salford/O=Sectigo Limited/CN=Sectigo RSA Client Authentication and Secure Email CA
2: /C=US/ST=New Jersey/L=Jersey City/O=The USERTRUST Network/CN=USERTrust RSA Certification Authority
3: /C=GB/ST=Greater Manchester/L=Salford/O=Comodo CA Limited/CN=AAA Certificate Services
Failed to store private key: Not supported
pkcs15-init --delete-objects privkey,pubkey --id 3 --store-private-key test1.pfx --format pkcs12 --auth-id 3 --verify-pin
Using reader with a card: Nitrokey Nitrokey Pro
User PIN required.
Please enter User PIN [Admin PIN]:
Deleted 2 objects
error:23076071:PKCS12 routines:PKCS12_parse:mac verify failure
Please enter passphrase to unlock secret key:
Importing 4 certificates:
0: /emailAddress=<removed>
1: /C=GB/ST=Greater Manchester/L=Salford/O=Sectigo Limited/CN=Sectigo RSA Client Authentication and Secure Email CA
2: /C=US/ST=New Jersey/L=Jersey City/O=The USERTRUST Network/CN=USERTrust RSA Certification Authority
3: /C=GB/ST=Greater Manchester/L=Salford/O=Comodo CA Limited/CN=AAA Certificate Services
Failed to store private key: Non unique object ID
pkcs15-init(1989,0x105150580) malloc: *** error for object 0x6000036e0300: pointer being freed was not allocated
pkcs15-init(1989,0x105150580) malloc: *** set a breakpoint in malloc_error_break to debug
zsh: abort pkcs15-init --delete-objects privkey,pubkey --id 3 --store-private-key 3
Wenn man sich versucht die Zertifikate anzeigen zu lassen mit
pkcs15-tool --list-certificates
Using reader with a card: Nitrokey Nitrokey Pro
scheint es auch leer zu sein.
Mir ist etwas unklar woran es liegen könnte. Hat jemand einen Tipp?
Update etwas später. Bei mehreren versuchen scheint es auch ab und zu mal zu gehen:
pkcs15-init --delete-objects privkey,pubkey --id 3 --store-private-key test1.pfx --format pkcs12 --auth-id 3 --verify-pin
Using reader with a card: Nitrokey Nitrokey Pro
User PIN required.
Please enter User PIN [Admin PIN]:
NOTE: couldn't find privkey 03 to delete
NOTE: couldn't find pubkey 03 to delete
Deleted 0 objects
error:23076071:PKCS12 routines:PKCS12_parse:mac verify failure
Please enter passphrase to unlock secret key:
Importing 4 certificates:
0: /emailAddress=<removed>
1: /C=GB/ST=Greater Manchester/L=Salford/O=Sectigo Limited/CN=Sectigo RSA Client Authentication and Secure Email CA
2: /C=US/ST=New Jersey/L=Jersey City/O=The USERTRUST Network/CN=USERTrust RSA Certification Authority
3: /C=GB/ST=Greater Manchester/L=Salford/O=Comodo CA Limited/CN=AAA Certificate Services
Failed to store private key: Not supported
pkcs15-tool --list-certificates
Using reader with a card: Nitrokey Nitrokey Pro
X.509 Certificate [Cardholder certificate]
Object Flags : [0x00]
Authority : no
Path : 3f007f21
ID : 03
Encoded serial : 02 10 61526C8AB1822A8C2947C1447C83551C
Das Zertifikat mit der ID 02 ist aber nie in der Auflistung und Outlook meldet “Stellen Sie sicher, dass Sie über gültige Zertifikate zum Senden von Nachrichten mit S/MIME verfügen.”
Failed to store private key: Non unique object ID
pkcs15-init(1989,0x105150580) malloc: *** error for object 0x6000036e0300: pointer being freed was not allocated
pkcs15-init(1989,0x105150580) malloc: *** set a breakpoint in malloc_error_break to debug
Wenn die nicht deterministisch sind ist da seeeehr komisch, aber ich würde empfehlen erstmal sicherzustellen, dass der pkcs#12 container nicht irgendwie kaputt ist (erster Fehler, besagt das ein wenig).
also vielleicht mal ein beispiel pfx generieren ungefähr so:
danach mal certkey.pfx importieren und checken ob das robust und deterministisch ist, falls ja, ist die schuld wahrscheinlich im importierten pfx zu suchen…
ich habe noch ein paar Tests gemacht und kurz gesagt, wird es einfach nicht besser.
Ich habe weiterhin sehr unterschiedliche Meldungen.
Self-signed Zertifikat
pkcs15-init --delete-objects privkey,pubkey --id 3 --store-private-key test2.pfx --format pkcs12 --auth-id 3 --verify-pin
Using reader with a card: Nitrokey Nitrokey Pro
User PIN required.
Please enter User PIN [Admin PIN]:
Deleted 2 objects
error:23076071:PKCS12 routines:PKCS12_parse:mac verify failure
Please enter passphrase to unlock secret key:
Importing 1 certificates:
0: /C=DE/ST=Test/L=Test/O=test/OU=test/CN=<removed>/emailAddress=<removed>
pkcs15-init(1178,0x100c74580) malloc: Incorrect checksum for freed object 0x13020b810: probably modified after being freed.
Corrupt value: 0xf00000000000004d
pkcs15-init(1178,0x100c74580) malloc: *** set a breakpoint in malloc_error_break to debug
zsh: abort pkcs15-init --delete-objects privkey,pubkey --id 3 --store-private-key 3
der 5te Versuch machte dann diese Ausgabe:
pkcs15-init --delete-objects privkey,pubkey --id 3 --store-private-key test2.pfx --format pkcs12 --auth-id 3 --verify-pin
Using reader with a card: Nitrokey Nitrokey Pro
User PIN required.
Please enter User PIN [Admin PIN]:
NOTE: couldn't find privkey 03 to delete
NOTE: couldn't find pubkey 03 to delete
Deleted 0 objects
error:23076071:PKCS12 routines:PKCS12_parse:mac verify failure
Please enter passphrase to unlock secret key:
Importing 1 certificates:
0: /C=DE/ST=Test/L=Test/O=test/OU=test/CN=<removed>/emailAddress=<removed>
Der letzte Versuch scheint also geklappt zu haben.
Bei id 2 ist es analog.
Dann habe ich das richtige Zertifikat aus dem p12 rausgeholt und neu verpackt. Es ändert sich nichts. Importiert werden in die jeweiligen Endgeräte kann es ja. Dort läuft es problemlos.
Wenn ich dann Geduld aufbringe und es ständig versuche bis er es schluckt, akzeptiert Outlook es nicht. Es kommt immer die Meldung, dass das Zertifikat nicht gültig sei.
Liegt es evtl. am Apple M1 und OpenSC? Für S/MIME unexportierbar an Mitarbeiter zu geben, scheint mir das alles gerade zu instabil.
uha, ja das scheint doch arg komisch, memory stuff klingt auch arg nach OpenSC problem, muss aber nicht zwingend, vielleicht eine Chance das gleiche auf einem Linux System zu testen ?
Dann bitte auch noch die OpenSC version checken, laut Releases · OpenSC/OpenSC · GitHub sollte 0.22 die M1 Tauglichkeit verbessern (überhaupt mitbringen?)…
Ausser in ID 3 kann generell kein anderer slot für Zertifikate benutzt werden soweit ich mich erinnere…
ja es ist OpenSC 0.22 und MacOS 12.3 M1Pro
Wenn ich Lust und Laune habe, kann ich es noch unter Windows 11 testen. Gerade fehlt mir der Nerv dazu Allerdings sollten die Keys hauptsächlich mit Mac genutzt werden.
es gibt auch eine maximale Zertifikatsgröße, die der NK Pro2 unterstützt, glaube es waren 2048bytes, das kann auch ein Problem sein ? Wie wird gecheckt ob das Zertifikat auf dem NK Pro2 ist?
Grundsätzlich könnte man das ungefähr so testen ob das Zertifikat vorhanden ist (dafür das Zertifikat aus dem p12 container rausholen):
❯ pkcs15-init --store-certificate cert_signed.crt --id 3
Using reader with a card: Nitrokey Nitrokey Pro (000000000000000000008161) 00 00
Security officer PIN [Admin PIN] required.
Please enter Security officer PIN [Admin PIN]:
❯ pkcs15-tool --read-certificate 3 > read_test.crt
❯ diff read_test.crt cert_signed.crt && echo "cool!"
cool!
ansonsten halt mal schauen ob das nicht zu groß ist, leider haben die Unmengen von Meta-Daten die Zertifikate echt schnell wachsen lassen…
FIDO2 geht, s/mime bzw. allgemeiner OpenPGPCard geht noch nicht, hoffentlich irgendwann im Sommer…
alles nicht optimal. Habe gerade noch ein paar Tests gemacht, aber das Ergebnis deutet eher auf irgend ein OpenSC-Fehler hin. Ich weiß es nicht genau. Das Zertifikat hat 1.838 Byte und ich brauche schon ein paar Anläufe bis er es dann schlussendlich ohne Ärger importiert. Allerdings funktioniert das Zertifikat dann trotzdem nicht. Erkannt wird es in Outlook, aber nutzen kann ich es nicht.
Aber damit ist leider der Stick für meinen Einsatzzweck erstmal raus :-/
pkcs15-tool --list-certificates
Using reader with a card: Nitrokey Nitrokey Pro
X.509 Certificate [Cardholder certificate]
Object Flags : [0x00]
Authority : no
Path : 3f007f21
ID : 03
Encoded serial : 02 10 61526C8AB1822A8C2947C1447C83551C
pkcs15-tool --read-certificate 3 > read_test.crt
Using reader with a card: Nitrokey Nitrokey Pro
diff read_test.crt test.pem && echo "cool"
cool