Question:
Le service Web HTTPS est passé à HTTP. Qu'est-ce qui peut mal tourner?
Peque
2016-04-18 22:44:48 UTC
view on stackexchange narkive permalink

J'ai récemment visité un site Web qui avait une connexion HTTPS. Maintenant, il n'a qu'une simple connexion HTTP, et la méthode d'authentification est passée de utilisateur + mot de passe à "s'authentifier avec un compte Google".

Je les ai contactés et leur ai demandé pourquoi ils avaient abandonné le HTTPS, et ils m'ont dit "car maintenant l'authentification est sécurisée avec Google, donc ce n'est plus nécessaire".

Eh bien, je ne suis pas un expert en sécurité, mais avant de leur répondre, j'aimerais savoir: ce qui pourrait se passer mal?

Donc, avec mon peu de connaissances, je dirais (corrigez-moi si je me trompe):

  • Perte de confidentialité dans les communications entre le client et le serveur (l'attaquant peut lire toutes les informations échangées, y compris les informations personnelles que le client peut publier sur le serveur).
  • Un attaquant pourrait modifier les demandes du client, peut-être avec des intentions malveillantes.
  • Un l'attaquant pourrait lire le cookie et l'utiliser pour accéder au service comme s'il s'agissait du client qui s'était authentifié à l'origine à l'aide des services de Google.

Ai-je raison? Qu'est-ce qui pourrait mal tourner?

Les personnes qui dirigent ce site sont extrêmement incompétentes.
"Je les ai contactés et leur ai demandé pourquoi ils avaient abandonné le HTTPS, et ils m'ont dit" parce que maintenant l'authentification est sécurisée avec Google, donc ce n'est plus nécessaire "."- un exemple de sécurité par respect des mots à la mode?
Heureux qu'ils n'aient pas utilisé le HSTS.
@RubberDuck S'ils l'avaient fait, cela les aurait peut-être forcés à conserver le support HTTPS.;-P
en passant, il n'y a vraiment pas beaucoup de bonnes raisons d'utiliser encore le simple http pour quoi que ce soit, de nos jours.
Cinq réponses:
Arminius
2016-04-18 23:39:05 UTC
view on stackexchange narkive permalink

Vous avez raison, la régression vers HTTP est inutile.

Notez que tous vos points s'appliquent à un type d'attaque particulier, où l'adversaire peut accéder aux données transport entre client et serveur. Il peut s'agir du propriétaire d'un hotspot Wi-Fi ou de votre FAI agissant en tant qu ' homme du milieu , qui se trouve entre vous et le serveur. Cela peut être difficile à accomplir pour un attaquant distant, mais c'est particulièrement facile sur un réseau Wi-Fi public.

Ce que HTTPS ajoute à HTTP, c'est transport sécurisé des données . L'application Web elle-même peut tout à fait convenir - si vous communiquez sur un canal non chiffré, l'attaquant pourra lire, modifier et injecter des données arbitraires dans vos requêtes et les réponses du serveur. Avec un cookie de session capturé, il sera également possible de se faire passer pour vous aussi longtemps que le cookie est valide.

Ce que l'attaquant ne peut faire, c'est prendre le contrôle de votre compte Google ou se réauthentifier avec Google ultérieurement. En effet, l'authentification avec Google se produit toujours via SSL et le jeton accordé expire après un certain temps.

La situation est donc un peu meilleure que la capture immédiate de vos informations d'identification. Cependant, comme vous l'avez dit, un attaquant serait toujours en mesure de reprendre la session et d'effectuer toute action en votre nom.

C'est un détournement à coup sûr - sans aucun doute!Essayez de le vérifier via Tor et / ou I2P - essayez de vous connecter via ces tunnels.S'il y a un HTTPS comme d'habitude - alors commencez à enquêter ** mais fortifiez d'abord votre connexion **, essayez de configurer un routeur Tor
Ángel
2016-04-19 02:33:06 UTC
view on stackexchange narkive permalink

Je voudrais poser la question suivante:

Quel est l'intérêt d'avoir une authentification dans l'application?

Si toute la page contient est du contenu public et vérifiable d'une manière extérieure (par exemple un miroir Debian, où les paquets sont avec PGP) et vos utilisateurs ne craignent pas qu'un tiers examine ce qu'ils visitent, la page peut ne pas avoir besoin de https. Mais pas non plus une connexion.

Les raisons courantes pour lesquelles une authentification est requise sont:

  • Il y a certaines données que l'utilisateur ne peut lire que lorsqu'il est connecté

  • Un utilisateur enregistré peut envoyer des messages à d'autres personnes

  • Cela permet à l'utilisateur de gagner en réputation, en conservant une identité qui n'est utilisée que par lui

  • Le compte peut bénéficier de certains avantages obtenus à l'extérieur (comme l'accès à du contenu payant)

Tous sont annulés par en utilisant http au lieu de https dans la communication, ainsi que presque toute autre raison d'insérer un identifiant. Indépendamment du fait que le mot de passe ne soit pas exposé (ce qui serait certes encore pire).

Il y a quelque temps, le prix d'achat des certificats a été discuté, mais de nos jours, plusieurs CA fournissent des certificats gratuitement.

† Le coin de Nitpicker, il y a quelques cas extrêmement rares où la sécurité n'est pas compromise par cela. Un exemple est Mega, qui a chargé certains javascripts courants via http, mais un script chargé en https a vérifié leurs hachages avant de les exécuter. Fragile et plus complexe que la mise en place de https partout. N'essayez pas ça à la maison, les enfants.

