Capítulo 17. Criptografia das Senhas de Fonte de Dados


As conexões do banco de dados para a Plataforma do Aplicativo do JBoss Enterprise estão definidas nos arquivos de fonte de dados *-ds.xml. Estes detalhes de conexão do banco de dados inclui senhas de texto limpo. Você pode aumentar a segurança de seu servidor pela substituição de senhas de texto limpo nos arquivos de fonte de dados com as senhas criptografadas.
Este capítulo apresenta dois métodos diferentes para senhas de fonte de dados criptografados.
A Identidade Protegida usando o módulo SecureIdentityLoginModule está descrita na Seção 17.1, “Identidade com Proteção”.
A Identidade Configurada com a Senha baseada na Criptografia usando o módulo JaasSecurityDomainIdentityLoginModule, está descrita na Seção 17.1, “Identidade com Proteção”.

17.1. Identidade com Proteção

A classe org.jboss.resource.security.SecureIdentityLoginModule pode ser usada para ambas as senhas do banco de dados criptografadas e para fornecer uma versão descriptografada da senha quando a configuração da fonte de dados for solicitada pelo servidor. O SecureIdentityLoginModule usa uma senha de código rígido paras criptografar/descriptografar a senha de fonte de dados.

Procedimento 17.1. Visão Geral: Uso do SecureIdentityLoginModule para criptografar uma senha de fonte de dados

  1. Encripte a senha de fonte de dados.
  2. Crie uma política de autenticação com a senha criptografada.
  3. Configure a fonte de dados para uso da política de autenticação do aplicativo.

17.1.1. Criptografia da senha de fonte de dados

A senha de fonte de dados é criptografada usando o método principal SecureIdentityLoginModule passando uma mensagem de texto não-criptografado. O SecureIdentityLoginModule é fornecido pelo jbosssx.jar.

Procedimento 17.2. Criptografia de uma senha de fonte de dados - versões de Plataforma 5.0 e 5.0.1

Este procedimento criptografa uma senha de fonte de dados nas versões da Plataforma do Aplicativo JBoss Enterprise 5.0 e 5.0.1.
  1. Altere o diretório jboss-as.
  2. Invoque o SecureIdentityLoginModule pelo seguinte comando, fornecendo uma senha de texto não-criptografada como PASSWORD.
    Comando no Linux:

    java -cp client/jboss-logging-spi.jar:common/lib/jbosssx.jar \
    org.jboss.resource.security.SecureIdentityLoginModule PASSWORD
    Copy to Clipboard Toggle word wrap

    Comando no Windows:

    java -cp client\jboss-logging-spi.jar;common\lib\jbosssx.jar \
     org.jboss.resource.security.SecureIdentityLoginModule PASSWORD
    Copy to Clipboard Toggle word wrap

    Resultado:

    O comando retornará uma senha criptografada.

Procedimento 17.3. Criptografia de uma senha de fonte de dados - versão da Plataforma 5.1 e mais recentes

Este procedimento criptografa a senha de fonte de dados para a Plataforma do Aplicativo JBoss Enterprise versão 5.1 e mais recentes.
  1. Altere o diretório jboss-as.
  2. Comando no Linux:

    java -cp client/jboss-logging-spi.jar:lib/jbosssx.jar \
     org.jboss.resource.security.SecureIdentityLoginModule PASSWORD
    Copy to Clipboard Toggle word wrap

    Comando no Windows:

    java -cp client\jboss-logging-spi.jar;lib\jbosssx.jar \
     org.jboss.resource.security.SecureIdentityLoginModule PASSWORD
    Copy to Clipboard Toggle word wrap

    Resultado:

    O comando retornará uma senha criptografada.

Cada perfil do Servidor do Aplicativo possui um arquivo conf/login-config.xml, onde as políticas de autenticação do aplicativo são definidas para aquele perfil. Adicione um novo elemento <application-policy> ao elemento <policy>, com o objetivo de criar uma política de autenticação para sua senha criptografada.
O Exemplo 17.1, “Amostra da política de autenticação do aplicativo com uma senha de fonte de dados criptografada” é um fragmento de um arquivo login-config.xml apresentado na política de autenticação do nome "EncryptDBPassword".

Exemplo 17.1. Amostra da política de autenticação do aplicativo com uma senha de fonte de dados criptografada

  
  <policy>
  ...
      <!-- Example usage of the SecureIdentityLoginModule -->
      <application-policy name="EncryptDBPassword">
          <authentication>
              <login-module code="org.jboss.resource.security.SecureIdentityLoginModule" flag="required">
                  <module-option name="username">admin</module-option>
                  <module-option name="password">5dfc52b51bd35553df8592078de921bc</module-option>
                  <module-option name="managedConnectionFactoryName">jboss.jca:name=PostgresDS,service=LocalTxCM</module-option>
              </login-module>
          </authentication>
      </application-policy>
  </policy>
Copy to Clipboard Toggle word wrap

Opções do módulo SecureIdentityLoginModule

nome do usuário
Especifica o nome do usuário para uso quando estabelecendo uma conexão ao banco de dados.
senha
Fornece uma senha criptografada gerada na Seção 17.1.1, “Criptografia da senha de fonte de dados”.
managedConnectionFactoryName
jboss.jca:name
Nomeia uma Interface do Diretório e Nomeação do Java - Java Naming and Directory Interface (JNDI) para esta fonte de dados.
jboss.jca:service
Especifica o tipo de transação.

Tipos de Transação

NoTxCM
Nenhum suporte de transação
LocalTxCM
Suporte de transação de recurso único
TxCM
Suporte de transação distribuída ou recurso único
XATxCM
Suporte de Transação Distribuída
A política do aplicativo é vinculada ao JNDI sob o nome da política do aplicativo, no período de rodagem, e é disponibilizada como um domínio de segurança.
A fonte de dados é configurada no arquivo *-ds.xml. Remova os elementos <user-name> e <password> deste arquivo e substitua-os por um elemento <security-domain>. Este elemento conterá o nome da política de autenticação do aplicativo segundo a Seção 17.1.2, “Criação de uma política de autenticação do aplicativo com a senha criptografada”.
O uso do nome da amostra a partir da Seção 17.1.2, “Criação de uma política de autenticação do aplicativo com a senha criptografada”, "EncryptDBPassword", resultará num arquivo de fonte de dados que parece-se com o seguinte Exemplo 17.2, “Amostra do arquivo da fonte de dados usando a identidade protegida”.

Exemplo 17.2. Amostra do arquivo da fonte de dados usando a identidade protegida

<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>PostgresDS</jndi-name>
<connection-url>jdbc:postgresql://127.0.0.1:5432/test?protocolVersion=2</connection-url>
<driver-class>org.postgresql.Driver</driver-class>
<min-pool-size>1</min-pool-size>
<max-pool-size>20</max-pool-size>

<!-- REPLACED WITH security-domain BELOW
<user-name>admin</user-name>
<password>password</password>
-->

<security-domain>EncryptDBPassword</security-domain>

<metadata>
<type-mapping>PostgreSQL 8.0</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
Copy to Clipboard Toggle word wrap
Voltar ao topo
Red Hat logoGithubredditYoutubeTwitter

Aprender

Experimente, compre e venda

Comunidades

Sobre a documentação da Red Hat

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.

Theme

© 2025 Red Hat