novasamatech / parity-signer

Air-gapped crypto wallet.
https://vault.novasama.io
GNU General Public License v3.0
558 stars 167 forks source link

History crypto protection #802

Closed Slesarew closed 1 year ago

Slesarew commented 3 years ago

Design some way to protect history from tampering if adversary has access to phone memory. Blockchain? What would be the key? How to verify it?

kirushik commented 3 years ago

Some (poorly thought through) ideas: we already have keys we consider "secure enough" in our keyring of Signer. We can make our log verified via a hash-chain (like in git: id of state X := hash(contents at X, id of state X-1)), and sign the hash every time we sign anything else. This would reduce potential log tampering to the time since the last signing, while not introducing any significant new trust requirements.

Open questions:

Slesarew commented 2 years ago

The history page now shows checksum of history db tree. User can memorize the u32 shown and check for it next time Signer is launched; history is automatically salted with full length system timestamps that are difficult to tamper; the same timestamps could be used to match checksum so things with direct memory access can break through. This feature is not easy to use and will not be used by most users, but it's better than nothing.

krodak commented 1 year ago

No user request or planned featured on roadmap with relation to this, closing for now.