¿Es posible enviar un mensaje a través de https que no está encriptado? Por ejemplo, ¿se requiere que ocurra la validación y autorización del certificado, pero no se encriptan los datos reales que se envían a través del socket?Protocolo SSL no cifrado?
Respuesta
Sí, TLS y SSL son compatibles con los modos "sin cifrado". Si el cliente y el servidor en cuestión están configurados para habilitarse es un problema aparte.
Es posible, aunque poco probable, que un servidor pueda habilitar uno de estos conjuntos de cifrado de forma predeterminada. Lo que es más probable es que un servidor habilite suites de cifrado débiles (como las suites basadas en DES de "exportación") por defecto. Es por eso que debe revisar cuidadosamente la lista blanca del servidor de conjuntos de cifrado, y leave only a few trusted, widely-supported algorithms.
Puede usar el conjunto de cifrado TLS_RSA_WITH_NULL_SHA, entre otros, para proteger la autenticidad e integridad del tráfico, sin cifrado.
El "RSA" en este caso se refiere al algoritmo de intercambio de claves, mientras que "SHA" se refiere al algoritmo de autenticación de mensajes utilizado para proteger el tráfico contra la alteración. "NULO" es el algoritmo de encriptación o, en este caso, la falta de encriptación.
Es importante darse cuenta de que el tráfico, aunque no está encriptado, se incluye en los registros SSL. El cliente y el servidor deben estar habilitados para SSL.
Si está buscando una solución de reducción donde algunos datos se intercambian a través de SSL, entonces SSL se apaga pero el tráfico de la aplicación continúa, eso también es posible, pero tenga en cuenta que no ofrece absolutamente ninguna seguridad para el texto sin formato tráfico; puede ser manipulado por un atacante. Por lo tanto, por ejemplo, autenticarse con SSL, luego pasar a un protocolo "in-the-clear" para recibir comandos que usan la autenticación negociada a través de SSL sería inseguro.
Hola, tengo alguna pregunta sobre openssl, ¿le gustaría echar un vistazo con la siguiente dirección? http://stackoverflow.com/questions/2542156/openssl-ssl-encryption – deddihp
No, el protocolo no permite eso.
Una solución que podría hacer es conectarse a través de https, verificar la conexión y luego desconectar las conexiones subsiguientes a HTTP con una cookie de sesión. Sin esa cookie, redirija a https para que el cliente siempre se conecte.
Esto puede que no sea relevante para usted, por lo tanto, si proporciona más información sobre el problema que está tratando de resolver, podríamos ayudarlo.
Creo que puedes.
pero sería estúpido, perderá el sentido de la autenticación y se expondrá a los atacantes que pueden interceptar y alterar sus paquetes.
La privacidad y la integridad son dos cosas diferentes. Puedes usar TLS sin privacidad; los atacantes podrían leer tus paquetes, pero sabrías si alteraron un paquete. – erickson
@erickson No sé SSL y sus hijos son lo suficientemente buenos, pero ¿por qué querrías usar hash criptográfico en tus datos de tránsito y no simplemente encriptarlo? –
No he tenido una aplicación para mí. Solo estaba señalando que SSL puede proteger contra la alteración de paquetes sin proporcionar privacidad, y el simple cifrado no es suficiente para evitar la alteración de los paquetes. – erickson
Las especificaciones SSL/TLS definen un "cifrado NULO" que puede usar para esto. La mayoría de los programas cliente y servidor lo desactivan por razones obvias.
Sin embargo, si está escribiendo su propio software, puede convencer a su biblioteca para que lo negocie.
- 1. Entender el protocolo TLS/SSL
- 2. Cifrado de contraseña bidireccional sin ssl
- 3. Mismo servidor, SSL y no SSL
- 4. Comunicación entre el cliente y el servidor utilizando ssl c/C++ - El protocolo SSL no funciona
- 5. Protocolo para puerto serie remoto, con autenticación y cifrado
- 6. ¿Una forma de SSL es el cifrado de una manera?
- 7. ¿Qué suites de cifrado habilitar para SSL Socket?
- 8. ¿Qué conjunto de cifrado SSL tiene la menor sobrecarga?
- 9. Encriptación de certificado SSL contra encriptación de cifrado
- 10. Diferencia entre el protocolo https y el certificado SSL
- 11. apache virtualhost SSL + no SSL
- 12. Error 107 (net :: ERR_SSL_PROTOCOL_ERROR): error de protocolo SSL
- 13. Mi cliente SSL (Java) no está enviando un certificado de vuelta al servidor en el protocolo de enlace SSL bidireccional
- 14. Cifrado Rsync
- 15. No se pueden enviar notificaciones push usando Javapns/Javaapns Error de protocolo de enlace SSL
- 16. ¿por qué java no envía el certificado del cliente durante el protocolo de enlace SSL?
- 17. ¿Cómo acceder a la clave de cifrado utilizada de la conexión SSL actual en Firefox?
- 18. ¿Cifrado y cifrado son diferentes?
- 19. Uso de SSL y no SSL en Tomcat 6
- 20. ¿Usa sockets SSL y sockets no SSL simultáneamente en Boost.Asio?
- 21. ¿Cómo se especifica un cifrado para una conexión SSL en .NET?
- 22. ¿Puede un servidor proxy almacenar en caché los GET SSL? Si no, ¿sería suficiente el cifrado del cuerpo de respuesta?
- 23. ¿Un cifrado conmutativo?
- 24. Mi cifrado/descifrado CryptoJS no funciona
- 25. Cómo utilizar la solicitud HTTP GET en C# con SSL? (violación de protocolo)
- 26. curl error 35: error de protocolo SSL desconocido en la conexión
- 27. Error de lectura: error en la biblioteca SSL, por lo general un error de protocolo
- 28. ¿Por qué el protocolo de enlace SSL a veces mata mi CPU?
- 29. Conexión de cierre de Chrome en el protocolo de enlace con el servidor SSL de Java
- 30. El protocolo 'net.tcp' no es compatible
Tengo curiosidad de cómo se usaría esto? ¿Por qué no usar un método alternativo de autenticación? Para mí, parece que eso es todo lo que quieres, la autenticación de un host ... válido? * encogerse de hombros * – Jakub
La pregunta no tiene sentido, ya que https es una versión segura de http que se ejecuta en el puerto estándar 443. El estándar dicta que todo el cifrado y la autorización/autenticación de certificados se aplican a este protocolo https. Y de todos modos, cualquier mensaje enviado a través de https está encriptado. ¿Puedes aclarar lo que estás tratando de hacer? – t0mm13b
Ah, de hecho, no quiero usar esto. Solo quiero asegurarme de que si uso el protocolo https, no tengo que decirle al servidor que lo encripte.De esta forma puedo confiar en que los datos estén encriptados si utilizo https. – bkritzer