Eu tenho lido ( como o https evita o sequestro de sessão ), onde diz que o sequestrador verá apenas dados criptografados e não o texto simples, portanto, não é possível para eles sequestrar a sessão.
Mas dado que o usuário real também está enviando dados criptografados, isso não é tudo o que o sequestrador precisa e, portanto, o fato de o sequestrador poder ver os dados criptografados ainda é problemático e suficiente para realmente sequestrar a sessão e imitar como um usuário diferente?
Não tenho certeza de como o TLS/SSL evita isso.
Suponha que o cliente envie o valor do cookie "ABC" que foi gerado pelo servidor na autenticação bem-sucedida. Agora o cliente não enviará ABC em vez de "XYZ" (após criptografia). Agora o sequestrador verá XYZ e também poderá enviar XYZ, e então o servidor irá descriptografá-lo e assumir que o sequestrador é o cliente real.
O que estou fazendo de errado aqui?
A comunicação criptografada normalmente funciona mais ou menos assim:
Por outro lado, o servidor, claro, reflete isso. Dessa forma evitamos replays. Você não pode simplesmente escolher uma mensagem M1 criptografada com K e enviá-la novamente, porque o servidor já espera que a próxima mensagem seja criptografada com K2. E, claro, o objetivo é construir o protocolo de tal forma que um intermediário não seja capaz de derivar K2 apenas olhando as mensagens criptografadas.
Sem mencionar que apenas olhando para o fluxo criptografado, você nem conseguiria dizer qual parte é o cookie.