系统相关
首页 > 系统相关> > linux – 将私钥存储在数字签名服务器上的位置?

linux – 将私钥存储在数字签名服务器上的位置?

作者:互联网

我正在开发一个客户端 – 服务器应用程序,它需要在发送到客户端之前使用私钥对某些文件进行签名.然后,客户端将使用公钥验证签名.因此,私钥将始终在服务器上,并且可由服务器应用程序读取.

问题是我想知道在哪里存储我的私钥,在服务器泄露的情况下泄露更安全.

我应该将它存储在数据库中还是应该将其存储为文件并使用文件权限来控制?

谢谢.

解决方法:

选项选项是使用setuid二进制文件,它以不同的用户身份运行以进行证书签名.

此其他用户可以对密钥进行读访问,但“普通”应用服务器用户将无法读取访问权限.因此,如果有人破坏了应用服务器的帐户,他们只能签署任意证书,而不能窃取CA私钥.

另一种可能性是使用一些RPC机制将签名请求传递给作为另一个用户运行的另一个进程,可能在另一个主机上.或者在同一主机上的另一个VM(但不在app服务器机器内).

任何这些方法都可以减少妥协的影响,但仍然很糟糕.

标签:linux,security,encryption,digital-signature
来源: https://codeday.me/bug/20190726/1543361.html