Sto lavorando a un'app che scaricherà file da server esterni su https e li memorizzeremo su disco in modo relativamente sicuro. In particolare, utilizzando una IV crittograficamente unica, un blocco di crittografia AES256, modalità di blocco CTR e un hash HMAC dei dati crittografati e IV.
Uno dei requisiti di questo progetto è che non devono essere memorizzati file duplicati. Data la necessità di un IV univoco per archiviare in modo sicuro i file, non posso semplicemente usare un hash del file crittografato per vedere se il download è un duplicato. Uno sha256 o sha512 del contenuto di testo in chiaro non è sufficiente perché il client può scaricare e archiviare file di singoli caratteri, rendendo il loro contenuto facilmente indovinato, potenzialmente aprendo il sistema a vettori di attacco in testo in chiaro noti.
Quindi mi chiedevo se sarebbe stato considerato ragionevolmente sicuro per memorizzare gli hash HMAC del testo in chiaro, usando una chiave derivata da Argon2ID come chiave di firma HMAC?
Questi hash verrebbero archiviati in un database di chiavi / valori e usati come chiave di ricerca per vedere se un file scaricato è già esistente. La chiave Argon2ID non verrà mai memorizzata.