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.
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
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo