-
Notifications
You must be signed in to change notification settings - Fork 35
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Decouple key derivation from vault format #95
Milestone
Comments
overheadhunter
added a commit
that referenced
this issue
Nov 25, 2020
* Remove methods from CryptoFileSystemProvider that deal with password handling or key derivation (will be added to CryptoLib) * Added generic `KeyLoader` interface to allow usage of keys from other sources than just password-based * Added `VaultConfiguration` to deal with `vault.cryptomator` files Related to #7, #95 and #94
Merged
overheadhunter
added a commit
that referenced
this issue
Dec 8, 2020
This was referenced Apr 16, 2021
overheadhunter
added a commit
that referenced
this issue
Apr 16, 2021
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
In order to allow features like externally managed masterkeys (#7), we need to distinguish key derivation from vault decryption. If key derivation is a separate process that feeds into the decryption, it can be replaced by other modules that produce raw keys.
We'd need two different files:
masterkey.cryptomator
999
(to prevent older versions from opening this vault)vault.cryptomator
Migration
To migrate from vault version 7 to vault version 8, the following steps are required:
masterkey.cryptomator
(vault format should still be 7)vault.cryptomator
in JWT formatalg
toHS256
kid=masterkeyfile:masterkey.cryptomator
(RFC 7515kid
header field; allow other values eventually - see Pass in external masterkey instead of reading it from vault dir #7, Use URIs for vaultconfig.cryptomator's kid #97)jti={RANDOM_UUID}
to uniquely identify the vaultformat=8
ciphercombo=SIV_CTRMAC
(only possible config in vault format 7; eventually allow other values such asSIV_GCM
- see Encrypt file contents using GCM #94)shorteningThreshold=220
masterkey.cryptomator
Opening a vault with format 8
vault.cryptomator
kid
header and, depending on its value, retrieve the masterkey from the user/system/keystore/...format
is supportedciphercombo
The text was updated successfully, but these errors were encountered: