Skip to content

Conversation

@yuval-po
Copy link
Contributor

This P.R introduces basic support for note encryption

NOTE: Encryption is in the ALPHA stage and should not be depended upon or deployed to production as-is
Data loss is a real possibility

Encryption is a custom, zero-knowledge scheme (nicknamed 'fractured key encryption') where the server provides part of the encryption parameters (Salts & KEKs) and the client uses them to both construct and encrypt its own encryption keys.
Once encrypted, the server cannot decrypt the data.
On the flip side, the client cannot decrypt the data without the server meaning the scheme also resists 'cold' attacks on the encrypted data, even given the original password.

More on the encryption mechanism in a separate article.

Additional changes included in the P.R:

  • Note management facade- provides better encapsulation of Note related operations
  • Added note operation debouncing (via NoteWrapper- a proxy-like class over raw Notes)
  • Better web-socket encapsulation
  • Dependency updates
  • Linting updates
  • New modals and components to support encryption-related configurations

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants