17.2. Identidade configurada com a Senha baseada na Criptografia - Password Based Encryption (PBE)
17.2. Identidade configurada com a Senha baseada na Criptografia - Password Based Encryption (PBE)
O org.jboss.resource.security.JaasSecurityDomainIdentityLoginModule é um módulo de logon para definição de forma estatística de uma fonte de dados usando uma senha que foi criptografada pelo JaasSecurityDomain. Segue abaixo o formato base64 da senha de fonte de dados gerado usando o PBEUtils:
Procedimento 17.4. Criptografia da senha com os PBEUtils - Plataformas de versão 5.0 e 5.0.1
Este procedimento criptografa uma senha na Plataforma do Aplicativo JBoss Enterprise de versões 5.0 e 5.0.1.
Execute o comando:
java -cp jboss-as/common/lib/jbosssx.jar org.jboss.security.plugins.PBEUtils \
salt count domain-password data-source-password
java -cp jboss-as/common/lib/jbosssx.jar org.jboss.security.plugins.PBEUtils \
salt count domain-password data-source-password
Copy to ClipboardCopied!Toggle word wrapToggle overflow
Resultado:
A senha criptografada é exibida.
Procedimento 17.5. Criptografia da senha com PBEUtils - Platforma da versão 5.1
Este procedimento criptografa uma senha da Plataforma do Aplicativo JBoss Enterprise de versões 5.1 e versões superiores.
Execute o comando:
java -cp jboss-as/lib/jbosssx.jar org.jboss.security.plugins.PBEUtils \
salt count domain-password data-source-password
java -cp jboss-as/lib/jbosssx.jar org.jboss.security.plugins.PBEUtils \
salt count domain-password data-source-password
Copy to ClipboardCopied!Toggle word wrapToggle overflow
Resultado:
A senha criptografada é exibida.
Os parâmetros para os PBEUtils são os seguintes:
salt
O atributo Salt a partir do JaasSecurityDomain (Ele deve conter oito caracteres).
contagem
O atributo IterationCount a partir do domínio JaasSecurity.
senha-domínio
A senha de texto plano mapeada ao atributo KeyStorePass a partir do JaasSecurityDomain.
senha-fonte-de-dados
A senha de texto plano para a fonte de dados que deve ser criptografado com a senha JaasSecurityDomain.
Copy to ClipboardCopied!Toggle word wrapToggle overflow
O $JBOSS_HOME/docs/examples/jca/hsqldb-encrypted-ds.xml ilustra a configuração da fonte de dados juntamente com a configuração JaasSecurityDomain para o keystore:
<?xml version="1.0" encoding="UTF-8"?>
<!-- The Hypersonic embedded database JCA connection factory config
that illustrates the use of the JaasSecurityDomainIdentityLoginModule
to use encrypted password in the data source configuration.
$Id: hsqldb-encrypted-ds.xml,v 1.1.2.1 2004/06/04 02:20:52 starksm Exp $ -->
<datasources>
...
<application-policy name="EncryptedHsqlDbRealm">
<authentication>
<login-module code="org.jboss.resource.security.JaasSecurityDomainIdentityLoginModule"
flag = "required">
<module-option name="username">sa</module-option>
<module-option name="password">E5gtGMKcXPP</module-option>
<module-option name="managedConnectionFactoryName">
jboss.jca:service=LocalTxCM,name=DefaultDS
</module-option>
<module-option name="jaasSecurityDomain">
jboss.security:service=JaasSecurityDomain,domain=ServerMasterPassword
</module-option>
</login-module>
</authentication>
</application-policy>
<mbean code="org.jboss.security.plugins.JaasSecurityDomain"
name="jboss.security:service=JaasSecurityDomain, domain=ServerMasterPassword">
<constructor>
<arg type="java.lang.String" value="ServerMasterPassword"></arg>
</constructor>
<!-- The opaque master password file used to decrypt the encrypted
database password key -->
<attribute name="KeyStorePass">{CLASS}org.jboss.security.plugins.FilePassword:${jboss.server.home.dir}/conf/server.password</attribute>
<attribute name="Salt">abcdefgh</attribute>
<attribute name="IterationCount">13</attribute>
</mbean>
<!-- This mbean can be used when using in process persistent db -->
<mbean code="org.jboss.jdbc.HypersonicDatabase"
name="jboss:service=Hypersonic,database=localDB">
<attribute name="Database">localDB</attribute>
<attribute name="InProcessMode">true</attribute>
</mbean>
...
</datasources>
<?xml version="1.0" encoding="UTF-8"?>
<!-- The Hypersonic embedded database JCA connection factory config
that illustrates the use of the JaasSecurityDomainIdentityLoginModule
to use encrypted password in the data source configuration.
$Id: hsqldb-encrypted-ds.xml,v 1.1.2.1 2004/06/04 02:20:52 starksm Exp $ -->
<datasources>
...
<application-policy name="EncryptedHsqlDbRealm">
<authentication>
<login-module code="org.jboss.resource.security.JaasSecurityDomainIdentityLoginModule"
flag = "required">
<module-option name="username">sa</module-option>
<module-option name="password">E5gtGMKcXPP</module-option>
<module-option name="managedConnectionFactoryName">
jboss.jca:service=LocalTxCM,name=DefaultDS
</module-option>
<module-option name="jaasSecurityDomain">
jboss.security:service=JaasSecurityDomain,domain=ServerMasterPassword
</module-option>
</login-module>
</authentication>
</application-policy>
<mbean code="org.jboss.security.plugins.JaasSecurityDomain"
name="jboss.security:service=JaasSecurityDomain, domain=ServerMasterPassword">
<constructor>
<arg type="java.lang.String" value="ServerMasterPassword"></arg>
</constructor>
<!-- The opaque master password file used to decrypt the encrypted
database password key -->
<attribute name="KeyStorePass">{CLASS}org.jboss.security.plugins.FilePassword:${jboss.server.home.dir}/conf/server.password</attribute>
<attribute name="Salt">abcdefgh</attribute>
<attribute name="IterationCount">13</attribute>
</mbean>
<!-- This mbean can be used when using in process persistent db -->
<mbean code="org.jboss.jdbc.HypersonicDatabase"
name="jboss:service=Hypersonic,database=localDB">
<attribute name="Database">localDB</attribute>
<attribute name="InProcessMode">true</attribute>
</mbean>
...
</datasources>
Copy to ClipboardCopied!Toggle word wrapToggle overflow
Atenção
Lembre-se de usar o mesmo Salt e IterationCount no MBean que foi usado durante a etapa de geração da senha.
Nota
Quando inicializando um serviço que depende da fonte de dados criptografada, o erro java.security.InvalidAlgorithmParameterException: Parameters missing é exibido quando o seguinte MBean não for inicializado como serviço:
Copy to ClipboardCopied!Toggle word wrapToggle overflow
Adicione o seguinte elemento de forma que o MBean inicie antes do banco de dados, conforme a amostra do código hsqldb-encrypted-ds.xml apresentado anteriormente.
Ajudamos os usuários da Red Hat a inovar e atingir seus objetivos com nossos produtos e serviços com conteúdo em que podem confiar. Explore nossas atualizações recentes.
Tornando o open source mais inclusivo
A Red Hat está comprometida em substituir a linguagem problemática em nosso código, documentação e propriedades da web. Para mais detalhes veja o Blog da Red Hat.
Sobre a Red Hat
Fornecemos soluções robustas que facilitam o trabalho das empresas em plataformas e ambientes, desde o data center principal até a borda da rede.