Estou para iniciar um projeto em que vou lidar com dados sigilosos dos quais apenas 1 Usuario pode ter acesso.
O problema é que esses dados nao podem ser ser visiveis a mais ninguem isso inclui o DBA.
O meu maior desafio é fazer com que esses dados não sejam visiveis a um DBA curioso.
Alguem ja passou por uma situação como essa?
Pensei em encriptografar todos os dados que forem ser guardados no banco de dados, mas não sei se isso é muito viavel.
Tambem não sei se é viavel guardar esses dados localmente na maquina do usuario.
Cara, pra que dados não visíveis nem a um DBA… caracaaaaaa, deve ser um projeto Milionário, logo se deve ter muito dinheiro pra pagar por um profissional confiável… hauhauahauhauahauahuahuaau não sei se é esse o caso, mas adoro teorias da conspiração…
Um caso clássico em que se deve criptografar dados em um banco de dados que não devam ser acessíveis mesmo a um DBA é o caso em que se devem guardar números de cartões de crédito de clientes.
Nesse caso, é necessário realmente criptografar direitinho os dados. Lembre-se que a chave NÃO DEVE FICAR ESCONDIDA no programa; ela deve ser derivada de uma senha que uma pessoa digite para poder iniciar o programa, por exemplo.
a) Você tem de poder descriptografar corretamente os dados - senão você vai acabar jogando os dados sigilosos no lixo, o que também não é desejável. Teste, teste, teste, e teste, para evitar problemas. Teste vários tipos de dados com vários tipos de senhas; evite senhas com caracteres diferentes de 0-9 e A-Z para evitar problemas de caracteres acentuados.
b) Qualquer método de criptografia aumenta um pouco a quantidade de dados, e normalmente gera dados binários que devem ser convertidos para Base-64 ou hexadecimal para evitar problemas de manipulação de dados binários no banco de dados. Por exemplo, se um número de cartão de crédito ocupa 16 dígitos, reserve 32 caracteres, pelo menos, para sua versão criptografada. Qual é o tamanho final que você deve reservar depende do algoritmo de criptografia usado e da codificação.