Como configuro a autorização HTTP do Apache com um salt em minha senha?

2

Estou usando o mod_auth_mysql com o Apache 2 e o MySQL 5 para autorização do apache. Agora nossas senhas estão sendo armazenadas na planície em nosso banco de dados. Como um novo requisito, temos que armazená-los com um sal, para combater os ataques da mesa do arco-íris. A documentação declara:

AuthMySQLSaltField <> | <string> | mysql_column_name

 Contains information on the salt field to be used for crypt and aes
 encryption methods.  It can contain one of the following:
   <>: password itself is the salt field (use with crypt() only)
   <string>: "string" as the salt field
   mysql_column_name: the salt is take from the mysql_column_name field in the
     same row as the password

 This field is required for aes encryption, optional for crypt encryption.
 It is ignored for all other encryption types.

Então parece que o módulo pode fazer isso, mas não consigo encontrar nada sobre como fazer isso? O que devo colocar na coluna de senha? O que devo colocar no sal? Como eu uso o AES? (A maioria dos aplicativos será PHP para criar usuários)

    
por Rory 10.08.2009 / 17:27

2 respostas

1

Isso depende do seu sal!

Geralmente, você pode usar algo que o usuário não pode alterar, como seu ID, como um sal; se for esse o caso, especifique a coluna que contém o ID do usuário.

Se você estiver usando um sal constante, coloque-o em < > marcas.

    
por 10.08.2009 / 19:43
0

O sal deve ser uma string aleatória, não um md5 / sha1 / 256. Os documentos que você apresentou estão procurando o sal na sua própria coluna. Então você "precisa" de 3 colunas para usos de autenticação

Usersname/email = user submitted
passwordhash = hash(password, passwordsalt)
passwordsalt = random string

Você pode facilmente usar essas colunas para verificar senhas e criar novos registros de usuário com sal e hash.

Nunca guarde senhas de texto simples.

Quanto à função hash (), dê uma olhada na biblioteca phpass . É para o que o wordpress se voltou quando finalmente implementaram hashes salgados em seu banco de dados.

    
por 10.08.2009 / 20:25