20

I am writing a page for our website which describes the measures we take to keep our customer's information secure. On this page one section describes how we keep their passwords secure.

We are using Secure Password Storage v2.0 which is an implementation of PBKDF2. We are using the hash algorithm SHA256, 64000 iterations, and 24 bytes for our random salt. I'm not really sure this matters so much, other than that I just don't want people to come with pitchforks raised thinking we are encrypting the passwords.

Is it correct to say "The passwords which we store cannot be decrypted"? I worry that it implies that the passwords can never be cracked, which simply isn't true. However, I do want to emphasize to our users that our system to store passwords is secure enough that they shouldn't ever have to worry about it (as long as they pick a sufficiently unique password of course), even in the case of the entire password database being stolen.

Other options I have considered are "The method used to store passwords cannot be reversed" or "In the case of a breach, your password should not be retrievable" but I find saying they can't be decrypted to be more understandable and to the point, especially since some people may not even realize that passwords aren't stored in plaintext.

14
  • 6
    So you think the average person understands what password hashing means? I would not guess that the typical user of our website is very technologically inclined, but then again I don't know how common it is that people understand what it means to hash a password.
    – JCB
    Commented May 31, 2016 at 18:36
  • 20
    How about "We use state-of-the-art password storage technology to ensure that your password cannot be recovered even if the password database is compromised."? You may want a footnote or link to the more technical jargon as well. Commented May 31, 2016 at 18:44
  • 3
    @TTT Maybe he refers to the fact that encrypting passwords is not a very good idea.
    – A. Darwin
    Commented May 31, 2016 at 20:11
  • 2
    @TTT The reason I included that statement was because even though the paragraph about how we are storing the passwords isn't necessarily relevant to this question, if I were to remove it and simply state that the passwords cannot be decrypted people may assume that we are encrypting the passwords which I wanted to avoid.
    – JCB
    Commented May 31, 2016 at 20:32
  • 2
    @Lasagna do you mean "SHA256, X iterations,..."? Hashing is secure even if you disclose the algorithm, because the attacker would still need a lot of processing power and/or time to obtain the input (e.g. password) from the hash. Adding salt further increases the time and resources need to get the password, and in particular protects the hash from dictionary attacks and rainbow table attacks. If you are interested, start searching "cryptographic hash", "hash", "salt" on your favorite search engine. There are also a lot of resources on this SE.
    – A. Darwin
    Commented Jun 1, 2016 at 6:44

6 Answers 6

34

"We believe the secrecy of your passwords is very important, which is why we have implemented measures that strongly protect them while stored on our servers. Once you submit your password we convert it using a cryptographic function (salted PBKDF2-SHA256 with 64,000 iterations for the tech savvy), so even if attackers are able to breach our site they won't immediately learn your password.

This method of storing passwords makes it significantly harder for your password to be cracked by the bad guys. Choosing a unique and good password/passphrase choice paired with this technology can help prevent unauthorized access to your account. Even our employees won't know your original password."

Similar to Adam's suggestion, just expanded to cover more of your concerns.

13
  • 7
    I like this, especially the point made about employees being unable to see the passwords. It implies that they're stored in a manner that is irreversible even by the "good guys". I think that having your password/information stolen or misused by the website itself is a legitimate concern many people have when registering at a website and this addresses it nicely.
    – JCB
    Commented May 31, 2016 at 20:09
  • 3
    Phrases like "We believe the secrecy of your passwords is very important" are so common, and so often introduce platitudes, that I stop reading. I do like the "even our employees..." bit. Commented May 31, 2016 at 20:15
  • 1
    @PwdRsch Totally agree. I personally don't like the style. Commented May 31, 2016 at 22:10
  • 1
    I'd change "using a cryptographic function" into "using a one-way cryptographic function" (even non-techies should get that), and probably put the parenthetical text in a footnote.
    – Ángel
    Commented May 31, 2016 at 22:42
  • 3
    A layman wouldn't have any idea how long "not immediately" is in the phrase "they won't immediately learn your password". Does that mean it'll take 10 minutes? A few hours? When in reality using current technology it may be more than a human lifetime, but on TV and movies a password can be cracked in a couple of minutes. Commented Jun 1, 2016 at 5:35
5

The technical components are hard to communicate about. Understanding the answer beyond "We're doing the right thing" requires a lot of knowledge. So why not say both, something like:

"We protect your password with very strong technology. (For the geeks, it's currently 64K iterations of SHA2/PBKDF2)"

1
  • 3
    I would go a little farther: "We protect your password with very strong technology, using the security industry's recommended practices. (For computer security experts, it's 64,000 rounds of SHA2 using PBKDF2.)" If you have had a recent security audit, perhaps as part of an industry requirement (PCI, etc.), I'd recommend referencing the audit and auditors as well. But you'll have to keep the web page up to date, because nobody should trust a page that says "We just passed our 2007 security audit!" Commented May 31, 2016 at 21:15
