Ho il seguente scenario: ho molti dispositivi embedded che dovrebbero parlare con un altro. Per abilitare la fiducia tra questi dispositivi vorrei utilizzare i certificati. I dispositivi generano una coppia di chiavi e inviano la chiave pubblica a un'istanza centrale che dovrebbe agire come agente di registrazione, richiedere il certificato corrispondente per la chiave pubblica dalla CA e inviarlo al client.
A mia comprensione limitata dovrebbe essere possibile richiedere un certificato per un altro utente / macchina se
a) Sono in possesso di un certificato di agente di registrazione, con il quale firmo la richiesta
b) Ho la chiave pubblica che dovrebbe essere certificata dalla CA.
Sfortunatamente tutto ciò che ho trovato durante la mia ricerca negli ultimi giorni non sembra possibile. Qualcuno con una comprensione più profonda di me può far luce su questo?
Modifica
Per rendere più chiaro ciò che voglio ottenere e ancora non so se è possibile, ecco i passaggi:
- Il dispositivo crea una coppia di tasti
- Il dispositivo invia la chiave pubblica di questa coppia a una macchina che funge da agente di registrazione (protetto da OTP)
- La macchina, che funge da agente di registrazione, crea un csr per il dispositivo contenente la chiave pubblica e lo firma con l'iscrizione certificato dell'agente.
- La macchina invia csr all'AR e consegna il certificato risultante al dispositivo.
Spero che questo chiarisca un po 'le cose.
La prima cosa che ho cercato è stata l'automazione del processo utilizzando certreq, in particolare certreq -new . Non vedo alcuna opzione per fornire la chiave pubblica del dispositivo alla richiesta.
Poi ho esaminato l'esempio Creazione di una richiesta CMC con firma agente (Single Signer) , ma non riesco a vedere dove viene inserita la chiave pubblica del dispositivo nella richiesta.
Essendo più familiare con il linguaggio Java, ho anche cercato in alcuni esempi di utilizzare l'API di bouncycastle. Tutti hanno utilizzato la chiave privata corrispondente alla chiave pubblica del dispositivo per firmare la richiesta, non il certificato dell'agente di registrazione.
So che quanto sopra è un caso comune per le smartcard, ma non riesco a trovare come è fatto.