El esquema de encriptación más robusto

1

Estoy un poco perdido aquí ya que nunca he tenido este problema antes. Uno de nuestros clientes desea tener nuestro código fuente en caso de que desaparezca por cualquier motivo. Estamos ansiosos por cumplir, pero el código fuente es nuestro único activo en nuestra empresa. Acordaron aceptar el código fuente encriptado y una vez al año verifican que el "método que escojamos" funcione y que el archivo que estamos cargando en su servidor funcione. Utilizaremos un tercero que mantendrá la clave o la contraseña de los archivos en caso de que desaparezca.

  • ¿Es seguro usar el enfoque de clave pública / privada?

  • ¿O existen otros métodos que podrían mejorar nuestra seguridad?

EDITAR: Después de leer los comentarios y la respuesta de Luis Casillas, me gustaría mejorar mi pregunta agregando información. Aunque confiamos un poco en el cliente, no confiamos en la seguridad de TI de "otros". Estamos investigando el peor de los casos en que se piratean y nuestro código fuente se filtra. Sé que suena paranoico, pero este software es nuestro único activo. Creo que el enfoque de la ceremonia es lo que estamos buscando aquí y, específicamente, mi pregunta es sobre el paso 6. Digamos que nos reunimos en una habitación con el agente de custodia y mi cliente. Están de acuerdo en que el código fuente es legítimo. ¿Cuál es la forma más segura de cifrarlo? ¿Funcionará un cifrado de clave pública contra un ataque de fuerza bruta? ¿Cómo puedo reducir las posibilidades de descifrar el código sin la "contraseña secreta"? Gracias por todos los comentarios, esta es la primera vez que hacemos esto y todos los comentarios son muy apreciados.

    
pregunta Cristian Eduardo Lehuede Lyon 26.10.2016 - 02:18
fuente

1 respuesta

1

En cualquier caso, todo tu escenario parece hacer una serie de suposiciones que suenan bastante mágicas. Por ejemplo:

  

Acordaron aceptar el código fuente encriptado y una vez al año verifican que el "método que escojamos" funcione y que el archivo que estamos cargando en su servidor funcione.

¿Cómo pueden verificar si el archivo que carga en su servidor "funciona", si no es así descifrando? Si pueden descifrarlo una vez al año, ¿por qué no pueden descifrarlo cuando lo deseen? E incluso si (de alguna manera!) Realmente solo pueden descifrarlo una vez al año, ¿por qué no pueden aferrarse a la fuente descifrada para siempre?

Una vez que consideras estas preguntas, me parece que lo que te propones hacer tiene que ser mucho más complejo de lo que estás haciendo sonar:

  • Es absolutamente necesario que muestre su código fuente al cliente para que funcione cualquier esquema, porque de lo contrario no pueden saber que el archivo cifrado que usted les da es realmente su código fuente.
  • El método para mostrarles el código fuente no puede darles una copia de texto simple de la base de código, porque entonces no tiene sentido darles el archivo cifrado.
  • Los necesita para firmar que están satisfechos con su afirmación de que lo que les mostró es de hecho su código fuente y que el archivo cifrado que les está entregando se descifra de la misma forma que usted. les mostró.

Para hacer que lo que estás describiendo realmente funcione, necesitas una ceremonia complicada, quizás algo como esto:

  1. El cliente, el agente de custodia de claves y usted se reúnen en una habitación.
  2. O bien proporciona una computadora con una instalación de sistema operativo nueva, instalación de las herramientas necesarias para llevar a cabo la ceremonia, sin conectividad de red y la capacidad de leer medios extraíbles.
  3. El cliente examina la computadora e instaló el software a fondo para asegurarse de que el software instalado en él no sea malicioso de ninguna manera.
  4. Copia el código fuente de los medios extraíbles en el disco duro de la computadora.
  5. El cliente examina el código fuente para asegurarse de que es auténtico, pero no pueden copiarlo en medios externos.
  6. Con el cliente que atestigua, ejecuta los comandos para archivar el árbol de origen, generar una clave, cifrar el archivo y copiar el archivo cifrado en la selección de medios externos del cliente, que luego se entrega al cliente.
  7. Con el cliente que atestigua, ejecuta los comandos para copiar la clave en la selección de medios externos del cliente, que luego se entrega al agente de custodia.
  8. Ahora todos tienen que firmar que la ceremonia se realizó a su entera satisfacción o, de lo contrario, no es válida.

Y apuesto a que estoy simplificando esto demasiado. Mensaje para llevar a casa: hacer lo que propone de forma segura con las partes que realmente no confían entre sí , es mucho más complicado de lo que cree. Si crees que este enfoque paranoico es excesivo, entonces estás confiando implícitamente en tu cliente, y tal vez es mejor codificar esa confianza en condiciones contractuales que acumular información sobre seguridad técnica.

  

¿Es seguro utilizar el enfoque de clave pública / privada?

El uso de la criptografía de clave pública no le proporciona nada aquí, ya que, desde el punto de vista del cliente, solo le está dando un archivo cifrado y retiene la clave que puede descifrarlo. Así que esa clave podría ser simétrica.

  

¿O existen otros métodos que podrían mejorar nuestra seguridad?

Compartir secretos viene a la mente, pero puede ser poco práctico con un archivo muy grande.

    
respondido por el Luis Casillas 26.10.2016 - 04:04
fuente

Lea otras preguntas en las etiquetas