Autenticazione tramite certificati digitali e firma

2

Mentre studio i certificati X.509, ho trovato che

authentication is safer if I associate/combine one or more certificates with each signed message (certificate + signed message). The receiver of the message would like to validate the certificate using the public key of the Certificate Authority and, once he has found the public key of the sender inside the certificate, he would like to validate message's signature with this public key.

Quello che non riesco a capire è: Se non aggiungo la firma al messaggio, cosa potrebbe accadere? Perché sarebbe meno sicuro?

    
posta MoreOver 15.06.2014 - 16:20
fonte

2 risposte

1

Supponendo che desideri sapere cosa succederebbe se un messaggio fosse inviato senza una firma digitale associata con esso.

Una firma digitale allegata a un messaggio consente alla parte ricevente di convalidare l'autenticità e l'integrità dei dati ricevuti.

Se la parte A invia un messaggio con firma digitale alla parte B

  1. L'autenticità è quando B può essere sicuro che il messaggio è stato inviato da A e non è un falso. Le tecniche di firma digitale implicano l'uso della chiave privata del mittente, quindi se la firma può essere convalidata utilizzando la chiave pubblica del mittente, si può dedurre che è stata effettivamente firmata dalla parte mittente.

  2. L'integrità è quando B può assicurarsi che il messaggio inviato da A non sia stato modificato sul suo percorso. La firma digitale di un messaggio dipende anche dal contenuto del messaggio (questa è la principale differenza tra le normali firme e le firme digitali). Questa dipendenza è presente perché anche un hash del messaggio viene generato durante la generazione della firma digitale. Ciò garantisce che se il contenuto viene modificato la convalida della firma fallirà.

Va notato che in questo scenario la riservatezza del messaggio inviato da A a B non è protetta in quanto non viene utilizzata la crittografia dei dati.

Quindi, se il messaggio viene inviato senza firma digitale, le proprietà sopra menzionate non saranno raggiunte.

potresti voler dare un'occhiata a questa risposta per una migliore spiegazione dei concetti di crittografia

    
risposta data 15.06.2014 - 16:55
fonte
2

Un certificato è dati pubblici; le persone continuano a mostrarle a vicenda. Quando parli con un server SSL, una delle prime cose che fa il server è mostrare il suo certificato. Per nessuno.

Quindi, mostrare un certificato non prova la tua identità. Ciò che conta è la chiave privata . La chiave privata è non nel certificato (*). Calcolando una firma, dimostrerai la padronanza della chiave privata, cioè dimostrerai di essere te stesso.

Il certificato stesso è un contenitore per la chiave pubblica. Quando guardo il certificato di Google (quello che usano per i loro server), posso convalidarlo (contro le chiavi pubbliche di CA) per ottenere una certa sicurezza sui contenuti del certificato, che ammontano davvero a: " questo pubblico la chiave è di proprietà di quell'entità ". Imparo così la chiave pubblica di Google. Tuttavia, non mi dice affatto che chiunque mi abbia consegnato quel certificato è Google! Tutti possono ottenere il certificato di Google; puoi persino vederlo nel tuo browser Web semplicemente collegandoti al loro server. Quello che mi dice che sto davvero parlando con il server di Google è che il server sembra essere in grado di produrre una firma valida su una sfida che sto inviando ad esso; e posso verificare quella firma con la chiave pubblica di Google (e conosco la chiave pubblica di Google grazie al certificato). Essere in grado di produrre una firma valida richiede la conoscenza della chiave privata - in tal caso, la chiave privata di Google, che, come suggerisce il nome, è nota solo a Google.

(*) C'è una notevole quantità di confusione implicita da alcune persone che chiamano "certificato" ciò che è realmente il certificato E la chiave privata corrispondente. La scomoda terminologia è purtroppo molto diffusa.

    
risposta data 15.06.2014 - 17:06
fonte