Olá pessoal, estou pesquisando um projeto onde nósseria necessário manter um valor criptografado do cliente todo o caminho para um sistema de caixa preta sem descriptografá-lo em qualquer ponto no meio. Estamos usando SSL entre o navegador e o servidor da Web, mas os valores são descriptografados automaticamente no servidor da Web, que é o que precisamos evitar. Precisamos ser capazes de passá-lo através do servidor da Web (ainda criptografado) e por meio de outros sistemas de back-end até atingir seu destino final, onde ele seria descriptografado.
Então, minha pergunta é quais opções estão disponíveis para manter um estado criptografado para um valor do navegador de volta, sem descriptografá-lo em qualquer lugar ao longo do caminho?
obrigado Marca
Respostas:
4 para resposta № 1Você já pensou em fazer um simples RSAcriptografia nos valores e enviando isso através do sistema? Você precisará garantir que os clientes tenham a chave pública na qual criptografar os dados, mas isso seria fácil e seguro o suficiente para ser transmitido.
Para meu conhecimento, a maioria das bibliotecas por aí suportará o RSA. Uma boa demonstração de como fazer isso puramente em Javascript pode ser encontrada Aqui.
2 para resposta № 2
você vai querer dar uma olhada criptografia de chave pública. O SSL protege sua sessão (navegador <-> servidor), mas não o transporte completo. Eu sugiro criptografar seus dados uma vez que eles são recebidos do cliente, enviando os dados criptografados até o fim.
aqui está um diagrama terrível delineando o fluxo de dados
client browser web server random server blackbox
route ---- SSL -------------><------------- not encrypted ------->
data *-------- PGP/GPG encrypted --------->
Basicamente, seus dados são criptografados via SSL para o servidor da Web, onde são criptografados com PGP / GPG e enviados para downstream. SSL não importa neste momento (ou pelo menos, não é a forma primária de criptografia).
A menos que você possa garantir JavaScript em seu ambiente, pode ser melhor criptografar no servidor da Web para garantir que seus dados estejam seguros se o usuário tiver o JavaScript desligado por algum motivo.
1 para resposta № 3
Se você usar um tipo binário em seu banco de dados, oservidor web deve enviá-lo como está. Seu cliente pode, então, criptografar os dados antes de inseri-los e, em seguida, terá que descriptografar os dados depois de obtê-los. Nem o servidor da Web nem o próprio servidor de banco de dados poderiam exibir os dados.
0 para a resposta № 4
O sistema de caixa preta, por definição, não pode decifrar os dados a menos que tenha sido construído para isso. Sugiro discutir o problema com os desenvolvedores do sistema de caixa preta.