Moin Moin!
Und weil Javascript selbst immer im Klartext vorliegt (Microsofts sogenannte Verschlüsselung ist geknackt!), kann jeder nicht komplett verblödete Bösewicht alle Schutzmaßnahmen dagegen ausbauen.
Das ist ein schwaches Argument - die Sicherheit einer Verschlüsselung darf nicht dadurch beeinträchtigt werden, wenn der Algorithmus bekannt wird. Period.
Vollkommen richtig. Ich will ja auch nichts gegen den Entschlüsselungsalgorithmus unternehmen (wäre ja auch blöd ...). Mir ging es darum, dass sich Javascript in dieser Situation nicht dagegen wehren kann, massiv parallel mit Passwort-Kandidaten versorgt zu werden. Ein Server dagegen kann irgendwann (per Regel) entscheiden, dass ein Bösewicht versucht, das Passwort per Brute Force zu knacken, und stumpf die weitere Zusammenarbeit für eine Weile verweigern. (Beispiel)
Dabei spielt es dann auch keine Rolle ob das ganze am Client oder am Server läuft - den verschlüsselten Text habe ich und den kann ich dann versuchen zu entschlüsseln - dafür kann ich mir zur Not eine eigene Umgebung bauen.
Ja, und mit einer reinen Javascript-Lösung, die einen vom Server gelieferten, verschlüsselten String entschlüsseln soll, ist genau das das große Problem. Es ist extrem einfach, eine eigene Umgebung zu bauen -- weil genau das der Normalfall der Anwendung ist. Seite mit allen Resourcen speichern, in 10^n automatisierten Browser-(Simulator-)Instanzen öffnen, parallel verschiedene Passworte eingeben lassen, Ergebnis abgreifen.
Wenn hingegen die Sicherheit darauf beruht dass der Algorithmus geheim bleiben muss und jemand nur den Schlüssel bekommt, läuft am Sicherheitskonzept ohnehin schon einiges schief.
Richtig. Die Idee, ein eigenes Plugin für die Entschlüsselung zu verteilen, damit der Algorithmus nicht ganz so offensichtlich ist wie in nacktem Javascript, ist ein ganz deutliches Zeichen dafür.
Nicht, dass man Plugins nicht analysieren könnte, ganz im Gegenteil: Sie haben eine (mehr oder weniger) klar definierte Schnittstelle zum Browser, da kann man recht schmerzfrei ein "T-Stück" zwischenbasteln, dass sämtliche ausgetauschten Daten und Funktionsaufrufe mitschneidet. Oder man jagt das Plugin stumpf durch einen Disassembler wie IDA Pro. Oder beides.
Wirkluch hart geschützte Programme wie Skype sind schwieriger, aber auch nicht unmöglich zu zerlegen. Es macht eben nur deutlich mehr Mühe als ein 08/15-Compilat, das irgendwann mal aus einer Standard-Installation einer gängigen IDE herausgefallen ist.
(Gerade Skype macht zu viel Mühe. Mit dem Ergebnis, dass viele Admins Skype nicht trauen und es stumpf verbieten, oft unterstützt durch entsprechende Policies.)
Alexander
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".