Update: Wow, F-Secure UK and KoreLogic are linking to this!
Over the last couple of weeks, multiple people pointed me to articles about the idea of using maps instead of passwords. Most of them pointed me either to this MSNBC article or to this Discovery News article. In a nutshell, the idea is that instead of a password field, you’d be presented with a small box with a map like the one from Google Maps, nd instead of typing in your password, you’d have to zoom to a location on the map you specified during your registration process. Most of my friends’ reaction: “Hey, isn’t that a great idea?” My reaction: “No.“ In this post, I want to explain why I think that using a map instead of a password is a bad idea.
Accessibility
In my opinion, everything on the web should be accessible by disabled or physically disadvantaged people. In the case of a map, this is just not possible:
Blind or nearly-blind people just can’t see the map. They’re using braille displays or text-to-speech systems to browse the internet along with special browsers, most of which are not even able to execute JavaScript. (This is a real problem. Projects like reCAPTCHA acknowledge this by providing an audio-based alternative for people who are not able to see the captcha itself.)
Do you really want to lock out anyone who can’t see a map?
Technical Problems
When using this approach, you’ll prevent anyone who has disabled JavaScript from logging in. Also, most of the browsers on ‘older’ mobile phones don’t work well with embedded maps, as they only have basic, broken or no JavaScript support. Then there’s the problem of the massive bandwidth consumption of this: Especially on mobile devices in areas where only 2G is available, it may take several minutes to get to your exact location. User friendly, isn’t it?
Security
The article on MSNBC states:
By zooming down through the map to the high level of resolution, users can graphically produce a nearly unbreakable password that neither people nor viruses could track.
That’s bullshit. There are several big problems with the map approach to passwords. Here are two of them:
1. Shoulder Surfing
The first thing that came to my mind when I read about the idea was “What about shoulder surfing?” Just imagine you’re sitting behind someone who is logging in using this technique. How hard would it be to remember the exact location he zoomed in to? Well, I actually tried it out: I told a friend of mine to remember a location on a map, and then zoom in on it with all captions/labels on the map disabled. Even though the place was somewhere in South America, I was able to remember the exact location he zoomed to. You may say “Hey, I could also read the password someone is typing from his fingers!”, but that’s a lot harder, as you can’t actually see it on the screen. I’d be willing to bet good money that no one could ever just read my password off my fingers — at least not without a good hidden camera.
Just imagine you give a presentation to a crowd of people and everyone can actually see your password!
2. Actual Password ‘Length’
Bill Cheswick, the guy behind this idea, is quoted in the Tech Daily News as claiming:
“You could have a 10 digit latitude, and a 10-digit longitude, then you have a 20-digit password.”
First, about the math: as latitude and longitudes are numeric characters only, we have a 20-digit, numeric password. This means there are 1020 combinations, that’s 100,000,000,000,000,000,000, or one hundred quintillion different passwords. But remember: Most of the earth is covered with water, and no one will actually be able to remember a place somewhere in the ocean. (According to the Wikipedia, 71% of the planet are covered with water, but let’s just ignore this fact and go on.)
How far exactly do I have to zoom in to get this 10 digit latitude/longitude precision? Well latitudes and longitudes range from 0 to 360, so we would need 8 digits after the decimal point to get the promised “20-digit password.” Take a look at “Usability” to get an idea on how real that is.
Usability
Let’s pretend I’m not disabled, I’m not on a mobile network, no one is watching me and I’m using a modern browser with good JavaScript support. Let’s also pretend I’ve set up my ‘password’ to be the center of the cathedral of Cologne, Germany.
An overview over the Cologne Cathedral:
Zoomed farther in onto the center of the cross:
Let’s zoom in to the maximum available zoom factor of Google Maps and show the location I’ve set my ‘password’ to, in this case, it’s at the point (represented as decimal fraction) “50.94132,6.95812″:

Now, to give you an idea of the dimensions, I’ll add a second marker with an increased longitude of 0.00001:

Well, this should give you an idea of how realistic the idea of a 20-digit password is. In this case we’ve got a longitude of 7 digits and a latitude of 6 digits, and it’s already almost impossible to zoom to the exact location, and even if you manage to do so, how much practice would it take to always get to the right location without always trying out at least 5, slightly different locations? (Especially since you wouldn’t even know in which direction your ‘password’ is wrong!) And don’t forget: You’ll want to have a different location for each service you log on to. So where does Mr. Cheswick get this 20-digit password myth from?
Conclusion
I don’t think this idea is a viable replacement for text-based passwords. I don’t think that it’s impossible to write viruses that analyze the screen of the user and try to find password maps and then keep track of where the user zooms to. And I also don’t think this approach provides any usability- or security advantages over traditional passwords. In fact, I think it’s not usable and it’s insecure. I agree that we need new solutions, but this is definitely not the way to go. I’m also not sure if replacing the password itself is the right way to go. But I do think the spreading of SSO (Single Sign-on) and two-factor authentication are something that might be able to make the net a bit more secure.