Le CA offrono un servizio in cui un'applicazione può richiedere la chiave pubblica di qualcuno?
Sto provando a farlo, ma non sono sicuro che sia corretto (i suggerimenti sui modi migliori per farlo saranno più apprezzati):
- qualcuno con un certificato da una CA ed è un utente autorizzato nella mia applicazione inserisce i dati in una pagina web (in una forma)
- i suoi dati di input sono salvati nei campi mysql
- l'applicazione (tramite php e openssl) esegue l'hash e firma i dati in un digest di messaggi firmato * a cura: 3: l'applicazione consente di inviare l'utente all'hash e firmare i dati in un digest di messaggi firmato *
- Il digest dei messaggi firmati è anche salvato nella stessa riga della tabella mysql di # 2 (? in un campo binario?)
- i visualizzatori di applicazioni devono essere certi che questa riga di dati proviene dalla stessa persona al numero 1 L'applicazione
- (tramite php e openssl) riporta i dati utilizzando lo stesso algoritmo di hash utilizzato nella chiave pubblica n. 3 e n. 1
- se gli hash non corrispondono, qualcosa viene manomesso e il visualizzatore viene avvisato
domande: dovrei avere un altro campo per accettare la chiave pubblica del numero 1 e salvarlo anche con i dati e il digest dei messaggi firmati? o posso semplicemente chiedere alla CA la chiave pubblica di persona al numero 1? (passando alla CA il numero di serie del certificato che l'applicazione ha salvato in precedenza con i dati e il digest firmato)
o dovrei semplicemente salvare l'intero certificato stesso (da cui è possibile estrarre la chiave pubblica in ogni caso) anche se il requisito di archiviazione dei dati sarà maggiore rispetto a quando la sola chiave pubblica è stata salvata)? in tal caso, dovrei salvare il certificato in un campo mysql blob?
grazie per qualsiasi feedback o lead.
matsakaw
@thomas: grazie per il chiarimento sul ruolo della CA e sull'autenticazione basata su certificati. scusa per il mio passaggio n. 3 che ha implicitamente indicato che sarà l'applicazione a firmare i dati.
@kiBytes e @el viejo: ho modificato la mia domanda.
Stavo pensando che l'applicazione consentirà all'utente di inviare l'hash e firmare i dati che sta inviando in un digest di messaggi firmato.
stavo pensando all'applicazione che consente l'esecuzione di questi comandi (sul lato client): per consentire all'utente registrato di firmare: $ openssl dgst -sha256 -sign logged-user.key -out in.txt.sha256 in.txt
per consentire a qualsiasi spettatore di verificare: $ openssl dgst -sha256 -verify signer-pub.pem -signature in.txt.sha256 in.txt
@el viejo: grazie, leggerò i server di timestamp come suggerito.
grazie anche a tutti gli altri che rispondono. le tue risposte sono molto apprezzate.