Poderia validationKey e decryptionKey ser encontrada pela força bruta do valor do cookie criptografado?

StackOverflow https://stackoverflow.com/questions/862141

Pergunta

Eu estou usando o seguinte código para gerar um criptografado token:

var ticket = new System.Web.Security.FormsAuthenticationTicket(
    2, 
    "", 
    DateTime.Now, 
    DateTime.Now.AddMinutes(10), 
    false, 
    "user id here");
var cipherText = System.Web.Security.FormsAuthentication.Encrypt(ticket);

Esse código usa a chave e algoritmo especificado na app / web.config:

<system.web>
    <machineKey validationKey="SOME KEY" 
                decryptionKey="SOME OTHER KEY" 
                validation="SHA1" />
</system.web>

Agora, suponha que eu dou o texto cifrado assim gerada a um parceiro. Ele é capaz de força bruta:

  1. O valor que é armazenado na cifra (o ID do usuário que não representa informações confidenciais e não me incomoda muito)
  2. O valor do validationKey e decryptionKey usado para criar a cifra (isso seria catastrófico, porque ele seria capaz de gerar fichas e personificar qualquer usuário)

Suponho que a resposta a ambas as perguntas é sim, mas como realista suas chances são e você acha que dando-lhe a cifra representaria uma ameaça de segurança para o meu sistema? Agradecemos antecipadamente por suas respostas.

Foi útil?

Solução

O que você descreve aqui é um ataque de texto simples conhecido. O atacante aprende tanto plaintexts e as mensagens cifradas correspondentes e seu objetivo é encontrar as chaves. cifras modernos são projetados para ser seguro contra este tipo de ataques.

Na verdade, qualquer cifra moderna é projetado para ser seguro contra ataques ainda mais fortes, tais como ataques texto plano escolhido e escolhidos ataques texto cifrado. Mesmo se o atacante é permitido escolher texto simples e correspondente texto cifrado ou escolher qualquer número de mensagens cifradas e aprender a descriptografia dele, então ele / ela ainda não deve ser capaz de aprender a chave.

Isso faz projetar uma nova cifra muito difícil. Mas, felizmente, já temos boas cifras tais como AES.

Gostaria também de acrescentar que todos os ataques acima assumem que o atacante conhece todos os detalhes da cifra que é usado. A única coisa que ele não sabe é a chave que é usado. Isto é conhecido como princípio da Kerkhoff.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top