È sicuro usare la crittografia a chiave pubblica per autenticarsi? [duplicare]

1

L'idea è di inviare un messaggio crittografato in modo tale che il destinatario possa verificare il mittente. Ecco la proposta:

  • Genero una coppia di chiavi pubblica-privata RSA e fornisco la chiave privata a Barry.

  • Mantengo la mia chiave pubblica segreta (!) e la uso per crittografare i messaggi.

  • Quando invio un messaggio crittografato a Barry, se è in grado di decodificarlo utilizzando la chiave privata che gli ho dato, allora sa che il messaggio è venuto da me.

Questo è sicuro? Senza l'accesso alla mia chiave pubblica, ma forse uno sguardo ai messaggi, chiunque può ingannare Barry? (E importa se altre persone vedono la chiave privata?)

In caso negativo, che tipo di approccio dovremmo utilizzare per firmare messaggi crittografati, senza dover eseguire un movimento della mano a scatti multipli? (Preferibilmente ancora usando RSA.)

    
posta joeytwiddle 19.01.2017 - 11:41
fonte

3 risposte

2

È meno sicuro rispetto all'utilizzo di una chiave privata:

Tuttavia, queste sono piccole limitazioni che potrebbero essere accettabili nel tuo caso.

    
risposta data 19.01.2017 - 13:28
fonte
3

Il modo comune per firmare e crittografare un messaggio è ... criptarlo e firmarlo!

Ciò significa che dai a Barry la tua chiave pubblica, e ti dà la sua chiave pubblica. Quindi, per autenticare un messaggio, lo si cripta con la chiave privata e per crittografarlo in modo che solo Barry possa leggerlo e cifrarlo con la sua chiave pubblica. Se vuoi entrambi, usa entrambi i passaggi uno dopo l'altro in un ordine coerente.

In realtà è più o meno ciò che implementano i mailer MIME, tranne per il fatto che la crittografia utilizza una chiave simmetrica unica e solo quella chiave è crittografata con la chiave pubblica del destinatario e, per l'autenticazione, solo un hash del messaggio è crittografato con la chiave privata del mittente. Perché è molto più semplice e sicuro ...

In alternativa, se entrambe le parti devono essere mantenute segrete, non utilizzare la chiave pubblica e solo condividere un segreto che viene utilizzato per una crittografia simmetrica.

    
risposta data 19.01.2017 - 12:23
fonte
2

La crittografia a chiave pubblica può essere utilizzata per l'autenticazione e viene anche utilizzata nella pratica. Ma la tua proposta non è crittografia a chiave pubblica. Nella tua proposta la chiave "pubblica" viene mantenuta privata e la tua chiave "privata" viene resa pubblica, ovvero esattamente nel modo sbagliato.

Quando si utilizza la crittografia a chiave pubblica per l'autenticazione di solito la parte A crea una sfida casuale e la invia a B, B la firma usando la chiave privata di B e A può verificare la firma usando la chiave pubblica di B e quindi può essere sicuro che A abbia accesso a la chiave privata che è uguale a un'autenticazione corretta poiché solo A dovrebbe avere la chiave privata . Il passo con la sfida casuale creata da A e firmata da B invece di alcuni dati che sono sia creati che firmati da B è essenziale perché altrimenti qualcuno potrebbe catturare il traffico e riprodurlo in seguito per rivendicare di essere B.

    
risposta data 19.01.2017 - 12:21
fonte

Leggi altre domande sui tag