HTTPS简介PPT_第1页
HTTPS简介PPT_第2页
HTTPS简介PPT_第3页
HTTPS简介PPT_第4页
HTTPS简介PPT_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

HTTPS简介 1 2 第一节HTTPS简介 引入 随着网络通信和电子商务等服务和资源进入人们的日常生活 人们在享受网络带来的各种便利的同时 面临各种各样的安全隐患 我们经常接触到的就有邮箱登录 网上购物 电子银行等等 这很多是基于HTTP协议的 但HTTP RFC2616 最初是在INTERNET上不用密码的应用 因此随着人们对安全性的要求增加 HTTPS协议 为我们提供了面向通道的安全性 2 2020 4 16 目录 目录HTTPS简介SSL协议介绍SSL记录协议SSL握手协议 3 2020 4 16 HTTPS简介 HTTPS 全称 HypertextTransferProtocoloverSecureSocketLayer 是HTTP的安全版HTTPS默认使用TCP端口443 也可以指定其他的TCP端口 URI格式https URL一个URI例子 4 2020 4 16 SSL协议介绍 HTTPS中S 实际上是SSL SecureSocketsLayer 协议 SSL是Netscape公司发明的一种用于WEB的安全传输协议 随着时间的推移由于Netscape失去了市场份额 它将SSL的维护工作移交给因特网工程任务组 IETF 第一个后Netscape版本被重新命名为安全传输层协议 TLS TLS TransportLayerSecurity RFC2246 是基于SSL上研发的 但是与SSLv3 0有细微的差别 因此 SSL协议有时也称为TLS协议 目前常用的是TLSv1 0的协议 5 2020 4 16 SSL协议介绍 SSL协议的功能1 保证传输数据的保密性2 保证传输数据的完整性3 实现通信双方的互相身份认证 6 2020 4 16 SSL协议介绍 SSL协议在协议栈的位置 IP协议 TCP协议 HTTP TELNET FTP等应用层协议 7 2020 4 16 SSL协议介绍 SSL协议是一个分层的协议 共有两层组成 高层协议包括 SSL握手协议 SSLHandshakeProtocol 改变加密约定协议 ChangeCipherSpecProtocol 报警协议 AlertProtocol 处于SSL协议的底层的是 SSL记录层协议 SSLRecordProtocol 8 2020 4 16 SSL记录协议 SSL的记录协议记录层协议实际上是一个简单的封装或者说是 打包 协议 记录可能是明文传送的 也可能是被加密传送的 纪录协议的功能保证消息的完整性机密性 9 2020 4 16 SSL记录协议 SSL记录的结构示意图 类型 有握手协议 报警协议 改变加密约定协议 应用数据等四种 加密数据 可分解为 数据 HMAC 填充 填充长度 注 HMAC Keyed HashMessageAuthenticationCode 消息验证码 10 2020 4 16 SSL记录协议 MAC MessageAuthenticationCode 消息验证码消息验证码也称为消息摘要 是实现数据完整性的主要手段 主要目的是认证消息 检验数据是否被篡改 目前常用的消息摘要算法有MD5 Message DigestAlgorithm5 和SHA SecureHashAlgorithm SSL中的摘要算法是 HMAC即Keyed HashMessageAuthenticationCode HMAC是在使用消息摘要函数 例如MD5等 的同时 增加了一个 密钥 作为输入 11 2020 4 16 SSL记录协议 SSL记录协议封装过程 类型 版本 长度 数据 HMAC 填充 填充长度 1 填写 记录头信息 中的 版本 和 类型 2 如果协商了压缩算法则压缩 数据 3 计算并附加MAC 4 计算 填充长度 填写 填充字段 并 加密 5 填写记录头信息中的 长度 12 2020 4 16 SSL记录协议 SSL记录协议解封装过程 类型 版本 长度 数据 HMAC 填充 填充长度 1 读取 记录头信息 中的 版本 2 根据长度读入记录 数据 部分 3 去掉 填充长度 和 填充 字段 4 检查并去掉MAC 5 如果协商了压缩算法则解压 数据 13 2020 4 16 SSL握手协议 SSL握手协议是SSL协议中最重要同时也是最复杂的协议 SSL握手协议主要负责如下工作 算法协商身份验证确定密钥 14 2020 4 16 SSL握手协议 SSL握手过程分为四种 FullHandshake 全流程握手 C S双方从无到有建立SSL连接 ResumsessionHandshake C S双方曾经建立过连接 但中途断了 SSL会话信息还有保留 只需要执行部分握手流程就可建立SSL连接 ServerRe negotiationHandshake 已经建立了SSL连接 但server端为了某些原因 比如安全性 要求重新对密钥进行协商 也只需要执行部分握手流程 ClientRe negotiationHandshake 已经建立SSL连接 但client端为了某些原因要求重新协商 只需执行部分握手流程 15 2020 4 16 全流程握手 FullHandshake 携带客户的SSL版本号 加密套件列表 压缩算法列表 客户端随机数 sessionid 0 传送给服务器 ServerHelloServerCertificate ClientCertificateRequst ServerHellodone ClientCertificateClientKeyExchang Certificateverify ChangeCipherSpec ClientfinishedMessage Clienthello ChangeCipherSpec ServerfinishedMessage ApplicationData ApplicationData 服务器选择版本 确定要用的加密套件 压缩算法 计算sessionid 以及随机数发给客户端 服务器将自己的证书发送给客户端 服务端向客户端索要证书 服务端通知客户端握手消息发送完成 客户端向服务器端发送自己的证书 客户端密钥交换 产生预主密钥 preMasterKey 客户端证书验证 让服务器验证发消息的客户端和客户端证书的真实所有者 改变加密约定消息 通知服务端 之后的消息开始启用加密参数 客户端的SSL协商成功结束 发送握手验证报文确保消息的完整性 服务器端的SSL协商成功结束 发送握手验证报文确保消息的完整性 改变加密约定消息 通知客户端 之后的消息开始启用加密参数 应用数据传送 下一页 16 2020 4 16 携带客户的SSL版本号 加密套件列表 压缩算法列表 客户端随机数 sessionid 0 传送给服务器 Clienthello 客户端给服务器端发个hello的问候 问候里包含有它使用的SSL版本号 加密套件列表 压缩算法列表 客户端随机数 sessionid 0 服务器收到客户端的问候后 会从客户端提供的版本号中选出双方都支持的最高版本 从加密套件列表选择一种支持也安全性强的加密套件 从压缩算法列表选择压缩算法 一般为空 返回 Clienthello 17 2020 4 16 服务器端将上述选择的加密套件 压缩算法 NULL 且计算一个session id 和服务器端随机数发送给客户端 服务器选择版本 确定要用的加密套件 压缩算法 计算sessionid 以及随机数发给客户端 Serverhello 客户端收到serverhello的报文会将加密套件 压缩算法 NULL session id 和服务器端随机数缓存起来 接着继续握手过程 返回 Serverhello 18 2020 4 16 服务器将自己的证书发送给客户端 ServerCertificate 服务器端将自己的证书发送给客户端 证明自己的身份 证书中包含有服务器的身份信息 以及服务器的公钥 客户端收到Certificate报文会验证该证书是否过期 并将服务器的公钥缓存起来 返回 ServerCertificate 19 2020 4 16 ClientCertificateRequst 如果是SSL的双向认证的话 那么服务器端会向客户端发送clientcertrequest消息 索要客户端的证书 证书中包含有server端支持的证书类型 和所信任的所有证书发行机构 CA CertificateAuthority 列表 客户端收到ClientCertificateRequst报文将消息中的证书类型列表和可信任证书发行机构列表保存下来 可在后面发送客户端证书时候拿来筛选证书用 服务端向客户端索要证书 返回 ClientCertificateRequst 20 2020 4 16 ServerHellodone 服务器端通知客户端这一步的握手消息发送完成 等待客户端确认 服务端通知客户端握手消息发送完成 返回 ServerHellodone 21 2020 4 16 ClientCertificate 客户端从之前收到server端发的certrequest消息中的支持的证书类型列表和信任的根CA CertificateAuthentication 列表中选择满足条件的第一个证书发送给服务器 客户端向服务器端发送自己的证书 服务器端会缓存客户端的公钥 返回 ClientCertificate 22 2020 4 16 ClientKeyExchang 若为RSA加密 客户端则产生一个48位随机数作为pre master 预主密钥 并用服务器公钥加密后发出去 客户端向服务器端发送一个48位的预主密钥 服务器端缓存预主密钥 返回 ClientKeyExchang 23 2020 4 16 Certificateverify 客户端证让服务器验证发消息的客户端和客户端证书的真实性 由于之前的ClientCertificate消息中包含有客户端的公钥 因此用公钥解密该消息 验证客户端的真实性 Certificateverify这个消息中要包含一个签名 签名里头内容就是从clienthello开始到目前为止所有握手消息 不包括本消息 的摘要 然后用客户端的私钥加密 返回 Certificateverify 24 2020 4 16 ChangeCipherSpec 改变加密约定消息 通知服务端 之后的消息开始启用加密参数 在发送该消息的同时 客户端会把之前的客户端随机数 服务器端随机数 以及预主钥产生一个主密钥 并将主密钥进行密钥导出 服务器端的写MAC密钥 客户端写MAC密钥 服务器端的写密钥 客户端的写密钥 该过程只在本地进行 不发送给对方 ChangeCipherSpec 该消息只有一个值为1的字节 不属于握手协议 和握手协议同一级别的改变加密约定协议 发送该消息的作用是为了告诉对方接下来的消息将采用新协商的加密套件和密钥进行通信 返回 ChangeCipherSpec 25 2020 4 16 ClientfinishedMessage 客户端的SSL协商成功结束 发送握手验证报文确保消息的完整性 这是客户端SSL协商成功结束的消息 也是第一个用协商好的密钥加密的消息 会把从clienthello一直到现在的数据摘要 用客户端密钥加密 发送给服务器 确保握手过程的完整性和机密性 返回 ClientfinishedMessage 26 2020 4 16 SSL握手协议 加密套件列表 列表中包含了Client端支持的所有密钥套件 一个密钥套件定义了一个密钥规格 其中描述如下内容 密钥交换算法 非对称加密算法 是否出口对称加密算法支持的最高对称密钥位数MAC MessageAuthenticationCode 算法 或摘要算法 例 SSL RSA WITH RC4 128 MD5 0 x0004 非对称加密算法或密钥交换算法为RSA 采用高强度128位对称加密算法RC4 摘要或MAC算法为MD5 不支持出口 27

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论