Usando campos de senha do usuário SHA1 no servidor radius do freeradius

4

Eu possuo um aplicativo web proprietário que armazena a senha do usuário na forma de sha1 $ 79b2c $ b3704ec5703ef28ded379cf6c6de4c4160aa029b. Este é um hash sha1 salgado.

  1. Eu também quero usar esta informação pré-gravada para o freeradius. O atributo Crypt-Password é definido em radius mas AFAIK é apenas md5 hash da senha. Eu tentei isso, mas isso não funcionou como eu esperava. Como posso usar as mesmas ceredenciais para validação do usuário no freeradius? É possível executar algum script e aceitar o acréscimo ao seu valor de retorno?

  2. Se eu alterar o aplicativo da web proprietário para salvar credenciais de usuários em outro formulário, o que devo escolher para ser compatível com Freeradius? Exceto para Cleartext e MD5.

por seaquest 04.08.2012 / 12:48

2 respostas

2

Eu encontrei como fazer para a pergunta parte b:

O formulário sha1 $ 79b2c $ b3704ec5703ef28ded379cf6c6de4c4160aa029b tem partes como: sha1 $ SALT $ SALTEDPASSWORD

No Radius isso é chamado de senha SSHA Ref: link Ref: link

1- Use o script em Ref1 para criar um hash SHA1 Salgado. prop-to-ssha.pl UserClearPass SALT

A saída disso pode ser atribuída ao atributo

SSHA-Password: = OUTPUTOFPERLSCRIPT

E isso funciona. Eu posso automatizar minha aplicação proprietária e também criar uma entrada de senha radius ao criar usuários.

Para a parte a da pergunta, ainda não tenho respostas.

    
por 04.08.2012 / 13:09
0

Isso funciona em Java

// Salted SHA1 with a random salt appended
String salt = UUID.randomUUID().toString().replaceAll("-", "");
hashPass = Base64.encodeBase64String(ArrayUtils.addAll(
                                DigestUtils.sha1(currPass.concat(salt)),
                                                salt.getBytes()));

Agora você pode adicionar 'hashPass' na tabela RadCheck com o atributo 'SSHA-Password'. Base64 e DigestUtils são do Apache Commons.

    
por 06.07.2016 / 21:41