Question:
Pourquoi devrais-je proposer HTTP en plus de HTTPS?
lofidevops
2017-04-18 18:00:56 UTC
view on stackexchange narkive permalink

Je suis en train de configurer un nouveau serveur Web. En plus de TLS / HTTPS, j'envisage de mettre en œuvre Strict-Transport-Security et d'autres mécanismes d'application HTTPS.

Tout cela semble être basé sur l'hypothèse que je suis servant http://www.example.com en plus de https://www.example.com . Pourquoi est-ce que je ne sers que HTTPS? Autrement dit, y a-t-il une raison basée sur la sécurité de servir HTTP - par exemple, quelqu'un pourrait-il usurper http://www.example.com si je ne configure pas HSTS?

les non-navigateurs peuvent avoir beaucoup plus de difficultés à récupérer le contenu, si c'est un problème.Des sites comme Craigslist prospèrent grâce aux mashups, par exemple.je ne vois pas de mal à laisser certaines sections http ouvertes, pour les "utilisateurs" non humains;ils ne se soucient pas du phishing, du xss ou de la confidentialité, et vous n'avez même pas besoin de diffuser du HTML ...
@dandavis - est-ce vraiment un problème?Si Craigslist n'utilisait que HTTPS, tout le monde ne convertirait-il pas simplement ses scripts de récupération en HTTPS?La plupart des bibliothèques clientes HTTP incluent la prise en charge HTTPS.
Comment les gens sont-ils censés diffuser FUD sur le fait que HTTPS n'est pas pratique si vous exécutez un site uniquement HTTPS sans aucun problème?Pensez, mec!Et qu'en est-il des pauvres hackers qui veulent attaquer des mamies qui n'ont pas entendu parler de HTTPS partout?C'est comme si vous essayiez de promouvoir un Web plus sécurisé ou quelque chose comme ça.
@Johnny: ne prend pas autant en charge infra https que http, c'est tout.ça ira mieux...
@dandavis C'est quelque chose qui me laisse perplexe ... tous les principaux navigateurs devraient commencer à essayer https * avant * http ... cela résoudrait un tas de problèmes de sécurité ...
Six réponses:
Anders
2017-04-18 18:58:32 UTC
view on stackexchange narkive permalink

Pour des raisons de convivialité, vous devez proposer une redirection vers HTTPS à partir de toutes les URL HTTP: s. Sinon, les visiteurs pour la première fois qui saisissent simplement example.com/some/page dans la barre d'URL du navigateur seront accueillis par une erreur de connexion.

La diffusion de la redirection ne vous rend pas plus vulnérable. Les utilisateurs qui n'ont pas votre entrée HSTS dans leurs navigateurs feront quand même une requête HTTP. Qu'il y ait un vrai service ou non sur HTTP n'a pas d'importance pour un homme du milieu.

Vous devez donc exécuter un serveur HTTP, mais il n'a pas besoin de répondre avec autre chose que les redirections .

Les commentaires ne sont pas destinés à une discussion approfondie;cette conversation a été [déplacée vers le chat] (http://chat.stackexchange.com/rooms/57580/discussion-on-answer-by-anders-why-should-i-offer-http-in-addition-to-https).
Ronny
2017-04-18 18:44:48 UTC
view on stackexchange narkive permalink

Pourquoi est-ce que je ne sers que https uniquement?

Les principales raisons sont le comportement par défaut des navigateurs et la compatibilité descendante .

Comportement par défaut

Lorsqu'un utilisateur final (c'est-à-dire, sans connaissance des protocoles ou de la sécurité) tape l'adresse du site Web dans son navigateur, le navigateur utilise par défaut HTTP. Consultez cette question pour plus d'informations sur les raisons pour lesquelles les navigateurs choisissent ce comportement.

Ainsi, il est probable que les utilisateurs ne pourront pas accéder à votre site Web.

Rétrocompatibilité

Il est possible que certains utilisateurs avec d'anciens systèmes et d'anciens navigateurs ne prennent pas en charge HTTPS ou, plus probablement, ne disposent pas d'une base de données à jour de certificats racine , ou ne prennent pas en charge certains protocoles.

Dans ce cas, ils ne pourront pas accéder au site Web ou recevront un avertissement de sécurité. Vous devez définir si la sécurité de vos utilisateurs finaux est suffisamment importante pour forcer HTTPS.

De nombreux sites Web écoutent toujours HTTP mais redirigent automatiquement vers HTTPS et ignorent les utilisateurs vraiment anciens navigateurs.

Quelqu'un pourrait-il usurper http://www.example.com si je ne configure pas HSTS?

Si un attaquant veut usurper http://www.example.com , il doit prendre le contrôle du domaine ou prendre le contrôle de l'adresse IP d'une manière ou d'une autre.

