web-dev-qa-db-fra.com

La redirection de http vers https est-elle une mauvaise idée?

Je suis en train de relire cette page et il est indiqué que si un site utilise le protocole SSL et que l'utilisateur essaie d'y accéder via HTTP, l'application ne doit pas rediriger l'utilisateur vers https. Cela devrait juste le bloquer. Quelqu'un peut-il vérifier la validité de ceci? Cela ne semble pas être une bonne idée, et je me demande quel est le risque réel de simplement renvoyer l'utilisateur à https. Il semble qu’il n’y ait aucune raison technique derrière cela, mais que c’est un bon moyen d’éduquer l’utilisateur. 

Désactiver l'accès HTTP au domaine, ne même pas le rediriger ou le lier à SSL . Il suffit d’informer les utilisateurs que ce site Web est non accessible via HTTP et ils ont pour y accéder via SSL.

C’est la meilleure pratique contre MITM et attaques de phising. De cette façon, votre les utilisateurs seront informés que application jamais accessible via HTTP et quand ils tombent sur un phising ou MITM attaque ils sauront quelque chose ne va pas.

Un des meilleurs moyens de protéger votre application contre les attaques MITM et Les attaques de phising éduquent votre utilisateurs.

56
sami

Une demande HTTP incluant un cookie d'ID de session est soumise à des attaques de piratage de session. Si vous autorisez HTTP et redirigez vers HTTPS, il est important que les cookies soient marqués comme sécurisés.

Je ne vois pas non plus de raison technique pour laquelle HTTP doit être complètement bloqué, et de nombreux sites transfèrent HTTP vers HTTPS. Dans ce cas, il est vivement recommandé de mettre en œuvre HTTP HSTS (HTTP Strict Transport Security), un mécanisme de sécurité Web qui déclare que les navigateurs doivent uniquement utiliser des connexions HTTPS. 

HSTS est implémenté en spécifiant un en-tête de réponse tel que Strict-Transport-Security: max-age=31536000. Les agents utilisateurs conformes transforment automatiquement les liens non sécurisés en liens sécurisés, réduisant ainsi le risque d'attaques par interférence. De plus, s’il existe un risque que le certificat ne soit pas sécurisé, par ex. l'autorité racine n'est pas reconnue, un message d'erreur s'affiche et la réponse n'est pas affichée.

41
cspolton

Passer de HTTP à HTTPS n’est en fait pas une très bonne idée. Par exemple, un attaquant pourrait mener une attaque de type man-in-the-middle en utilisant un outil tel que ssl strip . Pour résoudre ce problème, vous devez utiliser le protocole HSTS . Il est pris en charge par tous les principaux navigateurs (Internet Explorer, qui est le dernier adoptant, le prend en charge à partir de IE12) et utilisé par la plupart des sites de premier plan (par exemple, Paypal, Google).

22
Luca Invernizzi

Je ne vois aucun risque technique (sauf celui de la mise à jour à la fin de ma réponse) lors de la redirection de HTTP vers HTTPS. Par exemple, Gmail et Yahoo Mail le font. Vous pouvez vérifier cela en utilisant un outil de débogage HTTP (comme Fiddler), où vous pouvez clairement identifier la réponse de redirection 302 renvoyée par le serveur.

Je crois que le blocage est une mauvaise idée du point de vue de la convivialité. Souvent, les utilisateurs entrent une adresse dans le navigateur sans spécifier HTTP ou HTTPS. Par exemple, j'accède à gmail en tapant "mail.google.com", par défaut "http://mail.google.com" et automatiquement redirigé vers "https://mail.google.com". Sans la redirection automatique, je devrai toujours taper l'adresse complète.

Je suis d'accord avec l'article cité selon lequel HTTPS est la meilleure méthode contre les attaques MITM, mais je ne pense pas que ce soit la meilleure pratique contre le phising. La formation des utilisateurs est en effet un facteur clé contre les attaques de phising (les utilisateurs doivent vérifier qu’ils accèdent au site à partir du domaine correct), mais vous ne faites en aucun cas cette formation en bloquant la redirection HTTP vers HTTPS.

Mise à jour @ Pedro et @Spolto ont raison. Un soin particulier doit être apporté aux cookies sensibles (tels que les cookies de session ou d'authentification), qui doivent en fait être marqués comme étant sécurisés, afin qu'ils ne soient transmis que via HTTPS. J'ai raté celui-là. +1 tous les deux.

5
Florin Dumitrescu

Je viens juste de remarquer cette question, mais j'ai écrit quelques réponses à des questions similaires:

Je ne pense pas que la redirection de HTTP vers HTTPS soit nécessairement préjudiciable, mais cela devrait être fait avec précaution. L'important est de ne pas compter sur ces redirections automatiques pour être présentes pendant la phase de développement. Ils devraient tout au plus être utilisés par les utilisateurs qui tapent eux-mêmes l'adresse dans le navigateur.

Il incombe également à l'utilisateur de vérifier qu'il utilise le protocole HTTPS (et que le certificat est vérifié sans avertissement) lorsqu'il le souhaite.

Le risque réel de passer de HTTP à HTTPS est que vous pouvez faire confiance à ce qui était fait avant le changement si vous choisissez de conserver la session. Le flux et le processus de votre site Web doivent en tenir compte.

Par exemple, si vos utilisateurs parcourent votre site d'achat et ajoutent divers articles dans le panier à l'aide de HTTP et que vous prévoyez d'utiliser HTTPS pour obtenir les détails du paiement, vous devez également demander à l'utilisateur de confirmer le contenu de son panier en utilisant HTTPS.

De plus, lorsque vous passez de HTTP à HTTPS, vous devrez peut-être authentifier à nouveau l'utilisateur et supprimer l'identificateur de session HTTP simple, le cas échéant. Sinon, un attaquant pourrait également utiliser ce cookie pour accéder à cette section HTTPS du site et éventuellement prendre l'identité de l'utilisateur légitime.

4
Bruno

D'un point de vue technique, il n'y a pas d'incidence secondaire en dehors de ce que prend HTTPS.

Du point de vue de UX/UI, il est conseillé d’utiliser une redirection par clic ou une redirection retardée, en fournissant une indication visuelle pour demander aux personnes qui tapent une URL HTTPS en premier lieu, car la redirection elle-même est sujette aux attaques de MITM. Cependant, peu de sites HTTPS le font, car ils fournissent des éléments visuels invitant les utilisateurs à rechercher l'icône de cadenas sur le navigateur sur leurs pages HTTPS.

3
timdream

C'est une méthode "d'amorçage" parfaitement acceptable: la redirection 301 de HTTP vers HTTPS, puis côté HTTPS, renvoie un en-tête Strict-Transport-Security afin de verrouiller le navigateur en HTTPS.

Bloquer complètement le HTTP serait un problème d’utilisabilité majeur, car les navigateurs Web tentent le protocole HTTP lorsqu'une URL est entrée sans désignation de protocole, sauf si le navigateur prend en charge HSTS et qu'un jeton HSTS se trouve dans le cache du navigateur ou la liste de préchargement .

0
William