/ / Como criptografar um valor no cliente e passá-lo por meio de um servidor da Web sem descriptografá-lo - javascript, criptografia

Como criptografar um valor no cliente e passá-lo por meio de um servidor da Web sem descriptografá-lo - javascript, criptografia

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 № 1

Você 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.