On password fields masking and Jakob Nielsen

Jakob Nielsen just posted on alertbox that we should stop password masking (you know, showing asterisks or dots instead of showing the password while the user types it in.

His argument is the following:

Most websites (and many other applications) mask passwords as users type them, and thereby theoretically prevent miscreants from looking over users’ shoulders. Of course, a truly skilled criminal can simply look at the keyboard and note which keys are being pressed. So, password masking doesn’t even protect fully against snoopers.
More importantly, there’s usually nobody looking over your shoulder when you log in to a website. It’s just you, sitting all alone in your office, suffering reduced usability to protect against a non-issue.

Which makes me wonder when was the last time that Mr.Nielsen left his house to communicate with the real world. As a frequent traveller I am constantly seeing people logging into web sites in hotel lobbies (when they check in for their flight for example and enter their bonus miles account details), in Internet Cafes or when they use their laptop in a public space. While it is harder to spot the keyboard (especially with fast typers) there is no problem whatsover looking over their shoulder or – using my 10x optical zoom camera – even spot what they enter on the screen from across the room.

However, password masking is not a 100% security measure but anyone working in security promising you a 100% security is nobody you should trust anyways.

I do agree though that password masking can be very annoying on a mobile device, as is entering any form (my favourite bugbear is Opera Mini Uppercasing the first word I enter in any text field – no this is my user name, not a sentence).

As I am changing my passwords every few weeks I do get confused from time to time, too, which is why I have written myself a GreaseMonkey script that adds a link to any password field that allows me to toggle its display:

Password shower greasemonkey script by  you.

This, in my book, should be a standard feature of browsers (or a convention we should start to follow when we design forms) – not showing sensitive information as readable text on a screen just because we don’t think anyone would ever watch us.

Let’s also not forget that browsers deal with an input field with the type of password differently than with one that is text. For starters browsers do not collect previously entered information and offer them as options to autofill the field – something that would be terribly dangerous for passwords.

Tags: , , , , ,

32 Responses to “On password fields masking and Jakob Nielsen”

  1. migrosch (Michael Grosch) Says:

    Twitter Comment


    RT @codepo8: In answer to Jakob Nielsen’s password masking post – how about making showing an option (GM script included):[link to post]

    Posted using Chat Catcher

  2. aallan (Alasdair Allan) Says:

    Twitter Comment


    RT @codepo8 In answer to Jakob Nielsen’s password masking post – how about making showing an option (GM script included): [link to post]

    Posted using Chat Catcher

  3. Sebsol Says:

    Fully agree with you.
    The option to show or not show the password should be something available on all browsers.
    If not, it would be good if it became standard practise on web sites.

    It’s actually mentioned at the end of the article on useit.com.

  4. Thom Shannon Says:

    Nielsen really talks out of his ass! :) Has he every tried watching someone type in their password? It’s really hard!

    Quite a few mobile devices I’ve used show you the letter you’ve just typed very briefly then it hides, windows mobile does this and the iPhone is similar.

    Nice script though and would be a great accessibility add on to a browser, a simple keyboard shortcut to toggle would be good. Also you’d want it to still not store it for autofill even if you make it readable, an extra feature for your script would be to catch the forms submit and set all fields back to password so they don’t get treated any differently, such as stopping the browser from offering to securely store it.

  5. John Says:

    My first reaction about Nielsen’s suggestion was: “this will be fun when Nielsen has to present a live app on a beamer and the whole audience will know his password then”. I had the same idea about leaving masking untouched and offering an option to unmask it on demand. Then I went back to the article and found Nielsen is suggesting this (although the other way round: mask on demand):

    Quote: “Yes, users are sometimes truly at risk of having bystanders spy on their passwords, such as when they’re using an Internet cafe. It’s therefore worth offering them a checkbox to have their passwords masked; for high-risk applications, such as bank accounts, you might even check this box by default. In cases where there’s a tension between security and usability, sometimes security should win.”

    I agree, demasking on demand is the better solution. His main point, that masked passwords lead to ux frustration is true though. Failed Login statistics on sites I am admin on prove that.

  6. meudah Says:

    Hi Chris! I agree with you but there is another solution proposed by Apple on its iPhone. When tappe his password it is clear in the last letter tappa for 1 second and then it automatically hides. I found this solution interesting.
    Bye ;)

  7. codepo8 (Christian Heilmann) Says:

    Twitter Comment


    In answer to Jakob Nielsen’s password masking post – how about making showing an option (GM script included):[link to post]

    Posted using Chat Catcher

  8. chrleon Says:

    This is also what Jakob Nielsen suggested, to remedy internet cafe security troubles and hotel lobbies. Smart script, though. Simple and elegant.

  9. Tobie Says:

    The GreaseMonkey script you’ve implemented is actually very similar to what Jakob Nielsen suggested in the second part of his article, though it’s opt-in instead of being opt-out:

    “Yes, users are sometimes truly at risk of having bystanders spy on their passwords, such as when they’re using an Internet cafe. It’s therefore worth offering them a checkbox to have their passwords masked; for high-risk applications, such as bank accounts, you might even check this box by default. In cases where there’s a tension between security and usability, sometimes security should win.”

    You do however raise a very good point about the difference between text and password fields, especially regarding auto-completion.

  10. Lars Gunther Says:

    If we were to take Jacob Nielsens advice today, and change input type=”password” to type=”text” UA:s would not store the credentials. All password managers would need to be rewritten. Bad usability!

  11. sprungmarkers (Sylvia Egger) Says:

    Twitter Comment


    “makes me wonder when was the last time that Mr.Nielsen left his house to communicate with the real world.” Indooring [link to post]

    Posted using Chat Catcher

  12. Thom Shannon Says:

    I’ve updated the script with my own suggestion: http://ts0.com/password_shower.user.js

  13. tshannon (Thom) Says:

    Twitter Comment


    @codepo8 an edit to put the fields back on submit and maintain normal functionality: http://ts0.com/password_shower.user.js

    Posted using Chat Catcher

  14. seengee (Rob Mills) Says:

    Twitter Comment


    @codepo8 thats a nice idea, I agree that Nielsen has it totally wrong this time. Is the way iPhone’s handle passwords a happy medium?

    Posted using Chat Catcher

  15. Drew McLellan Says:

    That’s a nice script. When I’ve tried to do exactly this in the past, I thought I hit up against the browser not allowing me to change the type attribute of an input dynamically. Perhaps it was all a dream.

  16. David Cabana Says:

    One of the most PITA experiences I’ve endured was getting my daughter’s iPod Touch onto our wireless system. The iPod has no paste capability, and has only a software keyboard, and our WPA password is 63 random characters. I learned that day that much of my ability to distinguish similar characters is contextual, and ceases to function when reading random text. Just to make the experience really fun, Apple threw in a ‘feature’: the entry dialog times out. I would have killed for the option to see what I was typing, and not just for an instant.

    Let me suggest that taking options away from the user is rarely good usability design. Please allow me to decide whether I want to see what I’m typing. I know better than anyone what it is I want.

  17. referencement (Alexandre Villeneuve) Says:

    Twitter Comment


    Oui car nous sommes souvent seul devant l’écran RT @DarklgWeb:On password fields masking and Jakob Nielsen [link to post]

    Posted using Chat Catcher

  18. cbovis (Craig Bovis) Says:

    Twitter Comment


    Shared on GReader: On password fields masking and Jakob Nielsen: Jakob Nielsen just posted on .. [link to post]

    Posted using Chat Catcher

  19. Chris Says:

    @DavidCabana agreed. That’s what my solution empowers you to do. The timeout is a dangerous assumption, not everybody is a fast typer.

  20. psyk_ (Chris) Says:

    Twitter Comment


    Reading: On password fields masking and Jakob Nielsen: Jakob Nielsen just posted on alertbox that we sho.. [link to post]

    Posted using Chat Catcher

  21. Felipe Says:

    I’m glad J. Nielsen finally addressed the usability problems encountered by criminals: it’s way too hard for them to guess what is being typed on the keyboard by honest people.

    Does he plan a(n) usability study with real ones?

  22. Marcin Says:

    I love the idea of the “show/hide password” button!

  23. Diana Says:

    He is not thinking about situations outside home or office. But show/hide button could be a good option.

  24. jaronbarends Says:

    I was working on a similar userscript: http://userscripts.org/scripts/show/52442 This script places the link inside the password field instead of next to it.

    I have also created two solutions that work in all major browsers: a javascript function that you can use on your own site to add this kind of toggling functionality to your forms, and a bookmarklet to use everywhere else. http://jaron.nl/blog/2009/how-to-unhide-passwords-on-your-site-and-everywhere-else/

  25. purebox (??) Says:

    Twitter Comment


    Reading: “Wait till I come! » Blog Archive » On password fields masking and Jakob Nielsen” ( [link to post] )

    Posted using Chat Catcher

  26. natbentley (Nathan Bentley) Says:

    Twitter Comment


    @ryancarson I’m going to have to agree with @codepo8 on this one – it’s a terrible idea. [link to post]

    Posted using Chat Catcher

  27. johnfoliot (John Foliot) Says:

    Twitter Comment


    @codepo8 once again delivers: [link to post] I echo the sentiment regarding native browsers responsibility

    Posted using Chat Catcher

  28. rakesh314 (Rakesh Pai) Says:

    Twitter Comment


    A good reply to Jacob Neilson’s password masking post by @codepo8: [link to post]

    Posted using Chat Catcher

  29. sarfaraz (sarfaraz) Says:

    Twitter Comment


    RT: @rakesh314: A good reply to Jacob Neilson’s password masking post by @codepo8: [link to post]

    Posted using Chat Catcher

  30. Matthew Kempster Says:

    Christian,

    What Jakob didn’t mention or consider is that there are lots of place where you absolutely are surrounded.

    Such as at school. When I was at school (just last year) it seemed to be a common thing for kids to try and look at others’ passwords. Even if it’s just as a joke in a kind of “Haha I know your password” type way!

    So the idea of unmasking passwords on computers is ridiculous. I would choose not to use a website if the password was not hidden.

    The script (or general idea of having a hide/unhide option) is great, until you are hit with the exact scenario above where most schools/offices use IE6 as opposed to Firefox.

  31. Andrew Chee Says:

    http://andrewchee.tumblr.com/post/129688047/in-response-to-jakob-nielsens-stop-password-masking

  32. Klaus Johannes Rusch Says:

    Disagreeing with Jakob Nielsen on masking passwords and a simple cross-browser solution to reveal passwords

Leave a Reply

Wait till I come! is the blog of Christian Heilmann , a developer evangelist living and working in London, England. Download vcard.

Feed me, Seymour: Entries (RSS) and Comments (RSS).