Solaris deixa-me entrar com senha diferente com os mesmos 8 primeiros caracteres

42

Eu não sei se isso é normal, mas a coisa é, digamos que eu tenha um usuário do Solaris chamado gloaiza e sua senha é password2getin

Estou logando no servidor com PuTTY, acabei de colocar 192.168.224.100 e ele solicita um windows pedindo um usuário, então eu digito gloaiza , então ele pede uma senha e digamos Eu digito password2geti por engano, e funcionou! Estou no servidor!

Isso é normal? Também funciona se eu colocar algo como password2getin2 .

Eu não sou um falante nativo de inglês, então, caso haja algo que você não possa entender, por favor, pergunte-me

SO: Oracle Solaris 10 1/13

    
por gloaiza 10.08.2016 / 00:34

4 respostas

63

O sistema operacional armazena um hash da senha em /etc/shadow (ou, historicamente, /etc/passwd ; ou um local diferente em algumas outras variantes do Unix). Historicamente, o primeiro hash de senha generalizada era um esquema baseado em DES que tinha a limitação de que só levou em conta os primeiros 8 caracteres da senha. Além disso, um algoritmo de hash de senha precisa ser lento; o esquema baseado em DES foi um pouco lento quando foi inventado, mas é insuficiente para os padrões de hoje.

Desde então, melhores algoritmos foram criados. Mas o Solaris 10 é padronizado para o esquema baseado em DES histórico. O Solaris 11 usa como padrão um algoritmo baseado em SHA-256 iterado que está à altura dos padrões modernos.

A menos que você precise de compatibilidade histórica com sistemas antigos, mude para o esquema SHA-256 iterado. Edite o arquivo /etc/security/policy.conf e altere a configuração CRYPT_DEFAULT para 5, que significa crypt_sha256 . Você também pode querer definir CRYPT_ALGORITHMS_ALLOW e CRYPT_ALGORITHMS_DEPRECATE .

Depois de alterar a configuração, execute passwd para alterar sua senha. Isso atualizará o hash da senha com o esquema atualmente configurado.

    
por 10.08.2016 / 00:54
21

Isso é esperado, pelo menos em uma configuração anterior do Solaris 10 e mais antiga.

Seu sistema está usando o legado algoritmo Unix crypt_unix , que realmente limita o número de caracteres usados para oito.

Isso está documentado na % página de manual dopasswd :

Passwords must be constructed to meet the following requirements:

  Each password must have PASSLENGTH characters, where PASSLENGTH is  defined  in
  /etc/default/passwd  and  is  set  to  6. Setting PASSLENGTH to more than eight
  characters requires configuring policy.conf(4) with an algorithm that  supports
  greater than eight characters.

Como este algoritmo é essencialmente obsoleto. Você deve alternar para algo melhor (valores disponíveis listados na página de manual crypt.conf ) definindo as entradas CRYPT_ALGORITHMS_DEPRECATE e CRYPT_DEFAULT o arquivo /etc/security/policy.conf .

Veja o link

    
por 10.08.2016 / 00:52
7

Veja este tópico nos fóruns da Oracle :

The behavior you describe is expected when using the default "crypt_unix" password encryption scheme. This scheme will only encrypt the first eight characters of a password, and thus only the first eight characters need to match when the password is typed in again. It is not a "bug", but a known limitation of the algorithm - it is largely kept around for backward compatibility, and unfortunately is set as the default on Solaris systems when installed.

To resolve this, set your OS to use MD5 or Blowfish algorithms instead of crypt_unix.

This can be changed in the /etc/security/policy.conf file. You can set crypt algorithms to allow, and there is also a setting to deprecate (forbid) the use of the "crypt_unix" algorithm and change the default to a more secure one.

See your "Solaris 10 System Administration Guide: Security Services" for more information.

Veja também Alterando o Algoritmo de Senha (Mapa de Tarefas) e especialmente Como especificar um algoritmo para criptografia de senha :

Specify the identifier for your chosen encryption algorithm.

...

Type the identifier as the value for the CRYPT_DEFAULT variable in the /etc/security/policy.conf file.

...

For more information on configuring the algorithm choices, see the policy.conf(4) man page.

    
por 10.08.2016 / 00:54
2

Apenas para FYI, isso também acontece em sistemas IBM AIX até a versão 7.1.

É engraçado, porque este sistema com o qual eu trabalhei tem uma política de "não pode reutilizar nenhuma das últimas 10 senhas" que faz levar em conta o tamanho total da senha, mas só verifica os 8 primeiros caracteres ao fazer login. Assim, você pode definir suas senhas como easypass_%$xZ!01 , easypass_%&ssY!02 , easypass_%$33zoi@@ , ... para cada alteração de senha obrigatória, mantendo efetivamente easypass como sua senha por anos.

    
por 12.08.2016 / 10:11