Diablo 3 bug report: "Passwords not case-sensitive."
us.battle.net
us.battle.net
Entropy of [a-z0-9] per character : 5,1 bits
Entropy of [A-Za-z0-9] per character : 5,95 bits
Entropy lost by case insensitivity
(per character): 0,85 bits (15%)
Bottom line: add 2 characters, and your password stays strong. Still, it would cool to warn users, or at least explicitly advise them to use longer passwords.http://us.blizzard.com/store/search.xml?q=authenticator they all have free android / iOS apps.
Letting improved user experience trump a tiny bit of extra security is a good tradeoff for Blizzard. They're not a bank.
Definitely not. My bank forces me to use only numbers, and only six of them. Strooonng security. The only way out of key loggers I suppose (they make me click on numbered boxes).
http://www.zdnet.com/blog/facebook/facebook-passwords-are-no...
Yes, it's possibly less secure. But for both Facebook and all of the Blizzard games there are other options if you are concerned.
Then again, it would be pretty difficult to brute force a password in Battle.net, to be honest. I'm assuming they'd lock out the account after just a handful of tries.
Correct. ~5 failed attempts forces you to use your authenticator code, and if you don't have one, you need to use their reset form and a captcha.
A very reduced keyspace, but we all knew people's password choices are poor anyway right?
If your password is aBc, you can log in to Facebook using aBc (original), AbC (windows caps lock), and ABc (first cap) only. For a regular password, this is just slightly less secure.
Being case insensitive entirely is quite a bit less secure (abc, abC, aBc, aBC, Abc, AbC, ABc, ABC).
When you log in to Facebook, they hash the password you gave them and try that. If it fails, they modify the password you gave them, reversing the case on all letters (and possibly convert numbers to special characters, or vice versa - I don't know if they go that far), and hash that.
Remember that when you log in, the server is receiving your password in plain text. Facebook is just "massaging" that data a bit (possibly several times) to try to correct a user error, rather than just bailing at the first sign of trouble.
That paper, like most papers on timing attacks, was done on the local network, not the internet. They're relying on absurdly precise measurements of absolutely tiny differences in timing, which would be lost in the jitter and latency of the real internet.
As I said, you can certainly do internet timing attacks where you're looking for database access, because this can take many milliseconds, which is a delay which can be detected even on a crappy internet link using a bit of light statistics.
Even if I'm misunderstanding, though, this particular remote timing attack is probably not practical in most programming environments; (for instance) straight C memcmp is below the measurement floor, even with signal processing.
That is a great paper; also, check out Crosby and Wallach for the modernized, math-ier take; with signal processing, the measurement limits are nanoseconds on a switched LAN (ie, if you could get a box deployed in the same hosting center as Blizzard) and tens of milliseconds over the Internet:
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.65.9...
... and Nate Lawson's Black Hat talk which actually goes through the practical issues trying to set up and run these attacks against real systems:
http://www.youtube.com/watch?v=ykNt8pSQFZQ
It's very modern, as you describe, with all the fancy maths and all that.
sha1sum(lcase($passwd). $salt);
I think the point stands for the Blizzard case - there seems to be an assumption in some corners that the password is stored plain text, but I would imagine case neutralised (so to speak) passwords are hashed.
Facebook massages the data to allow you to login even if you have caps lock on, so "pASSWORD" works when your password is "Password", or if, e.g., your phone capitalizes the first character in your password, so "Password" works when your password is "password".
1) lowercase inputted password. 2) hash password 3) compare hash to db hash (which was from a lowercased initial password).
1. If the last letter in the string is uppercase, flip the case of the entire string.
2. Make the first character lowercase.
This would allow for abC as well (if you "capitalized" the first letter while holding down capslock).
If you're worried about security as a user, d/l the free authenticator.
If you're worried about Blizzard, don't -- they're big kids. You can run your 10+ million user game platform the way you want, Blizzard will run theirs the way they want.
Telling people not to worry about security works until they, inevitably, have their data compromised. Technically aware consumers have a responsibility to put pressure on companies to be secure with information.
"Technically aware consumers have a responsibility to put pressure on companies to be secure with information."
No one's shown that Blizzard has been unsecure with anyone's information. I see a lot of people running around like the sky is falling when it's not.
Millions of accounts from a single breach somewhere. Not millions of accounts individually brute forced because their case-insensitive passwords made them trivially guessable.
We should be worried that Blizzard will get hacked like PSN was. That would be potentially catastrophic. But case sensitivity has almost no effect on password security unless your users ALL use random passwords.
And if you don't have a smartphone (spoilers you probably do) and you wanted an authenticator you could buy the token or emulate it on the OS of your choice...
http://developer.android.com/guide/developing/tools/emulator...
or on any java device apparently:
Edit: it's not quite an authenticator: http://us.battle.net/support/en/article/battlenet-sms-protec...
What? No it doesn't. They could just lower case all the password submissions and store the hashed version of that. When someone tries to log in, lower case what they enter, hash it, and compare to hash (or whatever the specifics are)
The only weakness I can imagine would be a massive botnet forcing logins, but even then it would be severely limited. Am I missing something silly?
Yes. It's not that the bad guys try bruteforce to login multiple times and wait to be banned. They could (will/might) steal db with hashed passwords, do their decrypting at home and then login with what they got. The stronger the password (or better, ie slower to calculate hash used) the more time they need for that thus giving more time for Blizzard to realize passwords were compromised and block all accounts/force global password change. Really clever bad guys can do their homework before they have a chance to put their hands on hashed passwords by preparing hashes for say all passwords which are simple combination of words [1]. Now, once password db is compromised they just look for matching hashes and have instant access to some accounts. This is why you are told to use "strong" passwords, if they just try to "bruteforce log-in" that really wouldn't matter much.
[1] http://www.reddit.com/r/netsec/comments/u2168/blizzard_inten...
How is the salt stored to make sure attackers won't just steal your salt anyway? Wikipedia says "the salt is stored along with the output of the one-way function" [1]. Does it means the server needs to store the salt for each user so it can authenticate the password?
Really not good.
Personally, I don't believe it is a bug at all. They have obviously made the decision to not enforce case in an effort to reduce customer service load/player frustration.
Yes, it reduces the time needed to brute force your password if someone got hold of their user DB. But 1) we are still talking an excessively long time (their min. password length is 8) and 2) once they have that, you may have bigger problems.
Whilst this is only anecdotal (over several years of WoW/SC2), the majority of compromised Battle.net accounts are through keyloggers/malware and phishing scams. In those cases, you can have a 40 character password with all the case sensitivity you like and it won't matter at all.
I'm even inclined to consider chars within the sets 0o and 1lL i the same, but that's even more controversial :-)
Whilst I would hope they use a strong encryption scheme (with a variable work factor...), most of us know that even the biggest organisations in tech can fail miserably in this area.
But, I don't believe the majority of the forum posters see things the way we do. Many of them obviously correlate "case sensitivity" with "strong password", even though that's not exactly true.
I'll say for a third time, as you're not the first person to reply in kind, I'm more than well aware of ways this could be done, but none of them meet the typical expectation of how passwords are hashed and I would guess/assume that someone is far more likely to be insecurely storing passwords than going out of their way to store a... reduced entropy version of users' passwords in their database.
I'm largely unaware of crypto outside of the general "use bcrypt" webapp cases. SRP is a fairly unknown field to me.
Edit: nevermind, you more or less confirmed this question further down this thread[1], and [2]
I've reversed Battle.net protocols in full. Here's some facts:
Your plaintext password is never sent in plaintext. Old Battle.net clients (Diablo 2 and earlier) use what we call the 'old login system' (OLS), which uses Broken-SHA1 (SHA1 implemented with small bugs). Since Warcraft 3, the 'new login system' (NLS) is used, which uses SRPv6 (a standard for password exchange using public keys + RSA).
Under OLS, the Broken-SHA1 of the password is stored. Under NLS, a value called the verifier is stored, which is derived from the (actual) SHA1 of the password.
The protocols (both OLS and NLS) support case sensitivity just fine - the case insensitivity is a client-side issue. If you implement the protocol yourself, you can use a case sensitive password, but the game client won't be able to log in with it. We used to use that as a security feature in bots.
After a small number of failed logins, your IP is temporarily banned. That means that bruteforcing is nearly impossible.
Honestly, I don't understand why they have case insensitive passwords; but, at the same time, it doesn't make that much difference considering only a few password attempts are allowed before you're banned.
http://www.reddit.com/r/netsec/comments/u2168/blizzard_inten...
If someone in genuinely trying to crack passwords, I'm going to go out on a limb here and say that they know what proxy servers are and how to use them.
EDIT: I just did a few calculations, there are 40 times as many elements in a 8-character password with only lowercase letters than there are IPv4 addresses.
Also after being logged into from multiple IP's in a short period it will be locked.
You guys seriously act like Blizzard just fell off the turnip truck here.
That's in the realm of speculation admittedly. Look I'm largely defending Blizzard here but they aren't paragons of security. For one thing they could stop a lot of actual real world keyloggers by putting in a randomized screen pin entry. They never did that but they have been pretty aggressive on many other fronts. The fact that their passwords are case insensitive is something that might surprise many people, (and I was mildly shocked when it was pointed out to me years back because I had been dutifully capitalizing 2 characters in my p/w....) but it ends up not being of much consequence imho. Almost all hacks have been keylogger or social. There's one rumored (confirmed?) MITM attack against the authenticator. There's probably some people that used 123456 etc. but the option for a more secure password probably wasn't going to help those people, ymmv.
There's nothing you need to guess, the logic is in the password encoder and thus will apply both when you set it and when you use it.
As for the scenario I described, I experienced it myself in a system that silently stripped spaces from any position in the verification process, storing a different password than the one I typed in, without any warning. My password wouldn't work in the login and I figured it out by examining the password verification code.
I don't understand why it's controversial to simply accept and store a user's password verbatim. Any other approach risks introducing new security issues, from reduced entropy to password clashes. Misguided policy decisions are famous for weakening encryption schemes, like that of the Enigma machine in WWII.
If you want to be serious about security of your account, use one of the two factor authentication systems available that they offer.
The faster passwords stop looking like: C@tV0m!t
And start looking like: correct battery horse staple
the better for security and actually remembering the phrase rather than writing it down.
(XKCD on this: http://xkcd.com/936/)
I don't understand why there is a 16 character limit on user passwords.I still would be happy if they lengthened that.
Users are put at risk because Blizzard fails to adequately impose security. Tech savvy users can just use a stronger password, but the others are put at risk by what I can only call negligence.
Phishing, keyloggers and various social hacks are the real problem. Blizzard has always been very active in this regard with their constant and visible reminders that "Blizzard will NEVER ask for your password", but most users disregard even that.
I apologize if this is worded badly. I'm not feeling up to my usual ritual of rewording my post until I'm convinced it makes perfect sense to those who don't have magical insight into my mind.
Users who opt to (I'm not talking about forcing users to use capitalization here) to use capitalization for a more secure password are unaware that their efforts are in vain.
Also, it isn't only trivially more guessable. That's nonsense. If you're using a password list and you capitalize only the first letter of every password in that list, that list is still double the size of the first list.
EDIT: That doesn't even make sense, unless they're storing plain-text passwords.
The Java-based (J2ME) versions of the Battle.net Mobile Authenticator previously
available through this website have been discontinued.
http://eu.blizzard.com/en-gb/mobile/That company was namecheap, if I remember rightly.
This is not entirely correct. They do allow some types of punctuation, and have done for a very long while. I haven't tested characters like #, @, & (etc) though, but periods and the like have worked.
- Uppercase first letter only
- All lowercase
It's a usability decision from Blizzard, not a bug.
> This means they probably store passwords in plain text, unsalted, etc. This is unbelievable.
It absolutely does not make that any more likely. All you have to do is normalize it to upper/lower case before hashing and you have case insensitivity.
select * from users where user = 'john' and password = 'PASSWORD'; -- the password is actually case in-sensitive if your table collation is ci (which is the default)
Of course this also implies the site is storing the password as plain text..
The default character set and collation are latin1 and latin1_swedish_ci, so nonbinary string comparisons are case insensitive by default.
http://dev.mysql.com/doc/refman/5.1/en/case-sensitivity.html
Hint: storing passwords in plain text
Passwords are a terrible mechanism for solving security - to make them "secure" you have to enforce stringent policies creating passwords that are not memorable to many users, leading to passwords being written down. Add in the fun of needed to know far too many passwords (my daily count is at 17...).
Honestly I don't know enough about cryptography or security in general, but could an application be locked down using a public/private key (ala, SSH)? I'd love the ability to generate my own key (with my own password) and assign it to any application.
Hell, their sole purpose is to be cumbersome.
Apparently anyone who was in those groups can now see if I play World of Warcraft, which server I am on, and even what zone I am in.
and there is nothing I can do about it. Zero, zilch, oh except buy Diablo 3 and change my settings from there because it can access features of my account the standard account management system cannot.
Citibank
Chase
Wells Fargo
E-Trade
US Bank
Fidelity Investments
SECU
HSBC
TechCU