Índice

Objetivo


Este guia tem como finalidade demonstrar os passos necessários para realizar a encriptação sobre a senha de acesso ao banco de dados.

Esse procedimento pode ser realizado para encriptação da senha de todos os bancos de dados homologados pela matriz de portabilidade do fluig.

Encriptação de senha


A encriptação de senha do banco de dados do fluig é um procedimento muito importante, para evitar o acesso não autorizado à base de dados e com isso aumentar a segurança das suas informações.

Para realizar esse procedimento, é necessário seguir as etapas abaixo, que consistem em gerar a senha criptografada e, em seguida, criar a política de autenticação da aplicação com essa senha.

Encriptação da senha da base de dados (DataSource)


Nessa etapa, a senha da base de dados é encriptada usando o método principal da classe SecureIdentityLoginModule, passando como parâmetro a senha em texto plano do banco de dados utilizado. Para fazer a configuração, siga os passos abaixo:

Navegue até a pasta raiz do fluig, e acesse a pasta appserver.

Linux              ==> /opt/fluig/appserver

Windows        ==> c:\fluig\appserver

Gere a senha encriptada.

Linux:
java -cp modules/system/layers/base/org/jboss/logging/main/jboss-logging-3.3.0.Final.jar:modules/system/layers/base/org/picketbox/main/picketbox-4.9.6.Final.jar org.picketbox.datasource.security.SecureIdentityLoginModule senha#do#banco@123!

Windows:
java -cp modules/system/layers/base/org/picketbox/main/picketbox-4.9.6.Final.jar org.picketbox.datasource.security.SecureIdentityLoginModule senha#do#banco@123!

Neste caso senha#do#banco@123!, será a senha de acesso ao banco de dados, e o resultado será:

Encoded password: -73d03118655333edb6cf7435bc02950441a847c51697cc6c


Criar a política de autenticação da aplicação com a senha encriptada


Nessa etapa é mostrado onde fica o arquivo de configuração para acesso ao banco de dados (domain.xml), a aplicação da política de autenticação pelo aplicativo e a sua respectiva configuração.

Antes de fazer qualquer alteração, é importante manter uma cópia do arquivo domain.xml original, caso seja necessário retornar alguma configuração.

Navegue até a pasta raiz de instalação do fluig. Depois vá até a pasta de configuração  onde está o arquivo domain.xml. Abra esse arquivo em modo administrador ou root.


Linux              ==> /opt/fluig/appserver/domain/configuration

Windows        ==> c:\fluig\appserver\domain\configuration

Edite o arquivo domain.xml incluindo o bloco que contém a política de autenticação e a senha encriptada gerada na etapa anterior. Ao abrir o arquivo domain.xml, procurar pela tag:

<subsystem xmlns="urn:jboss:domain:security:1.2">

Dentro da tag <security-domains> deve-se inserir os seguintes blocos:

<security-domain name="encrypted-FluigDS" cache-type="default">
    <authentication>
        <login-module                code="org.picketbox.datasource.security.SecureIdentityLoginModule" flag="required">
            <module-option name="username" value="admin"/><!-- usuário do banco -->
            <module-option name="password" value="-73d03118655333edb6cf7435bc02950441a847c51697cc6c"/>
            <!-- senha encriptada -->
            <module-option name="managedConnectionFactoryName" value="jboss.jca:service=LocalTxCM,name=FluigDS"/>
        </login-module>
    </authentication>
</security-domain>


<security-domain name="encrypted-FluigDSRO" cache-type="default">
    <authentication>
        <login-module code="org.picketbox.datasource.security.SecureIdentityLoginModule" flag="required">
            <module-option name="username" value="admin"/><!-- usuário do banco -->
            <module-option name="password" value="-73d03118655333edb6cf7435bc02950441a847c51697cc6c"/>
            <!-- senha encriptada -->
            <module-option name="managedConnectionFactoryName" value="jboss.jca:service=NoTxCM,name=FluigDSRO"/>
        </login-module>
    </authentication>
</security-domain>

