Necesita ayuda para diseñar un flujo de trabajo de cifrado

1

Antecedentes: estoy creando una aplicación .NET, una parte muy pequeña de esta aplicación permite a los usuarios comunicarse con una aplicación de terceros. Estoy diseñando este aspecto. El tercero simplemente necesita el nombre de usuario y el tiempo de caducidad (probablemente será muy corto), ya que tienen acceso para verificar, en nuestra tienda de usuarios, si ciertos usuarios son válidos.

Mi plan es usar algún tipo de combinación AES / RSA para hacer esto. Tengo un certificado que podría pasarles, en comunicación privada, para el descifrado RSA. Tal vez haga lo siguiente:

  1. Cifre la información requerida con RSA (mediante certificado)
  2. Cifre esta información con AES (adjunte el vector de inicialización al final)
  3. Pasa esto al tercero
  4. Pídales que descifren usando la IV y la clave privada que les daré (pasadas en comunicaciones privadas)
  5. Hágalos descifrar utilizando RSA y el certificado

¿Estoy en el camino correcto aquí?

Gracias

    
pregunta shenn 25.03.2014 - 22:33
fuente

1 respuesta

-1

Creo que debería considerar un enfoque más estándar para almacenar y reenviar, que es similar al método de correo electrónico cifrado S / MIME. Eche un vistazo a PKCS # 7 y Normas de cifrado XML .

Estos tipos de protocolos funcionan cuando el remitente del mensaje busca el certificado de cada destinatario en el almacén de usuarios. El remitente genera una clave simétrica (AES está bien) para cifrar el mensaje y la cifra utilizando la clave pública de cada destinatario, que ahora tiene en sus certificados. El mensaje cifrado y cada copia del destinatario de la clave AES cifrada se agrupan y envían como un mensaje.

En la práctica, es mejor utilizar RSA para el acuerdo clave y AES para el cifrado masivo.

¿Por qué?

RSA es asimétrico y se basa en matemáticas complejas. Es lento. El algoritmo no está diseñado para la velocidad. El algoritmo también está limitado en el tamaño de lo que se puede cifrar. La longitud máxima del mensaje que se puede cifrar es la misma que el tamaño de la clave. Entonces, para claves de 1024 bits, un tamaño máximo de mensaje de 128 bytes, etc ...

AES y otros algoritmos simétricos, están diseñados para la velocidad, la eficiencia y el rendimiento.

Aunque la administración de claves es difícil, la combinación de criptografía asimétrica y simétrica le permitirá acordar claves y cifrar de forma masiva.

    
respondido por el NRCocker 26.03.2014 - 05:44
fuente

Lea otras preguntas en las etiquetas