2

Is it correct to say "The passwords which we store cannot be decrypted"? I worry that it implies that the passwords can never be cracked, which simply isn't true.

It is somewhat correct, though the very presence of "decrypted" in that sentence may lead people to jump to the wrong conclusion.

It may be better explained by saying that the passwords undergo a "one-way cryptographic hashing process", which cannot be reversed to find the original password, even by the system administrator.

If the only way to get the password is brute-force cracking, then I think it's fair to say the "process cannot be reversed". If you do want to address brute-force cracking, you could go on to mention that "the only way for an attacker to obtain the original password would be to guess it correctly, which may take longer than a human lifetime" assuming the password is chosen securely.

Other options I have considered are "The method used to store passwords cannot be reversed"

Yes, I think it's fair to claim that.

"In the case of a breach, your password should not be retrievable"

This is not as concise in my opinion. Firstly, "should not" is vague, and it may actually be retrievable through brute-force cracking, which isn't sufficiently addressed in this phrase.

There's a subtle distinction in my mind between "reversing the algorithm" - which brute-force cannot do, and "retrieving the password" - which brute force can assuming enough time.

but I find saying they can't be decrypted to be more understandable and to the point,

Yes definitely.

As for the explanation of text:

We are using Secure Password Storage v2.0 which is an implementation of PBKDF2. We are using the hash algorithm SHA256, 64000 iterations, and 24 bytes for our random salt.

It is good to include this for the benefit of those who understand the technical details, assuming that one of the previously discussed more layperson explanations is also included.

1

How about this

"Our use of industry-proven security techniques guarantee that your password cannot be stolen from our equipment."

Edit: The wording should be changed per comments, because the guarantee (or whatever you call it) is subject to getting sufficiently unpredictable passwords from the end-user. (which is not dependable)

Perhaps with a link "How is this possible?"

"Using a technique known as Repetitive SHA256 Hashing, only a Checksum of your password is stored. This way we can test whether the Password matches, but, the original password cannot be recovered or decrypted. This is the same technique used in large-scale applications such as Email and Online Banking."

I'm no communications expert, but hopefully the first quote will give the laymen info, and then if someone starts to question you, they will click the link. If the understand the word Checksum, then maybe they can understand without any extra research.

8
  • 4
    its not a guarantee. Commented May 31, 2016 at 18:49
  • True, there is the remote possibility of a crack on the algorithm, as well as the more likely possibility of an edit the the server's application by an attacker, or possibly MITM. Those possibilities, if they were to occur, would capture the password next time the user logs in. However that would be beyond the scope of this terminology request. Commented May 31, 2016 at 19:25
  • I thought about "...prevent your password from being stolen..." (without the word guarantee) but it doesn't seem concrete enough, given the amount of difficulty in cracking SHA256. (assuming sufficient iterations) I'm interested to see what other terminology suggestions will be posted, as I frequently am faced with the desire to explain encryption and hashing details to the layperson. Commented May 31, 2016 at 19:28
  • 1
    George, I think the biggest risk is a dictionary attack using common passwords against password hashes. Basically, if you have a weak password, a salted hash provides minimal security Commented May 31, 2016 at 19:33
  • 1
    @NeilSmithline, That is an excellent point. We of course cannot guarantee security of a weak password, even with a strong hash. Commented May 31, 2016 at 19:41
1

We follow industry best practices for password verification. For example:

  1. We do not record our users' passwords. Instead we record scrambled digests that allow us to recognize your password but no more. We don't know what your password is, but we recognize it when we see it!
  2. We compute the digest using cryptographic password stretching algorithms that randomize the digests and use deliberately slow computations. Both of these factors make it costly for hackers to guess passwords in bulk.

Note however that our measures cannot protect against all risks, and you are the first line of defense. In particular, the following are very important factors that are in your control, not ours:

  • Do not choose a password that is easy to guess. If somebody correctly guesses that your password is your spouse's name and your wedding anniversary, there's nothing we can do about that. [link to a good set of password guidelines]
  • Do not use the same password in more than one site. If one of the site leaks your password, then the hackers may be able to log in to your accounts in the others. To avoid having to memorize or write down lots of different passwords, we recommend that you use a secure password vault program. [link to some such programs]
  • We will never ask for your password in the phone or over email. Be aware that a common ploy among criminals is to pretend to be us and fool you into telling them your password. So if you receive such a call or email, do not do as they ask.
  • If you get an email that looks like it's from us, asking you to log in to our site urgently, don't click on any links provided in the email. Instead, enter our company name on a search engine like Google and follow the result from there. [links to anti-phishing resources]
0

You could do a public service and explain what you are doing.

Things like defence in depth - multiple levels of defence. First level making your servers unhackable. Second level not storing plain text passwords. Third level not storing encrypted passwords. Fourth level salting. Fifth level using a slow algorithm (64,000) passes.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .