Usar mi propio cifrado en lugar de https en la aplicación

-4

Estoy escribiendo un programa que utiliza un servidor web como servidor para la comunicación entre diferentes usuarios. ¿Está bien usar mi propio cifrado? >) en lugar de comprar un certificado ssl para la comunicación entre el programa y el servidor?

En particular, ¿puedo codificar una clave en un programa distribuido públicamente o existe el riesgo de que alguien lo descomponga para descubrir el método de seguridad y usarlo para espiar las interacciones de otros usuarios con el servidor?

No puedo imaginar que los usuarios típicos del programa tengan acceso a cualquier comunicación entre el cliente y el servidor, y alguien que tendría acceso a él probablemente no se daría cuenta de dónde está el programa para comenzar a juguetear con él. y no son datos tan confidenciales en primer lugar que alguien se molestaría en piratear.

    
pregunta clum 14.12.2014 - 22:45
fuente

2 respuestas

13

No, no es seguro porque expones (en tu programa) una clave que debería ser secreta.

Su propuesta se basa en la criptografía de clave simétrica, donde ambos extremos del canal de comunicación necesitan una copia de la misma clave. La criptografía de clave simétrica es efectiva solo cuando ambos extremos del canal están seguros. Como han señalado otros, una clave incrustada en un programa lanzado a los usuarios no es segura. TLS / HTTPS se basa en la criptografía de clave pública (asimétrica), donde la información proporcionada al cliente no necesita ser secreta. El secreto, la clave privada correspondiente a la clave pública en el certificado, se almacena solo en el servidor, donde es (relativamente) fácil de proteger.

Vea las notas en los comentarios sobre el uso potencial de un certificado autofirmado. El valor de un certificado de una autoridad de certificación es que uno puede validar la firma en él. Si está configurando un canal de aplicación a servidor, puede validar su propio certificado dentro de su aplicación y, de hecho, "fijar" el certificado para que no se acepte ningún otro.

    
respondido por el Bob Brown 14.12.2014 - 23:01
fuente
5

No, esta no es una alternativa segura. Es totalmente posible que se pueda descubrir una clave codificada, lo que lo dejaría con un tráfico de aplicaciones que esencialmente no está cifrado.

Entonces, si cree que los datos no son lo suficientemente confidenciales para protegerlos, no se moleste en cifrarlos. Entregarlo a través de HTTP. Sin embargo, si hay cualquier motivo para protegerlo, hágalo correctamente y use HTTPS.

    
respondido por el Xander 14.12.2014 - 22:48
fuente

Lea otras preguntas en las etiquetas