在MySQL中存储AES_ENCRYPT密钥的位置?

时间:2011-08-01 20:10:12

标签: iphone mysql ios encryption

我为iPhone / iPod Touch开发了一个必须访问MySQL数据库的应用程序。我写了一个PHP API,我可以从iPhone应用程序调用。

在数据库中,我存储了我要加密的敏感数据。我想我会使用AES_ENCRYPT。我的问题是存放密钥的位置 你知道在哪里存储加密/解密的密钥以便任何其他人都看不到它,例如,你很高兴。黑客的攻击。<​​/ P>

1 个答案:

答案 0 :(得分:3)

一般来说:

  1. 请勿将密钥保存在Web服务器可直接访问的服务器的一部分中。例如,如果您的网站位于/var/www/home,请不要将密钥放在那里。把它放在Web服务器树的一部分之外。
  2. 确保正确设置包含密钥的文件夹的权限。您的PHP应用程序只需要具有READ访问权限,而不是在该文件夹(和密钥文件)上写入或执行。
  3. 确保服务器本身有一个好密码(长,很多随机数字,字母和符号)。
  4. 确保服务器受到正确配置的防火墙的保护,并使用最新的安全补丁保持最新。
  5. 至于试图将密钥和数据分开 - 这是一个长期存在的问题,没有很好的解决方案。问题的简单事实是您的应用程序必须能够访问密钥。这或者意味着强迫所有将要使用该应用程序的人记住密钥 - 这可能会导致在普通视图中显示器上的粘滞便笺 - 或者它必须住在应用程序可以找到它的某个地方,或者在同一个地方服务器或其他。