<security-domain name="encrypted-AppDS" cache-type="default">
    <authentication>
        <login-module code="org.picketbox.datasource.security.SecureIdentityLoginModule" flag="required">
            <module-option name="username" value="admin"/><!-- usuário do banco -->
            <module-option name="password" value="-73d03118655333edb6cf7435bc02950441a847c51697cc6c"/>
            <!-- senha encriptada -->
            <module-option name="managedConnectionFactoryName" value="jboss.jca:service=NoTxCM,name=AppDS"/>
        </login-module>
    </authentication>
</security-domain>
<security-domain name="encrypted-FluigDS" cache-type="default">
    <authentication>
        <login-module                code="org.picketbox.datasource.security.SecureIdentityLoginModule" flag="required">
            <module-option name="username" value="admin"/><!-- usuário do banco -->
            <module-option name="password" value="-73d03118655333edb6cf7435bc02950441a847c51697cc6c"/>
            <!-- senha encriptada -->
            <module-option name="managedConnectionFactoryName" value="jboss.jca:service=LocalTxCM,name=FluigDS"/>
        </login-module>
    </authentication>
</security-domain>


<security-domain name="encrypted-FluigDSRO" cache-type="default">
    <authentication>
        <login-module code="org.picketbox.datasource.security.SecureIdentityLoginModule" flag="required">
            <module-option name="username" value="admin"/><!-- usuário do banco -->
            <module-option name="password" value="-73d03118655333edb6cf7435bc02950441a847c51697cc6c"/>
            <!-- senha encriptada -->
            <module-option name="managedConnectionFactoryName" value="jboss.jca:service=NoTxCM,name=FluigDSRO"/>
        </login-module>
    </authentication>
</security-domain>

Os atributos  security-domain name, serão usados posteriormente na configuração de acesso ao banco de dados.


Edite o arquivo domain.xml alterando o bloco de acesso ao banco de dados. Ao abrir o arquivo, procure pelas tags:

<subsystem xmlns="urn:jboss:domain:datasources:4.0">
    <datasources>
        <datasource enabled="true" jndi-name="java:/jdbc/FluigDS" jta="true" pool-name="FluigDS" use-java-context="false">
        <datasource enabled="true" jndi-name="java:/jdbc/FluigDSRO" jta="false" pool-name="FluigDSRO" use-java-context="false">
		<datasource enabled="true" jndi-name="java:/jdbc/AppDS" jta="false" pool-name="AppDS" use-java-context="false">
<subsystem xmlns="urn:jboss:domain:datasources:4.0">
    <datasources>
        <datasource enabled="true" jndi-name="java:/jdbc/FluigDS" jta="true" pool-name="FluigDS" use-java-context="false">
        <datasource enabled="true" jndi-name="java:/jdbc/FluigDSRO" jta="false" pool-name="FluigDSRO" use-java-context="false">


No primeiro datasource cujo pool-name é FluigDS, deve-se eliminar o seguinte bloco:

<security>
<user-name>admin</user-name>
<password>senhaDeTextoPlano</password>
</security>

Após remover o bloco acima, substituí-lo pelo bloco abaixo:

<security>
     <security-domain>encrypted-FluigDS</security-domain>
</security>

No segundo datasource cujo pool-name é FluigDSRO, deve-se eliminar o seguinte bloco:

<security>
<user-name>admin</user-name>
<password>senhaDeTextoPlano</password>
</security>

Após remover o bloco acima, substituí-lo pelo bloco abaixo.

<security>
     <security-domain>encrypted-FluigDSRO</security-domain>
</security>

A partir da versão 1.6.5-190514

No terceiro datasource cujo pool-name é AppDS, deve-se eliminar o seguinte bloco:

<security>
<user-name>admin</user-name>
<password>senhaDeTextoPlano</password>
</security>

Após remover o bloco acima, substituí-lo pelo bloco abaixo.

<security>
     <security-domain>encrypted-AppDS</security-domain>
</security>

Pronto!


Após estes procedimentos, o fluig pode ser iniciado e passa a operar com a senha do banco encriptada, evitando acessos não autorizados e trazendo mais segurança para as suas informações.