Posso omitir os últimos caracteres da minha senha no Ubuntu 14.04

27

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

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

Observe que a senha não pode ser ignorada completamente - o máximo que pulei é de 7 caracteres. Se eu tentar pular mais, a mensagem " Senha inválida, 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 digitar a senha novamente. O mesmo bug está presente durante o uso sshe a busca e a busca no Stack Overflow não ajudaram.

Minha pergunta é - como faço para corrigir esse erro, se é que posso corrigi-lo? 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 sshem 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.

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

Dimitri Markovich
fonte
2
Eu suspeitaria que alguma autenticação externa (LDAP, Active Directory, etc.) esteja com falha e não valide as senhas corretamente. Fale com o administrador do sistema.
André Borie 10/02
8
350 atualizações de segurança estão disponíveis. Um deles provavelmente corrige o bug heartbleed também
AnthumChris
4
Seu sysadmin não parece ter estado disponível há meses ...
Michael Hampton

Respostas:

28

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

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

crypt () é a função de criptografia de senha. É baseado nos dados
Algoritmo de criptografia padrão com variações pretendidas (entre outras
desencorajar o uso de implementações de hardware de uma pesquisa principal.

key é a senha digitada pelo usuário.

salt é uma cadeia de dois caracteres escolhida no conjunto [a-zA-Z0-9./]. este
string é usada para perturbar o algoritmo de uma das 4096 maneiras diferentes.

Ao pegar os 7 bits mais baixos de cada um dos oito primeiros caracteres de
a chave, uma chave de 56 bits é obtida.   Essa chave de 56 bits é usada para criptografar
repetidamente uma cadeia constante (geralmente uma cadeia que consiste em todos
zeros). O valor retornado aponta para a senha criptografada, uma série
13 caracteres ASCII imprimíveis (os dois primeiros caracteres representam
o próprio sal). O valor de retorno aponta para dados estáticos cujo conteúdo
é substituído por cada chamada.

Isso soa familiar?

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

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

muru
fonte
4
Então o administrador provavelmente está usando LDAP ..... tentarei entrar em contato com ele. Obrigado!
Dimitri Markovich 10/02
1
O OP poderia confirmar ainda mais se ver o lançamento do oitavo bit de qualquer um dos 8 primeiros caracteres faz a diferença. Pode ser difícil de fazer em um ambiente UTF-8.
Jonas Schäfer
@JonasWielicki - Virar o oitavo bit de qualquer um dos oito primeiros caracteres faz a diferença - a senha é mostrada como inválida. Portanto, só posso usar os oito primeiros ou mais caracteres da minha senha original.
Dimitri Markovich
@ die-policy137 Como mencionado, acho difícil mudar apenas o oitavo bit - com UTF-8, isso resultaria em dois bytes sendo usados ​​em vez de um para codificar o ponto de código. Portanto, este não é um teste definitivo, infelizmente, a menos que se tenha um controle muito rígido sobre a codificação usada pelo terminal e / ou os dados enviados para autenticação.
Jonas Schäfer
7

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

A grande questão aqui é se as senhas criptografadas estão disponíveis para possíveis hackers. Se forem, este é um grande problema. Se não estiverem, realmente não é grande coisa. As senhas de oito caracteres têm muitas possibilidades. Se você precisar fazer uma tentativa de login real para verificar uma senha em potencial, a invasão será demorada. Além disso, as tentativas acionarão alarmes.

Portanto, a grande vitória aqui são senhas-sombra. Ainda assim, as pessoas começaram a pensar que isso não era bom o suficiente e todas as variantes do Unix implementaram sua própria maneira de estender o tamanho máximo da senha. Estes não eram mais compatíveis.

Por um tempo, se você queria que várias máquinas com diferentes variantes do Unix usassem a mesma senha, era necessário usar o tipo antigo de criptografia.

É bem possível que, quando esses laboratórios de informática foram criados, esse ainda era 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. Existem menos variantes do Unix em uso e elas cooperam melhor.

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

Stig Hemmer
fonte
Ok então .... Eu gostaria de poder ter feito algo embora.
Dimitri Markovich
"Unixen" sobre "Unicies"? Nunca ouvi isso antes, toque agradável
cat
1
@cat É aparentemente um portmanteau de Unix e boxen .
Michael Hampton
2
Como Unix é uma palavra inventada, o plural também pode ser inventado :) #
Thorbjørn Ravn Andersen
Eight characters passwords has a lot of possibilities.Para entropia de senha , você assume que o invasor sabe como gerar senhas. Se você usar palavras aleatórias , no máximo obterá 2 palavras ou 22 bits de entropia.
NonlinearFruit