Verificación del comando de una sola vía usando 2 claves privadas

1

Estoy tratando de averiguar si es teóricamente posible enviar comandos unidireccionales que sean 100% verificables mediante claves privadas.

La idea es simple: Las envolturas maestras verifican el secreto - > dentro de un cifrado de clave pública / privada (clave privada única maestra), toma esta clave pública y la cifra nuevamente, pero con un comando Y utilizando una clave privada compartida. soo ..

Maestro - > SECRETO > Cifrado (mantener privado, enviar público) > Agregar msg a la parte superior > Cifre con una clave pub / priv diferente, pero esta vez la clave privada es compartida por el maestro y el esclavo.

Estoy seguro de que tengo algunos detalles confundidos. Pero la idea es simple: el uso de 2 claves pub / priv puede cifrar un msg utilizando una clave y verificarlo mediante la segunda clave que se encuentra en la versión sin cifrar del msg original.

Lo que no puedo entender, es si el cifrado se debilita de esta manera, al incluir una forma de sal no cambiante. Y esto DEBE protegerse contra la falsificación de identidad, suponiendo que las claves privadas permanezcan seguras.

¿Se puede hacer esto? ¿Es esta conversación loca?

    
pregunta Absolute Truth 20.02.2017 - 22:51
fuente

1 respuesta

1

Si puedo reformular tu idea

El remitente:

  1. Crear un mensaje
  2. Cree una carga útil que incluya el mensaje, más una firma digital creada al cifrar el mensaje (o un hash del mensaje, si es grande) con la clave privada del remitente.
  3. Incluya la carga útil más la clave pública del remitente en un sobre
  4. Cifre el sobre con la clave pública del receptor

Para leer el mensaje, el receptor debe:

  1. Descifre el sobre utilizando la clave privada del receptor
  2. Descifre la firma digital utilizando la clave pública proporcionada
  3. Confirme el mensaje (o su hash) y la coincidencia de la firma

La idea es que obtenga privacidad (porque el remitente cifró el mensaje con la clave pública del receptor) e integridad (porque el remitente firmó el mensaje con una firma que solo se puede crear con la clave privada del remitente).

Estoy pensando que esto funcionaría principalmente, con un pequeño problema. Su sistema carece de cualquier noción de confianza . ¿Cómo sabe el receptor que la clave pública pertenece al remitente? Un actor malicioso podría crear un mensaje totalmente diferente con una clave asimétrica diferente, ¿verdad? Si no sabes de dónde viene el mensaje, todas las nociones de privacidad o integridad son completamente irrelevantes.

Normalmente, la forma en que verifica que una clave pública pertenece a una entidad es aprovechar la PKI y verificar la cadena de autoridad. Esto requiere la CA y todo lo que viene con ella.

Una forma diferente de lidiar con esto (si no quieres lidiar con PKI) es con secretos compartidos . Generaría una clave secreta y la proporcionaría al receptor fuera de banda (por ejemplo, envíele un dispositivo USB). De esa manera, no tiene que jugar todos estos juegos, simplemente encripta la cosa y asume que nadie más puede descifrarla. Ese tipo de enfoque es muy común.

    
respondido por el John Wu 21.02.2017 - 04:24
fuente

Lea otras preguntas en las etiquetas