Proceso de cifrado / descifrado OpenPGP usando GnuPG

7

Quiero saber si mi método de cifrado puede garantizar la seguridad de mis datos si mi base de datos fue pirateada, así como la autenticidad de los datos que estoy descifrando. Estoy utilizando la implementación de GnuPG del estándar de cifrado OpenPGP.

Tengo una aplicación web situada en el 'Servidor A' donde los usuarios pueden enviar información a través de un formulario. Cuando envían el formulario, se realiza el siguiente proceso de encriptación:

Encriptación - Servidor A

  1. Los datos del formulario se cifran utilizando la clave pública del servidor B
  2. Los datos del formulario se firman utilizando la clave privada del servidor A

Los usuarios administradores del sitio web pueden ver los datos enviados a través de otra aplicación web situada en el 'Servidor B' donde se lleva a cabo el proceso de descifrado:

Descifrado - Servidor B

  1. Los datos del formulario se verifican utilizando la clave pública del servidor A
  2. Los datos del formulario se descifran utilizando la clave privada del servidor B

Gracias

    
pregunta Imran Azad 17.11.2011 - 17:07
fuente

1 respuesta

7

Los procesos de cifrado y firma que tienen lugar en el servidor A y el servidor B protegen los datos del formulario contra escuchas no deseadas y alteraciones maliciosas (o accidentales), desde el momento en que se cifraron / firmaron en el servidor A hasta el momento en que se descifran. / verificado en el servidor B. Esto incluye cualquier tipo de almacenamiento en A o B, y cualquier medio de transporte que se use entre A y B. Pero tenga en cuenta lo siguiente:

  • El cifrado y la firma no dicen nada acerca de los datos enviados por el cliente; como @mikeazo sugiere en un comentario, el proceso de envío también debería estar protegido.

  • Gracias a la firma, B puede estar seguro de que cualquier mensaje que reciba es "genuino" (es realmente como era cuando A lo firmó). Sin embargo, B no puede saber si recibió todos los mensajes; las firmas no dicen nada acerca del mensaje que B nunca vio porque el atacante las interceptó antes de entregarlas a B.

  • La firma cubre solo lo que está firmado, no los metadatos que puedan estar asociados con él. Por ejemplo, los datos del formulario pueden ser verificados para relacionarse con un usuario determinado solo si el nombre de ese usuario es parte de los datos del formulario. De lo contrario, un atacante tendría la libertad de intercambiar formularios cifrados en la base de datos de A. De manera similar, un pirata informático atacante se encuentra entre A y B podría reproducir un viejo mensaje cifrado, por lo que B no puede estar seguro de que obtuvo "los últimos" datos de formulario para un usuario dado, a menos que los datos del formulario incluyan algún tipo de marca de tiempo o número de secuencia. / p>

  • La seguridad solo se relaciona con el secreto de las claves privadas involucradas. Se necesita un poco de fe para creer que un atacante que obtiene acceso a la base de datos de A no tendrá acceso a la clave privada de A.

Entonces, si bien su sistema de cifrado + firma ofrece algunas garantías útiles, es posible que no cubran todo que los atacantes imaginados puedan probar. Te invito a escribir formalmente, en algún lugar, el alcance de los poderes que otorgas a los supuestos atacantes (ese es el "modelo de ataque").

Aparte de eso, usar GnuPG es una muy buena idea, ya que usar una implementación casera o, peor aún, un protocolo hecho en casa, sería una muy mala idea.

    
respondido por el Thomas Pornin 17.11.2011 - 17:43
fuente

Lea otras preguntas en las etiquetas