Digamos que estoy creando un programa que funciona sin conexión, por lo que la información de la contraseña debe almacenarse localmente (lo sé, no es óptima, pero este es solo un proyecto personal mío). En términos de mantener la contraseña segura, pensé que podría utilizar un KDF como PBKDF2 o scrypt para obtener dos claves de la contraseña, una para la autenticación y otra para el cifrado / descifrado para mantener segura la información confidencial dentro del propio programa.
Ahora, digamos que quería agregar una función adicional para que el usuario pueda limitar los intentos de contraseña, de manera que exceder estos límites podría bloquear a un posible atacante fuera del programa por un período de tiempo determinado. Mi pregunta sería cómo mantener segura la información, como la cantidad de intentos realizados con la contraseña. Por ejemplo, el programa registrará la cantidad de intentos realizados en un archivo, de modo que si un atacante potencial pudiera cerrar y volver a abrir el programa, se guardó la cantidad de intentos ya realizados. ¿Cuál sería un método que podría emplear para asegurar este registro de modo que un atacante no pueda entrar y cambiar el número registrado de intentos para decir 0 y continuar para un número ilimitado de intentos?