Considerando questo thread:
Crea certificato senza chiave privata con OpenSSL
Ho una situazione molto simile. Ho un USB eToken 5110 JC (Aladdin) che ha una chiave privata inaccessibile, poiché è l'obiettivo principale. Posso usare pkcs11-tool --module /lib/libeToken.so.9 -l --pin -s -i
e funziona bene. Il file libeToken.so.9 è fornito dal driver SAC 9.1 (Safenet Authentication Tool). Fin qui tutto bene.
Il mio problema è: ho bisogno di generare certificati e firmarli con questo eToken. Ho provato ad usare il motore pkcs11 con openssl senza successo. Forse a causa di errori di configurazione (ho provato link come, ma ho molti errori e mi sono arreso)
Ho provato a utilizzare gpg ma ottengo errori durante l'apprendimento della scheda.
Dato che posso facilmente esportare certificati e chiavi pubbliche dal token USB, la punta di Valentin Bossi suona bene, dato che potrei eseguire openssl x509 -force_pubkey
. È corretto finora?
Quale sarà il problema di fare questo? So che firmare è un processo di generazione di un hash di alcuni dati e crittografarlo con una chiave privata. Quando alcuni dati vengono inviati a qualcuno con la sua firma, il destinatario controllerà l'algoritmo di hashing, quindi genererà un hash dei dati con lo stesso algoritmo e li confronterà con i dati hash decrittati con la chiave pubblica del mittente, giusto?
Quindi, quando si genera un certificato, indipendentemente dal fatto che i dati provenissero da un CSR o da uno stdin, la firma effettuata tramite chiave pubblica non assicurerebbe la firma digitale, poiché chiunque poteva ottenere questa chiave pubblica e generare certificati per conto del proprietario di eToken. / p>
Quindi, e adesso? Cosa ho sbagliato?
I dati crittografati con una chiave privata possono essere decifrati con la sua chiave pubblica e viceversa. Ma non sapevo che è possibile crittografare e decifrare usando la stessa chiave (poiché le chiavi sono asimmetriche).