SQL Server 2008 (parte 3) – Security Enhancements
Hoje abordarei algumas melhorias relacionadas ao uso de criptografia no SQL Server 2008. Seguindo a linha dos posts anteriores, apresentarei os conceitos de uma maneira simples e objetiva já que é possível estudar com profundidade todos os assuntos abordados aqui no SQL Server Books Online.
Para acessar os demais posts desta série clique neste link.
ENCRYPTION
A partir da versão 2008 do SQL Server diversos aprimoramentos foram disponibilizados para trabalhar com criptografia das informações armazenadas, dentre eles o Transparent Data Encryption (TDE).
Basicamente a TDE possibilita encriptação e decriptação de dados e do log do SQL Server em tempo real usando o uma chave simétrica armazenada no banco de dados master ou uma chave assimétrica. Esse mecanismo é acionado no nível da página de dados antes que ocorra a gravação em disco.
A figura abaixo mostra a arquitetura do TDE completa.
Alguns passos são necessários para utilizarmos do TDE são eles:
- Criação de uma master key
- Criação de um certificado protegido pela master key
- Criação de uma chave de criptografia para a database protegida pelo certificado
- Definir o banco de dados para usar a criptografia
Abaixo segue um exemplo de código do MSDN:
USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<usestrongpasswordhere>';
go
CREATE CERTIFICATE MyServerCert WITH SUBJECT = 'My DEK Certificate'
go
USE AdventureWorks
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_128
ENCRYPTION BY SERVER CERTIFICATE MyServerCert
GO
ALTER DATABASE AdventureWorks
SET ENCRYPTION ON
GO</usestrongpasswordhere>
Este artifício reforça a preocupação do time de desenvolvimento do produto com a segurança da informação. Uma dica interessante para ser usada independente do uso dos mecanismos explicados acima é o Microsoft Baseline Security Analyzer 2.1 (MBSA), uma ferramenta gratuita que avalia problemas de segurança em sistemas operacionais como o Vista ou o Windows Server 2008 entre outros produtos. As versões anteriores do MBSA faziam verificações de segurança no SQL Server 2005, contudo não vi nada igual para o 2008 ainda. Caso alguém saiba de alguma versão que faça isso, por favor, deixe um comentário aqui.