前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HTTPS与HTTP

HTTPS与HTTP

作者头像
用户6055494
发布2019-08-20 11:33:25
6420
发布2019-08-20 11:33:25
举报
文章被收录于专栏:AVAJAVAJ

本文主要讲解Http与https的区别,以及https是怎样加密来保证安全的。

首先讲这俩个协议的简单区别:

HTTP:超文本传输协议。

HTTPS:安全套接字层超文本传输协议HTTP+SSL

HTTP:客户端和服务器端传递的是明文的消息。

HTTPS:将明文进行加密后再在客户端和服务器之前进行传递。

HTTP采用80端口,而HTTPS采用443端口。

HTTPS需要申请证书。

HTTPS采用非对称加密和对称加密两种加密方式来保证传输信息的安全性:

非对称加密:用公钥和私钥来加解密(有同学这里不懂的话可以看看资料)。

对称加密:加密解密都用同一套秘钥。

注:非对称加密更加安全,对称加密速度更快。

https的请求流程:

  1. 客户端(浏览器)向服务器请求https连接。
  2. 服务器返回证书(公钥)到客户端。
  3. 客户端随机的秘钥A(用于对称加密)。
  4. 客户端用公钥对A进行加密。
  5. 客户端将加密A后的密文发送给服务器。
  6. 服务器通过私钥对密文进行解密得到对称加密的秘钥。
  7. 客户端与服务器通过对称秘钥加密的密文通信。

上述过程中第2步骤中是存在风险的,因为公钥是暴露出来的,当公钥被中间人非法截获时,同时将公钥替换成中间人自己的公钥发送给客户端,从而得到对称加密的秘钥,进而伪装与客户端通信。

为了解决这种问题,就引入了数字证书与数字签名

所以在第2步骤时,服务器发送了一个SSL证书给客户端,SSL证书中包含了具体的内容有证书的颁发机构、有效期、公钥、证书持有者、签名,通过第三方的校验保证身份的合法。

一、首先客户端会读取证书所有者、有效期等信息进行校验。

二、客户端(浏览器)开始查找操作系统中已内置的受信任的证书发布机构CA,与服务器发过来的证书的颁发CA比对,用于验证证书是否为合法机构颁发。

三、如果找不到,浏览器就会报错。

四、如果找到了,就会取出其中的公钥,对证书内的签名进行解密。

五、使用相同的Hash算法对签名进行去摘要并与服务器发来的摘要进行对比。

六、如果对比一致,则合法,这样就得到公钥了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员面试鸭 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
SSL 证书
腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档