Entrando com uma senha visual
A senha visual é uma nova forma de entrar no Windows 8 que está presente no Developer Preview. Vamos analisar os bastidores e ver o quanto ela é segura e como foi criada. Uma das vantagens da disponibilidade de uma tela sensível ao toque é a oportunidade de termos uma nova maneira de entrar no PC. Embora muitas pessoas prefiram entrar no PC sem usar senha para simplificar o processo, isso não acontece com a maioria de nós e, em muitas situações, é no mínimo imprudente. Oferecer um mecanismo rápido e fluido para entrar com o uso do toque é muito importante, e todos nós sabemos que o uso de senhas alfanuméricas em telefones com tela sensível ao toque não é prático. Esta postagem foi escrita por Zach Pace, gerente de programas da nossa equipe de experiência centrada no usuário, e analisa a implementação e a segurança da senha visual no Windows 8. Lembre-se de que também é possível usar o mouse com a senha visual por meio dos recursos de clicar e/ou arrastar.
--Steven
A experiência de entrada em um PC com toque não é nada prática. Em um mundo com cada vez mais requisitos rígidos de senhas (com números, símbolos e uso de maiúsculas), inserir uma senha longa e complexa pode levar até 30 segundos em um teclado de toque. Acreditamos firmemente que a sua experiência com o Windows 8 deva ser rápida e fluida, desde a entrada.
Outras experiências com toque no mercado já tentaram resolver esse problema, e o exemplo canônico é o PIN numérico. O PIN é uma ótima solução: quase todo mundo já viu ou usou um, e o uso de um teclado numérico com o toque é simples. Sabíamos, no entanto, que era possível melhorar ainda mais.
Uma combinação numérica normalmente apresenta um problema para as pessoas porque as sequências mais fáceis de se lembrar são normalmente as menos seguras. Sequências de números comuns (como 1111 ou 1234) são problemáticas, mas os PINs compostos de datas pessoais comuns também podem ser deduzidos se um invasor souber dados pessoais do usuário (muitos dos quais não são difíceis de se obter). Nesse caso, se o número do usuário for algum dado pessoal, a segurança ficará comprometida. Decidimos mudar o paradigma aqui: criamos uma experiência de entrada pelo uso do toque rápida, fluida e também pessoal.
Uma experiência de entrada pessoal
Uma senha visual é composta de duas partes complementares. Trata-se de uma imagem da sua coleção e um conjunto de gestos que você desenhará nela. Em vez de escolher uma das imagens da Microsoft, você fornecerá a imagem. Isso aumentará tanto a segurança quanto a sua capacidade de se lembrar da senha. Você decidirá o conteúdo da imagem e as partes importantes para você. Além disso, será uma imagem importante para você, assim como as que muitas pessoas colocam na tela de bloqueio do telefone.
O recurso de senha visual foi desenvolvido para realçar as partes de uma imagem que são importantes para você e ele requer um conjunto de gestos que permitem fazer isso de forma rápida e segura. A fim de determinar qual seria o melhor conjunto de gestos a ser usado, distribuímos um conjunto de imagens para um grupo de participantes de pesquisa e pedimos que eles realçassem as partes da imagem que consideravam mais importantes. Apenas isso, sem nenhuma instrução adicional. As pessoas fizeram três coisas básicas: indicaram local, conectaram áreas ou realçaram caminhos e áreas fechadas. Mapeamos essas ideias como toque, linha e círculo, respectivamente. Esse foi o conjunto mínimo de gestos que permitiram às pessoas indicar as partes da imagem que julgavam mais importantes.
Há também um atributo inerente aos gestos de círculo e linha que adiciona uma camada de segurança e personalização: direcionamento. Ao desenhar um círculo ou linha na imagem selecionada, o Windows se lembrará de como você os desenhou. Portanto, se alguém tentar reproduzir a sua senha visual, ele não somente terá de saber quais partes da imagem você realçou e a ordem usada, como também a direção e os pontos de início e de término dos círculos e linhas desenhados.
Também pesquisamos gestos de forma livre. Quando exploramos o conceito, tanto com pesquisa e iterações de desenho, descobrimos o ponto negativo desse sistema: o tempo gasto. Como mencionei antes, almejávamos uma solução que fosse mais rápida do que um teclado de toque. Durante toda a evolução do processo desse recurso, usamos um teclado de toque como parâmetro para observar o tempo gasto na entrada e julgar o sucesso dos nossos métodos. Observamos que, quando deixávamos as pessoas usarem gestos de forma livre, todas elas levavam mais tempo para entrar. Elas demoravam mais por achar que precisavam ser precisas (desnecessariamente) e delinear pequenos detalhes da imagem.
Como as pessoas realçaram áreas em vez de detalhes pequenos, achamos que usar um conjunto limitado de gestos, em média, era três vezes mais rápido do que o método de forma livre. Também descobrimos que, com a repetição, as pessoas que usavam o conjunto de gestos podiam, de forma consistente, concluir a tarefa em menos de quatro segundos, comparados com os 17 segundos do modelo de forma livre. Após o uso contínuo do método de forma livre, muitos participantes pediram para alterar seus gestos, optando por linhas simples e locais.
Como funciona
Depois que você seleciona uma imagem, ela é dividida em uma grade. A maior dimensão da imagem é dividida em 100 segmentos. A menor é dividida nessa escala para criar a grade sobre a qual você desenha os gestos.
Para definir a sua senha visual, você desenha os gestos no campo que criamos. Pontos individuais são definidos pela posição de suas coordenadas (x, y) na grade. Para a linha, registramos as coordenadas inicial e final, bem como a ordem em que elas ocorrem. Usamos a ordem para determinar a direção em que a linha foi desenhada. Para o círculo, registramos a coordenada do ponto central, o raio do círculo e seu direcionamento. Para o toque, registramos a coordenada do ponto do toque.
Quando você tenta entrar com a senha visual, avaliamos os gestos feitos e comparamos esse conjunto com os gestos usados na definição da senha visual. Analisamos a diferença entre cada gesto e autenticamos a senha com base na quantidade de erros do conjunto. Se o tipo de um gesto estiver errado — foi feita uma linha em vez de um círculo — não haverá autenticação. Quando os tipos, ordem e direcionamento estiverem corretos, avaliamos a distância de cada gesto em relação ao mesmo gesto usado na definição da senha e nisso baseamos a autenticação.
Como exemplo, vamos analisar o gesto de toque. O toque é o menos complexo dos três gestos tanto em relação ao número de permutações únicas quanto em relação à análise subsequente. Ao avaliar se o ponto que você tocou corresponde a um ponto de referência, a nossa função de pontuação compara a distância entre o gesto que você registrou como parte da sua senha visual e o gesto que você acabou de fazer. A pontuação diminui de 100%, quando a correspondência é exata, para 0%, quando distante. Os pontos são correspondentes quando a pontuação é > = 90%. Veja uma representação visual da função de pontuação para um ponto na proximidade imediata de uma correspondência de 100%:
A área que pontua uma correspondência é um círculo de raio 3. Para qualquer toque específico, um total de 37 locais (X, Y) retornarão uma correspondência. Fazemos cálculos semelhantes para as variáveis associadas às linhas e círculos.
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).
Segurança contra marcas de dedo
Nós também fizemos algumas considerações práticas de proteção para quando você usar a senha visual. As pessoas se preocupam com as marcas de dedo deixadas em uma tela sensível ao toque e com o nível de facilidade de se adivinhar uma senha com base nessas marcas. Como a ordem, a direção e a localização dos gestos são levadas em conta, a dedução do gesto correto com base nas marcas de dedo se torna muito difícil até mesmo em uma tela totalmente limpa, que dirá em uma tela com uso constante do toque.
A ameaça possível nesse caso seria proveniente das pistas deixadas pelas marcas quanto à sequência de autenticação. Podemos analisar três formas de se fazer logon — teclado de toque, PIN de quatro dígitos e senha visual —para comparar a facilidade de dedução da sequência de entrada. Vamos imaginar o pior dos cenários:
- O usuário limpa sua tela deixando-a reluzente.
- O usuário toca exatamente nos locais mínimos necessários para a autenticação.
- O usuário não toca em mais nada e deixa seu computador sozinho.
- O invasor rouba o tablet e pode, com 100% de precisão, ver cada gesto usado na autenticação.
Obviamente, essa seria uma situação bastante improvável, mas esse cenário nos permite comparar e contrastar as três formas de autenticação e sua vulnerabilidade a esse tipo de ataque.
O PIN deixaria marca no local conhecido de cada dígito usado no código. Se o PIN fosse composto de n dígitos e todos os dígitos fossem únicos (o que torna a dedução mais difícil), haveria n! ordens possíveis para o PIN. No caso de um PIN típico de 4 dígitos, haveria 24 combinações diferentes.
Com um teclado virtual, também haveria n! maneiras de se ordenar uma senha com n caracteres. No caso de senhas com restrições de caracteres, uma pessoa normalmente usaria a tecla Shift (ou outro botão) para selecionar conjuntos de caracteres alternados. É claro que o invasor também veria esse pressionamento de tecla, mas não teria como saber em que parte da sequência a tecla Shift foi utilizada. Se fizermos a suposição simples de que houvesse apenas uma letra maiúscula na senha, haveria n!·n senhas possíveis a ser consideradas.
Os gestos também apresentam n! ordens possíveis. Para cada círculo e linha usados em um conjunto de gestos, o número de permutações aumenta em um fator de dois. Se houver apenas círculos e linhas, o conjunto de permutações possíveis é o mesmo de uma senha que usa a tecla Shift, .
A tabela a seguir resume o número de permutações de cada um desses métodos para sequências de vários tamanhos:
Tamanho |
PIN |
Senha |
Senha com Shift |
Somente gestos de toque |
Gestos de linha e círculo |
1 |
1 |
1 |
1 |
1 |
2 |
2 |
2 |
2 |
4 |
2 |
8 |
3 |
6 |
6 |
18 |
6 |
48 |
4 |
24 |
24 |
96 |
24 |
384 |
Volto a repetir que estamos considerando uma tela totalmente limpa que contenha somente os gestos visíveis pelas marcas de dedo. Se consideramos um cenário em que o invasor não possa obter nenhuma informação útil por meio das marcas de dedo — seja porque o computador é muito usado (e contém muitas marcas de dedo) ou porque ele só tem mouse e teclado — as chances de se adivinhar a sequência correta se tornam ainda mais remotas. Com os nossos três tipos de gestos, o direcionamento e a exigência de que a sequência tenha pelo menos três gestos, o número possível de combinações de gestos é de 1.155.509.083, conforme discutido acima.
O último tipo de ataque que consideramos envolve pontos de interesse ou áreas da imagem comumente escolhidas pelas pessoas quando apresentadas a uma imagem. Embora a pesquisa que fizemos tenha mostrado que esse tipo de ataque é extremamente improvável — as áreas que as pessoas escolheram e o tipo de gestos que elas desenharam nelas tiveram pouca relação entre si no laboratório — podemos analisar esse ataque supondo que uma determinada imagem tenha pontos de interesse. Se o usuário puder usar qualquer combinação de toques, círculos e linhas, o número total de permutações será de , onde n é o tamanho da senha visual. Isso resulta no seguinte número de combinações possíveis:
Pontos de interesse |
Tamanho |
5 |
10 |
15 |
20 |
1 |
75 |
200 |
375 |
600 |
2 |
5.625 |
40.000 |
140.625 |
360.000 |
3 |
421.875 |
8.000.000 |
52.734.375 |
216.000.000 |
4 |
31.640.625 |
1.600.000.000 |
19.775.390.625 |
129.600.000.000 |
Supondo que, em média, uma imagem tenha 10 pontos de interesse e que uma sequência seja composta de 3 gestos, há 8 milhões de combinações possíveis, tornando a chance de se adivinhar a sequência correta bastante remota.
Embora estejamos muito satisfeitos com a robustez da senha visual, sabemos que há várias empresas para as quais a segurança é fundamental e somente uma senha completa é aceitável. Sendo assim, implementamos uma política de grupo que dá ao administrador de um domínio a liberdade de escolher se a senha visual poderá ou não ser usada. E, é claro que, no seu PC doméstico, a senha visual também será opcional.
Quando iniciamos o processo de criação da senha visual, sabíamos que almejávamos um método de entrada que fosse rápido, fluido e pessoal para cada usuário do Windows 8, mas também tínhamos a promessa de uma segurança robusta. Pela nossa pesquisa e refinamento da experiência e do conceito, acreditamos que conseguimos encontrar um método de entrada que, além de seguro, também é muito divertido. Adoramos a senha visual e o toque pessoal extra que ela confere ao Windows 8 e esperamos que você também goste!
-- Zach
Baixe este vídeo para assistir no seu media player favorito:
MP4 de alta qualidade | MP4 de qualidade inferior