GitHub cada vez mais distante do uso de senhas, novidades estão por vir?

No final deste mês, as pessoas que usam o GitHub podem receber repentinamente uma mensagem de erro ao tentar se autenticar na API do GitHub ou realizar ações em um repositório GitHub com um nome de usuário e senha.

A razão para isso é a remoção desta opção de autenticação pelo GitHub, com alguns períodos de ‘brown-out’ envolvendo a rejeição de senhas para avisar as pessoas sobre esse fato.

Essa mudança foi anunciada originalmente pelo GitHub em novembro de 2019, teve um cronograma de suspensão de uso atribuído em fevereiro de 2020 e outra atualização do blog em julho repetindo as informações. Conforme observado lá, apenas o GitHub Enterprise Server permanece inalterado por enquanto. Para todos os outros, a partir de 13 de novembro de 2020, para usar os serviços do GitHub, o uso de um token OAuth, token pessoal ou chave SSH é necessário.

Embora isso provavelmente afete um bom número de pessoas que estão usando a API REST e repositórios do GitHub, talvez a questão mais interessante aqui seja se isso é apenas o começo de uma transformação maior de logins de nome de usuário e senha em serviços.

NENHUM CÉU ESTÁ CAINDO … AINDA

Em primeiro lugar, a boa notícia é que lidar com essa mudança não é supercomplicado, e se ler as postagens do blog do GitHub o deixou confuso e vários níveis de pavor existencial, aqui está uma maneira fácil de consertar com mudanças mínimas se você estamos acostumados a martelar suas credenciais na linha de comando com o cliente git :


  1. Mude para SSH.

É isso aí. Se você já tem chaves SSH instaladas em seu sistema, certifique-se de copiar a chave pública em seu perfil GitHub. Depois disso, você pode clonar seus repositórios novamente com mais sabor SSH ou alterar a URL remota git de HTTPS para seu equivalente SSH.

Para fazer isso, é necessário abrir o .git/configarquivo na pasta raiz do repositório local em seu editor de texto favorito (como o Vim) e alterar a URL do remoto. Simplesmente altere ‘https’ para ‘ssh’ e acrescente ‘git @’ antes do nome do host para que, por exemplo, https://github.com/Foo/Bar.gitse torne ssh://[email protected]/Foo/Bar.git.

Parabéns, agora você deve ser capaz de usar sua chave SSH para empurrar, puxar, buscar, rebase, esmagar e todas as outras coisas impertinentes com seus repositórios remotos como antes. Se você receber erros de SSH estranhos, pode ser que você tenha as permissões incorretas definidas na pasta ~ / .ssh. Caso contrário, aproveite para não digitar mais seu nome de usuário e senha (ou token de acesso) todas as vezes.

O QUADRO MAIS AMPLO

De acordo com o GitHub, o motivo dessa mudança é aumentar a segurança. Em vez de senhas, eles oferecem o uso de tokens de acesso pessoais ( PATs ) ao usar a API REST ou acessar repositórios git via HTTPS. A ideia é que os PATs possam ser criados para serviços e indivíduos específicos, para limitar e conceder determinados direitos. O token resultante é, no entanto, uma longa string que você não vai apenas lembrar e digitar, o que torna um gerenciador de senhas essencial.

É revelador que nada disso se aplica ao login no próprio site do GitHub . Lá, você ainda pode usar seu nome de usuário e senha como antes, possivelmente além da autenticação de dois fatores (2FA), se ainda não estiver usando. Aqui, o segundo fator em 2FA pode ser um código enviado em uma mensagem de texto ou aplicativo móvel, ou algo como WebAuthentication (FIDO2), com todas as possíveis pegadinhas ao usar a biometria .

Para aqueles de nós que já estavam usando SSH com nossas consultas de repositório GitHub, isso significa que essencialmente nada muda. O uso de tokens de acesso também não deve ser uma surpresa para ninguém que integrou um sistema de CI ou similar ao GitHub. No entanto, isso leva a se perguntar qual é o objetivo da mudança do GitHub se apenas alguns DevOps correm para atualizar os serviços (e consertar os poucos que falham). Alguém está realmente tentando se livrar das senhas?

Como qualquer pessoa que já gerenciou um grande sistema multiusuário em uma universidade ou grande empresa sabe, o gerenciamento de contas de usuários é essencial. Idealmente, você deseja manter cada usuário (seja uma pessoa, script de shell ou gerente) em sua própria pequena zona de permissão. É aqui que o anúncio do GitHub é talvez o mais intrigante. Conforme observado por comentaristas da Hacker News  sobre o anúncio, teria feito mais sentido expandir os tokens de acesso para criar funções mais refinadas e por projeto.

O PODER DO CONHECIMENTO