Je suppose que vous vouliez dire: un attaquant pourrait-il effectuer une attaque d'intermédiaire?

Dans ce cas oui, mais même avec ou sans HSTS:

  • Sans HSTS : un attaquant peut facilement se trouver au milieu de votre serveur et de l'utilisateur, et être actif (c.-à-d. modifier le contenu) ou passif (c.-à-d. espionner)

  • Avec HSTS : la première fois qu'un utilisateur tente de visiter le site via HTTP, un attaquant peut forcer l'utilisateur à utiliser HTTP. Cependant, l'attaquant dispose d'une fenêtre de temps limitée pour effectuer son attaque.

Que devez-vous faire?

Comme de nombreux sites Web, vous devez autoriser les connexions HTTP et faire en sorte que votre serveur redirige l'utilisateur vers la version HTTPS. De cette façon, vous remplacez le comportement par défaut des navigateurs et vous assurez que vos utilisateurs utilisent la version HTTPS.

Les anciens systèmes sans les protocoles ou certificats racine appropriés ne pourront pas accéder au site (ou du moins auront un avertissement ), mais en fonction de votre base d'utilisateurs, cela ne devrait pas être un problème.

Conclusion

Cela fera plus de mal que de bien de désactiver HTTP. Cela n'offre pas vraiment plus de sécurité.

Toute sécurité ajoutée pour protéger une ressource est inutile si elle empêche la plupart de ses utilisateurs d'y accéder. Si vos utilisateurs finaux ne peuvent pas accéder à votre site Web parce que leur navigateur utilise par défaut HTTP et que vous n'écoutez pas les connexions HTTP, quel est l'avantage?

Effectuez simplement la redirection HTTP 301 vers la version HTTPS.

Questions connexes

