coo*_*per 6 mysql database security encryption
我收到数据,并在将其保存到数据库之前使用aes或blowfish对其进行加密,因此加密是在应用程序级别完成的.如果有人窃取数据库,数据将相对安全,除非他们也偷走了应用程序(存储/访问密钥的地方).
我现在正在寻找使用ezNcrypt for MySQL,Encryption-GENERAL或SQLCipher等库的数据库加密.
但我不太明白数据库加密是如何工作的.如果应用程序只将原始未更改的数据传递给数据库,并且数据库以某种方式解密数据本身,那么由于100%的加密组件被盗,如果数据库被盗,这不会使数据库级加密安全性降低吗?
在我目前的情况下,如果数据库被盗,攻击者将不得不加工第二个组件(应用程序级别的密钥)来解密数据库.但是使用数据库加密,数据库本身对加密负有全部责任,因此通过窃取数据库,攻击者是否拥有解密数据库所需的一切?
也许我不清楚数据库级解密如何工作.
加密算法应用于应用程序堆栈中的不同点,但最终,无论您使用应用程序还是数据库层解决方案,该过程都是完全相同的。密钥必须存储在某个地方,如果攻击者同时获得加密数据和密钥,那么他们就可以访问该数据。
因此,真正的问题归结为如何存储密钥:
* 我说主要是因为从技术上讲,密钥仍然可以在 RAM 中的某个地方以明文形式使用。但这比存储在磁盘上的东西要难得多(尽管有内存交换)。
特别是对于 MySQL,您可能会发现此线程很有帮助。