Chrome m'avertit que ma connexion n'est pas sécurisée lors de l'authentification dans SEDE avec un compte Google

Dec 13 2020

Lorsque je vais à la page de connexion de Stack Exchange Data Explorer ici et que je clique sur le bouton Se connecter à l'aide de Google , je ne me connecte pas mais je suis plutôt accueilli par un message Chrome protégeant ma confidentialité:

Les informations que vous êtes sur le point de soumettre ne sont pas sécurisées Parce que le site utilise une connexion qui n'est pas complètement sécurisée, vos informations seront visibles par les autres.

Je suis à peu près sûr que cela a fonctionné hier sans me montrer cet avertissement, donc Chrome est devenu plus strict du jour au lendemain ou un changement de configuration s'est produit dans SEDE car la révision est toujours à 2020.8.27.79 (quand mes demandes d'extraction seront-elles déployées?).

Lorsque j'inspecte le trafic réseau dans la console développeur, je vois:

  • URL de la requête POST: https://data.stackexchange.com/user/authenticate
    • réponse: 302 avec un en-tête d'emplacement: https://accounts.google.com/o/oauth2/auth?client_id=[blah]&scope=openid+email&redirect_uri=http%3a%2f%2fdata.stackexchange.com%2f[more blah]&response_type=code

Et puis l'appel suivant est bloqué, lorsque le 302 est retourné (les lecteurs attentifs ont vu celui-ci arriver):

  • GET Request URL: https://accounts.google.com/o/oauth2/auth?client_id=[blah]&scope=openid+email&redirect_uri=http%3a%2f%2fdata.stackexchange.com%2f[more blah]&response_type=code
    • Réponse 302: Emplacement: http://data.stackexchange.com/user/oauth/google?state=[blah]&code=[more blag]&scope=email+openid+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email&authuser=0&prompt=none

Ce dernier en-tête d'emplacement utilise le protocole HTTP au lieu du protocole HTTPS.

Cela peut-il être changé pour que la route POST dans / user / authenticate utilise un protocole sécurisé au lieu de HTTP simple?

Je m'attends en quelque sorte à ce que cette ligne dans AccountController.cs renvoie quelque chose de différent maintenant:

private string BaseUrl => Current.Request.Url.Scheme + "://" + Current.Request.Url.Host;

car cette BaseUrl est ajoutée comme redirect_uri ici

Si un proxy en amont prenait en charge le déchargement SSL, il se pourrait bien qu'il Current.Request.Url.Schemene renvoie plus le protocole HTTPS avec lequel j'ai commencé. Mais peut-être que d'autres causes font que le schéma n'est plus ce qu'il était.

Je semble être le seul à pouvoir reproduire cela dans Chrome et même si cela n'est que local sur ma machine, il semble toujours bon de résoudre de manière préventive les risques de sécurité potentiels au lieu d'attendre que les choses soient abusées.

Si j'accepte le risque et que je continue, je suis connecté avec succès.

Réponses

8 NickCraver Dec 14 2020 at 04:44

Un correctif a été déployé - merci pour le rapport et les yeux sur le PR également!

Remarques: oui, comme vous le soupçonniez, nous terminons TLS au niveau de l'équilibreur de charge et les bits de réseau ASP intégrés ne lisaient pas correctement les en-têtes derrière cela. Dans .NET Core, cela est résolu, mais Stack Exchange Data Explorer n'est pas encore sur ce point et nous n'avons pas de temps alloué pour effectuer ce travail à ce stade.

5 Luuklag Dec 13 2020 at 16:41

Reproduit par moi.

Tout d'abord, lorsque je me suis enregistré avec Google, tout s'est bien passé.

Je me suis ensuite déconnecté et, lors de la connexion avec le compte Google qui vient d'être enregistré, j'ai été accueilli par le message suivant (en néerlandais):

De gegevens die je wilt sturen, zijn niet beveiligd Omdat de site een verbinding gebruikt die niet volledig is beveiligd, zijn je gegevens zichtbaar voor anderen.

C'est le même message que René a publié dans la question.

Utilisation de Chrome sur Android.

1 Ollie Dec 14 2020 at 03:46

Reproduit par moi aussi. Non seulement la connexion Google est interrompue, mais le fait de cliquer sur le bouton "Connexion à l'aide de Stack Overflow" génère également cette erreur:

Connecté ou déconnecté de mon compte Google.