Même les certificats payés peuvent être obtenus pour des montants presque insignifiants, si pour une raison quelconque vous voulez payer (ne serait-ce que pour avoir quelqu'un à qui crier quand les choses tournent mal).Il n'est pas difficile de trouver des certificats DV de base dans la plage inférieure à 10 $ / an / fqdn, ou peut-être un zéro supplémentaire si vous voulez quelque chose comme un certificat générique, et pour tout ce qui pourrait même envisager HTTP, DV HTTPSest parfaitement suffisant.
Utiliser http: // plutôt que https: // peut rendre les choses plus pratiques pour les utilisateurs derrière des portails captifs.Une passerelle WiFi publique peut rediriger la première requête http: // d'une adresse MAC donnée vers une page de conditions de service, mais une requête https: // ira simplement à un écran d'erreur sans indiquer à l'utilisateur la nécessité d'accepteraux conditions d'utilisation avant de l'utiliser.
MEGA "vérification de hachage" * est inutile *: il charge tout via HTTPS, car le chargement des ressources HTTP à partir de HTTPS est bloqué ou, du moins, déclenche des avertissements.Seuls les clients de bureau et les extensions effectuent des requêtes HTTP, et simplement pour télécharger les fichiers cryptés, car ils n'ont pas besoin de télécharger des fichiers JavaScript.
Je peux faire une estimation éclairée du ou des sites Web qui vous ont inspiré le troisième élément (collecte de réputation) - mais ils au moins * permettent * l'utilisation de HTTP, n'est-ce pas?
@HagenvonEitzen Je pensais en fait dans un [forum] classique (https://en.wikipedia.org/wiki/Internet_forum), mais cette page est effectivement affectée.En fait, n'importe quelle page où les utilisateurs s'inscrivent et communiquent entre eux l'est.
Il convient de noter que, bien que les trois premières raisons soient des choses où l'utilisateur est désavantagé si sa connexion est compromise, dans le quatrième cas, c'est le fournisseur de services qui est désavantagé (puisque l'utilisateur ne se soucie probablement pas que les attaquants accèdent au fournisseur.contenu payant gratuitement).Étant donné que le fournisseur de services décide généralement du niveau de cryptage à utiliser, dans ce dernier cas, le fournisseur de services détient tous les risques qu'il a créés et peut avoir pris une décision calculée à cet effet.
@James_pic, si l'utilisateur achetait des crédits, le fournisseur de services les comptabiliserait comme dépensé, qu'il s'agisse du propriétaire légitime ou non.
Prashant Mishra
2016-04-19 13:32:16 UTC
view on stackexchange narkive permalink

Vos informations d'identification sont en sécurité, mais un piratage de session pourrait se produire

Une possibilité aurait pu être qu'un attaquant aurait pu effectuer une attaque SSL Strip en agissant en tant qu'homme au milieu, si cela se produit, le site Web HTTPS sera servi de HTTP à la victime. Mais comme vous l'avez confirmé avec le site Web qu'ils l'ont fait intentionnellement, cette possibilité est supprimée.

Maintenant, Google utilise oAuth2, donc la poignée de main avec Google se fera via HTTPS &, vous serez redirigé vers votre site Web via HTTP après cela (cela se passe de la même manière avec https://security.stackexchange.com/ lorsque vous utilisez votre compte Google). Votre site Web aurait généré un jeton de session après oAuth. Le risque que présente HTTP dans ce cas est qu'un attacheur peut très facilement détourner votre session et surfer sur le site Web en faisant semblant d'être vous

Stack Exchange propose HTTPS pour tous les sites non méta.(Meta est plus compliqué en raison de la structure du nom de domaine; aurait dû aller avec security.meta.stackexchange.com plutôt que meta.security.stackexchange.com car il aurait alors pu être géré en grande partie par * .stackexchange.com et * .meta.stackexchange.com.) Je pense que HTTPS Everywhere d'EFF vous donne HTTPS par défaut pour tous les sites principaux de Stack Exchange.
Cricco95
2016-04-18 23:36:38 UTC
view on stackexchange narkive permalink

Vous avez tout à fait raison. En excluant les identifiants de connexion Google, un attaquant peut effectuer une attaque MITM et intercepter toutes les demandes de la victime. Je vous propose de leur communiquer les risques d'une réimplémentation du protocole SSL.

gnasher729
2016-04-21 14:26:47 UTC
view on stackexchange narkive permalink

"Qu'est-ce qui peut mal se passer": si vous faites cela avec une API, toutes les applications iOS conçues pour iOS 9 et exécutées sur iOS 9 à l'aide de cette API cesseront de fonctionner.

Cela s'appelle "App Transport Security", et à moins que le développeur ne crée une exception pour votre domaine, http n'est pas accepté et https avec des connexions pas suffisamment sécurisées n'est pas accepté. Étant donné que votre API utilisait auparavant https, les applications existantes n'auront pas d'exception pour votre domaine, elles cesseront donc de fonctionner.

Eh bien, je demandais "ce qui pourrait mal tourner" en termes de sécurité.Si ce service Web cesse de fonctionner, ce n'est pas vraiment un problème de sécurité.Mais oui, bien sûr, les clients et les applications tierces peuvent cesser de fonctionner (je ne sais pas ce que iOS a à voir avec cela, bien que xD).


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...