Shamir's Shared Secrets and Team Password Management via Trackers | |
This feature introduced in Tiki22 allows you to encrypt password or any other sensitive info with an encryption key. These passwords or sensitive data are stored in the Trackers based on Shamir's Shared Secret algorithm. This is an improved version of shared secret encryption (symmetrical encryption) as we do not need to secure shared keys to the point where they cannot be used alone to decrypt data. Even if a hacker accesses the Tiki database, he still won't be able to decrypt the data (easily) without a second shared key. None of the users will be able to decrypt the data alone without the key in the Tiki database. We use https://github.com/teqneers/shamir |
Overview | |
Imagine a door lock that requires at least 3 keys at the same time to open it. So, if you divide the secret key into 5 parts and give them to different users and use a minimum threshold of 3, at least 3 people must provide their share in order to reconstruct the secret. What will happen ? Here is the idea:
|
How it works ? | |
Requirement | |
Starting with the activation of User encryption that requires the Sodium PHP extension for encryption otherwise, you will not be able to activate it. "Settings" > "Security" > "Control Panels" > Search box and search for "user encryption" preference (And once it is active, it can be found at: https://example.org/tiki-admin.php?page=security#content_admin1-1).
|
Create encryption key | |
Once "User encryption" is active, you can then proceed to create the key by proceeding as follows: "Settings" > "Control Panels" > "Security" > "Encryption" tab > "Create key" tab (https://example.org/tiki-admin.php?page=security#contentencryption-2)
|
Generated keys | |
After the creation of the encryption key, a number of keys will be generated according to the number of selected users, each of which can be used to encrypt and decrypt data.
|
Encrypted keys list | |
When changing encryption key, enabling the option "Regenerate shares" will create new secret shares with the defined number of shares. Old shares will no longer be valid, so you will need to distribute the new shares to team members again. Data encrypted with existing key will stay intact and new shares will be able to decrypt it.
|
Add encryption option to field | |
It is, therefore, necessary to create a Tracker to take advantage of the benefits of this feature.
|
Create Tracker item | |
When creating the item, you will see the message "Field data is encrypted using key" followed by the name of the key used below the field. As on the image below:
|
Using keys | |
We copied one of the keys to finally use it and have access to the encrypted information.
|
Notes | |
|
Related | |
|