Changes made to system proposed in Two-factor authentication Without Mobile Phone:

  1. In previous system, shoulder surfing would reveal the user’s pre-decided image. In the current system, end image does not reveal any useful information. The user’s start image and path cannot be backtracked from the end image, since the user clicks only end image. The current system is not vulnerable to shoulder surfing.
  2. Increased grid size from 28 to 40. 40 images can be displayed in proper size on screen, without making screen too cramped and keeps easy for user to find his start image.
  3. Removed User Enumeration Vulnerability by adding password in Step 1.
  4. In the previous system, user had 3 chances to write correct password related to his image. That has now been reduced to just 1 mouse click, decreasing chances given to a hacker for a single session.

I have developed a graphical authentication system, consisting of two-step authentication. The first step is normal user id – password authentication and the second step is the graphical authentication. I have tried to maintain the tradeoff between security and user experience. I have applied a patent for this system. Two-factor authentication surely does provide extra security, but also has some issues. So, I tried to develop an authentication system which would provide some extra security without considerable loss in user experience.

In short, for the second step, the user has to remember a Start image and a Path. Every time the user will try to login, the Start image will be placed at a valid random position, so on applying the Path from the Start image, the user may get a different End image every time. The user only has to click the End image.

Detailed description is as follows:

While registering, the user has to choose a user id and a password, required for first step of the authentication. enter image description here

Then he has to choose his Start image.

enter image description here

Then his Start image would be displayed in a grid, where he has to choose his Path to get the End image.

enter image description here

enter image description here

Now, after the account is created, when the user will try to login, he will first enter his user id and password.

enter image description here

After passing this first step, the second step page will be displayed.

The second step consists of a grid of 40 images; the number of images is not too small or too large. The user’s Start image will be placed at a valid random position in the grid, along with 39 other images which will be the same for the user for each login session, so that the hacker does not get to know the Start image by observing multiple sessions. The user has to find his Start image in the grid and apply the Path from it, to get the end image. The user only has to click the End image. Depending on the position of the Start image, the end image could be different every time. This second step page is valid only for 90 seconds and redirects to the main page if the user has not chosen the End image.

enter image description here

enter image description here

The user authenticates successfully if he chooses the correct end image for the session.

The system takes care that the Start image gets placed at a position, such that after applying the Path, the End image’s position is in the grid.

Now, if the user logs out and tries to login again, he'll have to pass step 1 and then in step 2, the page could be displayed as:

enter image description here

The grid would have shuffled.

Similarly, for next login attempt, step 2 page could be: enter image description here

and so on...

I would like to have some comments on entropy of the system. The only way by which a hacker can bypass this, is by randomly guessing an image each time. Is there any other way? Is this system usable in real-time?

  • 2
    i will come back with an analysis. in short, it' more interesting than last time but it is still broken. you clearly aren't researching how things work, or taking any classes, and you aren't asking discreet questions. ibstead you have fallen ib love with an approach abd are trying to bandaid it into success while igboring most of the feedback you were previously given. – atk Aug 24 '14 at 18:20
  • 2
    and most importantly, you have a solution defind the problems are solved, or existing solutionthat improves upon or how it improved upon it. coming up with an idea is great, but without any understanding ofwhat feelings of those pre existing solutions failings of those pre existingSolutions you wish to improve upon,it will be exceedingly difficult to provide any value. – atk Aug 24 '14 at 18:45


You're asking users to remember:

  • a password above 8 characters
  • an image
  • a path relative to that image

And all that for what added security? The second step is a knowledge-factor just like the password, is exposed and provided via exactly the same channel, which means that attacks such as phishing, malware on the device, or breaking into your server will work just as easily.

Now, the goal of adding authentication steps rather than factors (of different types and exchanged/verified through different channels) is not to increase security, it's to increase usability. The first step would be to allow for users to have a simpler password in exchange for the extra pain you make them go through.

User Experience

Right now, it takes me a good 5 extra seconds to log in to your site than it would without this image. Does it sound ok? This is a single system, I have created my auth factor just before and it's fresh in my mind! Still if I had to use it 20 times a day I would lose 6 minutes' worth of productive work. Trying a second time five minutes after, I failed to authenticate already!