Je faisais référence à la puce «Avec HSTS» en gras, où le libellé suggère qu'il y a moins de sécurité si le serveur sert une redirection de HTTP vers HTTPS.
@BenVoigt Oh ok je vois.J'ai supprimé le "Si vous servez HTTP" pour éviter un malentendu.Merci
De plus, certains utilisateurs peuvent ne pas être en mesure d'accéder aux sites `https`.Par exemple, la Chine bloquait auparavant tout le trafic https vers les projets Wikimedia.
Juste une correction pour le choix du mot: l'utilisateur n'entre pas une "URL", mais une "adresse web".(Il n'y a pas de schéma / protocole par défaut.)
@OskarSkog J'ai changé pour "adresse du site Web", merci.
Notez que pour "Avec HSTS", le HSTS préchargé protégera même les visiteurs pour la première fois de votre site contre les attaques MITM.
Taul
2017-04-18 23:40:49 UTC
view on stackexchange narkive permalink

Les réponses à la hausse sont très bonnes. Vous sacrifierez la convivialité sans impact majeur sur la sécurité si vous désactivez complètement HTTP.

Cependant, vous pouvez atténuer cela avec l'option HSTS Preload. Le préchargement de votre site Web signifie que vous enregistrez votre domaine auprès des fournisseurs de navigateurs et qu'ils coderont en dur leurs navigateurs pour visiter votre site Web via HTTPS uniquement. Cela signifie que si un utilisateur tente d'accéder à votre site Web via HTTP, le navigateur changera la demande en HTTPS. L'utilisateur n'a pas besoin d'obtenir d'abord l'en-tête HSTS avant d'être sécurisé. Ils se connecteront toujours à vous via un canal sécurisé.

Maintenant, cela ne protège pas les utilisateurs qui utilisent des navigateurs qui n'ont pas mis à jour leur liste de sites Web uniquement HTTPS. Même lorsque vous utilisez le préchargement, je recommande de ne pas désactiver HTTP pour les quelques personnes qui utilisent des navigateurs anciens ou non mis à jour.

Mais attention, le préchargement est permanent! Il est extrêmement difficile de sortir de la liste de préchargement.

Pour accéder à la liste de préchargement: https://hstspreload.org/

Quel problème serait résolu en supprimant la liste de préchargement?Je veux dire, pourquoi quelqu'un voudrait-il?(Je pose une question technique, pas rhétorique. Je crois comprendre qu'ils ne voudraient s'en sortir que s'ils décidaient de * arrêter * de servir HTTPS pour une raison quelconque - n'est-ce pas?)
@Wildcard qui est correct.Un cas d'utilisation auquel je pourrais penser est que si un domaine a été enregistré par la personne X, elle l'a laissé expirer ou a transféré le domaine à la personne Y. Maintenant, la personne Y est obligée d'utiliser https même si elle ne le souhaite pas pour une raison quelconque, comme le coût, limitations techniques avec leur créateur de site web par glisser-déposer, etc.
Merci @Erik,.Du point de vue de la conception à très long terme, je soupçonne donc que le préchargement HSTS est permanent par * choix délibéré * - avec pour objectif final de * complètement * déprécier http dans la pratique, de sorte que les navigateurs populaires vous obligeront à passer par "des paramètres avancés"menus même pour l'activer.Au moins, on peut rêver.:)
@Wildcard Je suis d'accord que c'est probablement l'objectif.Je me demande ce qui se passera en premier sur Internet via IPv6 par défaut ou https uniquement?;) Les deux sont nécessaires mais sont une bataille difficile ......
Scott Hemle a d'excellentes informations à ce sujet.Veuillez lire sa page de blog à ce sujet: https://hpkp.scotthelme.co.uk/death-by-copy-paste/ En bref, Scott donne trois raisons.1) ne pas prendre en compte les effets sur tous les sous-domaines que vous gérez 2) ne pas considérer les effets sur tous les sous-domaines que vous autorisez des tiers à gérer.3) copier / coller les configurations d'en-tête pour inclure le préchargement (puis quelqu'un enregistre votre site avec ou sans votre permission).
Root
2017-04-18 18:05:02 UTC
view on stackexchange narkive permalink

Vous n'êtes pas obligé de le faire.

Certains navigateurs et systèmes d'exploitation plus anciens (ceux-ci vont généralement de pair) n'ont pas d'autorités racine de certificat plus récentes, mais ils ne prennent généralement pas en charge HTTPS plus récent non plus, donc rien n'est vraiment perdu.

Vous pouvez avoir un appareil qui ne prend pas en charge HTTPS, les scripts personnalisés, etc.

Personne ne peut usurper HTTP, car l'enregistrement DNS vous appartient et l'enregistrement A pointe vers votre adresse IP spécifique (dans un monde parfait).

Vous le faites juste pour maintenir la compatibilité, c'est tout.

"Personne ne peut spoofer http" - Voulez-vous dire "Personne ne peut" ou "Tout le monde peut"?«L'enregistrement DNS vous appartient et l'enregistrement a pointe vers votre adresse IP spécifique» - Selon ce raisonnement, les attaques de type "man-in-the-middle" ne se produisent jamais, il n'y a donc pas besoin d'autorités de certification et de chaîne de confiance.
"Personne ne peut usurper http, car l'enregistrement DNS vous appartient" - Vrai.Sauf si quelqu'un usurpe l'entrée DNS, auquel cas elle peut être usurpée.
user3496510
2017-04-18 22:12:54 UTC
view on stackexchange narkive permalink

Vous ne devez prendre en charge HTTP que pour prendre en charge la rétrocompatibilité. Et assurez-vous que vous effectuez une redirection correcte du serveur principal vers HTTPS. La meilleure façon de l'implémenter est de fournir le support HTTP uniquement à votre page d'accueil ou à toute page qui ne contient pas d'informations sensibles. Vous ne devez pas prendre en charge les requêtes HTTP vers les pages auxquelles l'utilisateur peut accéder après l'authentification.

Même si des appareils (IoT) accèdent aux données sensibles de votre serveur, vous devez les forcer à utiliser TLS (de nombreux appareils actuels peuvent stocker votre certificat et créer une connexion TLS). Gardez à l'esprit que les versions SSL antérieures à 3.0 comportent de nombreuses vulnérabilités telles que poodlebug etc. Par conséquent, désactivez toutes les versions précédentes de votre serveur Web et n'autorisez que> TLS 1.1.

Il est bon que vous implémentiez le HSTS. Je vous recommande d’examiner également la faisabilité de l’implémentation de HPKP sur votre site.

Russell Hankins
2017-04-22 01:19:21 UTC
view on stackexchange narkive permalink

J'utilise http en plus de https à deux fins:

  1. Effectuez la redirection http vers le site Web https. C'est pour si quelqu'un tape le nom de votre site dans le navigateur.
  2. Je crée un site Web distinct pour http qui est destiné si quelqu'un essaie d'accéder au site Web sans utiliser le nom dot com. (Un utilisateur réel ne le fera pas.) Ce site Web affichera un simple message Coming Soon. Il ajoutera également leur adresse IP à la liste de refus des tables IP pour interdire définitivement cette adresse IP du serveur. Cette arrête ralentit les pirates qui utilisent masscan. (J'ai trouvé masscan en stockant les chaînes d'agent utilisateur de toutes les adresses IP que je bloquais pour prouver à un autre programmeur qu'il ne s'agissait pas d'une analyse Google, mais en fait, des pirates étrangers effectuant l'analyse IP à la recherche de serveurs Web à essayer de pirater).


Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...