¿Es suficiente el token de encabezado secreto HTTPS + FacebookID + para un inicio de sesión de usuario?

0

Divulgación: no soy un profesional de la seguridad, pero tengo un problema de seguridad (creo) que necesito hablar con un cliente.

Tenemos una organización asociada que ha creado una API para una aplicación móvil que estamos creando. En lugar de utilizar oAuth para el inicio de sesión de Facebook, debemos enviar la ID de facebook de un usuario al punto final de la API, a través de HTTPS, con una clave de API estática en el encabezado.

Consideran que esto es lo suficientemente seguro como para otorgar acceso a la cuenta de ese usuario. Pero me huele a pescado.

es decir,

POST a enlace con el encabezado X-Auth-APIKEY = TOPSECRET

Obviamente, veo un problema en el que si la clave está comprometida, se atornilla (porque está codificada en nuestra aplicación), pero ¿hay algo más que me esté perdiendo?

Felicitaciones adicionales por traducir cualquier amenaza potencial al lenguaje que un gerente de marketing podría entender :)

    
pregunta user2795224 08.01.2014 - 13:25
fuente

2 respuestas

-2

Funcionará, pero no es lo ideal. https cifrará la URL y los encabezados, por lo que teóricamente está bien.

Como señalaste correctamente, si el APIKEY está expuesto, estás jodido. El hecho de que haya dos partes diferentes involucradas en la producción que posiblemente conozcan la contraseña también sería preocupante.

También podría ser una buena idea asegurarse de que APIKEY sea lo suficientemente fuerte para que el servicio no sea susceptible a ataques de fuerza bruta.

Editar: Como la gente ha señalado correctamente, el propietario de la aplicación puede usar un software de rastreo de paquetes para ver la clave de la API, algo que pasé por alto al pensar en la amenaza externa en lugar de hacerlo en el propietario de la aplicación ... tonto.

    
respondido por el user1020317 08.01.2014 - 13:56
fuente
2

Si es de servidor a servidor y usted controla el servidor que podría ser aceptable. Pero si esta API se usa desde el cliente, No, esto no está bien.

HTTPS asegurará el secreto de terceros, pero no del usuario mismo. Dado que el usuario controla la computadora, deciden qué certificados son de confianza y pueden instalar su propio administrador. Incluso hay una herramienta gratuita que hace esto conocido como Fiddler: se utiliza principalmente para fines de depuración y puede instalar un certificado HTTPS en el almacén de certificados y utilizarlo para MITM en todas las comunicaciones.

Por lo tanto, es trivial para cualquier usuario de computadora encontrar el APIKEY, y luego todos los demás usuarios son pwned. No es bueno .

Para marketing: "Esto permitiría a cualquier usuario técnico descubrir el APIKEY y luego podrían acceder a los datos de cada usuario".

    
respondido por el Ben 08.01.2014 - 18:19
fuente

Lea otras preguntas en las etiquetas