To enhance the security of the stored data a bit more, a Master Key should be introduced. By default, the system is always creating one when starting, the Key is initially based on static information, meaning the initial Salt. And is being updated with the Salt also.
The Master Key should be used to encrypt all static data, i.e. the Member Account specific Salt and the Initial Vector for each Data Object stored. This way, it will become even harder for anyone with access to the database to unlock the content, as information is encrypted using different Keys - independently.
A new WebService call should also be added to the Management interface, called "masterKey" which will simply attempt to alter the Master Key used. As the Master Key is not persisted, but kept in memory - changing it to an invalid key, will basically be the same as locking down the system. It can be unlocking again by invoking the request with the correct data.
To enhance the security of the stored data a bit more, a Master Key should be introduced. By default, the system is always creating one when starting, the Key is initially based on static information, meaning the initial Salt. And is being updated with the Salt also.
The Master Key should be used to encrypt all static data, i.e. the Member Account specific Salt and the Initial Vector for each Data Object stored. This way, it will become even harder for anyone with access to the database to unlock the content, as information is encrypted using different Keys - independently.
A new WebService call should also be added to the Management interface, called "masterKey" which will simply attempt to alter the Master Key used. As the Master Key is not persisted, but kept in memory - changing it to an invalid key, will basically be the same as locking down the system. It can be unlocking again by invoking the request with the correct data.