Yes, this is posted on April 1st and, no, it is not a April Fool’s joke – except, I hope, on FaceBook’s part, otherwise it represents a serious security weakness in their login protocol.
As I logged into FaceBook today, I noticed (too late) that I had caps lock on and expected to be redirected to the Login error / retry page:
Instead, I found myself logged in as normal.
After playing around with it a little bit, I discovered that if you invert the upper case and lower case letters it will still let you log in.
For example, if your password is MySecretPassword
and you enter mYsECRETpASSWORD
instead, it will still let you log in.
It turns out I am not the first to notice this. Emil Protalinski noticed this back in September 2011 and, according to his article, this is done by design and there are three different forms of your password FB will recognize:
- Your original password.
- Your original password with the first letter capitalized. This is only for mobile devices, which sometimes capitalize the first character of a word.
- Your original password with the case reversed, for those with a caps lock key on.
I am not comfortable with this because it seriously weakens the password because it reduces the number of unique letter combinations by at least half.
Assume passwords can only be two characters long and must be composed of only the following characters a, b, A, B
. Then the total number of unique passwords is 16:
- aa
- aA
- Aa
- AA
- ab
- aB
- Ab
- AB
- ba
- bA
- Ba
- BA
- bb
- bB
- Bb
- BB
With FaceBook’s password permissiveness, this is reduced to 8 by simply accepting case reversal:
- aa is the same as AA
- aA is the same as Aa
- ab is the same as BA
- aB is the same as Ab
- ba is the same as BA
- bA is the same as Ba
- bb is the same as BB
- bB is the same as Bb