Subject Re: Encryption
Author Emil Totev
--- In firebird-support@yahoogroups.com, Geoff Worboys <geoff@...> wrote:
....
> You have TrueCrypt (or whatever) mount the encrypted file as
> if it were a disk (drive X: or something - under NTFS you can
> even mount as part of a path). The operating system sees this
> mounted file as if it were a disk/volume.
>

What I see as an important drawback here is that once you mount the volume, your database becomes visible (unencrypted!) to the entire OS and possibly to other users on the system. I would strongly prefer that only the db engine can see and serve the unencrypted data.

One possibility that I thought of, but didn't explore, is NTFS file encryption on Windows. If the server runs with a dedicated account, it can be set so that only this user can unencrypt the database. I don't know how strong this protection would be.

Generally, I notice that every time the subject of file encryption is raised, it gets quickly drowned in discussions of difficulties in key management and/or hacking techniques. At the same time, "mainstream" db products like Oracle, MS SQL, DB2 and even Interbase have implemented some kind of file encryption.

An important (IMHO) aspect is also the embedded deployment mode of Firebird. It seems to me that encryption will be much easier to implement here (the key/password can be supplied by the user when they start the application) and much more useful, because applications using embedded have their databases on less protected workstations and not on secure servers.

I understand that security is a complex matter and very difficult to do properly, on the other hand I believe that 90% of the users would be happy with even a non-100%-perfect solution - even a relative security should be better than no security at all, and often the data you'd like to encrypt is not worth the efforts someone should invest in breaking it.