Conexão segura entre cliente e servidor

5 respostas
R

Eu sei que há muitas pergunta sobre isso, mas eu juro que eu não consegui encontrar uma resposta “boa” para o meu problema.

É uma questão conceitual. Eu tenho um cliente e um servidor e eles devem se conectar com segurança. Eu pesquisei algumas opções, mas não estou muito satisfeito com nenhuma delas.

  1. O uso de chaves assíncronas requer que o usuário tenha uma chave pública. Este será um projeto opensource então codificar a chave no código-fonte não é uma opção. Além disso, eu entendi que um certificado para o envio da chave pública para o cliente evitaria o problema do man in the middle, mas eu fiquei um pouco confuso. Eu não entendi muito como isso funciona, nem onde eu posso obter (gratuitamente) um certificado válido.

  2. O uso de chaves síncronos requer tanto o cliente quanto o servidor terem a mesma chave. Então, qualquer um que fizer o download do aplicativo seria capaz de acessar a chave criptógrafo e usá-lo (pois todos os aplicativos teriam a mesma chave).

Eu li em algum lugar que eu poderia gerar um número aleatório que varia ao longo do tempo e usá-lo para criptografar dados. No entanto, uma vez que é uma aplicação opensouce, qualquer um que seja capaz de ler como esse número varia ao longo do tempo também seria capaz de decodificar os dados, certo?

O que eu estou perdendo aqui? Agradeço-lhe ajuda. A propósito, eu estou usando Java e não é uma aplicação web.

5 Respostas

C

Olá,

Let’s Encrypt is a new Certificate Authority: It’s free, automated, and open.

C

Olá,

Na prática, utiliza-se a criptografia assíncrona para trocar uma chave síncrona/secreta entre cliente e servidor e então se utiliza essa para criptografar a comunicação cliente-servidor com a duração de uma sessão de usuário ou até mesmo com a duração de uma requisição-resposta, quando a sessão termina é necessária uma nova chave secreta.

Assim tem-se comunicação segura e evita-se ataque MITM.

E

Se a comunicação entre o cliente e o servidor usar o protocolo HTTP você pode usar TLS/SSL para encriptar a comunicação. Acho o mecanismo mais simples. Tudo que você precisa é de um certificado digital para seu servidor.

R

Não, SSL

F

Primeiramente qual o propósito da sua aplicação? não fique com paranóia de ataque, pense em uma solução comum e aplicavél que é o que a maioria faz, usar algo inédito e surreal para evitar hackers e perda de informação é algo inovador e requer tempo e dinheiro, se sua solução não for capaz de sustentar pesquisas e implementações novas e de ponta que existem no mercado ficar pensando pode deixar de manter seu projeto em prática, SSL, HTTPS, SSH, RC4, RSA, ao final dessa sopa de letrinhas, toda sua segurança resume-se a criptografia, se é feita baseada em algo difundido a propabilidade de ser quebrado ou ter milhares de hackers tentando quebrar é muito alta e com certeza conseguiram ou iram conseguir, um bom exemplo é o algortimo RSA de 1024 bits que foi quebrado.

Então pense até que ponto você deseja segurança, escolha uma solução de mercado que se adpta ao seu problema e bola pra frente.

você já viu um atack usando exploit?

Criado 3 de setembro de 2016
Ultima resposta 4 de set. de 2016
Respostas 5
Participantes 4