Può essere usato ECDH con chiave pubblica statica e parametri?

2

Ho un protocollo richiesto per la privacy. Quindi, voglio usare la crittografia ibrida. In base alle mie conoscenze, ECDH è veloce e sicuro. Il mio sistema è costituito da 3 componenti principali un server, un client e un server trusted

1- The server will generate ECDH parameters and the private key 
and compute the public key.
These parameters and the public key save at the trusted server.
2- When the client joins the network, the trusted server sends the 
parameter and public key to the client. 
3- The client generates his private key, computes public key and then computes 
the secret key by using the public key of the server that was received 
from the trusted server.
4- The client encrypts his message by using the secret key and 
send the encrypted message and his public key to the server.
5- When the server receives the message, the server computes the 
secret key by using the public key of the client and decrypts the 
message by using the secret key.

Le mie domande sono: 1- Questo scenario è corretto? 2- Può essere utilizzato ECDH con chiave pubblica statica e parametri?

    
posta ayman khallel 01.08.2018 - 21:30
fonte

2 risposte

1

Lo scenario non sembra corretto; cosa deve fermare un attaccante man-in-the-middle'ing Step 2?

Non vedo alcun modo nel tuo protocollo perché il client sappia che sta parlando al vero server affidabile e non a un utente malintenzionato.

Ho anche notato che la tua soluzione non fornisce alcun modo per impedire a un client di unirsi alla rete e / o verificare l'identità di un client prima di lasciarlo entrare (cioè fornisce privacy ma nessuna autenticazione). In questo modo sarebbe necessario eseguire il bootstrap dei client con una sorta di certificato / chiave pre-condivisa / token di autenticazione prima di collegarsi alla rete.

Fondamentalmente, i tuoi clienti comunicheranno sicurezza con qualcuno , ma non avranno assolutamente idea di chi. Quando si consente agli aggressori di unirsi liberamente alla rete, qual è il punto di crittografia?

Esiste ECDH statico, quindi puoi usarlo ma personalmente non l'ho mai visto usato "nel mondo reale" è sempre ECDHE + RSA che utilizza un certificato RSA di una CA o qualcosa di simile .

Sì, in pratica non inventare il tuo protocollo crittografico. Non farlo.

Esistono numerosi protocolli di rete sicuri con implementazioni open source ben progettate dagli esperti di crittografia. Viene in mente Signal / Libsignal, sebbene ce ne siano molti altri. Questo è un problema risolto, non reinventare la ruota.

    
risposta data 01.08.2018 - 21:52
fonte
0

Per utilizzare coppie di chiavi statiche (di qualsiasi tipo) il tuo protocollo ha bisogno di fidarsi delle chiavi pubbliche. Una volta che le chiavi pubbliche sono affidabili, si , Diffie-Hellman statico-statico può essere utilizzato per generare un segreto specifico della sessione. Ovviamente, avrai bisogno di un nonce oltre alle chiavi statiche, altrimenti genereresti sempre lo stesso valore segreto.

Tutti i tipi di schemi di accordi sulle chiavi segrete possono essere trovati in NIST SP 800- 56A Rev. 3: Raccomandazione per schemi di identificazione delle chiavi accoppiati alla coppia mediante crittografia del logaritmo discreto . Lo schema statico statico è specificato nella sezione 6.3 e si chiama C (0e, 2s) in quanto non utilizza chiavi effimere (e) e due chiavi statiche.

Si noti che uno schema C (0e, 2s) statico e statico non fornisce sicurezza avanzata . Se la chiave privata di uno dei due gruppi è mai trapelata, tutti i messaggi vengono compromessi. Una soluzione sarebbe utilizzare due coppie di chiavi effimere oltre alle coppie di chiavi statiche; questo schema sarebbe chiamato schema C (2e, 2s) nella documentazione NIST.

Tuttavia generalmente uno schema c (2e, 0s) viene utilizzato per creare il segreto della sessione. Quindi la sessione viene autenticata generando una firma sui parametri (casuali) utilizzati. In tal caso, le coppie di chiavi statiche vengono utilizzate per la generazione di segnature (RSA, ECDSA) anziché per il contratto chiave stesso. Gli esempi sono facili da trovare: tutti gli schemi DHE e ECDHE utilizzati in TLS eseguono questo tipo di accordo / autenticazione chiave.

    
risposta data 15.08.2018 - 17:26
fonte

Leggi altre domande sui tag