jens hat geschrieben:Muß mal sehen, welche von den meisten Browsern unterstützt wird.
Bei
http://blog.engelke.com/ hat sich Charles Engelke die Arbeit gemacht und die Test Seite
https://diafygi.github.io/webcrypto-examples/ mit verschiedenen Browsern zu testen.
Ergebnis ist diese Tabelle:
https://docs.google.com/spreadsheets/d/ ... A0/pubhtml
Demnach funktioniert überall diese Varianten:
- RSASSA-PKCS1-v1_5 - 1024, 2048, 4096
- RSA-OAEP - 1024, 2048, 4096
- AES-CBC - 128 und 256 bit
- AES-GCM - 128 und 256 bit
- AES-KW - 128 und 256 bit
- HMAC
- SHA 1, 256, 385 und 512
So auch das "Fazit" aus dem Blog post
http://blog.engelke.com/2015/03/06/wher ... api-today/ :
RSA-PKCS1-v1_5 for digital signatures
RSA-OAEP for public key encryption
AES-CBC and AES-GCM for symmetric encryption
HMAC, and SHA-1 and SHA-2 hash functions are pretty much universally supported.
1024, 2048 or 4096 bit keys for the public key algorithms
128 and 256 bit keys for symmetric encryption safely
Leider läuft
PBKDF2 nicht überall.
Demnach würde sich ja
HMAC mit
SHA-512 anbieten, was?
DasIch hat geschrieben:Wenn du keine HTTPS Verbindung hast ist es sinnlos und ansonsten kannst du es mindestens genauso gut und in der Regel besser auf dem Server machen.
Das ist die alte Argumentations-Schleife, neu gestartet...
Meine Antwort ist: Besser das Passwort verschlüsselt übertragen, statt im Plain-Text. Gerade wenn man kein HTTPS hat und wenn doch, kann es auch nicht schaden...
EDIT:
DasIch hat geschrieben:kannst du es mindestens genauso gut und in der Regel besser auf dem Server machen.
Ich hab mir zwischenzeitlich auch überlegt, das ich auf dem Server zusätzlich das normale
PBKDF2 mache... Also so wie es Django beim normalen Password auch speichert... Mal sehen...