CY *_*Y T 3 linux security encryption digital-signature
我正在开发一个客户端-服务器应用程序,该应用程序要求一些文件在发送给客户端之前必须先使用私钥进行签名。然后,客户端将使用公钥验证签名。因此,私钥将始终需要位于服务器上,并且可由服务器应用程序读取。
问题是我想知道在哪里存储我的私钥,以防万一服务器受到破坏时更安全。
我应该将其存储在数据库中还是应该将其存储为文件并使用文件许可权进行控制?
谢谢。
选项选项是使用以不同用户身份运行的setuid二进制文件进行证书签名。
该其他用户将对该密钥具有读取权限,但是“普通”应用程序服务器用户将不会具有读取权限。因此,如果有人破坏了应用程序服务器的帐户,他们将只能签署任意证书,而不能窃取CA私钥。
另一种可能性是具有某种RPC机制,以将签名请求传递给以另一个用户身份运行的另一个进程(可能在另一个主机上)。或同一主机上的另一个VM(但不在应用程序服务器计算机内部)。
这些方法中的任何一种都只能减少折衷的影响,但这仍然很糟糕。
| 归档时间: |
|
| 查看次数: |
2892 次 |
| 最近记录: |