Quais métodos são usados ​​para criptografar senhas em / etc / passwd e / etc / shadow?

19

Um exame cuidadoso dos arquivos /etc/passwde /etc/shadowrevela que as senhas armazenadas são hash usando alguma forma de função hash.

Uma rápida pesquisa no Google revela que, por padrão, as senhas são criptografadas usando o DES . Se uma entrada começar $, isso indica que alguma outra função de hash foi usada.

Por exemplo, algumas entradas na minha máquina Ubuntu começam com $6$...

O que os vários números representam?

Nathan Osman
fonte

Respostas:

28

A lista completa está em man 3 crypt( versão web ):

          ID  | Method
          -------------------------------------------------
          1   | MD5
          2a  | Blowfish (on some Linux distributions)
          5   | SHA-256 (since glibc 2.7)
          6   | SHA-512 (since glibc 2.7)

(Blowfish pode ser $2$ou de $2a$acordo com a Wikipedia Crypt (Unix) .)

Então $6$significa SHA-512.

Qual o seu sistema usa é governado por quaisquer opções passadas para o módulo PAM pam_unix .

O padrão na versão mais recente do Ubuntu é definido em /etc/pam.d/common-password:

password        [success=1 default=ignore]      pam_unix.so obscure sha512

o que significa que na próxima vez que você alterar sua senha, ela será hash usando o SHA-512, assumindo que sua conta é local e não NIS / LDAP / Kerberos etc.

Veja também:

Mikel
fonte
Uma rápida verificação rápida dos meus /etc/shadowprogramas mostra 2 entradas que começam com $6$.
26611 Nathan Osman
Observe que o SHA-256 e o ​​SHA-512 fazem parte do conjunto de funções de hash do SHA-2.
mattdm
4
Observe que os hashes de criptografia baseados no SHA-2 não são SHA-2 simples, o que seria ruim, pois o SHA-2 simples é fraco contra ataques de dicionário. Os esquemas de criptografia SHA-2 usam os hashes simples como bloco de construção, mas adicionam um fator de trabalho variável (para diminuir os ataques do dicionário) e um sal.
CodesInChaos
Na minha máquina Ubuntu, a senha do root possui um símbolo de exclamação ( !). Lendo man shadow, significa que a senha está bloqueada, portanto você não pode efetuar login diretamente usando a senha unix. Tem a ver com a conta root do Ubuntu definida desativada por padrão.
Akronix