Question

Je développe une application client / serveur qui communiquera via le repos. Certaines données de demande personnalisées seront stockées dans l'en-tête de la demande. Le serveur qui envoie la demande et le serveur de destination ont tous deux un certificat SSL. Les en-têtes seront-ils chiffrés ou uniquement le contenu?

Était-ce utile?

La solution

SSL chiffre l'ensemble du chemin de communication du client au serveur et inversement, donc oui - les en-têtes seront chiffrés.

Soit dit en passant, si vous développez des applications en réseau et que vous vous souciez de la sécurité des données, vous devriez au moins lire un livre comme Practical Cryptography, de Niels Ferguson et Bruce Schneier. Sinon, une lecture plus centrée sur la sécurité des applications Web être une bonne idée. Si vous me permettez de faire une observation - et je vous en prie, je ne veux pas dire cela à titre de critique personnelle - votre question indique un manque fondamental de compréhension des technologies de base de la sécurité Web, et ce n’est jamais bon signe.

Par ailleurs, ce n’est jamais une mauvaise idée de confirmer que les données supposées cryptées sont bien cryptées. Vous pouvez utiliser un analyseur de réseau pour surveiller le trafic sur le réseau et surveiller tout élément sensible envoyé en clair. J'ai déjà utilisé Wireshark pour cela, les résultats peuvent parfois être surprenants.

Autres conseils

Tant que vous communiquez dans le tunnel SSL, tout ce qui est envoyé entre le serveur et le client sera crypté. Le cryptage est effectué avant l'envoi ou la réception de données.

Les en-têtes et le contenu sont cryptés.

Vous semblez penser que REST est un protocole distinct.

REST n'est pas un protocole. C'est un style de conception pour les applications HTTP.

Donc, vous écrivez une application HTTP. Les en-têtes sont-ils cryptés? Oui, si vous utilisez le protocole HTTPS (HTTP sur SSL) au lieu du simple HTTP.

Avoir des certificats des deux côtés n’est pas directement lié à votre question. Les certificats SSL sont utilisés pour l'authentification. Ils aident à détecter les attaques d'interception telles que celles qui sont possibles en utilisant l'intoxication par le cache DNS.

Si un certificat ne suffit pas, vous devez configurer le serveur Web pour chiffrer les connexions (c'est-à-dire utiliser le certificat) pour ce domaine ou cet hôte virtuel. De plus, je pense que vous n’auriez besoin que d’un seul certificat, les réponses aux demandes seront toujours chiffrées.

Et oui, les en-têtes HTTP sont cryptés, ainsi que les données.

SSL..ou plutôt HTTPS (HTTP sur SSL) envoie tout le contenu HTTP sur SSL, et comme le contenu HTTP et les en-têtes sont en fait identiques, cela signifie que les en-têtes sont également chiffrés. Étant donné que les données GET et POST sont envoyées via des en-têtes HTTP, il est donc logique de ne pas vouloir simplement chiffrer le code de réponse ou le contenu lors de l’envoi sécurisé des données.

Les autres réponses indiquent correctement que les en-têtes sont effectivement chiffrés, avec le corps, lors de l'utilisation de SSL. Cependant, gardez à l'esprit que l'URL, qui peut inclure des paramètres de requête, est chiffré jamais . Veillez donc à ne jamais mettre d'informations sensibles dans les paramètres de requête d'URL.

Mise à jour : comme @blowdart l’a souligné ci-dessous, cela est faux. Voir le commentaire ci-dessous.

Non tout n'est pas crypté: la chaîne de requête n'est pas cryptée. Croyez-moi, j'ai vu des demandes comme celle-ci:

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

Ne mettez pas de données sensibles en tant que paramètres dans la chaîne de requête.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top