Tuleap stores a symmetric encryption key on disk. This key encrypts sensitive data before it is stored in the database, protecting it from unauthorized access by database administrators.
Administrators should not manually modify this key, as it has strict requirements regarding size and format. Any changes to the key would also require re-encrypting all existing encrypted data.
To ensure the integrity of this key Tuleap should:
- Prevent direct editing: The key is stored in a format and location that discourages manual modification.
- Detect missing key: a key should be detected as missing when one already been loaded/initialized.
To achieve that:
- The key will now be stored under
/var/lib/tuleap
, as it is not configuration data and should be backed up alongside other Tuleap data.
- The key will be stored using gzip encoding (RFC 1952) without compression, making it less likely that administrators will attempt to edit it (binary file with a checksum...).
- Key generation is blocked if another key has already been loaded. The system compares the timestamp of the gzip file (MTIME entry) against a value stored in the database during initial key generation.