HTTPS

重要:面试关于HTTPS的工作流程
关于HTTPS的基本概念

HTTPS = HTTP + SSL

加密

既然要保证数据安全, 就需要进⾏ "加密".
⽹络传输中不再直接传输明⽂了, ⽽是加密之后的 "密⽂".
加密的⽅式有很多, 但是整体可以分成两⼤类: 对称加密 和 ⾮对称加密

明文:真正要表达的意思

密文:经过加密之后得到数据

**对称加密:**加密和解密使用同一个密钥,加密解密速度比较快,使用的解密算法是DES AES

⽐较理想的做法, 就是能在客⼾端和服务器建⽴连接的时候, 双⽅协商确定这次的密钥是啥~

非对称加密:密钥是一对(分别是公钥和私钥),加密解密速度比较慢,安全性更高,如果是公钥加密,私钥解密,私钥加密公钥解密,RSA


• 客⼾端在本地⽣成对称密钥, 通过公钥加密, 发送给服务器.
• 由于中间的⽹络设备没有私钥, 即使截获了数据, 也⽆法还原出内部的原⽂, 也就⽆法获取到对称密

• 服务器通过私钥解密, 还原出客⼾端发送的对称密钥. 并且使⽤这个对称密钥加密给客⼾端返回的响
应数据.
• 后续客⼾端和服务器的通信都只⽤对称加密即可. 由于该密钥只有客⼾端和服务器两个主机知道, 其
他主机/设备不知道密钥即使截获数据也没有意义.
由于对称加密的效率⽐⾮对称加密⾼很多, 因此使用⾮对称加密是对对称加密的密钥进行加密, 传输业务逻辑仍然使⽤对称加密.

客⼾端如何获取到公钥并且确定不是⿊客伪造的?

黑客可以通过中间人攻击来获取到对称密钥,大致流程如下

如何解决中间人攻击引入证书

服务端在使⽤HTTPS前,需要向公正机构申领⼀份数字证书,数字证书⾥含有证书申请者信息、公钥信 息等。服务器把证书传输给浏览器,浏览器从证书⾥获取公钥就⾏了,证书就如⾝份证,证明服务端
公钥的权威性
这个 证书 可以理解成是⼀个结构化的字符串, ⾥⾯包含了以下信息:
• 证书发布机构
• 证书有效期
• 服务器的 公钥
• 证书所有者
• 持有者网站的主域名
最重要的字段:数字签名,这个字段是经过加密之后的校验和(根据上述五个字段),基于CRC/MD5
当服务端申请公正证书的时候,公正机构会对该服务端进⾏审核,并专⻔为该⽹站形成数字签名,过程如
下:

  1. 公正机构拥有⾮对称加密的私钥A和公钥A'
  2. 公正机构对服务端申请的证书明⽂数据进⾏hash,形成数据摘要
  3. 然后对数据摘要⽤公正私钥A'加密,得到数字签名S
    服务端申请的证书明⽂和数字签名S 共同组成了数字证书,这样⼀份数字证书就可以颁发给服务端了,服务器会保存好该证书

    当客⼾端获取到这个证书之后, 会对证书进⾏校验(防⽌证书是伪造的).
    • 判定证书的有效期是否过期
    • 判定证书的发布机构是否受信任(操作系统中已内置的受信任的证书发布机构).
    • 验证证书是否被篡改:
    1)根据这五个字段来计算校验和称为校验和1

    2)针对证书的数字签名进行解密,由于数字签名是基于公证机构的私钥来进行加密的,所以解密需要公正机构的公钥,这个公钥是操作系统内置公正机构的公钥,用这个公钥来进行解密得到的校验和2
    3)客户端来比较校验和1和校验和2是否相等,如果相等证明证书没有被篡改过

相关推荐
郝学胜-神的一滴6 小时前
Socket实战:从单端聊天到多用户连接的实现秘籍
服务器·开发语言·python·网络协议·pycharm
北京耐用通信7 小时前
工业自动化领域耐中达讯自动化CC-Link IE转EtherCAT技术解决方案
人工智能·物联网·网络协议·自动化·信息与通信
运维儿7 小时前
3.冲突域与广播域:二层网络的关键概念
网络协议·智能路由器·信号处理·linux 网络·云计算网络
taxunjishu9 小时前
智能仓储无人化管控 Profinet转MODBUS TCP全流程互联
网络·网络协议·自动化
运维儿9 小时前
2.二层网络为什么存在冲突?如何解决冲突和冲突域?
网络·网络协议·linux 网络·云计算网络
hzxpaipai10 小时前
2026 杭州外贸网站制作公司哪家好?派迪科技确实有点技术
前端·科技·网络协议·网络安全
上海云盾-小余10 小时前
服务器被入侵后如何快速止损?从排查到加固的应急处置全流程
网络·网络协议·tcp/ip·安全·web安全
北京耐用通信10 小时前
1个网关=100+设备兼容:耐达讯自动化CC-Link IE 转 EtherCAT重新定义工业协议转换价值
人工智能·科技·网络协议·自动化·信息与通信
AugustRed10 小时前
AI流式输出方案SSE vs WebSocket对比
人工智能·websocket·网络协议
西西弟10 小时前
网络编程基础之TCP基本通信
服务器·网络·网络协议·tcp/ip