[firebase-br] Segurança de dados e estrutura, alguém se habilita?

Sandro Souza escovadordebits em gmail.com
Sex Dez 5 12:28:42 -03 2008


Bom dia/tarde Adriano.

Com relação à SSL na própria comunicação entre o Firebird e as aplicações
clientes, só citei porque você falou sobre "monitoramento de rede" na sua
primeira resposta à questão inicial, não foi?

Sendo assim, já tinha saído do contexto inicial ali mesmo, e só foi por isso
que eu citei SSL.

Quanto à situação de você garantir que ninguém vai consegui abrir o banco de
dados que conseguiu copiar do servidor, realmente não teria como garantir
100%, pois o Firebird é open source, e portanto, pelos fontes do Firebird
(conhecendo a linguagem C/C++, é claro) você tem como "entender" o formato
dos arquivos de banco de dados, e portanto, criar suas próprias ferramentas
para remover qualquer tentativa de proteção.

Se o servidor Oracle também fosse um projeto open source, cairia no mesmo
problema, sem dúvida alguma.

Minha modesta opinião é que a solução seria criptografar certas partes do
banco de dados (não somente a tabela de usuários de banco, que ficaria
dentro dos próprios bancos de dados, mas também as tabelas de sistema, que
contém todo o mapa do banco de dados) com algum algoritmo em que a segurança
fosse a própria chave de criptografia, e não o algoritmo em si, e foi por
isso que eu citei o PGP, já que ele tem essa característica, da mesma forma
que as conexões ditas "seguras" como SSL/TLS.

Se esse mecanismo de criptografia fosse implementado, mesmo sendo um projeto
open source, o único "calcanhar de Aquiles" seria a própria chave de
criptografia.

Se você conseguisse obtê-la (via desassemblagem da aplicação, etc...) você
teria como acessar todo o banco de dados, mas se não tiver como conseguí-la,
"asta la vista baby".

Se o desenvolvedor das aplicações clientes tiver uma boa imaginação e
experiência, pode dificultar bastante esse trabalho árduo de conseguir
descobrir essa chave.

Espero ter mais ajudado que atrapalhado. :D

2008/12/5 Adriano dos Santos Fernandes <adrianosf em uol.com.br>

> Sandro Souza escreveu:
>
>> Bom dia/tarde Adriano.
>>
>> Excelente pergunta Adriano.
>>
>> Quem sabe se a equipe do Firebird acopla SSL nas conexões, para que fiquem
>> mais seguras com relação à grampos.
>>
>> Quanto a desassemblar, nenhum programa está imune a isso.
>>
>> Se você utilizar linguagens de programação interpretadas, como Java e tudo
>> .Net, já era. O fonte é regerado com N ferramentas na internet.
>>
>> Se você utilizar linguagens de programação que gerem código nativo em
>> linguagem de máquina (como C, C++, Delphi, Kylix, Free Pascal, Lazarus,
>> GPC,
>> etc...) vai realmente dificultar bastante a engenharia reversa devido às
>> otimizações de código que cada compilador faz, mas de forma alguma impede
>> a
>> engenharia refersa.
>>
>> Você poderia então, tentar utilizar esse segundo conjunto de linguagens
>> (gerando código assembly) e em sua aplicação, você criptografa a própria
>> chave de criptografia, de preferência, com algum algoritmo seu que não
>> seja
>> conhecido nem padronizado.
>>
>> A chave seria descriptografada em tempo de execução e fornecida ao
>> Firebird
>> para a conexão.
>>
>> Se aliar a brincadeira de SSL, TLS ou outro mecanismo de criptografia na
>> comunicação entre o Firebird e as aplicações clientes, já reforça mais
>> ainda.
>>
>> Claro que um Mitnick desses por aí conseguiria quebrar tudo isso. Ninguém
>> está imune, mas podemos tentar fazer o possível.
>>
>>  SSL e problemas de rede não se aplicam neste assunto (segurança após
> alguém pegar o arquivo do banco).
>
> E se alguém tem acesso a ele, também pode usar uma versão modificada do FB
> que captura a chave.
>
>
>
> Adriano
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista