Eu posso omitir os últimos caracteres da minha senha no Ubuntu 14.04

27

Temos o Ubuntu 14.04.3 LTS nos nossos PCs de laboratório na minha faculdade. Eu notei um bug sério hoje em dia.

Eu posso pular os últimos caracteres da minha senha e ainda logar sem problemas. Por exemplo, se minha senha for a1b2c3d4e5f6g7h8 , posso digitar a1b2c3d4e e ainda efetuar login. Muitas outras pessoas também notaram esse bug.

Observe que a senha não pode ser ignorada completamente - o máximo que pude pular é 7 caracteres. Se eu tentar pular mais, a mensagem " Senha inválida, por favor, tente novamente " será exibida. Observe também que qualquer permutação aleatória de uma substring da senha não funciona.

Isso também acontece se eu bloquear a tela manualmente e inserir a senha novamente. O mesmo erro está presente ao usar ssh e bem, pesquisando e pesquisando o Stack Overflow não ajudou.

A minha pergunta é - como corrijo este erro, se é que posso consertar? Nosso sysadm não estará disponível antes de segunda-feira, e isso está realmente me incomodando.

IMPORTANTE: Observe que nenhuma das contas dos alunos está na lista de sudoers, apenas o sysadm tem acesso root. Além disso, o seguinte aparece quando eu ssh em minha própria conta:

Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.13.0-65-generic i686)

* Documentation:  https://help.ubuntu.com/

543 packages can be updated.
350 updates are security updates.

New release '16.04.1 LTS' available.
Run 'do-release-upgrade' to upgrade to it.

UPDATE: Parece que a questão importante não é o número de caracteres omitidos no final, mas o fato de que é possível fazer o login com os primeiros oito ou mais caracteres da senha.

    
por Dimitri Markovich 10.02.2017 / 08:59

2 respostas

28

Se você não tem acesso de administrador, não há muito o que fazer.

Dito isto, isto parece ser devido à incompetência do administrador. Isso parece suspeitamente semelhante à criptografia de senha usando a função crypt(3) clássica. De man 3 crypt :

crypt()  is  the password encryption function.  It is based on the Data
Encryption Standard algorithm with  variations  intended  (among  other
things) to discourage use of hardware implementations of a key search.

key is a user's typed password.

salt is a two-character string chosen from the set [a-zA-Z0-9./].  This
string is used to perturb the algorithm in one of 4096 different ways.

By taking the lowest 7 bits of each of the first  eight  characters  of
the  key, a 56-bit key is obtained.  This 56-bit key is used to encrypt
repeatedly a constant  string  (usually  a  string  consisting  of  all
zeros).   The returned value points to the encrypted password, a series
of 13 printable ASCII characters (the first  two  characters  represent
the salt itself).  The return value points to static data whose content
is overwritten by each call.

Isso soa familiar?

Nenhum sistema Ubuntu recente usa isso por padrão. Seu administrador deve ter configurado manualmente a configuração da senha para usá-lo. Ou podem estar usando autenticação externa (LDAP ou similar) e não configuraram ou não puderam configurá-la com segurança.

Veja também: As senhas dos sistemas Unix / Linux modernos ainda são limitadas a 8 caracteres?

    
por muru 10.02.2017 / 09:14
7

Houve um tempo, em um milênio anterior, em que todos os Unixen criptografavam suas senhas dessa maneira. Descarte tudo além do oitavo caractere, adicione sal, solte uma função hash e pronto.

A grande questão aqui é se as senhas criptografadas estão disponíveis para possíveis hackers. Se eles são, isso é um grande problema. Se eles não são, realmente não é um grande negócio. Oito senhas de caracteres têm muitas possibilidades. Se você tiver que fazer uma tentativa de login real para verificar uma senha em potencial, a invasão demorará muito. Além disso, as tentativas irão disparar alarmes.

Então, a grande vitória aqui é a sombra das senhas. Ainda assim, as pessoas começaram a pensar que isso não era bom o suficiente e cada variante do Unix implementava sua própria maneira de estender o tamanho máximo da senha. Estes não eram mais compatíveis.

Por um tempo, se você quiser que várias máquinas com diferentes variantes do Unix usem a mesma senha, você precisa usar o tipo antigo de criptografia.

É bem possível que, quando esses laboratórios de informática foram montados pela primeira vez, esse ainda fosse o caso. E esse tipo de configuração tem inércia. Novos clientes são configurados para corresponder ao servidor. Novos servidores são configurados para corresponder aos clientes.

Hoje as coisas estão melhores. Há menos variantes do Unix em uso e elas cooperam melhor.

Eu não sou competente o suficiente para dizer como corrigir isso, mas é uma tarefa para o administrador, não para você.

    
por Stig Hemmer 10.02.2017 / 12:12