关于使用白盒密钥保护SecretKey的问题
TjFish opened this issue · comments
TjFish commented
-
相关文档: 白盒密钥管理
-
背景描述:SecretKey是用于建立客户端程序与服务端程序安全通讯的密钥。如果直接写死在代码里,攻击者可以分析源代码从而轻易的获取密钥。
-
解决思路:是对SecretKey进行加密保护,在客户端程序中,SecretKey以密文形式存储。在客户端程序运行过程中,执行解密程序对SecretKey密文进行动态解密。
-
问题描述:在目前的“白盒密钥保护SecretKey”的方案中,解密程序由白盒密码实现,并以二进制文件的形式部署到客户端程序中。
关于白盒密码的使用存在一个问题:- 一方面,假设攻击者可以窃取到解密程序的二进制文件,就可以对代码中写死的SecretKey密文进行解密,从而得到SecretKey。
- 另一方面,假设攻击者无法截取到解密程序的二进制文件,那么为什么不使用传统的密码学算法如AES、SM4,将解密密钥写入到文件中,然后部署到服务器上呢?
综上,使用白盒密钥保护SecretKey是有必要的么?白盒密钥在当前场景下相比于传统方案又有哪些优势呢?
希望能得到您的解答,谢谢!