Is client side encryption really better than server side?

You are correct. Given your goals, client-side encryption probably doesn't make a lot of sense. It is not that it is worthless, just that there are some significant pitfalls and the value is limited, so your time would probably be better spent on other measures. A classic technical reference on this topic is Javascript Cryptography Considered Harmful.

If you're thinking that using client-side cryptography might help perception, even if it doesn't actually improve real security, I don't think that's a very promising angle, either. The average user is going to have no clue what the phrase "client-side cryptography" means and so I don't think they're going to associate it with warm fuzzy feelings.

I think you are better off taking standard steps to build trust with your users and to improve how you protect your users' data. Have you moved to sitewide HTTPS? Do you have a strong, customer-friendly privacy policy? Are you focused on serving your customers well and making them passionate about your site?


As other users have mentioned a lot of the discussion around this is going to be more under the umbrella of IT Security. However I think there is a UX perspective on this (or at least the beginnings of a discussion), which I'll try to detail below.


You've mentioned the answer in the question itself:

Client side encryption may give feeling of control

As you've mentioned, neither client-side nor server-side encryption is foolproof in terms of security, so there's nothing to choose between them, right?

Well, there is - it's about perception. If your users perceive that their data is being treated in a secure manner, then they are likely to be more happy regardless of whether or not this is actually the case.

Admittedly it's important not to lie to your users about the risks, but since only a small minority of users in most applications are likely to care, you can discuss the nitty-gritty details of your security solution somewhere where it won't get in the way of disinterested users.

Given this, the solution that I would suggest would be to perform client-side encryption to give your users a feeling of control, and then have some progressive disclosure of your security mechanism, its details and exactly how secure it is, for the users that do care.

EDIT: I'm aware that this position may have ethical implications depending on what you feel your users need to see. From a dispassionate perspective, however, perception is king.