Necesito una forma de autenticar que un archivo fue generado por una máquina en particular que tiene una ID única y un secreto aleatorio único también conocido por el autenticador, como una dificultad adicional que el productor de archivos no puede comunicarse directamente con la máquina de autenticación. Mi metodología actual es la siguiente:
Gen de archivo:
- File Producer pasa el tiempo y el secreto a un algoritmo de hash no reversible y lo exporta
{
id: 1337,
time: 1435102405,
oneTimekey: 99754106633f94d350db34d548d6091a,
...
}
Comprobación de autenticidad de archivos:
- Si el tiempo especificado en el archivo está dentro de límites arbitrarios y se encuentra un secreto asociado con el ID, de lo contrario fallará
- Pasa el tiempo y el secreto a un algoritmo de hash no reversible si coincide con oneTimeKey, entonces se supone que es válido.
En esta metodología tengo que almacenar el secreto en una base de datos, preferiría no hacerlo, pero no puedo pensar en una forma efectiva de lograr este objetivo de otra manera. ¿He mirado algo? ¿Puedo lograr esto sin almacenar el secreto en el lado de la autenticación?