¿Se puede usar ECDH con clave pública estática y parámetros?

2

Tengo el protocolo requerido para la privacidad. Por lo tanto, quiero usar criptografía híbrida. Basado en mi conocimiento, ECDH es rápido y seguro. Mi sistema consta de 3 componentes principales: un servidor, cliente y servidor de confianza

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.

Mis preguntas son: 1- ¿Este escenario es correcto? 2- ¿Se puede utilizar ECDH con clave pública estática y parámetros?

    
pregunta ayman khallel 01.08.2018 - 21:30
fuente

2 respuestas

1

El escenario no parece correcto; ¿Qué debe hacer para detener a un hombre 2 en el paso del atacante?

No veo ninguna manera en su protocolo para que el cliente sepa que está hablando con el servidor de confianza real y no con un atacante.

También me doy cuenta de que su solución no proporciona una manera de evitar que un cliente se una a la red y / o verifique la identidad de un cliente antes de permitirle la entrada (es decir, proporciona privacidad pero no autenticación). Hacer eso requeriría arrancar a sus clientes con algún tipo de certificado / clave precompartida / token de autenticación antes de que se una a la red.

Básicamente, sus clientes comunicarán la seguridad con alguien , pero no tendrán la menor idea de quién. Cuando permites que los atacantes se unan a la red libremente, ¿para qué sirve el cifrado?

El ECDH estático existe, por lo que puede usarlo, pero personalmente nunca lo he visto "en el mundo real", siempre es ECDHE + RSA con un certificado RSA de una CA, o algo similar .

Sí, básicamente no inventes tu propio protocolo criptográfico. Simplemente no.

Hay varios protocolos de redes seguras con implementaciones de código abierto que han sido bien diseñados por expertos en criptografía. Signal / libsignal viene a la mente, aunque hay muchos otros muchos. Este es un problema resuelto, no reinventes la rueda.

    
respondido por el Mike Ounsworth 01.08.2018 - 21:52
fuente
0

Para usar pares de claves estáticas (de cualquier tipo), su protocolo necesita de alguna manera confiar en las claves públicas. Una vez que las claves públicas son de confianza, se puede utilizar , static-static Diffie-Hellman para generar un secreto de sesión específico. Por supuesto, necesitarías un nonce además de las claves estáticas, de lo contrario siempre generarías el mismo valor secreto.

Puede encontrar todo tipo de esquemas de acuerdos de clave secreta en NIST SP 800- 56A Rev. 3: Recomendación para esquemas de establecimiento de claves de uso inteligente mediante el uso de criptografía de logaritmo discreto . El esquema estático estático se especifica en la sección 6.3 y se llama C (0e, 2s) ya que no usa claves efímeras (e) y dos claves estáticas.

Tenga en cuenta que dicho esquema estático, estático C (0e, 2s) no proporciona seguridad de reenvío . Si alguna vez se filtra la clave privada de cualquiera de los dos esquemas, todos los mensajes se verán comprometidos. Una solución sería utilizar dos pares de claves efímeras además de los pares de claves estáticas; este esquema se denominaría esquema C (2e, 2s) en la documentación del NIST.

Sin embargo, generalmente se usa un esquema c (2e, 0s) para crear el secreto de la sesión. Luego, la sesión se autentica generando una firma sobre los parámetros (aleatorios) utilizados. En ese caso, los pares de claves estáticas se utilizan para generación de firma (RSA, ECDSA) en lugar del propio acuerdo de clave. Los ejemplos son fáciles de encontrar: todos los esquemas DHE y ECDHE utilizados en TLS realizan este tipo de acuerdo / autenticación clave.

    
respondido por el Maarten Bodewes 15.08.2018 - 17:26
fuente

Lea otras preguntas en las etiquetas