¿Qué técnica de cifrado se debe utilizar para la transferencia de datos de la computación en la nube?

1

Quiero configurar mi aplicación para cloud computing para software como servicio. Habrá una gran cantidad de transferencia de datos entre mi servidor y el cliente, de aquí para allá. La técnica que he previsto es:

  1. Incluso la comunicación más pequeña debe ocurrir a través de la transferencia de archivos.
  2. El archivo debe crearse en binario en la fuente cuyo formato de archivo sea comprendido solo por mi aplicación.
  3. El archivo binario se cifra mediante el cifrado AES 256, que requiere otro archivo para descifrar en lugar de una cadena.
  4. El archivo generado se transmite a través de SFTP.
  5. Las aplicaciones de cliente y servidor se comunicarán entre sí mediante un puerto no estándar, como por ejemplo 7238 (aleatorio) en lugar del estándar 80.

Estoy deseando recibir sugerencias críticas sobre mi técnica, ya que tengo poca experiencia en aplicaciones de red y encriptación. Nota: el archivo de clave utilizado para el cifrado ya está presente tanto en el servidor como en el cliente.

EDITAR: Tal como lo preguntó Steffen, esto es lo que quiero proteger: 1. Protege al servidor de ser hackeado 2. En caso de que el servidor sea hackeado, los datos almacenados en el servidor deben ser encriptados de manera tal que sean inútiles para los hackers 3. Transfiera datos hacia y desde el servidor y el cliente sin filtrarlos a un pirata informático que escucha a escondidas

    
pregunta Cool_Coder 30.08.2014 - 18:55
fuente

2 respuestas

3

El primer paso para asegurar cualquier cosa debe ser evaluar lo que necesitas para asegurar y dónde alguien podría atacarte (atacar a la superficie). No sé qué tiene que proteger, pero como está haciendo su computación en la nube, no solo debe preguntarse cómo comunicarse con su aplicación en la nube, sino cómo la aplicación está protegida, así es como está protegido el servidor. , quién lo posee, qué leyes se aplican ...

En cuanto a su idea de comunicación: parece que combina diferentes técnicas de las que ha escuchado con la esperanza de que sea un poco seguro, pero realmente no entiende lo que está haciendo (de lo contrario no lo preguntaría). Por favor, no intentes reinventar la seguridad, por lo general sale mal. En su lugar, use tecnologías establecidas como TLS o SSH y comprenda cómo funcionan, qué ofrecen y qué límites tienen.

En cuanto a la información agregada de lo que desea proteger:

  

Protege al servidor para que no sea hackeado

Debe tener en cuenta que, con la mayoría de las soluciones en la nube, no tiene su propio hardware dedicado, sino que comparte el hardware con otros y solo obtiene una especie de contenedor o máquina virtual en el hardware para usted. Si alguien ataca con éxito el host que ejecuta estos contenedores, puede olvidar la seguridad dentro de los contenedores.

Además, la mayoría de los sistemas son vulnerables una vez que un atacante obtiene acceso al hardware. Por lo tanto, debe confiar mucho en las personas que ejecutan la infraestructura.

  

En caso de que se piratee el servidor, los datos almacenados en el servidor deben cifrarse de manera que sean inútiles para los piratas informáticos.

Esto no funcionará completamente. Debido a que tiene que trabajar con sus datos mientras no están cifrados, debe tener las instalaciones de descifrado necesarias dentro de su aplicación en la nube. Un atacante competente con acceso completo a su máquina tiene acceso a su aplicación y puede analizarla, extraer la parte de descifrado y reutilizarla.

  

Transfiera datos desde y hacia el servidor y el cliente sin filtrarlos a un pirata informático.

Recomendaría usar tecnologías establecidas como TLS o SSH para esto, pero incluso éstas pueden fallar si no se usan de la manera correcta.

Al final, se reduce lo valiosos que son sus datos. Los atacantes profesionales no pondrán demasiado esfuerzo en piratear un sistema que no tiene nada valioso que proteger, sino que pondrán mucho esfuerzo cuando se trate de datos realmente valiosos (lo que significa dinero).

Si solo se trata de un proyecto de juego, no me importaría demasiado la seguridad, es decir, solo proteger el servidor para que no se pueda utilizar incorrectamente. Pero, si los datos son realmente valiosos, es mejor que el ataque sea pequeño y no confíe en demasiada gente. En este caso no haría nada en la nube.

    
respondido por el Steffen Ullrich 30.08.2014 - 21:48
fuente
1
1. Protect the server from getting hacked 

Para esto, puede encontrar varias guías de fortalecimiento, que combinan el bloqueo de su máquina, su actualización con revisiones, etc.

2. the data stored on the server should be encrypted

Asegúrese de que sus datos estén encriptados, puede hacer esto usando encriptación simétrica (sugirió AES, con la clave como un archivo), hay varias formas de hacerlo.

3. Transfer data to and fro the server and client

Para esto, debe asegurarse de tener un canal seguro, protegido con los gustos de SSL / TLS. Usted sugirió usar SFTP (cuyo puerto predeterminado es 22, no 80), lo cual es bueno. Personalmente, no me molestaría demasiado con la asignación aleatoria de puertos, tendrá más problemas para acceder a un firewall (si está hablando de una aplicación que se usa en entornos corporativos) y la gente descubrirá que es un SSH / SFTP. servidor de todos modos.

    
respondido por el ndrix 31.08.2014 - 07:06
fuente

Lea otras preguntas en las etiquetas