Proteger información confidencial entre usuarios

1

Sé que hay varios problemas con el cifrado, pero mi caso es ligeramente diferente

  • Los usuarios tienen información confidencial almacenada en su dispositivo
  • Tienen un par de claves RSA
  • La información debe estar encriptada y, a veces, compartida con otro usuario de manera segura. El servidor en ningún caso puede conocer el contenido de esta información

Opciones

1) Cifrado en el dispositivo con la clave pública y descifrado con la clave privada. Cuando el usuario desea compartir datos, los cifra con la clave pública del tercero y los envía el servidor. El usuario los descifra con la clave privada

2) Hay una clave de cifrado HMAC para los datos. La clave secreta se cifra en el dispositivo con la clave RSA pública y se descifra con la clave privada que se usará. Hay una copia encriptada de los datos en el servidor. Cuando el usuario desea compartir datos, encripta la clave secreta con la clave RSA pública del otro usuario y el enlace a una copia de los datos en el servidor

Pros y contras

1) Cifrado y descifrado lento. La sincronización de datos requiere una copia por usuario. Un usuario malvado no pone en riesgo el sistema

2) El cifrado es más rápido. Puede haber una copia del servidor de datos y solo se envía la clave. ¿Eliminar un contacto implica renovar la clave y distribuirla?

Mi pregunta es qué opción elegir y, en el caso de 2, cuáles pueden tener problemas de seguridad

    
pregunta pedrofb 01.06.2016 - 08:28
fuente

1 respuesta

1

Prefiero Nr1 debido a la simplicidad, pero toma Nr2 si:

(a) En su caso, el cifrado y el descifrado realmente se ralentizan por alguna razón. Tan lento que es un problema para la usabilidad. Tal vez grandes cantidades de datos o máquinas de usuario con muy mala capacidad de procesamiento.

(b) No fue un error tipográfico en la Opción 1 que usen una clave de terceros. En mi opinión, podrían hacer que las claves públicas estuvieran disponibles para todos los usuarios del sistema, y luego cifrar los datos con la clave pública del destinatario deseado cuando se solicitan los datos (solo él / ella puede descifrarlos con su clave privada).

RSA tiene un problema de relleno que podría considerar leer, ¿Qué debilidad específica de relleno tiene la dirección OAEP en RSA? .

Cuando se trata de este tipo de cosas, SIMPLE es a menudo la mejor opción.

Con la implementación de cada método de cifrado, cada pequeña hilera de código existe la posibilidad de un fallo absoluto y aplastante. Por lo tanto, la complejidad de las soluciones debe reducirse a lo más simple posible, pero no más simple que eso.

Un método de cifrado, una biblioteca criptográfica, un proceso para crear un tipo de claves, algunos puntos de falla.

¿Con qué frecuencia se actualizan los datos? ¿Cuánto cuesta el almacenamiento de datos? ¿Cómo se genera el HMAC? Tales cosas deben ser consideradas.

    
respondido por el Simply G. 01.06.2016 - 10:55
fuente

Lea otras preguntas en las etiquetas