前端存储RSA公钥安全问题(求解)

注:我是小bai有些问题不太懂,希望亲们指点迷津,当前的前端指的是游览器web前端,我不清楚移动端会不会遇到类似的问题,如果会遇到麻烦一并指导一下:),如果我的思路设计提出的问题啥的有问题也麻烦亲们给我指出优化,感谢:)。

1、前言:当前项目接口校验使用的是jwt无状态token,用户每次请求服务端都会携带该token,该token有效时间可能比较久1~7天或更长,只要token泄露,不法分子就可以使用该token伪造请求,我想前端使用RSA公钥和时间等数据加密token,让加密后的数据成为一个短时间、一次性的消耗品。现在遇到一些疑问

2、问题:怎么样才能保证公钥的安全呢。公钥放在代码内会被反编译获取,想把公钥和源代码隔离,把公钥放在服务器文件内,使用环境变量获取。如果是在web端读取公钥用于加密的时候,打个断点不是就能看到变量内的数据了吗?

3、诉求:想了解一下前端怎么保证公钥的安全,欢迎大家回答~

img

确保公钥的安全性是非常重要的,以下是一些常见的方法来保护公钥的安全:

使用加密算法:使用非对称加密算法(如RSA)生成公钥和私钥对,确保私钥的安全性。只有私钥的持有者才能解密使用公钥加密的数据。

隔离公钥和源代码:将公钥存储在与源代码分离的位置,如服务器文件内。这样即使源代码被反编译,攻击者也无法直接获取到公钥。

使用环境变量:将公钥存储在服务器的环境变量中,而不是直接放在代码中。这样即使代码被反编译,攻击者也无法直接获得公钥。

加密传输:在web端读取公钥时,确保使用安全的传输协议(如HTTPS)来获取公钥,以防止中间人攻击。

访问控制:通过限制对存储公钥的服务器文件的访问权限,只允许授权的用户或服务访问,从而增加公钥的安全性。

定期更新:定期更换公钥,减少公钥被攻击者利用的风险。

需要注意的是,尽管采取了上述措施,仍然无法保证绝对的安全性。因此,在设计系统时需要综合考虑其他安全措施,如使用数字签名、访问日志监控等来增加整个系统的安全性。

对前端代码进行加密混合
删除注释,提高代码不可阅读性
禁止用户打开开发者工具