参考答案
公钥不被篡改的实现方法
将公钥放在数字证书中,只要证书是可信的,公钥就是可信的。
当公钥加密计算量太大时,该如何减少耗用的时间呢?
每一次对话(session),客户端和服务器端都生成一个”对话密钥”(session key),用它来加密信息。
由于”对话密钥”是对称加密,运算速度非常快,而服务器公钥只用于加密”对话密钥”本身,这样就减少了加密运算的消耗时间。
- 客户端向服务器端索要并验证公钥
- 双方协商生成”对话密钥”
- 双方采用”对话密钥”进行加密通信
上述第1、2步,又称为”握手阶段”(handshake)。
SSL 的工作过程
- 协商加密算法:A 向 B 发送 SSL 版本号和可选加密算法,B 选择自己支持的算法、并告知 A
- 服务器鉴别:B 向 A 发送包含公钥的数字证书, A 使用 CA 公开发布的公钥,对证书进行验证
- 会话密钥计算:A 产生一个随机秘密数,用 B 的公钥进行加密,然后发送给 B ,B 根据协商的算法,产生共享的对称会话密钥并发送给A
- 安全数据传输:双方用会话密钥加密和解密它们之间传送的数据,并验证其完整性
以上,是网络安全面试题【如何保证公钥不被篡改?】的参考答案。
输出,是最好的学习方法。
欢迎在评论区留下你的问题、笔记或知识点补充~
—end—
👇阅读作者更多技术干货👇
阿里架构 |双11秒杀 |分布式架构 |负载均衡 |单点登录 |微服务 |云原生 |高并发 |架构师
以上
关注作者「mikechen」公众号,获取更多技术干货!
后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》,后台回复【面试】即可获取《史上最全阿里Java面试题总结》