¿Este servicio web basado en token es seguro?

2

Nota: la pregunta original se hizo en enlace pero aquí parece ser el lugar correcto para ello.

La empresa para la que trabajo actualmente tiene una aplicación interna, proporciona algunas API RESTful (más o menos, solo una colección de URL). Para acceder a las API fuera de la red de la empresa se requeriría una conexión HTTPS y un token (si se accede dentro de la red de la empresa, no se aplica ninguna restricción).

Para llamar a una API, la persona que llama (otra aplicación interna o empleado) deberá crear un token con algo como esto:

  1. Ordenar los parámetros de URL
  2. Hash parte de la URL ordenada con una sal (constante global)
  3. Utilice una subcadena del hash como token
  4. Agregue ese token como parámetro en la URL y envíe la solicitud

El servidor realizará el mismo algoritmo en la URL original, si el token sale igual, la solicitud se considera autenticada.

No soy un experto en seguridad, pero esto me parece mal, pero no puedo explicar por qué. Así que estoy pidiendo ayuda a los expertos en seguridad, ¿cuáles son los problemas que ve aquí? ¿O estoy siendo demasiado paranoico?

Gracias.

    
pregunta Community 03.06.2014 - 12:40
fuente

2 respuestas

4

Esto proporciona una autenticación cero de la llamada individual o la autenticidad de la llamada original que llega al servidor. Esto pudo haber sido pensado como una forma de verificar que la solicitud no se haya modificado, pero a menos que realmente esté formando una firma en lugar de un hash, entonces esto no proporciona seguridad.

Si el hash está firmado, se convierte en una forma segura de autenticar que los parámetros de la solicitud son auténticos, ya que el hash permite verificar que los parámetros no hayan cambiado y la firma impida que un atacante genere su propio hash para que coincida con los parámetros falsos.

    
respondido por el AJ Henderson 03.06.2014 - 15:35
fuente
0

Estás en lo correcto. Esto es poca seguridad. Se basa en un proceso secreto en lugar de una clave secreta. Cualquier seguridad que se base en mantener el proceso en secreto es inherentemente insegura

    
respondido por el Anthony 03.06.2014 - 18:26
fuente

Lea otras preguntas en las etiquetas