Cortesia gráfica da EFF.

Se as senhas são realmente problemáticas ou não, parece depender principalmente de para quem você pergunta. Se for um estudo encomendado por uma empresa que vende alternativas para logins baseados em senha, ou a empresa por trás do Windows Hello , é a coisa mais insegura de todos os tempos. No entanto, como mencionado anteriormente, existem problemas significativos com essas alternativas, especialmente a biometria.

Na autenticação do usuário, a identificação pode ocorrer usando algo que você tem, algo que você é e algo que você conhece. Biometria é a prática de escanear uma parte do corpo de uma pessoa e compará-la com dados armazenados anteriormente. Esses são dados públicos que estão se tornando cada vez mais fáceis de copiar e reproduzir para enganar os sensores biométricos. E, claro, se seus dados biométricos caírem nas mãos de malfeitores, você nunca poderá alterá-los.

Algo que se possui (carteira, cartão de crédito, token de hardware) é facilmente roubado ou perdido. É por isso que tais tokens são inevitavelmente desbloqueados com uma senha, na forma de um número de identificação pessoal (PIN), que é estranhamente dançado como uma senha, embora como algo que ‘alguém sabe’ seja totalmente uma senha.

Coisas que as pessoas sabem são incríveis, porque as únicas maneiras de serem comprometidas são esquecendo-as ou fazendo com que alguém as grave usando keyloggers, caixas eletrônicos comprometidos, etc. Isso é demonstrado pela incapacidade dos departamentos federais dos EUA de forçarem sua entrada iPhones protegidos por senha. Com o uso do reconhecimento facial basta segurar o telefone contra o rosto da pessoa para desbloqueá-lo, algo que pode até ser legal para impressões digitais. Em alguns casos, basta uma fotografia da pessoa.

TUDO QUE VOCÊ PRECISA É SSH

O logotipo OpenSSH.

Realisticamente, a coisa boa sobre a mudança do GitHub parece ser que ela força mais pessoas a finalmente descartar ou reescrever aqueles scripts antigos e serviços de back-end Java esquecidos, mas ainda ativos, que têm credenciais de nome de usuário e senha embutidas em código. Fazê-los usar SSH (possivelmente usando ssh-agent ou GPG agent ) facilita a manutenção e deve melhorar a segurança. Mesmo se alguém usar apenas repositórios git da linha de comando e não se preocupar com um gerenciador de senhas, mudar para SSH significa menos digitação.

Como um mecanismo de autenticação, o SSH fornece autenticação de dois fatores na forma de algo que você possui (a chave secreta) e algo que você conhece (a frase-chave). Seus benefícios também são reconhecidos pelo GitLab, que a partir de 15 de agosto deste ano não está mais oferecendo redefinições multifatoriais para contas de usuário gratuitas. Se alguém tiver uma chave SSH registrada com a conta, poderá usar a autenticação SSH para recuperar a conta nos casos em que todos os outros métodos de autenticação se tornaram indisponíveis.

SÃO SENHAS EM TODOS OS SENTIDOS

Por causa do poder de manter as informações de autenticação armazenadas com segurança em nossos cérebros orgânicos, todos os métodos de autenticação parecem levar de volta a uma forma de senha em algum ponto. Mesmo os tokens de autenticação ‘sem senha’ exigem uma senha (PIN), que deve ser lembrada. O mesmo se aplica a cartões de crédito, cartões de débito, contas de banco online, cartões SIM, gerenciadores de senhas e assim por diante.

Na última contagem, tenho que lembrar os códigos PIN para vários cartões SIM, cartões de débito, cartões de crédito, aplicativos de banco online e um gerenciador de senhas para quase uma dúzia no total. Adivinhe onde esses códigos PIN vão parar? Correto, no gerenciador de senhas, porque lembrar uma sequência aleatória de números é complicado, mas lembrar uma dúzia deles é um cenário de pesadelo limítrofe. Era 7634 para aquele cartão de débito ou 7643? Ou foi para o segundo cartão de crédito? Até o sistema de hash baseado no cérebro de Elliot Williams para PINs permite que ele escreva a chave pública no cartão, mas ainda exige que ele se lembre da chave privada (e como codificá-la em sua cabeça).

Talvez seja esse o apelo da biometria: ter algo que simplesmente é, sem nada para lembrar ou algum item físico para acompanhar. No entanto, a biometria é o equivalente criptológico de imprimir sua chave privada SSH na testa (ou nas pontas dos dedos).

No final do dia, parece que todos os caminhos de autenticação acabam levando a gerenciadores de senhas e chaves SSH.

Fonte: https://hackaday.com/2020/09/15/githubs-move-away-from-passwords-a-sign-of-things-to-come