¿Cuáles son los riesgos de proteger una API con una sola clave (sin secreto)?

2

Entiendo que muchas API están protegidas usando un (posiblemente público) API Key , para identificar quién realiza la solicitud, y un secret para hmac los parámetros y determinar si el cliente es quien dice ser .

Lo que pasa es que, si estoy seguro de que API Key es privado y usa https :

  1. ¿Cuáles son los riesgos de no usar un secreto para "firmar" la solicitud?
  2. El único que me viene a la mente es un MiTM que modifica los parámetros, pero no debería preocuparme si uso HTTPS, ¿no?
  3. ¿Es otra capa de seguridad solo para estar seguro?
pregunta Sergio Aristizábal 08.10.2014 - 02:30
fuente

1 respuesta

1

Primero: no puedes estar seguro de que la clave API sea privada y seguirá siendo privada.

Tan pronto como el dispositivo / producto / aplicación esté en el mundo real, puede y se romperá. No confíe en ello.

Y tan pronto como la clave se filtre, nada detendrá a nadie para que simplemente comience a enviar solicitudes, y usted no puede saber quién está enviando o cómo filtrar o bloquear solicitudes fraudulentas.

Crear un secreto no es difícil, y debes hacerlo. Le ahorrará muchos problemas en el camino.

Si un hacker rompe la aplicación y obtiene la clave y el secreto, usted revoca el acceso a ese secreto y él pierde el acceso a la API. Todos sus otros usos continúan usando la API sin problema. Sin el secreto, debe crear otra clave y todos sus clientes perderán el acceso.

    
respondido por el ThoriumBR 08.10.2014 - 21:10
fuente

Lea otras preguntas en las etiquetas