¿Solicitud firmada frente a autenticación de resumen HTTP para la autenticación API?

2

Por solicitud firmada me refiero a algo como esto (ejemplo simplificado):

El cliente crea una firma en su solicitud: $sig = hash('sha256', $api_key.$data); que genera 7409ur0k0asidjko2j por ejemplo. Luego envía esto a su solicitud: example.com/api/7409ur0k0asidjko2j

Ahora, el servidor receptor realiza el proceso exacto para realizar una coincidencia para la firma.

¿Cuál es generalmente más seguro, una solicitud firmada como esta o una autenticación de resumen HTTP con el fin de autenticar solicitudes a un servidor de API? Tenga en cuenta que asumimos que SSL no está instalado.

    
pregunta IMB 12.08.2012 - 19:24
fuente

2 respuestas

3

Si la firma cubre toda la solicitud, se garantiza la integridad. La repetición de solicitudes sigue siendo una amenaza potencial (piense: abuso de recursos).

Con la autenticación de resumen HTTP, la solicitud podría modificarse en tránsito. Estás a merced de un ataque MITM (Man In The Middle).

De todos modos, realmente deberías usar TLS proporciona seguridad a nivel de transporte :

  • garantía de confidencialmente de la carga útil , no solo de contraseña o autenticador (sino no tamaño de la carga útil; tenga cuidado si el tamaño de la carga útil puede revelar información útil)
  • garantía de integridad de la carga útil (pero no garantiza la dirección IP del cliente WRT!)
respondido por el curiousguy 12.08.2012 - 20:26
fuente
2

La firma de la solicitud podría ser mejor, pero debería implementarla correctamente. La construcción de hash (clave || datos) es vulnerable a un ataque de extensión de longitud de hash y nunca debe usarse. Aquí tienes una buena explicación de este tema: Hash Length Extension Attacks . Debería usar HMAC para la autenticación de mensajes.

La firma de la solicitud es mejor que la autenticación de resumen HTTP, ya que también podría proteger la integridad de los datos enviados en la solicitud.

    
respondido por el pgolen 12.08.2012 - 20:23
fuente

Lea otras preguntas en las etiquetas