¿Cómo probar la identidad de mis usuarios a partir de los archivos JSON públicos?

0

En el sistema que estoy creando, los usuarios crean sus propios archivos JSON públicos en Internet, disponibles para todos. Mi sistema no almacena estos archivos JSON ni tiene nada, excepto el acceso de solo lectura a esos archivos.

Cuando mi software toma uno de estos archivos JSON y lo examina, necesito saber a cuál de mis usuarios pertenece ese archivo.

Tengo una vaga idea de una solución, pero me gustaría un comentario:

Requeriré que el usuario incluya un campo en el JSON que contenga un poco de información firmada, quizás su ID de usuario. Mi software proporciona al usuario esta cadena de información para incluir en su JSON.

En mi software, el usuario debe especificar la URL en la que se puede encontrar el JSON. Esto me permite ignorar cualquier archivo JSON en el que el usuario no haya especificado también la URL.

¿Pensamientos? ¿Esto tiene sentido? ¿Cualquier problema? gracias!

    
pregunta Duke Dougal 17.08.2016 - 04:20
fuente

3 respuestas

1

No, me temo que no tiene sentido. Si firma solo partes de él, cualquiera puede copiar esa parte de signo en su JSON.

Sería mejor firmar todo el JSON, calculando un hash y luego firmando eso. De esa forma nadie podrá alterarlo sin tener que volver a firmarlo.

    
respondido por el daniel f. 16.09.2016 - 09:07
fuente
0

Tiene sentido que un usuario tenga que firmar todo el archivo . Si hay una parte firmada allí que todos pueden copiar, puedes usar el nombre de usuario en texto sin formato y confiar en que nadie lo copiará.

    
respondido por el Josef 17.08.2016 - 08:04
fuente
0

La clave para firmar los datos es que cualquier cambio en los datos hará que la firma no sea válida y que solo el propietario del secreto puede firmar los datos.

Aquí puedes usar dos formas:

  • firma el archivo json en un archivo auxiliar. Pros: fácil de configurar - contras: los cambios no significativos en el json (por ejemplo, agregar un espacio fuera de una cadena) aún requieren un nuevo archivo de firma y debes cargar el archivo auxiliar junto con el json uno
  • agregue un campo de signo al json original que contendrá la firma de una concatenación de todos los datos en un formato preciso. Pros: solo un archivo y los datos reales están firmados, no una representación json en particular. Contras: cada cliente debe poder construir la representación y firmarla.
respondido por el Serge Ballesta 16.09.2016 - 10:49
fuente

Lea otras preguntas en las etiquetas