【发布时间】:2015-09-02 12:05:29
【问题描述】:
如果我想在服务器上加密数据,并将其发送到我已经实现并发送给客户的客户端程序,我是否可以将解密密钥和算法存储在客户端程序中,而不会冒险逆向工程我的客户端程序将使用户能够解密我发送的所有数据。 也就是说,我希望我的客户端程序控制它解密的内容和不解密的内容。
谢谢 济济
【问题讨论】:
标签: encryption server client
如果我想在服务器上加密数据,并将其发送到我已经实现并发送给客户的客户端程序,我是否可以将解密密钥和算法存储在客户端程序中,而不会冒险逆向工程我的客户端程序将使用户能够解密我发送的所有数据。 也就是说,我希望我的客户端程序控制它解密的内容和不解密的内容。
谢谢 济济
【问题讨论】:
标签: encryption server client
您可以毫无风险地对算法进行硬编码。安全性必须基于密钥的保密性,而不是算法的保密性。
要秘密存储解密密钥,您可以使用密钥库。
我不知道您使用的是哪种语言,但 Java 包含自己的密钥库,而对于 C,您可以通过 NSS 获得密钥库。要打开这些密钥库,您需要一个密码,用户可以在客户端应用程序启动时输入该密码。
如果您的客户端运行在 linux 和 gnome 上,那么您也可以使用 Gnome 的密钥环,在这种情况下,用户无需输入密码即可打开密钥环(登录密码也用于打开密钥环) .
【讨论】: