如何保证公钥不被篡改?

参考答案

公钥不被篡改的实现方法

将公钥放在数字证书中,只要证书是可信的,公钥就是可信的。

当公钥加密计算量太大时,该如何减少耗用的时间呢?

每一次对话(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面试题总结

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