web-development-kb-pt.site

Usabilidade e segurança para acesso de usuário e manipulação de senha em um aplicativo da web?

Estou pensando em montar um site voltado para usuários comuns que manipularão dados pessoais que não quero ser comprometido. Como posso tornar o site seguro, mas também utilizável?

Parece que a maioria dos sites usa um identificador de usuário (o endereço de email parece melhor) e uma senha, o que é bastante compreendido.

Alguns sites bancários vão além disso com uma PIN ou perguntas de segurança decorrentes dos identificadores padrão ou substituindo a senha. Gostaria de saber sobre quaisquer alternativas que tenham se mostrado bem-sucedidas nesse sentido) .

Também ouvi falar de permitir que os usuários escolham seu próprio esquema de cores ou visualizem um site uma vez identificados, para dificultar o phishing dos detalhes da conta. Alguém sabe de sites usando isso e como ele funciona?

A verdadeira fraqueza na maioria dos sistemas me parece ser o recurso de redefinição de senha. Como os usuários esquecem suas senhas o tempo todo, precisamos ter algo para ajudá-los aqui, mas parece realmente difícil encontrar um equilíbrio entre útil e terrivelmente inseguro. Novamente, a abordagem de perguntas de segurança do usuário parece ser amplamente usada aqui, mas os dois lados que encontrei estavam com uma pergunta que o usuário define e fornece uma resposta ou com algumas perguntas imutáveis ​​sobre o usuário.

Com uma pergunta fornecida pelo usuário, não confio neles para não fazer a pergunta "o que é 1 + 1", por mais que você tente dizer a eles que isso é muito importante.

Com perguntas imutáveis ​​- e se você está perguntando a opinião de um usuário sobre as coisas, em vez de fatos simples, é mais provável que eles mudem - eles tendem a se transformar no tipo de coisa (primeiro nome dos pais, primeiro animal de estimação) que é realmente fácil de encontrar se você estiver direcionando um usuário para ataque.

Sei que sempre haverá um compromisso aqui entre o que é seguro e o que é fácil de usar, mas deve ser possível fazer melhor do que a maioria dos sites agora. Você pode sugerir abordagens menos convencionais, porém confiáveis, para a segurança da conta do usuário? Ouvi falar de grades de imagens, captchas personalizadas e assim por diante - alguma experiência disso na prática? Existem sites que gerenciam isso particularmente bem e se mostram como/por que eles funcionam?

10
glenatron

Boa pergunta.

Versão curta

Existem várias opções que vão além do nome de usuário/email/senha, como a maioria dos sites. Você não pode resolver o problema de segurança definitivo, mas pode educar. Existem alternativas para captchas. Segurança versus facilidade de uso é um debate saudável e interminável.

Opções extras de segurança durante o login

  • Yahoo! usa o conceito " selo de entrada ", no qual você pode escolher algum texto ou imagem e essa personalização será armazenada em um cookie e exibida na página de entrada quando você retornar. A idéia aqui é que ela ajuda a impedir ataques de phishing: em vez de explicar os detalhes técnicos do phishing para os usuários e esperar que eles lembrem coisas como "verifique se o URL começa com https://www.yahoo.com ", você acabou de dizer ao usuário para procurar o texto ou a imagem personalizada na página. Se não estiver lá, você não está no site certo; portanto, não forneça suas credenciais de login.

  • O World of Warcraft usa o Blizzard Authenticator , que é um dispositivo que você pode solicitar e ter enviado para você ou um aplicativo para iPhone/Android. Ambos geram um código exclusivo vinculado à sua conta a cada minuto. Ao fazer login, você precisa fornecer seu endereço de e-mail registrado no Battle.net, a senha da conta e o código do Blizzard Authenticator. Embora seja um jogo, o World of Warcraft é um continente de phishing próprio, essa abordagem se mostrou extremamente eficaz na redução do número de contas invadidas por meio de phishing (já que, mesmo se você invadir a conta de e-mail de alguém e recuperar ou alterar sua senha do World of Warcraft , você não poderá fazer login a menos que tenha esse código autêntico do autenticador sincronizado específico). Vale a pena notar que o Authenticator é teoricamente hackável, mas é preciso muito mais trabalho para fazê-lo.

  • myOpenID usa um selo de sinal semelhante ao Yahoo! chamado "seu ícone pessoal". Como o OpenID tem implicações adicionais de segurança (por exemplo, se você obtém acesso ao meu OpenID, agora você potencialmente tem acesso a todos os sites que eu uso com esse OpenID), qualquer opção para aumentar a proteção ajuda muito. Não acho que a maioria dos usuários não técnicos possua contas OpenID com provedores OpenID, portanto, isso pode ser menos importante. Ainda assim, é bom no JanRain por ir além.

O que fazer quando os usuários fornecem perguntas e respostas óbvias de segurança

Este é um problema que você não pode resolver e não é realmente sua responsabilidade. O que você deve focar é promover o comportamento correto em seus usuários, educando-os sobre o que eles precisam prestar atenção. Dependendo do tipo de base de usuários que você possui, você pode ser mais ou menos agressivo com ela - por exemplo, o Yahoo! e a Blizzard são muito agressivas e também implementam assistência de segurança mais proativa, como mencionado acima.

