Talvez o senhor já tenha visto este recente XKCD sobre escolha de senha?
Isso provocou um debate animado – até mesmo em nosso próprio Security Stack Exchange – sobre os méritos do argumento apresentado lá. Agora, para deixar claro, estou falando com o senhor. completamente Estou do lado do Randall aqui; sou totalmente a favor de frases-senha em vez de senhas, e o Eu tenho sido por anos.
Mas isso é apenas um sintoma de uma doença muito maior: a identidade na internet. Toda vez que o senhor entra em um site que realmente se importa com quem o senhor é – e essa é uma lista cada vez maior de sites à medida que a Web amadurece – o senhor tem que fazer isso, suspirar, “log in”. E o login inevitavelmente exige que o senhor crie um nome de usuário e uma senha. Repetidamente, repetidamente, repetidamente e mais. E, a propósito, o senhor fará login novamente todas as vezes em todos os navegadores, computadores e dispositivos que possui. É um excelente sistema. E por “ótimo” quero dizer terrível.
Isso não é apenas um trabalho tedioso para nós, pobres usuários da Web, mas também é perigoso como expliquei em A verdade suja sobre senhas da Web. É um problema quase impossível, um problema intratável Nó górdio. Portanto, vou responder a uma história em quadrinhos com outra.
O problema não é escolher melhor senhas melhores para as dezenas ou centenas de sites da Web em que precisamos fazer login. O problema é que senhas.
Portanto, a única cura real para a doença da identidade na web é eliminar completamente as senhas.
Sim, o senhor leu corretamente. Mas “Jeff”, o senhor pode dizer, “como podemos possivelmente fazer login em sites sem a nossa amada lista quilométrica de nomes de usuário e senhas específicos do site?” Fico muito feliz que o senhor tenha perguntado! Tente arranjar tempo em sua agenda lotada de criação de contas e senhas para ler mais alguns parágrafos desta publicação e tentarei explicar meu esquema maluco.
Poderíamos usar nossa carteira de motorista na Internet e fazer login em um determinado site usando nossas credenciais existentes do Google, Facebook, Twitter ou OpenID. Isso funciona, mas pressupõe muita coisa; o site é esclarecido o suficiente para aceitar logins de terceiros, ou há uma agenda política (ou delírios de grandeza) que os impede de reconhecer qualquer forma de identidade que não seja a do a sua própria? Para ser justo, aceitar a identidade de terceiros é difícil e, inegavelmente, aumenta a complexidade. Há um milhão de maneiras de errar e apenas um punhado de sites que acertam. Gosto de pensar que o Stack Exchange é um dos sites que faz isso corretamente, mas reconheço plenamente que é um desafio chegar lá. Infelizmente, o caminho de menor resistência para a identidade da Web leva inexoravelmente a um lugar triste, deprimente e disfuncional:
Sim. Acostume-se com isso. Nome de usuário. Senha. Para todos os sites que o senhor visitará. Em todos os dispositivos que o senhor possui. Para sempre. Até o fim dos tempos. Oh, Deus.
Ultimamente, comecei a ter esperança de que pudesse haver uma solução viável, mesmo fora dos logins de terceiros que defendi nos últimos três anos. Uma forma de absolver os usuários da seleção de nome de usuário e senha. Assim como a solução de Alexandre para o nó górdio, ela pode ser um pouco assustadora em seu… absolutismo. Mas qualquer coisa deve ser melhor do que o terror indescritível de um milhão de logins em um milhão de sites diferentes em um milhão de dispositivos diferentes. Não é mesmo? Não é mesmo?
(Aviso, extrema ondulação da mão à frente: enquanto eu do Acredito honestamente que as técnicas descritas abaixo funcionariam, mas estou deixando de lado muitos dos detalhes técnicos de implementação. Isso é absolutamente não é pretende ser uma especificação, mas um esboço de “I Have a Dream”. Sinta-se à vontade para me ajudar a esclarecer e expandir os detalhes necessários, escrevendo no blog um plano mais técnico para isso da forma que o senhor quiser).
Imagine, se o senhor quiser, visitar um novo site e decidir que gostaria de criar uma conta nele. O senhor clica no link “Create New Account” e, em seguida, …
- O site apresenta uma página segura de criação de conta, decorada com informações específicas sobre o senhor.
meta
específicas que indicam que essa página suporta a criação automatizada de contas com um conjunto padrão de campos de formulário HTML de informações do usuário. - O navegador, ao ver essas
meta
na página, não apresenta a página ao usuário mas recupera os campos de informações padrão do usuário, como nome, endereço de e-mail, etc., de alguma forma de armazenamento seguro em nuvem https e os prepara. O navegador também seleciona automaticamente uma senha completamente aleatória e criptograficamente segura para a nova conta. - Infelizmente, o navegador deve solicitar ao usuário uma caixa de diálogo de confirmação contendo um CAPTCHA nesse momento para garantir que o processo de inscrição não esteja sendo programado de forma alguma e que um ser humano real realmente queira criar uma conta nesse site. Já que estamos aqui, podemos confirmar os dados de identidade que estamos prestes a enviar para o site (embora esperemos que os padrões sejam suficientes). Depois de confirmados, as credenciais de usuário e a senha serão enviadas ao site e armazenadas com segurança na nuvem.
- O site redireciona a conta recém-criada para uma página apropriada.
Pode haver mais algumas informações que o navegador (ou o site) precise solicitar ao usuário em algum lugar. Mas a criação de uma conta é um evento único e, no caso típico em que o usuário está se inscrevendo em um site simples, os padrões preferidos devem ser suficientes. Deixando as ressalvas de lado, veja o que conseguimos fazer: o senhor clicou em “Create New Account”, preencheu um único captcha e clicou em OK – agora o senhor está conectado à sua nova conta em qualquer site.
Quando o senhor tiver uma conta, é ainda mais simples. Imagine clicar no link “Sign In” e depois …
- O site apresenta uma página de login segura, decorada com
meta
específicas que indicam que essa página suporta login automatizado com um conjunto padrão de campos de formulário HTML de nome de usuário e senha. - O navegador, ao ver essas
meta
na página, não apresenta a página ao usuário mas recupera as credenciais do usuário de alguma forma de armazenamento seguro em nuvem https e as envia para o site. - O site recebe as credenciais via https, valida-as e retorna um cookie de login válido para o navegador.
- O navegador redireciona o usuário agora conectado para a página que ele queria ver originalmente como um usuário conectado.
Pelo menos do ponto de vista deste cansado cidadão da Web, um milagre acabou de acontecer. O senhor clicou em “Sign In” e está imediatamente assinado em sem ter que olhar para um único campo de nome de usuário e senha!
Parece mágica, não é? Deve haver uma pegadinha, não é? Bem, há. Duas armadilhas, para ser mais preciso.
- Os navegadores da Web terão que ser reescritos para entender os protocolos básicos de identidade. Suponho que isso poderia também poderia ser um plug-in de navegador, mas eu ficaria muito mais tranquilo sabendo que os protocolos básicos de identidade estão oficialmente “incorporados” ao navegador e são compatíveis com os Poderes Ocultos, talvez até como padrões W3C aceitos. E, sim, o senhor precisará fazer login no navegador, no mínimo.
- O senhor precisa confiar pelo menos um pouco na “nuvem”. Deve haver algum local seguro e confiável na Internet para que todos os seus nomes de usuário, senhas e informações básicas de identidade residam. Caso contrário, esse esquema não funcionaria, pois como o senhor faria login no seu (insira o nome do dispositivo favorito aqui) se ele não tem acesso à lista secreta e oculta de informações da conta e às senhas seguras geradas automaticamente e criadas em seu nome?
A identidade é fundamental para a Internet moderna; cada vez mais sites precisam saber algo sobre o quem o senhor é para funcionar. O status quo atual de milhares de sites com milhares de ideias diferentes sobre identidade, senhas e informações de contas está mais do que quebrado. Nós queremos – não, nós exigir – que o navegador entenda e padronize a identidade da mesma forma que faz com o HTML e o CSS. Talvez seja loucura, mas o Sonho com o dia em que nunca mais precisarei ver outro campo de senha no meu navegador.
Espero que o senhor também consiga.
[advertisement] Qual é o seu próximo passo na carreira? Carreiras no Stack Overflow tem as melhores listas de empregos de grandes empresas, quer o senhor esteja procurando oportunidades em uma startup ou na Fortune 500. O senhor pode pesquisar em nosso anúncios de emprego ou criar um perfil e deixe que os empregadores encontrem o senhor. |