1

I was thinking about this for a while. Say we have an app for which there is an admin console, and we need to provide access to the admin console over the browser (yes, HTTPS).

For authentication, instead of asking for a password, would the following be more secure?

  1. Prepare a set of very uncommon questions of very very wide scope the answers to which hardly friends or family would know. And at-least it is safe to assume that no one person would know the answer to all those questions altogether. These questions can be stuff like minor stuff that happens in your life, and don't matter enough that you will tell anyone.
  2. Store answers to these questions in a normalized form. So trim whitespace, remove punctuation etc. And hash-salt them just like you do with passwords.
  3. On login, ask these questions in random order, (and ask only a part of the questions, so that the set is different the next time the hacker attempts to login). At the end, verify all the answers together, and if they are valid, log the user in.

I am wondering if this will be any more secure than the present methods around. If not, is there something I am missing?

4

Some issues with this:

  • Signup would take a long time. That would be a major deterrent for many websites.
  • Privacy, you get a lot of information about someone and if it's not something that everyone knows then obviously it's personal. It's one thing if your password table ends up on the streets, it's another when I can find out all kinds of tidbits about someone's personal life. Which brings me to the next point.
  • Re-use. For passwords at least you have the option to use a different one, but the answers to the questions won't change for the next site. If more websites would do this and just one gets hacked, what's preventing anyone from logging in left and right? Or even malicious administrators looking at the answers, either before hashing or after some form of bruteforce attack.
4

Well I would have to say that this is less secure than a standard password even though a initial glance shows that the entropy will be far greater

  1. You are limiting answers to "dictionary words" and more often than not a small subset of them ( for example what was your favroute childhood food would have less than 20,000 possible options and I would say chocolate or ice cream would hit 90% )
  2. This is open to social engineering ( if you ask someone their password they will say no, if you ask someone who they first fell in love with they will answer )
  3. Answers can probably be scraped from social media ( e.g. A Facebook post with a picture of your first dog )
  4. There will be a lot of human error on entry in the event that the questions are too specific ( e.g. Who did you talk to first thing in the morning on January 7th 2013 )
  5. Storage of said items will be tricky because you will have to be case and white space insensitive and it is a terrible idea to simply store this in plain text or something obviously decrypt able )
  6. You are breaking user perceptions of security ( I would feel uncomfortable being asked for a set of personal details and not have a option for a 27 character alphanumeric password )
    1. How the hell do you reset something like this ? ( in the event that questions are too difficult to remember and the user wants to reset their authentication token )

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.