Contagem de gestos e segurança
Ao avaliarmos o número de gestos que seriam necessários para usar a senha visual, consideramos a segurança, a capacidade de se lembrar da senha e a velocidade. Procuramos equilibrar esses atributos sempre competitivos para alcançar uma experiência ideal para o usuário e que também fosse segura. Para determinar a contagem de gestos apropriada que atenderia às nossas metas de segurança, comparamos a senha visual com diferentes métodos de autenticação, como o PIN e a senha de texto sem formatação.
A análise do número de PINs únicos é simples. Um PIN de 4 dígitos (com 10 possibilidades independentes cada) significa que há 104 = 10.000 combinações únicas.
Quanto às senhas alfanuméricas, a análise pode ser simplificada considerando que as senhas são uma sequência de caracteres composta de letras minúsculas (26), maiúsculas (26), dígitos (10) e símbolos (10). No caso mais básico, quando uma senha é composta estritamente de n letras minúsculas, há 26n permutações. Quando a senha pode ser de qualquer tamanho de 1 a n letras, existem estas várias permutações:
Por exemplo, uma senha de 8 caracteres tem 208 bilhões de combinações possíveis, o que muitas pessoas considerariam ser muitíssimo seguro.
Infelizmente, a maneira como a maioria dos usuários escolhe as senhas é totalmente aleatória. Sem orientação, as pessoas usam, por exemplo, frases e palavras comuns e nomes de membros da família.
Nesse cenário, vamos supor que o usuário crie sua senha com duas letras minúsculas, uma letra maiúscula e um dígito ou símbolo; no entanto, a letra maiúscula e o dígito/símbolo podem aparecer em qualquer posição da senha. Portanto, o número de senhas únicas seria:
A tabela a seguir ilustra como o tamanho do espaço de solução varia de acordo com o tamanho da senha e várias pressuposições de conjuntos de caracteres.
Tamanho da senha
Senhas únicas
1
n/a
2
n/a
3
81.120
4
4.218.240
5
182.790.400
6
7.128.825.600
7
259.489.251.840
8
8.995.627.397.120
Considerando a senha visual, podemos fazer uma análise semelhante para cada tipo de gesto. As informações nas tabelas abaixo consideram as posições de gestos únicas e a leniência do nosso algoritmo de reconhecimento.
Considerando o gesto mais simples (o toque), o número de conjuntos de gestos únicos como uma função do número de toques seria o seguinte:
Nº de toques
Gestos únicos
1
270
2
23.535
3
2.743.206
4
178.832.265
5
15.344.276.658
6
1.380.314.975.183
7
130.146.054.200.734
8
13.168.374.201.327.200
O gesto de círculo é mais complexo do que um toque, mas menos complexo do que uma linha. Na tentativa de quantificar a segurança relativa de um círculo, podemos supor que um invasor saiba que os raios só podem estar entre 6 e 25 (diminuindo o trabalho de adivinhação de um gesto de círculo). Vamos supor também que é sabido que as coordenadas X e Y estejam entre 5 e 95. Isso faz com que o possível espaço de solução a ser explorado por um hacker seja o seguinte:
Como uma função do número de círculos, o número de conjuntos de gestos únicos seria o seguinte:
Nº de círculos
Gestos únicos
1
335
2
34.001
3
4.509.567
4
381.311.037
5
44.084.945.533
6
5.968.261.724.338
7
907.853.751.472.886
Os gesto mais complexo dos três é a linha. Uma linha é composta de dois pontos em uma grade de 100 x 100 padronizada e a ordem desses pontos. Isso representa 100 milhões de linhas possíveis; no entanto, as linhas devem ter pelo menos 5 unidades de comprimento, portanto, o número de linhas únicas na verdade é 99.336.960. Diferentemente das tentativas de se adivinhar círculos em que os hackers possam fazer suposições simples que reduzam o espaço de solução de forma significativa, no caso das linhas, não há nenhuma redução tão óbvia. As linhas podem tão facilmente ser desenhadas de uma borda à outra da tela como podem ser segmentos muito curtos. O número de correspondências no caso da linha é o seguinte:
Nº de linhas
Gestos únicos
1
1.949
2
846.183
3
412.096.718
4
156.687.051.477
5
70.441.983.603.740
Agora que compreendemos a segurança de gestos isolados, esses dados podem ser combinados para avaliar conjuntos que contenham vários gestos. Isso pode ser feito calculando-se os gestos únicos de todos os três tipos de gestos com o tamanho específico n e elevando à enésima potência. O resultado disso é representado na tabela abaixo, que compara a senha visual com os métodos PIN e senha alfanumérica.
Tamanho
PIN de 10 dígitos
Senha com um conjunto de caracteres simples de a até z
Senha com um conjunto de caracteres mais complexos
Senha visual com vários gestos
1
10
26
n/a
2.554
2
100
676
n/a
1.581.773
3
1.000
17.576
81.120
1.155.509.083
4
10.000
456.976
4.218.240
612.157.353.732
5
100.000
11.881.376
182.790.400
398.046.621.309.172
6
1.000.000
308.915.776
7.128.825.600
7
10.000.000
8.031.810.176
259.489.251.840
8
100.000.000
208.827.064.576
8.995.627.397.120
Como você pode ver, o uso de três gestos permite um número significativo de combinações de gestos únicas e a promessa de segurança semelhante a uma senha de 5 ou 6 caracteres escolhidos aleatoriamente. Além disso, o uso de três gestos permite uma senha visual fácil de ser lembrada e de uso rápido.
Além do número de combinações únicas, aumentamos a segurança do recurso introduzindo duas garantias contra tentativas de ataques repetidas. Assim como o recurso de bloqueio de telefones que usam o PIN, quando a senha visual incorreta é inserida 5 vezes, a pessoa é impedida de usar o recurso novamente e só poderá entrar com a senha de texto sem formatação. A senha visual também é desabilitada nos cenários remoto e de rede, evitando ataques na rede contra o recurso.
Sendo claro, a senha visual é oferecida como uma opção de mecanismo de logon à senha de texto. A senha de texto continuará disponível. Você deve ter uma boa dica e usar os mecanismos de garantia da sua senha de texto, que continuará sendo uma opção de entrada (a tela de entrada oferece um mecanismo de um clique para alternar entre todos os métodos de entrada com senha disponíveis).