Pourraient validationKey et decryptionKey se trouvent par la force brute de la valeur de cookie crypté?

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

Question

Je suis en utilisant le code suivant pour générer un jeton crypté:

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);

Ce code utilise la clé et de l'algorithme spécifié dans app / web.config:

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

Supposons maintenant que je donne le texte chiffré ainsi généré à un partenaire. il est capable de forcer brute:

  1. La valeur qui est stockée dans l'algorithme de chiffrement (l'identifiant de l'utilisateur qui ne représente pas des informations sensibles et ça ne me dérange pas beaucoup)
  2. La valeur du validationKey et decryptionKey utilisé pour créer le chiffrement (ce serait catastrophique car il serait capable de générer des jetons et se faisant passer pour un utilisateur)

Je suppose que la réponse à ces deux questions est oui, mais comment ses chances sont et pensez-vous de lui donner le chiffre réaliste représenterait une menace pour la sécurité de mon système? Merci d'avance pour vos réponses.

Était-ce utile?

La solution

Ce que vous décrivez ici est une attaque connue plaintext. L'attaquant apprend les plaintexts et les cryptogrammes correspondants et son but est de trouver les clés. chiffrements modernes sont conçus pour être sûr contre ce genre d'attaques.

En fait, tout chiffre moderne est conçu pour être sécurisé contre les attaques encore plus fortes telles que choisies attaques et choisies attaques de texte en clair de texte chiffré. Même si l'attaquant est autorisé à choisir et cryptogramme correspondant plaintext ou choisir un certain nombre de cryptogrammes et d'apprendre le décryptage de celui-ci, alors il / elle ne doit pas encore être en mesure d'apprendre la clé.

Cela rend la conception d'un nouveau chiffre très dur. Mais heureusement, nous avons déjà de bons chiffres tels que AES.

Je dois aussi ajouter que toutes les attaques ci-dessus supposent que l'attaquant connaît tous les détails de l'algorithme de chiffrement qui est utilisé. La seule chose qu'il ne sait pas est la clé qui est utilisée. Ceci est connu comme le principe de Kerkhoff.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top