Oradata

Oracle Wallet

Oracle Wallet

Oracle Wallet

O que é?

Como o próprio nome diz “wallet” do inglês “carteira”, o Oracle Wallet trabalha como se de fato fosse uma carteira mesmo, e dentro de uma carteira você coloca o que? Dinheiro, documentos, cartões e etc… Agora trazendo isso para o mundo de banco de dados, vamos imaginar uma carteira, onde dentro dela você guarde cartões, e esses cartões serão a sua chave para abrir as portas, ou melhor, instancias de bancos de dados. Esse é o papel do Oracle Wallet.

Pra que serve?

Muitas vezes temos tarefas a executar de forma automática onde usamos scripts (Shell, Phyton, Batch e etc) que ficam salvos em computadores, sejam eles desktops ou até mesmo um servidor. E por se tratar de scripts, não deixam de ser arquivos texto, ou seja, são legíveis ao olho humano. Então neste caso há uma brecha de segurança, pois se alguém invadir seu servidor poderá ler este script e então capturar as informações de conexão com o seu servidor de banco de dados.

Pensando nisso a Oracle então criou o Oracle Wallet que nasceu na versão 10g, onde você irá criar um “wallet” (carteira) e dentro deste “wallet” irá criar suas “credentials” (credenciais, cartões) onde os dados estão criptografados de maneira segura e a partir de então suas informações de login e senha passam a estar criptografadas. Imaginando um script sql básico onde você tenha que se conectar a um banco de dados, com certeza haveria uma parte do código muito semelhante a esta “sqlplus hr/oracle@ORCL” neste trecho podemos nitidamente ver que o usuário é o “HR” e a senha “oracle”, usando o Oracle Wallet você poderia alterar esse pedaço de código para algo similar a isto “sqlplus /@ORCL”, onde você simplesmente fala o alias de seu TNS names, login e senha estarão guardados no seu “wallet” de maneira segura. Agora veremos como isso se implementa de forma prática, então “Lets take a look!”

Como se usa?

O primeiro passo para se usar o Oracle Wallet, é criar um “sqlnet.ora” e inserir algumas informações conforme a imagem:

sqlNet

Neste arquivo, as linhas que são relevantes para nós neste momento são a 5ª e a 9ª linha onde vamos falar de DIRECTORY: Diretório onde será salvo o nosso “wallet” (carteira) e SQLNET.WALLET_OVERRIDE: Este parâmetro definido como TRUE, permite sobrescrever qualquer tipo de autenticação de usuários via sistema operacional.

Agora com o arquivo sqlnet.ora já configurado, é hora criar o seu “wallet”, para isso usamos o programa “mkstore” com as opções “-wrl” + [o diretório informado no “sqlnet.ora”] + a opção –create. Ao digitar este comando será solicitado que você informe uma senha para gerenciar seu “wallet”, essa senha deve ter no mínimo 8 caracteres contendo letras e números.

createWallet

Repare que após a criação do seu “wallet” dois arquivos serão criados, conforme a imagem abaixo, esses arquivos são o seu “wallet”, ou melhor, a sua carteira!

listaArquivos

Com o seu “wallet” (Carteira) criado, agora é hora de colocar dentro dele os certificados (credentials) para que você acesse os seus bancos de dados, uma “credential” é definida por três elementos, um login, uma senha e um alias valido de seu TNSNAMES.ora, para criar a credential, usamos o mesmo programa que criamos o “wallet” o “mkstore”, passando então os parâmetros necessários (“-wrl”, o caminho do wallet e “-createCredential”), Em nosso exemplo vamos criar uma “credential” para um banco de dados chamado “ORCL” com o usuário “HR” e senha “oracle”, repare também que será solicitada a senha de gerenciamento do “wallet”. Veja imagem.

createCredential

Após a criação de seu “wallet” e a sua “credential”, você pode também consulta-los com o “mkstore” mais o parâmetro “listCredential”.

listCredential

Tudo pronto! Agora você pode fazer um teste, ao invés de se conectar no banco de dados com o SQL*Plus (ou qualquer outra ferramenta) passando login e senha, você precisa informar somente o alias de seu TNSNAMES, pois o resto o “wallet” resolve para você.

sqlplus

É isso aí, espero ter ajudado, agora não perca tempo, pegue aquele monte de scripts que você tem aí e ajuste-os trabalhando com um “wallet”, com certeza você vai eliminar um grande GAP de segurança em seu ambiente.

Forte Abraço!

Douglas Paiva de Sousa

 

 

 

2 thoughts on “Oracle Wallet

    1. Douglas Paiva de Sousa Post author

      Olá Wesley,

      Eu particularmente nunca testei, mas acredito que se você tiver um client 11g conectando a um banco 10.2.0.4 funcione sim, pois no caso de wallet toda a definição das chaves ocorre no lado do cliente, mas um assunto bom para estudos, vou procurar fazer alguns laboratórios e divulgo os resultados.

      Att,

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *