PBKDF2 é um hash de senha salgado , o que significa que, além da senha, o A função hash recebe como entrada outra string, o salt, que é gerada aleatoriamente quando a senha é definida ou modificada. A ideia aqui é que um invasor não pode pré-compilar os hashes correspondentes a senhas comuns, pois eles também precisam do salt. Além disso, se várias contas tiverem a mesma senha, isso não é evidente, pois os hashes são aleatórios. O sal é armazenado como parte do hash da senha e, para comparar uma senha em texto simples com a hash, o sal correto a ser usado é lido a partir do hash.
Comparado a uma função hash criptográfica simples (como MD5 ou SHA-256), o PBKDF2 também é iterado , o que significa que executa o hash subjacente várias vezes em um loop (milhares de vezes, pelo menos ). Isso é apenas para calcular o hash mais lento , aumentando o custo de adivinhar as senhas que correspondem aos hashes pela força bruta.
No caso de grub
, o formato do hash parece ser
grub.pbkdf2.sha512.[iterations].[salt].[hash]
Os hashes de senha usados pelo sistema ( /etc/shadow
, consulte a criptografia man page) também são iterados e salgados, como qualquer hash de senha deve ser.
Para muito mais sobre hashes de senha, consulte Como proteger com segurança as senhas de hash? em security.SE