12.5.2. Configuração do Protocolo Secure Remote Password (ISRP - Senha Remota de Segurança)
SRPVerifierStore. A informação sobre a implantação é fornecida na Implementação do SRPVerifierStore.
Procedimento 12.3. Integração do Store de Senha Existente
Criação do store de informação de senha com hash.
Caso suas senhas já estiverem com store em uma forma de hash inversível, você precisa realizar isto baseado por usuário.Você pode implementarsetUserVerifier(String, VerifierInfo)como um método noOP, ou um método que lança uma exceção informando que o store é de leitura apenas.Criação da interface SRPVerifierStore.
Crie uma implementação da interfaceSRPVerifierStorepersonalizada que pode obter oVerifierInfoa partir do store que você criou.OverifyUserChallenge(String, Object)pode ser usado para integrar o token de hardware existente baseados em esquemas como o SafeWord ou Radius no algoritmo SRP. Este método de interface é chamado apenas quando a configuração SRPLoginModule do cliente especifica a opção hasAuxChallenge.Criação do JNDI MBean.
Crie um MBean que expõe a interfaceSRPVerifierStoredisponível ao JNDI e expõe quaisquer parâmetros requeridos.Oorg.jboss.security.srp.SRPVerifierStoreServicedefault permite que você implemente isto. Você pode também implementar o MBean usando a implementação do arquivo das propriedades Java doSRPVerifierStore.
A implementação da interface SRPVerifierStore não é recomendada para os sistemas de produção, uma vez que isto requer toda a informação do hash da senha esteja disponível como um arquivo de objetos serializados.
SRPVerifierStore fornece acesso ao objeto SRPVerifierStore.VerifierInfo para um nome de usuário gerado. O método getUserVerifier(String) é chamado pelo SRPService no início de uma sessão SRP do usuário para obter os parâmetros necessários pelo algoritmo SRP.
Os elementos de um Objeto VerifierInfo
- nome do usuário
- O nome do usuário ou ID do usuário para autenticação
- verificador
- O hash de uma mão da senha que o usuário insere como prova de identidade. A classe
org.jboss.security.Utilinclui o métodocalculateVerifierque executa o algoritmo hash da senha. A senha de resultado leva a formaH(salt | H(username | ':' | password)), onde oHé uma função hash de segurança SHA conforme definido pelo RFC2945. O nome do usuário é convertido a partir de uma sequência para um byte[] usando a codificação UTF-8. - salt
- Um número aleatório usado para aumentar a dificuldade de um ataque de dicionário de força bruta na fonte de dados da senha do verificador no evento em que a fonte de dados está comprometida. O valor deve ser gerado a partir de um algoritmo de número aleatório de maneira criptografada quando a senha de texto limpo existente do usuário estiver com hash.
- g
- O gerador primitivo do algoritmo SRP. Isto pode ser um parâmetro bem conhecido corrigido ao invés de uma configuração por usuário. A classe de utilidade
org.jboss.security.srp.SRPConffornece diversas configurações para og, incluindo um default adequado através doSRPConf.getDefaultParams().g(). - N
- Os módulos primários de segurança do algoritmo SRP. Isto pode ser um parâmetro bem conhecido corrigido ao invés de uma configuração por usuário. A classe de utilidade
org.jboss.security.srp.SRPConffornece diversas configurações para o N incluindo um bom default através doSRPConf.getDefaultParams().N().
Exemplo 12.13. Interface SRPVerifierStore