Estoy desarrollando una aplicación cliente/servidor que se comunicará a través del reposo. Algunos datos de solicitudes personalizadas se almacenarán en el encabezado de la solicitud. Tanto el servidor que envía la solicitud como el servidor receptor tienen un certificado SSL: ¿se codificarán los encabezados o solo el contenido?¿Los encabezados de solicitud REST están encriptados por SSL?
Respuesta
SSL encripta toda la ruta de comunicaciones del cliente al servidor y viceversa, así que sí, los encabezados serán encriptados. Por cierto, si desarrolla aplicaciones en red y se preocupa por la seguridad de los datos, lo menos que debe hacer es leer un libro como Practical Cryptography, de Niels Ferguson y Bruce Schneier, y probablemente leer más sobre seguridad de aplicaciones web. sería una buena idea Si puedo hacer una observación, y por favor, no me refiero a una crítica personal, su pregunta indica una falta fundamental de comprensión de las tecnologías de seguridad web muy básicas, y eso nunca es una buena señal.
Además, nunca es una mala idea confirmar que los datos que se supone que están encriptados están de hecho encriptados. Puede usar un analizador de red para monitorear el tráfico en el cable y tener cuidado con cualquier cosa sensible que se envíe a la luz. He usado Wireshark para hacer esto antes, los resultados pueden ser sorprendentes, a veces.
Tanto los encabezados como el contenido están encriptados.
SSL ... o más bien HTTPS (HTTP sobre SSL) envía todo el contenido HTTP a través de SSL, y como el contenido HTTP y los encabezados son de hecho lo mismo, esto significa que los encabezados también están encriptados. Al ver que los datos GET y POST se envían a través de encabezados HTTP, entonces solo tiene sentido que cuando se envíen datos de forma segura no solo querrá que se cifre el código de respuesta o el contenido.
Mientras se comunique en el túnel SSL, todo lo enviado entre el servidor y el cliente será encriptado. El cifrado se realiza antes de que se envíen o reciban datos.
Tener un certificado no es suficiente, debe configurar el servidor web para cifrar las conexiones (es decir, para usar el certificado) para ese dominio o host virtual. Además, creo que solo necesitaría un certificado único, las respuestas a las solicitudes seguirán encriptadas.
Y sí, los encabezados HTTP están encriptados al igual que los datos.
Parece que piensas que REST es un protocolo distinto.
REST no es un protocolo. Es un estilo de diseño para aplicaciones basadas en HTTP.
Por lo tanto, escriba una aplicación HTTP. ¿Los encabezados están encriptados? Sí, si está utilizando el protocolo HTTPS (HTTP sobre SSL) en lugar de HTTP simple.
Tener certificados en ambos lados no es directamente relevante para su pregunta. Los certificados SSL se utilizan para la autenticación. Ayudan a detectar ataques de hombre en el medio, como los que son posibles usando el envenenamiento de caché de DNS.
Gracias, pero soy consciente de que REST es una metodología en lugar de un protocolo. –
Las otras respuestas son correctas de que los encabezados de hecho están encriptados, junto con el cuerpo, al usar SSL. Pero tenga en cuenta que la URL, que puede incluir parámetros de consulta, es nunca cifrada en. Por lo tanto, tenga cuidado de nunca poner información confidencial en los parámetros de consulta de URL.
Actualización: como @blowdart señalado a continuación, esto es incorrecto. Vea el comentario a continuación.
No, no es exactamente cierto. Los parámetros de consulta se envían después del saludo y, por lo tanto, se cifran; SSL específicamente los elimina y los envía como parte del bloque de la página. – blowdart
@blowdart: muy cierto, pero los navegadores seguirán capturando cadenas de consulta en su historial. Por lo tanto, es mejor no utilizar información confidencial en una cadena de consulta. – Matt
Desde entonces he confirmado que @blowdart es correcto; mi respuesta fue incorrecta –
No todo está cifrado: la cadena de consulta de solicitud no está encriptada. Créeme, he visto las solicitudes de esta manera:
https://mydomain.com/authenticate?user=username&password=MyStrongPasswordSentInTheClear
favor, no ponga los datos sensibles como parámetros en la cadena de consulta.
Incluso la consulta está protegida por SSL/TLS entre su navegador y el servidor. – Bruno
No es cierto. Todo después de que 'mydomain.com' se envía por el cable dentro de la solicitud' HTTP GET/POST/etc.' y como tal ** está encriptado **. Sin embargo, la cadena de URL en sí misma generalmente se filtra en rutas lógicas paralelas, p. en el historial del navegador, registros, enlaces guardados, favoritos, barras de herramientas, registros del servidor; y probablemente lo que es peor, en algunas referencias analíticas web. Dado que la pregunta original es sobre REST, muchos de estos son irrelevantes. Sea lo que sea, como una buena práctica, mi regla general personal es: "no coloque datos confidenciales (contraseñas, PII, ID de DB) en las URL". – Valo
- 1. WCF + REST: ¿Dónde están los datos de solicitud?
- 2. WCF REST lista los encabezados HTTP en la solicitud entrante
- 3. ¿Los datos están encriptados en Silverlight descifrable usando C++?
- 4. Con HTTPS, ¿los encabezados de URL y de solicitud están protegidos como el cuerpo de la solicitud?
- 5. springframework obtener todos los encabezados de solicitud
- 6. Rack :: Solicitud: ¿cómo obtengo todos los encabezados?
- 7. ¿Cómo puedo ver los encabezados de solicitud realizados por curl al enviar una solicitud al servidor?
- 8. Certificado SSL para servicios web REST (utilizado por Android)?
- 9. Cómo ver los encabezados enviados por HttpWebRequest
- 10. Depurador Safari 6: vea los encabezados de solicitud/respuesta grabados
- 11. accediendo a los encabezados de solicitud en django/python
- 12. API REST: encabezados HTTP personalizados frente a parámetros de URL
- 13. Agregue encabezados a la solicitud envuelto por ClientResource en Restlet
- 14. Obtener encabezados de solicitud para Urllib2.Request?
- 15. JS/jQuery obtener encabezados de solicitud HTTPRequest?
- 16. modificar encabezados de solicitud en Internet Explorer
- 17. ¿Puedo cambiar los encabezados de la solicitud HTTP enviada por el navegador?
- 18. window.open con los encabezados
- 19. Datos encriptados en las URL
- 20. ¿Los parámetros de la cadena de consulta están seguros en HTTPS (HTTP + SSL)?
- 21. Objeto de solicitud de acceso desde REST
- 22. PHP GET Solicitud, envío de encabezados
- 23. Dominio cruzado AJAX del servicio REST encabezados HTTP
- 24. ¿Cómo puedo acceder a los encabezados de solicitud que no aparecen en $ _SERVER?
- 25. Usando la solicitud REST en Delphi
- 26. REST - Cuándo utilizar 400 ("Solicitud incorrecta")
- 27. extjs - los encabezados de columna y los datos de fila no están alineados
- 28. autenticación REST/autorización
- 29. Caduca los encabezados de AppHarbor
- 30. Modificar encabezados HTTP para una solicitud JSONP
Gracias, eso es muy apreciado. Confiaba en la respuesta, pero tengo que confirmar esto (por los poderes) antes de comenzar el desarrollo. ¡Aclamaciones! –
ver también http://stackoverflow.com/questions/187655/are-https-headers-encrypted –
"SSL encripta toda la ruta de comunicaciones" ... excepto los encabezados IP y TCP. –