Algumas coisas que você pode fazer:

  • Lembre os usuários de usarem uma senha exclusiva que consiste não apenas em caracteres alfanuméricos
  • Explique que as senhas devem ser criadas a partir de palavras inexistentes e ajude a explicar como criar uma senha memorável que se encaixe nesse molde
  • Use cópia clara durante o fluxo em que os usuários criam uma pergunta de redefinição de senha de segurança e enfatizam a importância de fazer perguntas não triviais para as quais outras pessoas não saberão a resposta.
  • Forneça exemplos de perguntas que as pessoas poderiam usar ( não forneça exemplos como "nome de solteira da mãe", que é facilmente encontrado no Facebook atualmente)
  • Escreva um FAQ fornecendo dicas sobre como proteger sua conta. Como o webmail é uma brecha de segurança usada com frequência, fornece dicas básicas sobre como proteger sua conta de email e como observar tentativas de phishing)

Seja um proprietário responsável do site. Eu comparo isso às estações de trem que têm inscrições dizendo "cuidado com os batedores de carteira" - é sua responsabilidade, como indivíduo, não ter sua carteira à vista e depois reclamar quando ela for roubada. Mas é bom que a gerência da estação lembre as pessoas de manter as coisas em mente. O problema na Web é que muitas pessoas não sabem o que procurar ou como identificar ameaças. Podemos ajudar educando constantemente e consistentemente todos com quem entramos em contato.

Captchas e alternativas

Os captchas existem por dois motivos: um, para impedir que o site seja DDOS e dois, para que hackers executem ataques de dicionário. Mas a desvantagem é que, na maioria dos casos, eles são muito hostis e completamente não são " Não me faça pensar ".

Se você deseja impedir, ou pelo menos dissuadir, ataques de dicionário, considere adicionar um cronômetro à tela de login que aumenta a cada tentativa (após um determinado número). A maioria dos usuários entra após, digamos, 5 tentativas, e mais do que isso é comportamento duvidoso. Torne os ataques de dicionário irritantes para serem executados, causando problemas para os infratores, e não para os usuários comuns.

Segurança vs. facilidade de uso

Jakob Nielsen causou um surto no ano passado quando ele escreveu que os campos de senha apresentam um problema de usabilidade e deve parar de mascarar sua entrada . Ele argumentou que mascarar a entrada realmente realmente evita vazamentos de segurança quando alguém está diretamente atrás de você, e esse não é o caso 99% do tempo, então por que tornar as coisas mais difíceis de usar apenas para um caso do Edge? Como especialista em usabilidade, é difícil discutir com ele. E o especialista em segurança Bruce Schneier até concordo com ele!

Portanto, segurança x facilidade de uso é uma questão controversa que realmente não pode ser resolvida. E é um argumento saudável: se as coisas oscilassem muito em qualquer direção, isso não seria bom para os usuários finais. Como designer de interface do usuário, é importante reconhecer os argumentos dos especialistas em segurança e levá-los em consideração ao projetar a experiência do usuário.

9
Rahul

Na verdade, com a maioria dos provedores por aí oferecendo APIs de login (geralmente baseadas em Open Auth), você nem precisa lidar com problemas de login/autenticação do usuário. Basta ter seus usuários logados no Facebook, Google, Yahoo, Twitter, etc ... Eu sinto que o Google, Microsoft, Yahoo, et. al. fará um trabalho melhor ao proteger credenciais de login e lidar com redefinições de senha do que eu. Este é realmente o melhor caso para seus usuários, porque eles não precisam se lembrar de um novo conjunto de credenciais e, na maioria dos casos, se eles já estiverem conectados ao correio, não voltarão a digitar a senha novamente. É um login perfeito com um clique (sem digitação).

Existem duas pequenas dicas para fazer esse trabalho. (1) Você deve oferecer suporte a um número relativamente grande de provedores de login para garantir a captura de todos os usuários sem incomodá-los. (2) Você deve oferecer suporte e incentivar o vínculo de contas para que os usuários possam adicionar vários provedores de login à conta do site, porque eles podem (e geralmente fazem sem aviso prévio) alterar sua API ou desativar a manutenção efetivamente bloqueando esses usuários do seu site.

No lado positivo, você normalmente pode recuperar parâmetros do usuário diretamente do provedor, para que o usuário não precise inserir informações como endereço de email, nome, telefone, etc.

1
Jonathan

Para ser honesto, como programador, eu realmente não gosto de etapas de segurança de perguntas/respostas pessoais, pois as respostas podem ser inseridas incorretamente do ponto de vista estritamente de programação. O que acontece se a resposta for um nome, mas eles não se lembram se colocam o nome inteiro ou apenas o nome abreviado ou o nome próprio, ou perdem um apóstrofo e não percebem.

Por outro lado, os captchas (de tipos variados) exigem uma resposta em preto e branco. É válido ou não é. Dito isto, a legibilidade do captcha às vezes apresenta problemas para os usuários. A maioria é legível, mas algumas são apenas bobagens.

Acho que o método de exigir verificação por e-mail ao redefinir a senha sempre me pareceu bastante seguro, pois claramente exige que eu saiba meus detalhes de login para um sistema segundo (minha conta de e-mail) para acessar o link voltar para o site para solicitar uma nova senha.

0
Nick Bedford