没有合适的资源?快使用搜索试试~ 我知道了~
双向HTTPS解决方案.docx
需积分: 10 5 下载量 157 浏览量
2019-12-30
15:22:22
上传
评论
收藏 1.39MB DOCX 举报
温馨提示
试读
24页
https双向认证原理,证书生成,nginx配置,Java调用,应用实例,http通信存在得问题,单向认证流程,双向认证流程,使用curl作为客户端调用验证
资源推荐
资源详情
资源评论
关于双向 HTTPS 解决方案
一 目前情况
1.1 HTTP 通信存在的问题
容易被监听
http 通信都是明文,数据在客户端与服务器通信过程中,任何一点都可能被劫
持。比如,发送了银行卡号和密码,hacker 劫取到数据,就能看到卡号和密码,
这是很危险的
被伪装
http 通信时,无法保证通行双方是合法的,通信方可能是伪装的。比如你请求
www.taobao.com,你怎么知道返回的数据就是来自淘宝,中间人可能返回数
据伪装成淘宝。
被篡改
hacker 中间篡改数据后,接收方并不知道数据已经被更改
1.2 HTTPS 解决的问题
https 很好的解决了 http 的三个缺点(被监听、被篡改、被伪装),https 不
是一种新的协议,它是 http+SSL(TLS)的结合体,SSL 是一种独立协议,所以
其它协议比如 smtp 等也可以跟 ssl 结合。https 改变了通信方式,它由以前的
http—–>tcp,改为 http——>SSL—–>tcp;https 采用了共享密钥加密+公
开密钥加密的方式
防监听
数据是加密的,所以监听得到的数据是密文,hacker 看不懂。
防伪装
伪装分为客户端伪装和服务器伪装,通信双方携带证书,证书相当于身份证,
有证书就认为合法,没有证书就认为非法,证书由第三方颁布,很难伪造
防篡改
https 对数据做了摘要,篡改数据会被感知到。hacker 即使从中改了数据也白
搭。
二 HTTPS 双向认证原理
双向认证,顾名思义,客户端和服务器端都需要验证对方的身份,在建立
Https 连接的过程中,握手的流程比单向认证多了几步。单向认证的过程,客
户端从服务器端下载服务器端公钥证书进行验证,然后建立安全通信通道。双
向通信流程,客户端除了需要从服务器端下载服务器的公钥证书进行验证外,
还需要把客户端的公钥证书上传到服务器端给服务器端进行验证,等双方都认
证通过了,才开始建立安全通信通道进行数据传输。
2.1 证书详细工作流
1)申请认证:服务器需自己生成公钥私钥对 pub_svr & pri_svr,同时根
据 pub_svr 生成请求文件 csr,提交给 CA,csr 中含有公钥、组织信息、个人
信息(域名)等信息。
2)审核信息:CA 通过线上、线下等多种手段验证申请者提供信息的真实
性,如组织是否存在、企业是否合法,是否拥有域名的所有权等。
3)签发证书:如信息审核通过,CA 会向申请者签发认证文件-证书。
证书包含以下信息:申请者公钥、申请者的组织信息和个人信息、签发
机构 CA 的信息、有效时间、证书序列号等信息的明文,同时包含一个签名。
签名的产生算法:首先,使用散列函数计算公开的明文信息的信息摘要,
然后,采用 CA 的私钥对信息摘要进行加密,密文即签名。
4)返回证书:client 如果请求验证服务器,服务器需返回证书文件。
5)client 验证证书:client 读取证书中的相关的明文信息,采用相同的散
列函数计算得到信息摘要,然后,利用对应 CA 的公钥解密签名数据,对比证
书的信息摘要,如果一致,则可以确认证书的合法性,即公钥合法。客户端然
后验证证书相关的域名信息、有效时间是否吊销等信息。
客户端会内置信任 CA 的证书信息(包含公钥),如果 CA 不被信任,则找不
到对应 CA 的证书,证书也会被判定非法。
6)秘钥协商:验证通过后,Server 和 Client 将进行秘钥协商。接下来
Server 和 Client 会采用对称秘钥加密。
7)数据传输:Server 和 Client 采用对称秘钥加密解密数据。
2.2 单向认证流程
剩余23页未读,继续阅读
资源评论
温柔知进退
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功