Artigo SQL Magazine 50 - Criptografando dados no Microsoft SQL Server 2005

Neste artigo serão utilizados os recursos de criptografia do SQL Server 2005, para implementar o banco de dados de uma aplicação de gerenciamento pessoal de senhas.

Esse artigo faz parte da revista SQL Magazine edição 50. Clique aqui para ler todos os artigos desta edição

Clique aqui para ler essa revista em PDF.

Mão na Massa

Criptografando dados no Microsoft SQL Server 2005

 

Garantir o sigilo das informações é um dos principais papéis do administrador de banco de dados, e a criptografia se encaixa nesse contexto como um poderoso artifício para assegurar que as informações sejam acessadas somente por pessoas autorizadas. Pensando nisso, a Microsoft incluiu na versão 2005 do SQL Server um conjunto de funcionalidades que permitem criptografar e decriptografar dados, de forma prática, através de comandos Transact-SQL. Neste artigo serão utilizados os recursos de criptografia do SQL Server 2005, para implementar o banco de dados de uma aplicação de gerenciamento pessoal de senhas.

A arquitetura de criptografia do SQL Server 2005

No SQL Server 2005 é possível criptografar e decriptografar dados através de quatro técnicas: senhas fornecidas pelo usuário, chaves simétricas, chaves assimétricas e certificados digitais.

A criptografia através de senhas é a mais simples, pois transfere ao usuário toda a responsabilidade de armazenamento e manutenção da senha. Isso permite que o usuário utilize senhas fracas e armazene a senha em locais inadequados como uma folha de papel, agenda ou um arquivo em texto plano. No modelo de chaves simétricas uma única chave é utilizada para criptografar e decriptografar os dados. Esse modelo possui um custo baixo de processamento, mas não é tão eficaz quanto o modelo de chaves assimétricas. As chaves assimétricas utilizam um modelo de chave pública e privada. Os dados podem ser criptografados com a chave privada e quem possuir a chave pública poderá decriptografar a informação, garantindo assim a autenticidade do autor. Outra opção é criptografar os dados com a chave pública e somente aquele que possuir a chave privada poderá decriptografar a informação, garantindo o sigilo da informação. Já os certificados digitais são mecanismos de identificação que associam uma chave pública a uma pessoa, serviço ou dispositivo que possui a chave privada correspondente. A autenticidade do dono do certificado é garantida através de autoridades certificadoras (AC), da mesma forma que um documento de identificação pessoal (RG) é emitido e garantido pela Secretaria de Segurança Pública.

A arquitetura de criptografia do SQL Server 2005 se baseia em um conjunto de chaves e certificados organizados de forma hierárquica, conforme ilustra a Figura 1. Isso significa que cada camada da arquitetura utiliza chaves simétricas, assimétricas ou certificados digitais, para criptografar o nível imediatamente inferior.

 

Figura 1. Hierarquia de chaves do SQL Server 2005.

 

O elemento raiz da estrutura apresentada na Figura 1 é a service master key, uma chave de criptografia criada automaticamente através de uma API do Windows chamada DPAPI (Data Protection API). A service master key é criptografada usando a senha da conta de serviço do Windows utilizada para execução do SQL Server 2005. Usando o algoritmo Triple DES, a service master key permite criptografar a database master key, chave utilizada pelo SQL Server 2005 para armazenar, de forma segura, em cada banco de dados, as chaves assimétricas e certificados criados pelo usuário. Ao contrário da service master key, a database master key precisa ser criada manualmente, em cada banco de dados, conforme será apresentado neste artigo. Na camada inferior da arquitetura estão as chaves simétricas, assimétricas e certificados digitais utilizados para criptografar os dados do usuário ou criptografar outras chaves de criptografia. Analisando novamente a Figura 1 é possível realizar as seguintes afirmações: " [...] continue lendo...

Artigos relacionados