2009-05-14 10 views
1

ich den folgenden Code verwende ein verschlüsseltes Token zu generieren:Konnten validationKey und decryptionKey durch rohe Gewalt aus verschlüsseltem Cookie-Wert gefunden werden?

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

Dieser Code verwendet den Schlüssel und Algorithmus in app/web.config angegeben:

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

Nun nehme ich an den Chiffretext geben also zu einem Partner generiert. Ist er von Brute-fähig zu zwingen:

  1. Der Wert, der in der Chiffre gespeichert wird (die Benutzer-ID, die keine sensiblen Informationen darstellt und es stört mich nicht viel)
  2. Der Wert des validationKey und decryptionKey verwendet, um die Chiffre zu erzeugen (dies katastrophal sein würde, weil er Token erzeugen kann sein würde und Identitätswechsel jeden Benutzer)

ich nehme an, die Antwort auf beide Fragen lautet ja, aber wie realistisch seine Chancen sind und denken Sie geben würde die Chiffre eine Sicherheitsbedrohung für mein System darstellen? Vielen Dank im Voraus für Ihre Antworten.

Antwort

5

Was Sie hier beschreiben, ist ein bekannter Klartextangriff. Der Angreifer lernt sowohl Klartexte als auch die entsprechenden Chiffriertexte und sein Ziel ist es, die Schlüssel zu finden. Moderne Chiffren sind so konzipiert, dass sie vor diesen Angriffen sicher sind.

Tatsächlich ist jede moderne Chiffre so konzipiert, dass sie auch vor noch stärkeren Angriffen wie gewählten Klartextangriffen und ausgewählten Chiffretextangriffen sicher ist. Selbst wenn der Angreifer Klartext und den entsprechenden Geheimtext wählen oder eine beliebige Anzahl von Geheimtexten wählen und deren Entschlüsselung lernen kann, sollte er/sie den Schlüssel dennoch nicht lernen können.

Dies macht das Entwerfen einer neuen Chiffre sehr schwer. Aber glücklicherweise haben wir bereits gute Chiffren wie AES.

Ich sollte auch hinzufügen, dass alle oben genannten Angriffe davon ausgehen, dass der Angreifer alle Details der Chiffre kennt, die verwendet wird. Das einzige, was er nicht weiß, ist der Schlüssel, der benutzt wird. Dies ist bekannt als Kerkhoff-Prinzip.

+0

@Accipitridae, danke für diese informative Antwort. –