31 Jul 2010 19:07
Ecryption best practices (server side, client side, password handling)?
Dear group, I want to extend a GWT/GAE application by offering the option to encrypt information entered by the user on client side in the database. The goal is to increase trust when storing potentially sensitive data, e.g. to prevent that people who have access to the DB (like me) have read access to the stored information. For client-side encryption using GWT I found this post: http://www.mooreds.com/wordpress/archives/000529 However, others do not even recommend to compute password hashs on the client and propose to do that on the server: http://www.owasp.org/index.php/Hashing_Java http://stackoverflow.com/questions/1238628/md5-hash-for-password-string-in-gwt-gwt-ext http://stackoverflow.com/questions/695813/how-could-you-encrypt-user-data-so-only-they-can-decrypt-it From user's perspective, I would not be comfortable with transmitting my data unencrypted to the server (even using HTTPS), as the server- side may for example log my information (and my password!). Especially for the password-part I would feel unconfortable, as many people tend to reuse their passwords (please no discussion about this(Continue reading)). Currently, I see two options: a) Encrypt and decrypt the information on the client using JS/GWT. Pro: The password never leaves the browser, the unencrypted information never leaves the browser. Con: Depending on the size of the data the encryption/decryption may be slow; if loaded via HTTP, the JS code may be compromised, etc. b) Encrypt and decrypt the information on the server. Pro: Fast. Con:
).
Currently, I see two options:
a) Encrypt and decrypt the information on the client using JS/GWT.
Pro: The password never leaves the browser, the unencrypted
information never leaves the browser. Con: Depending on the size of
the data the encryption/decryption may be slow; if loaded via HTTP,
the JS code may be compromised, etc.
b) Encrypt and decrypt the information on the server. Pro: Fast. Con:
RSS Feed