You say you "balanced the trade-offs between security and user experience", how is fiddling with a grid of images and counting numbers of rows and columns meant to help me? Can you understand how the frustration increases from a failed authentication just after so much reflective use of your UI? I didn't just make a typo by typing my password too fast, I was too damn stupid to click the right image even though I hesitated and counted!

User Experience is not: "I put some fancy colors and gave instructions so the user should be ok", it's more "The user made an effort, they deserve to get through, but yet failure rates and login times are higher than the previous system that just had passwords".

What you should expect at scale

Do you know what happens if users have to handle multiple graphical passwords? The performance decreases just like with passwords. Although multiple lab studies suggest the decrease is less radical than with PINs or text passwords, it is still here and we yet have to see proper field work showing how users cope with many graphical passwords, since they're limited in the expressiveness of their passwords and in their reuse strategies.

It's also worthy to note that whatever passwords a user will pick in a lab condition to test your software have a fair chance of being entirely different from what they would normally pick: that affects any study on the memorability of passwords.

In short, it's very good to come up with new solutions to the good old problem of passwords, but you should really note that there is hardly any evidence at all of something that actually works better at scale, and you should try to understand not the weaknesses but the strengths of passwords if you want to design something better for the majority of user authentications.

You cannot propose something that takes longer. You also cannot propose something that is harder to remember when I have more than ten instances of it to manage. Also, it's a very good idea to understand where your system is good and where it is bad, and to investigate which practices it is suited for. For instance passwords are bad for infrequent (couple times a year) authentication because you forget which password you used. PINs are better than passwords and gestures better than PINs for touch UI authentication in terms of the time to input them. And finally, the problem of passwords is not just a problem of factors, it's got to do primarily with the accumulation of them and with the processes that are available to handle them as a whole. There's a reason why password managers are so popular!

Edit 1: if you're serious about user experience and usability, leave the whole "usable security" thing aside for a while and get training in HCI and design. You really need a more conscious perspective on how you work, you need to teach yourself to think like a designer/ergonomics expert/usability expert rather than just "balance trade-offs" or "think about the user".

Edit 2: how often do cyber criminals shoulder surf you, and how often do they phish you or attack the server where your data is stored? Know your threats! Shoulder surfing is only relevant to a few types of services e.g. Facebook, mobile auth UIs... not the general case on the Web.

  • How is performance of the system regarding time taken, when compared with two factor authentication? Because two factor is used widely by many big companies. The time taken for the OTP to come on our mobile phone and then we would type it, would be almost same as that of the time taken by this proposed system – Engineer Aug 24 '14 at 14:19
  • (there is no need to address people as Sir on StackExchange, it's a space where people voluntarily remove formalities to stick to the content, see stackoverflow.com/help/behavior) – Steve Dodier-Lazaro Aug 24 '14 at 14:23
  • I'm not saying that explicit 2FA is always a good thing, it's very slow as well! In the context use where I do need to guarantee (because of my own appreciation of the assets I own) that an adversary couldn't just opportunistically compromise one device, then 2FA is great (because of the security boost, not the user experience of it). There is room for implicit authentication to reinforce explicit 1FA, though. – Steve Dodier-Lazaro Aug 24 '14 at 14:25
  • Look at what online game companies like Steam do for resets, at what Google does to detect auth attempts with stolen passwords, they're exposed to a lot of attacks and really need the extra security, but user experience is so critical that they go out of their way to handle extra factors and password resets. – Steve Dodier-Lazaro Aug 24 '14 at 14:27
  • Look up Angela Sasse's discussion of authentication issues, based on company field work: youtube.com/watch?v=7rjWRbMwU4Q and link.springer.com/chapter/10.1007/978-3-319-07308-8_23#page-1 – Steve Dodier-Lazaro Aug 24 '14 at 14:29

If the images are placed at random, except for one image, then the image, and the offset can be determined. (if you see that image selection screen enough times, the image will never next to the corner where the "end path" prevents it from doing so)

This is also very confusing for an end user, preventing the people who you want in the system from gaining access.

A more secure and simpler solution is to just pick the image directly.

  • If an image is picked directly, the system is clearly vulnerable to shoulder surfing. – Engineer Aug 24 '14 at 13:19
  • Also, the image selection screen has to be captured many times just to get a rough idea of what the start image and path could be – Engineer Aug 24 '14 at 13:20

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