No estoy seguro si estoy describiendo algo que ya se ha propuesto. Si no, me gustaría acuñar esta " cookies de envío doble firmadas " como un método para mejorar la técnica de cookies de envío doble que intenta evitar CSRF ataques .
Aquí está el concepto :
-
Antes de generar una página web, el servidor establece una cookie en el encabezado donde el valor incluye dos valores:
token valor generado a partir de un número aleatorio seguro, y
firma valor que es la firma del token (o tal vez simplemente un hash del mismo).
-
Cuando el cliente realiza solicitudes subsiguientes, lee la cookie y incluye el token + firma en las solicitudes POST o GET (junto con la cookie está automáticamente en los encabezados de solicitud).
-
Cuando el servidor recibe la solicitud, se autentica mediante:
-
verifica si el token + firma incluido en las solicitudes POST o GET coincide con el valor de cookie en el encabezado de la solicitud, y
-
toma el valor (cookie / cadena de consulta) token y lo firma de nuevo y compara si la firma resultante coincide con el valor (firma / cookie de la cadena de consulta) . Si coinciden, demuestra que la cookie no ha sido escrita a ciegas por un subdominio o alguna otra cosa.
-
En aras de la discusión, supongamos que las prevenciones de ataques XSS se han implementado correctamente y que solo SSL es verdadero.
¿Se ha usado este método antes? ¿Previene correctamente el ataque donde un subdominio escribe cookies en el dominio principal ?
[EDITAR: Originalmente tenía el token y la firma en dos cookies separadas, pero para simplificarlo como lo sugiere @SteffenUllrich, he editado la pregunta para reflejar tanto el token como la firma en una cookie.]