2 ms·
The most important thing you need to do is to make your implementation completely transparent and publicly available. Data doesn't get more personal and private
by mike-cardwell 14y ago
The most important thing you need to do is to make your implementation completely transparent and publicly available. Data doesn't get more personal and private than the data you will be storing.
Simply saying that you encrypt data is not enough. People need to know who has the keys and who is able to get access to the keys if they need to.
Also, if the images can be viewed in a webpage, then they're not encrypted as far as I'm concerned. Even if you use client side javascript to handle the decryption, you can be compelled to modify that javascript for a particular user to obtain their key/password next time they log in.
"We would also need to decrypt and reencrypt all data if the user changes password"
This depends if you are using a key derived from the password. Or if you are using a randomly generated key that is encrypted using a key derived from the password. With the latter, you would only need to re-encrypt the randomly generated key. Not the entire data set.
I understand that usability is important for your business case. Just don't forget how sensitive the data is that you will be collecting and how ripe for abuse it is if you don't secure it fully.
I also think that you should open source your client software. If not, I'd be concerned that at some point you'll be forced to put back doors in it to get at peoples keys.