Per la mia mente ingenua, sembra che la crittografia di un documento con AES dovrebbe andare così:
HumanPassword --- | hash | - > chiave --- | AES | - > Cifrato
plaintext|--^
E la decifrazione come questa:
HumanPassword --- | hash | - > chiave --- | AES | - > Plaintext
ciphertext|--^
E come tale sembra che il pacchetto crittografato (il file excel) non debba contenere l'hash della password umana e inoltre che non sia sicuro per esso fallo .
Uno dei miei colleghi dice che "se il file non contiene l'hash, quale sarebbe il confronto con la password?"
Mi sembra che non debba fare alcun confronto. Dovrebbe decifrare con qualsiasi chiave ricavata dall'hash e, se ha funzionato, il risultato non sarà privo di senso. Se non ha funzionato, Excel dovrebbe vedere assurdità e dire "Password errata, nincompoop". Ma non dovrebbe avere l'hash nel file. Non dovrebbe essere necessario confrontare nulla.
Tuttavia, sembra che abbia l'hash nel file.
Quando il mio collega e io abbiamo scelto questo file a parte, abbiamo scoperto che esisteva effettivamente un valore hash e ora stiamo eseguendo attacchi di dizionario e forza bruta contro di esso.
Quindi suppongo che la mia domanda sia questa:
Perché un documento MS Office 2010 crittografato deve memorizzare l'hash della password?
E, se le domande secondarie sono appropriate su SE,
Se non è assolutamente necessario, perché Microsoft ha scelto di farlo? Non è meno sicuro se l'algoritmo hash non è molto buono?