Sistemas de Informação Redes de Computadores Análise e Desenvolvimento de Sistemas Administração de Banco de Dados 1º Semestre – 2011 Pedro Antonio Galvão Junior E-mail: [email protected] Fone: 9531-7555 [email protected] Versão 1.11.02 – Fev/2011. CRIPTOGRAFIA REGULAMENTAÇÕES • As estruturas de segurança das empresas devem cumprir as leis federais, estaduais e internacionais sobre armazenamento de informações pessoais. • As exigências afetam diversas operações que envolvem bancos de dados. HASHING ALGORITHMS Hashing Data Algorithm Data Digest TWO-WAY ALGORITHMS • Usa duas funções para criptografar e descriptografar os dados: – EncryptByPassPhrase() – DecryptByPassPhrase() ALGORITMOS MAIS COMPLEXOS • Certificados. • Chaves Simétricas. • Chaves Assimétricas. VISÃO GERAL • A barreira de segurança final para dados confidenciais é normalmente a criptografia de dados. • A criptografia aumenta a carga do processador e consome espaço de armazenamento. Requer gerenciamento de chave. • Criptografia simétrica: – É rápida; – Usa uma chave; e – Não oferece não-repúdio. VISÃO GERAL • Criptografia assimétrica: – Usa um par de chaves; – É mais lenta que a criptografia simétrica; e – Oferece confidencialidade e não-repúdio. • Criptografia híbrida: – Aproveita a velocidade da criptografia simétrica e a segurança aprimorada da criptografia assimétrica. SOLUÇÕES DE CRIPTOGRAFIA Operating system level Windows DPAPI DPAPI encrypts Service Master Key SQL Server 2005 instance level Service Master Key Service Master Key encrypts Database Master Key SQL Server 2005 database level Database Master Key Asymmetric keys Certificates Symmetric keys Symmetric keys Symmetric keys Data Data Data SOLUÇÕES DE CRIPTOGRAFIA • Os processos de criptografia e descriptografia requerem: – Um certificado como uma forma de usar a criptografia assimétrica; – Uma chave assimétrica; e – Uma chave simétrica, que deve ser aberta na ordem correta em uma hierarquia de criptografia. SERVIÇO MASTER KEY (SMK) • Gerencia as chaves de criptografia; • Cada instância do SQL Server tem uma; • Criado durante o setup; e • Chave simétrica de 128 bits com algorítmo 3DES. BACKUP SERVICE MASTER KEY TO FILE = ‘file_name’ ENCRYPTION BY PASSWORD = ‘senha’ RESTORE SERVICE MASTER KEY FROM FILE = ‘file_name’ DECRYPTION BY PASSWORD = ‘senha’ MANUTENÇÃO DO SERVIÇO MASTER KEY Backup da MASTER KEY: BACKUP SERVICE MASTER KEY TO FILE = ‘file_name’ ENCRYPTION BY PASSWORD = ‘senha’ Restore da MASTER KEY: RESTORE SERVICE MASTER KEY FROM FILE = ‘file_name’ DECRYPTION BY PASSWORD = ‘senha’ Regenerando a Master Key: ALTER SERVICE MASTER KEY REGENERATE DATABASE MASTER KEYS (DMK) • Protege informações do banco com chaves assimétricas ou as chaves privadas de um certificado; • Cada banco tem a sua DMK; e • Chave simétrica de 128 bits e DES. CRIPTOGRAFIA SIMÉTRICA • Uma só chave para criptografar e descriptografar. • Baixo overhead. CREATE SYMETRIC KEY <nome_da_chave> WITH ALGORITHM = TRIPLE_DES ENCRYPTION BY PASSWORD = ’P@ssw0rd1’ Symmetric Symmetric Symmetric key encrypts and decrypts data CRIPTOGRAFIA SIMÉTRICA Symmetric Symmetric Symmetric • Uma cópia da chave simétrica é armazenada ou distribuída para comunicação com partners. CRIPTOGRAFIA ASSIMÉTRICA • Par de chaves públicas e privadas: – Criptografia com chave publica, descriptografia com chave privada. – Criptografia com chave privada, descriptografia com chave pública • Autenticação: Alto overhead. CREATE ASYMETRIC KEY <nome_da_chave> WITH ALGORITHM = RSA_2048 ENCRYPTION BY PASSWORD = ’P@ssw0rd1’ CRIPTOGRAFIA ASSIMÉTRICA Public Private Public Public • Chave pública é colocada disponível ou é distribuida para se comunicar com os partners. CRIPTOGRAFIA ASSIMÉTRICA Public Private Encrypted data Public • Dados criptografados com chave pública só podem ser descriptografados com chave privada. CRIPTOGRAFIA ASSIMÉTRICA Public Private Encrypted data Public • Dados criptografados com chave privada pode somente ser descriptograda com chave pública. • Usa assinatura digital CERTIFICADOS • Mais alto mecanismo de criptografia. • Um certificado contém: – A chave pública do subject; – Informação de identificação do subject, como nome e email; – Período de validade; e – Assinatura digital. MANUTENÇÃO DE CERTIFICADOS Criando um Certificado: CREATE CERTIFICATE <nome> WITH SUBJECT = ‘Certificado 1’ Exportando um Certificado: BACKUP CERTIFICATE <nome> TO FILE = ‘c:\cert\nome.cer’ Importando um Certificado: CREATE CERTIFICATE <nome> FROM FILE = ‘c:\cert\nome.cer’ PRÁTICAS RECOMENDADAS • Criar sempre backup com senha forte para Master Key. • Usar algoritmo de criptografia AES com 256 bits durante a criação de chaves simétricas. • Auditar tabelas do banco regularmente. • Não distribuir chaves de criptografia entre servidores. ROTEIRO PARA TRABALHAR COM CRIPTOGRAFIA NO BANCO DE DADOS 1. Criar a master key com senha; 2. Criar o certificado digital; 3. Criar a chave; 4. Incluir colunas para serem criptografadas; 5. Abrir a chave; e 6. Criptografar os dados.