We're in the process of implementing multifactor authentification. One good candidate for this was the "Grid Card" - a small table with random letters and digits. Upon login, the user would be queried for the contents of a cell in the grid.


For a typical user, the grid could look like this:


The Problem

In order to avoid ambiguous symbols, the total character set was reduced to 23 characters in total. With a 4x4 grid with two letters each, I assumed the total entropy of one query to be about 232, which is only 529. Is this enough for a secondary factor? If not, how can its security be improved?


I assumed the total entropy of one query to be about 232, which is only 529

The computation is correct but what you show is the number of variants which is not the same as entropy or password strength. This would instead be about 9 since 29=512.

Is this enough for a secondary factor?

Probably not but it depends a lot on how this second factor is used. If the attacker can do unlimited guesses in a short time without any side effects then this is definitely not sufficient. If instead the first wrong attempt will result in immediate death of the attacker then even this easy to brute-force scheme might be too risky to even start with brute-forcing.

If not, how can its security be improved?

The obvious ways are to increase the number of variants, i.e. put more letters in each grid, choose from more symbols (for example use small letters too), ask for more than only one grid cell ...

Apart from that limit the number of possible attempts to slow down brute-forcing. This might be an increasing wait time after each wrong guess or even a permanent block after a specific number of wrong attempts. Or increase the costs of each wrong guess by actually requiring more and more money to have another guess :)

What of these and similar proposals is actually doable depends a lot of the environment where this scheme is used. It also depends on the value of the assets which should be protected by this scheme, i.e. the costs to break this scheme should be higher than what can be gained as result so that breaking the scheme is not attractive. This means that another way to deal with the problem is to limit what the attacker can achieve with a single correct guess.

|improve this answer|||||
  • The idea is that upon the third wrong input, the login is blocked and that the user is being notified. If I understand correctly, then this should be secure enough? – MechMK1 May 24 '18 at 9:36
  • @DavidStockinger: the chance to guess correctly within three attempts is about 0.2%. If the value of your assets is only $1 then this scheme might be sufficient. If it is $10000 then likely not. Again, it depends on what you want to protect. – Steffen Ullrich May 24 '18 at 9:42
  • I am under NDA and can't state what exactly we are trying to protect. I will try to increase the possible symbols, as well as the entries required upon each login. – MechMK1 May 24 '18 at 9:50
  • @DavidStockinger: it does not matter what exactly you want to protect. What matters is how valuable it is for the attacker, i.e. how much resources the attacker can be expected to throw at the problem in order to still make a profit (which can be actual money, interesting information ...) – Steffen Ullrich May 24 '18 at 9:56

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.