RSA是不是只确保数据在传输过程中的安全,而不确保客户端被破解导致数据在传输前就被窃取了
“正因为rsa不对称特点导致了只能一方加密另一方解密?”是的。但是一般都不会只用rsa,而是用某种协议达到可以双向加密的效果。“但如果客户端被反编译了aes密钥不就泄漏了?”客户端每次临时生成一个新密钥。“如何确保客户端不被破解?”破解是指破解客户端程序的话,就是上面说的那样。指病毒或黑客攻击的话,不能。
■网友
稍稍细化一下 @于航的回答。1. 正因为rsa不对称特点导致了只能一方加密另一方解密?只用一对钥匙,的确。用两对RSA钥匙就能互相通信了。客户端用服务器的公钥加密,服务器用客户端的公钥加密。2. 也有说用rsa传输aes密钥再用对称加密算法传数据,因为rsa效率较低。但如果客户端被反编译了aes密钥不就泄漏了?程序源代码本身不存储key,所以反编译也没用。这种混合方法(hybrid)其实你已经天天在使用了,比如https中的TSL/SSL部分。关键正如 @于航所说,每次会话,服务器和客户端都会“协商”出一个“新”的AES key。而且如果实现没有问题,这个机制还会保证攻击者即使拿到了旧的AES key,也没法解密“新”的传输信息。即使是开源的客户端,比如直接使用open ssl或者crypto++做成的,只要是每次会话(session)都协商一个新的session key,就没法仅仅通过破解客户端代码来伪装当前的客户端。这样只要本地数据安全,就不会有破解带来的威胁。3. rsa是不是只能确保数据在传输过程中的安全而无法保证客户端被破解了,传输前数据就被窃取了?如果是,如何确保客户端不被破解?RSA本身只能保证在非主动攻击下传输数据的安全。(passive attack security,教科书上的RSA其实连这个都保证不了)如果客户端已经被欺骗了,比如在应当使用服务器公钥A的情况下却使用了攻击者的公钥B,则无需破解客户端,攻击者就已经能拿到讯息了。(搜索 man in the middle attack)客户端破解或者本地数据保密属于软件加密和系统安全的范畴,已经不是仅仅通过改进通信加密协议能解决的了。
推荐阅读
- 河北保定持续治理白洋淀上游污染确保入淀水质达标
- 银行系统的研发岗(程序员)是不是很难进(校招)推广到国企的研发岗(程序员)呢
- 鬼斗车|安全性是不是韩系车短板?到车里去寻找下答案!
- 纯电|实力大增,更新后沃克斯豪尔Corsa水平如何?
- 孩子|张奶奶笔记:母乳是不是吃饱了?(权威文献摘录)
- Syniverse是不是南京最难进的IT公司
- 如果把DNS从godaddy转到DNSPOD是不是所有的二级域名都要重新设置,然后等这个各个ISP的缓存重新解析啊
- 看看老板是不是在画饼
- 当有人形容你翻脸比翻书还快,咋回答
- 优酷的立体声功能是不是脑残设计
