Seguridad de los esquemas de autenticación REST

Antecedentes:

Estoy diseñando el esquema de autenticación para un servicio web REST. Esto no "realmente" necesita ser seguro (es más un proyecto personal) pero quiero hacerlo lo más seguro posible como una experiencia de ejercicio / aprendizaje. No quiero usar SSL ya que no quiero la molestia y, sobre todo, el costo de configurarlo.

Estas preguntas SO fueron especialmente útiles para comenzar:

Autenticación RESTfulMejores prácticas para asegurar un API REST / servicio web¿Ejemplos de las mejores API web SOAP / REST / RPC? ¿Y por qué te gustan? ¿Y qué les pasa?

Estoy pensando en usar una versión simplificada deAutenticación de Amazon S3 (Me gustaOAuth pero parece demasiado complicado para mis necesidades). Estoy agregando un generado aleatoriamentemientras tanto, suministrado por el servidor, a la solicitud, para evitar ataques de reproducción.

Para llegar a la pregunta:

Tanto S3 como OAuth confían en firmar la URL de solicitud junto con algunos encabezados seleccionados.Ninguno de ellos firma el cuerpo de la solicitud para solicitudes POST o PUT. ¿No es esto vulnerable a un ataque de hombre en el medio, que mantiene la url y los encabezados y reemplaza el cuerpo de la solicitud con cualquier dato que el atacante quiera?

Parece que puedo protegerme de esto al incluir un hash del cuerpo de la solicitud en la cadena que se firma. ¿Es esto seguro?

Respuestas a la pregunta(6)

Su respuesta a la pregunta