Chrome me advierte que mi conexión no es segura cuando me autentico en SEDE con una cuenta de Google

Dec 13 2020

Cuando voy a la página de inicio de sesión del Explorador de datos de Stack Exchange aquí y hago clic en el botón Iniciar sesión con Google , no estoy iniciando sesión, sino que recibo un mensaje de Chrome que protege mi privacidad:

La información que está a punto de enviar no es segura Debido a que el sitio utiliza una conexión que no es completamente segura, su información será visible para otras personas.

Estoy bastante seguro de que esto funcionó ayer sin mostrarme esa advertencia, por lo que Chrome se volvió más estricto de la noche a la mañana o se produjo un cambio de configuración en SEDE ya que la revisión todavía está en 2020.8.27.79 (¿cuándo se implementarán mis solicitudes de extracción?).

Cuando inspecciono el tráfico de red en la consola del desarrollador, veo:

  • URL de solicitud POST: https://data.stackexchange.com/user/authenticate
    • respuesta: 302 con un encabezado de ubicación: 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

Y luego la siguiente llamada se bloquea, cuando se devuelve el 302 (los lectores atentos vieron venir esta):

  • OBTENER URL de solicitud: 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
    • Respuesta 302: Ubicación: 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

Ese último encabezado de ubicación usa el protocolo HTTP en lugar del protocolo HTTPS.

¿Se puede cambiar esto para que la ruta POST en / user / authenticate use un protocolo seguro en lugar de HTTP simple?

De alguna manera espero que esta línea en AccountController.cs devuelva algo diferente ahora:

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

porque ese BaseUrl se agrega como redirect_uri aquí

Si un proxy ascendente se hizo cargo de la descarga de SSL, bien podría ser que Current.Request.Url.Schemeya no devuelva el protocolo HTTPS con el que comencé. Pero tal vez otras causas hagan que el esquema no sea lo que solía ser.

Parece que soy el único que puede reproducir esto en Chrome e incluso si esto es solo local en mi máquina, todavía parece un buen consejo para solucionar de forma preventiva los posibles riesgos de seguridad en lugar de esperar a que se abuse de las cosas.

Si acepto el riesgo y continúo, inicié sesión correctamente.

Respuestas

8 NickCraver Dec 14 2020 at 04:44

Se ha implementado una solución para esto : ¡gracias por el informe y también los ojos puestos en las relaciones públicas!

Notas: sí, como sospechaba, terminamos TLS en el balanceador de carga y los bits de red ASP incorporados no estaban leyendo los encabezados correctamente detrás de eso. En .NET Core, esto está resuelto, pero Stack Exchange Data Explorer aún no está en eso y no tenemos tiempo asignado para realizar ese trabajo en este momento.

5 Luuklag Dec 13 2020 at 16:41

Reproducido por mí.

Primero, cuando me registré con Google, todo salió bien.

Luego me desconecté, y cuando inicié sesión con la cuenta de Google recién registrada, recibí el siguiente mensaje (en holandés):

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.

Que es el mismo mensaje que Rene publicó en la Pregunta.

Usando Chrome en Android.

1 Ollie Dec 14 2020 at 03:46

Reproducido por mí también. No solo el inicio de sesión de Google es incorrecto, al hacer clic en el botón "Iniciar sesión usando Stack Overflow" también se produce este error:

Iniciar o cerrar sesión en mi cuenta de Google.