Segurança de arquivos e metadados do Firebird
Segurança de arquivos e metadados do Firebird
Segurança de arquivos e metadados do Firebird
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Segurança</strong> <strong>arquivos</strong> e <strong>metada<strong>do</strong>s</strong><br />
Existem algumas situações em que é impraticável colocar o servi<strong>do</strong>r <strong>Firebird</strong> sob uma infra-estrutura a<strong>de</strong>quadamente<br />
segura. Em perío<strong>do</strong>s em que o escritório esteja funcionan<strong>do</strong>, é bem pouco provável que alguém po<strong>de</strong>rá<br />
acessar o computa<strong>do</strong>r para copiar os <strong>arquivos</strong> <strong>do</strong> banco <strong>de</strong> da<strong>do</strong>s (ou até mesmo roubar o computa<strong>do</strong>r ou disco<br />
rígi<strong>do</strong> para obter os <strong>arquivos</strong> posteriormente). No entanto, fora <strong>do</strong> horário normal <strong>de</strong> trabalho (noites e finais<br />
<strong>de</strong> semana), a situação po<strong>de</strong> ser um pouco diferente. Alguém po<strong>de</strong>ria conseguir entrar no escritório e roubar<br />
o disco rígi<strong>do</strong> <strong>do</strong> computa<strong>do</strong>r (ou levar o computa<strong>do</strong>r inteiro) e levar a algum lugar on<strong>de</strong> possa obter acesso<br />
ao banco <strong>de</strong> da<strong>do</strong>s.<br />
Encriptação<br />
O <strong>Firebird</strong> em si não disponibiliza nenhuma ferramenta <strong>de</strong> encriptação integrada, mas existem excelentes produtos<br />
que po<strong>de</strong>m fornecer essa solução. Você po<strong>de</strong>ria instalar um software que crie uma partição virtual encriptada<br />
em seu computa<strong>do</strong>r e colocar os <strong>arquivos</strong> <strong>do</strong> banco <strong>de</strong> da<strong>do</strong>s (e qualquer outra informação confi<strong>de</strong>ncial)<br />
nessa partição. Dessa forma, toda a informação ficará armazenada em um arquivo encripta<strong>do</strong> e ninguém po<strong>de</strong>rá<br />
acessá-la a menos que tenha a senha. Sempre que você iniciar o computa<strong>do</strong>r, terá que montar a partição virtal<br />
encriptada e fornecer a senha secreta para po<strong>de</strong>r acessar as informações. Esse processo manual <strong>de</strong> inicialização<br />
po<strong>de</strong> ser um pouco inconveniente, mas po<strong>de</strong> proporcionar uma excelente segurança a computa<strong>do</strong>res que não<br />
são constantemente vigia<strong>do</strong>s.<br />
Alguns softwares com essas características são: TrueCrypt (www.truecrypt.org), Bestcrypt da Jetico (www.jetico.com)<br />
e PGPDisk (www.pgpi.org/products/pgpdisk/– note que este link te levará a uma antiga versão gratuita.<br />
Nesta mesma página existem links para as versões comerciais mais novas). Existem outros, mas estes <strong>do</strong>is<br />
últimos são os que eu mesmo usei.<br />
Por que o <strong>Firebird</strong> não possui encriptação nativa?<br />
Devi<strong>do</strong> às necessida<strong>de</strong>s <strong>de</strong>scritas anteriormente, é muito comum encontrar usuários pedin<strong>do</strong> que o <strong>Firebird</strong>, em<br />
um versão futura, tivesse a capacida<strong>de</strong> <strong>de</strong> encriptar <strong>metada<strong>do</strong>s</strong>, da<strong>do</strong>s <strong>do</strong> usuário, ou até mesmo o banco <strong>de</strong><br />
da<strong>do</strong>s to<strong>do</strong>. Como não sou um <strong>de</strong>senvolve<strong>do</strong>r <strong>do</strong> núcleo <strong>do</strong> <strong>Firebird</strong>, não posso afirmar categoricamente que não<br />
vai acontecer. Mas a questão aqui não é realmente se a encriptação é praticável ou útil, mas se o gerenciamento<br />
<strong>de</strong> senhas <strong>de</strong> encriptação proporcionaria uma solução para os problemas que estamos examinan<strong>do</strong>.<br />
A encriptação em si po<strong>de</strong> apenas ser tão boa quanto a senha <strong>de</strong> <strong>de</strong>sencriptação. Po<strong>de</strong> ser ainda pior, mas não<br />
po<strong>de</strong> ser melhor. Existem diversos excelentes algoritmos <strong>de</strong> encriptação disponíveis que po<strong>de</strong>riam ser utiliza<strong>do</strong>s.<br />
Quan<strong>do</strong> a encriptação é boa, os ataques costumam centralizar-se contra a senha e não contra a encriptação em si.<br />
Como funcionaria a encriptação?<br />
Então vamos analisar como funcionariam as coisas se o <strong>Firebird</strong> proporcionasse maneiras <strong>de</strong> encriptar <strong>metada<strong>do</strong>s</strong><br />
no banco <strong>de</strong> da<strong>do</strong>s...<br />
Antes que um banco <strong>de</strong> da<strong>do</strong>s pu<strong>de</strong>sse ser acessa<strong>do</strong>, a senha <strong>de</strong>veria ser fornecida. Dar a senha ao usuário seria<br />
irrelevante, pois nos levaria <strong>de</strong> volta ao problema original. Então po<strong>de</strong>mos presumir que, sempre que o cliente<br />
reiniciar o servi<strong>do</strong>r, teria que chamar o <strong>de</strong>senvolve<strong>do</strong>r, que po<strong>de</strong>ria então entrar com a senha. Mesmo que isso<br />
fosse praticável, não necessariamente resolveria o problema. Por exemplo: o cliente po<strong>de</strong>ria instalar algum tipo<br />
<strong>de</strong> software para monitorar o servi<strong>do</strong>r e roubar a senha.<br />
Existem soluções baseadas em hardware para proporcionar a senha para o processo <strong>de</strong> <strong>de</strong>sencriptação. Mas novamente,<br />
este dispositivo precisaria ficar sob a posse <strong>do</strong> cliente, e se não confiamos nele, não po<strong>de</strong>mos impedí-lo<br />
<strong>de</strong> obter acesso ao banco <strong>de</strong> da<strong>do</strong>s em outro computa<strong>do</strong>r on<strong>de</strong> a senha <strong>do</strong> usuário SYSDBA é conhecida.<br />
6