curlysemi / diary

Toy plausible-encryption experiment
MIT License
2 stars 1 forks source link

Alternative to passwords #2

Open curlysemi opened 5 years ago

curlysemi commented 5 years ago

It occurs to me that a user might want to create a whole class of entries for the same 'diaries' (if that makes sense) and retyping the passwords every single time could get very frustrating very quickly. Additionally, if we are to actually take the password route, the passwords need confirmation fields, because it wouldn't be a good user experience if they happened to mistype their intended password.

While the existing base functionality makes sense for a single-entry system, we should consider other use-cases and attempt to support them, especially as it doesn't seem to be too difficult.

While diary is the name of the application, users could define "journals" that entries are intended for. That way, the user could simply pick the journal each entry is intended for without having to type passwords (and without the convenience of lazy, bad passwords).

Achieving this does require asymmetric cryptography, but I don't think that's too terrible of a trade-off. It would be a fairly simple use of ECDH to arrive upon the key to use with ChaCha20. We'd just need to also include the ephemeral public key(s?) with the entry.

curlysemi commented 5 years ago

One concern is that we don’t want it known how many different “journals” there are.

Leveraging the existing system, one of the messages for the first entry (0) could be a list of public keys—again, with more public keys than actual journals.

Using the nume scheme, a user could identify their journals and targeted decoys from the junk journals.


This leaves the problem of bad passwords, and how the private keys for the journals are to be managed. I’m leaning towards 12-word phrases for those, but there’s something I think I could do for those to make them easier to learn/remember.