Seite 2 von 2
Re: django-secure-js-login
Verfasst: Sonntag 26. Juli 2015, 00:33
von jens
Hab nochmal kurz
https://diafygi.github.io/webcrypto-examples/ unter windows getestet:
Firefox v31.8.0esr kann nichts, erst mit v38.1.0esr wird es was...
IE 11 macht nichts, weil die Seite ".then()" verwendet, welches der IE nicht beherrscht, siehe auch:
https://developer.mozilla.org/de/docs/W ... omise/then
Evtl. kann
https://github.com/taylorhakes/promise-polyfill da weiter helfen... Ich hab es lokal mal versucht, bringt aber nix.
EDIT: Hab es mal gemeldet:
https://github.com/diafygi/webcrypto-examples/issues/12
Re: django-secure-js-login
Verfasst: Sonntag 26. Juli 2015, 13:27
von jens
So, mit
https://github.com/jedie/django-secure- ... b4eba82873 laufen auch die unittests auf TravisCI.
Ich mußte dazu nur noch einen
wait einfügen
Getestet wird nun mit Firefox Firefox v38.0esr

-
https://travis-ci.org/jedie/django-secu ... s/72680308
EDIT: WebCrypto PBKDF2 test
.html und
.py datei:
https://gist.github.com/jedie/14f5b342ac44418368f9
Re: django-secure-js-login
Verfasst: Sonntag 26. Juli 2015, 21:36
von jens
So, erste "alpha" version ist draußen:
https://pypi.python.org/pypi/django-sec ... ogin/0.3a0
WebCrypto branch und "two-factor" branch (Time-based One-time Password) sind nun in master...
Lokales ausprobieren ist recht einfach:
Code: Alles auswählen
~ $ virtualenv secure-js-login-env
~ $ cd secure-js-login-env
~/secure-js-login-env $ source bin/activate
(secure-js-login-env)~/secure-js-login-env $ pip install -e git+https://github.com/jedie/django-secure-js-login.git#egg=django-secure-js-login
(secure-js-login-env)~/secure-js-login-env $ cd src/django-secure-js-login/
(secure-js-login-env)~/secure-js-login-env/src/django-secure-js-login $ ./run_example_server.sh
s.a.:
https://github.com/jedie/django-secure-js-login#tryout
Re: django-secure-js-login
Verfasst: Montag 27. Juli 2015, 22:14
von jens
Nochmal dazu, welcher Browser alles "PBKDF2" kann...
Es gibt die Seite:
http://caniuse.com/#feat=cryptography allerdings ist es dort leider nur pauschal von WebCrypto die rede. Doch so enfach ist das ja nicht, wie
https://github.com/diafygi/webcrypto-examples/ es ja aufzeigt...
Hab mal Windows 10 build 10162 in einer VM installiert und den neuen Browser Edge v20.10162.0.0 getestet.
Der kann zwar schon ein paar Sachen, aber "PBKDF2" nicht

Re: django-secure-js-login
Verfasst: Mittwoch 29. Juli 2015, 09:47
von jens
jens hat geschrieben:Hab mal Windows 10 build 10162 in einer VM installiert und den neuen Browser Edge v20.10162.0.0 getestet.
Der kann zwar schon ein paar Sachen, aber "PBKDF2" nicht

Genauso sieht es wohl in der Apfel welt aus:
https://github.com/jedie/WebCrypto-comp ... S_v8.3.png
Aber HMAC + SHA werden i.d.R. unterstützt. Das sind ja die Kernkomponenten für PBKDF2...
Ich frag mich, ob es von der Performance reicht, wenn man also PBKDF2 nachbildet, dabei aber HMAC + SHA von WebCrypt nutzt oder ob das zu langsam ist und man praktisch nur mit geringer iteration-Anzahl arbeiten könnte...
Re: django-secure-js-login
Verfasst: Donnerstag 30. Juli 2015, 13:26
von jens
jens hat geschrieben:Aber HMAC + SHA werden i.d.R. unterstützt. Das sind ja die Kernkomponenten für PBKDF2...
Ich frag mich, ob es von der Performance reicht, wenn man also PBKDF2 nachbildet, dabei aber HMAC + SHA von WebCrypt nutzt oder ob das zu langsam ist und man praktisch nur mit geringer iteration-Anzahl arbeiten könnte...
Hab nun auch einen Benchmark für SHA gemacht:
https://jedie.github.io/WebCrypto-bench/SHA/
Auf der selben machine mal ein Vergleich:
calculate PBKDF2 with 100000 iterations: duration: 0.165 sec.
calculate PBKDF2 with 1000000 iterations: duration: 1.449 sec.
calculate PBKDF2 with 10000000 iterations: duration: 14.192 sec.
calculate SHA-512 with 1000 iterations: duration: 0.115 sec.
calculate SHA-512 with 10000 iterations: duration: 0.993 sec.
calculate SHA-512 with 100000 iterations: duration: 11.143 sec.
Demnach wäre ein PBKDF2 Nachbau mit HMAC + SHA deutlich langsamer

Somit kann man nicht einfach diesen als Fallback nutzten. Das würde nur praktikabel sein, wenn die Iterations so niedrig angesetzt sind, damit der Nachbau auch benutzbar bleibt
