Pergunta

Estou desenvolvendo um aplicativo cliente/servidor que se comunicará via repouso.Alguns dados de solicitação personalizada serão armazenados no cabeçalho da solicitação.Tanto o servidor que envia a solicitação quanto o servidor que recebe a solicitação possuem um certificado SSL - os cabeçalhos serão criptografados ou apenas o conteúdo?

Foi útil?

Solução

O SSL criptografa todo o caminho de comunicação do cliente ao servidor e vice-versa, então sim - os cabeçalhos serão criptografados.

A propósito, se você desenvolve aplicações em rede e se preocupa com segurança de dados, o mínimo que você deve fazer é ler um livro como Practical Cryptography, de Niels Ferguson e Bruce Schneier, e provavelmente uma leitura adicional mais focada em segurança de aplicações web seria uma boa ideia. ideia.Se me permitem fazer uma observação - e por favor, não quero dizer isso como uma crítica pessoal - sua pergunta indica uma falta fundamental de compreensão das tecnologias básicas de segurança na web, e isso nunca é um bom sinal.

Além disso, nunca é uma má ideia confirmar se os dados que se presume estarem criptografados estão de fato criptografados.Você pode usar um analisador de rede para monitorar o tráfego na rede e ficar atento a qualquer coisa sensível enviada de forma clara.Já usei o Wireshark para fazer isso antes - os resultados podem ser surpreendentes, às vezes.

Outras dicas

Enquanto você estiver se comunicando no túnel SSL, tudo o que for enviado entre o servidor e o cliente será criptografado.A criptografia é feita antes de qualquer dado ser enviado ou recebido.

Tanto os cabeçalhos quanto o conteúdo são criptografados.

Você parece pensar que REST é um protocolo distinto.

REST não é um protocolo.É um estilo de design para aplicativos baseados em HTTP.

Então, você está escrevendo um aplicativo HTTP.Os cabeçalhos são criptografados?Sim, se você estiver usando o protocolo HTTPS (HTTP sobre SSL) em vez do HTTP simples.

Ter certificados de ambos os lados não é diretamente relevante para a sua pergunta.Certificados SSL são usados ​​para autenticação.Eles ajudam na detecção de ataques man-in-the-middle, como são possíveis usando envenenamento de cache DNS.

Não basta ter um certificado, é necessário configurar o servidor web para criptografar as conexões (ou seja, para usar o certificado) desse domínio ou host virtual.Além disso, acho que você precisaria apenas de um único certificado, as respostas às solicitações ainda serão criptografadas.

E sim, os cabeçalhos HTTP são criptografados, assim como os dados.

SSL..ou melhor, HTTPS (HTTP sobre SSL) envia todo o conteúdo HTTP por SSL e, como o conteúdo e os cabeçalhos HTTP são na verdade a mesma coisa, isso significa que os cabeçalhos também são criptografados.Visto que os dados GET e POST são enviados por meio de cabeçalhos HTTP, só faz sentido que, ao enviar dados com segurança, você não queira apenas que o código de resposta ou o conteúdo seja criptografado.

As outras respostas estão corretas: os cabeçalhos são realmente criptografados, junto com o corpo, ao usar SSL.Mas lembre-se de que o URL, que pode incluir parâmetros de consulta, é nunca criptografado.Portanto, tome cuidado para nunca colocar informações confidenciais nos parâmetros de consulta de URL.

Atualizar: como @blowdart apontou abaixo, isso está errado.Veja o comentário abaixo.

Não tudo é criptografado:a string de consulta da solicitação não está criptografada.Acredite, já vi pedidos como este:

https://meudominio.com/authenticate?user=username&password=MyStrongPasswordSentInTheClear

Não coloque dados confidenciais como parâmetros na string de consulta.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top