没有合适的资源?快使用搜索试试~ 我知道了~
9-2019050858-陈冠希-HTTPS协议分析1
需积分: 0 1 下载量 138 浏览量
2022-08-08
19:03:46
上传
评论
收藏 915KB DOCX 举报
温馨提示
试读
27页
2. SSL协议层次结构SSL协议具有两层结构,其低层是SSL记录协议层(SSLRecordProtocolLayer),简称记录层 2. SSL协议的通信主体
资源详情
资源评论
资源推荐
暨南大学本科实验报告专用纸
课程名称 网络安全实验 成绩评定
实验项目名称 HTTPS 协议分析 指导教师 潘冰
实验项目编号 9 实验项目类型 综合型 实验地点 信息安全实验室
学生姓名 陈冠希 学号 2019050858
学院 智能科学与工程学院 系 专业 信息安全
实验时间 2022 年 4 月 26 日 下 午 ~ 4 月 26 日 下 午
一、实验目的
1. 掌握使用 OpenSSL 生成数字证书的方法
2. 掌握在 Linux 平台下使用 Apache+OpenSSL 组合实现网络安全通信
3. 了解 SSL 的握手过程
4. 分析 HTTPS 协议
5. 了解客户端浏览器查看相关网站的证书的方法
二、实验环境
系统环境:Windows
三、实验原理
一. SSL 协议简介
在互联网上访问某些网站时,也许你会注意到在浏览器窗口的下方会显示一个锁的小图
标,如图 1 所示,这表示该网页被 SSL 保护着。
图 1 访问网页正受 SSL 保护
SSL 协议(SecureSocketsLayerProtocol)是一个用于在因特网上进行保密通信的安全
协议,它位于 TCP 层和应用层之间,对应用层透明。虽然 SSL 协议的设计初衷是支持各种应
用层协议的,例如 HTTP,FTP,Telnet 等,但目前 SSL 协议的主要应用范围是 HTTP 协议。
二. SSL 协议层次结构
SSL 协议具有两层结构,其低层是 SSL 记录协议层(SSLRecordProtocolLayer),简称
记录层;其高层是 SSL 握手协议层(SSLHandshakeProtocolLayer),简称握手层,如图 2 所
示。握手层允许通信实体在应用 SSL 协议传送数据之前相互验证身份、协商加密算法、生成
密钥等。记录层封装各种高层协议,具体实施压缩与解压缩、加解密、计算与验证 MAC 等与
安全有关的操作。
图 2 SSL 协议层次结构
1. SSL 协议支持的密码算法
在 SSL 协议中,应用对称加密体制加密传输的数据,应用非对称加密体制验证实体身份
和交换密钥。其中,非对称加密算法按用途分为密钥交换算法和数字签名算法。
SSL 协议支持的序列加密算法有 RC4;支持的分组加密算法有 RC2、DES、3DES、IDEA
和 Fortezza;另外 SSL 协议指定专为出口使用的 40 位 DES 算法,称为 DES40。SSL 协议支
持的密钥交换算法有 RSA,Diffie-Hellman 和 Fortezza_dms;数字签名算法有 RSA 和 DSA。
数字签名时,单向散列函数作为签名算法的输入。在 SSL 协议中,指定的散列函数算法为 MD5
和 SHA。在 RSA 签名算法中,一个 36(128 位 MD5 摘要+160 位 SHA 摘要)字节的两个散列函
数(一个是 SHA 散列函数,一个是 MD5 散列函数)的连接被签名。在 DSS 签名算法中,一个
20 字节的 SHA 散列函数被签名。
2. SSL 协议层次结构
SSL 协议具有两层结构,其低层是 SSL 记录协议层(SSLRecordProtocolLayer),简称
记录层;其高层是 SSL 握手协议层(SSLHandshakeProtocolLayer),简称握手层,如图 2 所
示。握手层允许通信实体在应用 SSL 协议传送数据之前相互验证身份、协商加密算法、生成
密钥等。记录层封装各种高层协议,具体实施压缩与解压缩、加解密、计算与验证 MAC 等与
安全有关的操作。
图 2 SSL 协议层次结构
1. SSL 协议支持的密码算法
在 SSL 协议中,应用对称加密体制加密传输的数据,应用非对称加密体制验证实体身份
和交换密钥。其中,非对称加密算法按用途分为密钥交换算法和数字签名算法。
SSL 协议支持的序列加密算法有 RC4;支持的分组加密算法有 RC2、DES、3DES、IDEA
和 Fortezza;另外 SSL 协议指定专为出口使用的 40 位 DES 算法,称为 DES40。SSL 协议支
持的密钥交换算法有 RSA,Diffie-Hellman 和 Fortezza_dms;数字签名算法有 RSA 和 DSA。
数字签名时,单向散列函数作为签名算法的输入。在 SSL 协议中,指定的散列函数算法为 MD5
和 SHA。在 RSA 签名算法中,一个 36(128 位 MD5 摘要+160 位 SHA 摘要)字节的两个散列函
数(一个是 SHA 散列函数,一个是 MD5 散列函数)的连接被签名。在 DSS 签名算法中,一个 20
字节的 SHA 散列函数被签名。
2. SSL 协议的通信主体
SSL 协议定义了两个通信主体:客户和服务器。其中,客户是协议的发起者。在 SSL 协
议中定义的客户和服务器,与通常讲的 C/S 结构中的客户和服务器含义不同。在 C/S 结构中,
应用层从请求服务和提供服务的角度定义客户和服务器,而 SSL 协议则从建立加密参数的过
程中扮演的角色定义客户和服务器。当 SSL 协议与客户/服务器结合使用时,C/S 结构中的
客户应用其下方的 SSL 协议,以 SSL 协议的客户身份运行;C/S 结构中的服务器应用其下方
的 SSL 协议,以 SSL 协议的服务器身份运行。
3. 记录协议层
记录协议层的功能是,根据当前会话状态指定的压缩算法,CipherSpec 指定的对称加
密算法、MAC 算法、密钥长度、散列长度、IV 长度等参数,以及连接状态中指定的客户和服
务器的随机数、加密密钥、MAC 秘密、IVs、消息序列号等,对当前连接中要传送的高层数
据实施压缩与解压缩、加解密、计算与检验 MAC 等操作。
记录协议层需要封装的高层协议有以下 4 类:
changecipherspec 协议;
Alert 协议;
握手协议;
应用层协议,例如,HTTP,FTP 和 Telnet 等。
SSL 的协议栈如图 3 所示。
图 3 SSL 的协议栈
压缩算法是当前会话状态中的一个元素,明文结构经压缩算法生成压缩结构。每个会话
都有一个有效的压缩算法,同样,每个会话都有一个有效的 CipherSpec,包含指定的对称
加密算法和 MAC 算法。压缩结构经 MAC 算法和加密算法生成密文结构。
以发送方为例,记录层的工作流程如图 4 所示。接收方的流程相反。
图 4 SSL 记录协议层的工作流程
(1) SSL 记录层从应用层接收任意大小的数据块,将数据块分段成不超过 214 字节的明
文记录。
(2) 用当前会话状态中指定的压缩算法将明文结构变换为压缩结构。
(3) 用当前 CipherSpec 中指定的 MAC 算法对压缩结构计算 MAC;用加密算法加密压缩
数据和 MAC,形成密文结构。
4. 握手协议层
握手协议层的功能是验证实体身份,协商密钥交换算法、压缩算法和加密算法,完成密
钥 交 换 及 生 成 密 钥 等 。 SSL 协 议 的 握 手 过 程 用 到 3 种 协 议 : SSL 握 手 协 议 、
SSLchangecipherspec 协议和 SSLAlert 协议。SSL握手协议用于建立会话状态中的加密参数。
客户和服务器的握手过程是指建立一个会话或恢复一个会话的过程。在这一过程中,客
户和服务器都建立新的会话状态或使用已存在的会话的会话状态。但每次握手都生成新的密
钥、MAC 秘密和 IVs,并将这些参数作为当前状态中的元素。在客户和服务器之间建立一个
连接,就必须进行握手过程。每次握手都存在一个会话和一个连接,连接一定是新的,但会
话可能是新的,也可能是已存在的。下面是 SSL 握手的四个阶段。
第一阶段:建立起安全协商。
(1) 客户发送一个 clienthello 消息,包括以下参数:版本、随机数(32 位时间戳和 28
字节随机序列)、会话 ID、客户支持的密码算法列表(CipherSuite)、客户支持的压缩方法
列表;
(2) 然后,客户等待服务器的 serverhello 消息;
(3) 服务器发送 serverhello 消息,参数:客户建议的最低版本以及服务器支持的最高
版本、服务器产生的随机数、会话 ID、服务器从客户建议的密码算法中挑出一套、服务器
从客户建议的压缩方法中挑出一个。
第二阶段:服务器鉴别和密钥交换。
(1) 服务器发送自己的证书,消息包括一个 X.509 证书,或者一条证书链,除了匿名 DH
之外的密钥交换方法都需要;
(2) 服务器发送 serverkeyexchange 消息:可选的,有些情况下可以不需要。只有当服
务器的证书没有包含必需的数据的时候才发送此消息;消息包含签名,被签名的内容包括两
个随机数以及服务器参数。
(3) 服务器发送 certificaterequest 消息:非匿名 server 可以向客户请求一个证书;
包含证书类型和 CA。
(4) 服务器发送 serverhellodone,然后等待应用。
第三阶段:客户鉴别和密钥交换。
(1) 客 户 收 到 serverdone 消 息 后 , 它 根 据 需 要 检 查 服 务 器 提 供 的 证 书 , 判 断
serverhello 的参数是否可以接受,如果都没有问题的话,发送一个或多个消息给服务器;
(2) 如果服务器请求证书的话,则客户首先发送一个 certificate 消息,若客户没有证
书,则发送一个 nocertificate 警告;
(3) 然后客户发送 clientkeyexchage 消息,消息的内容取决于密钥交换的类型;
(4) 最后,客户发送一个 certificate_verify 消息,其中包含一个签名,对从第一条
消息以来的所有握手消息的 HMAC 值(用 master_secret)进行签名。
第四阶段:结束。
(1) 第四阶段建立起一个安全的连接
(2) 客户发送一个 change_cipher_spec 消息,并且把协商得到的 CipherSuite 拷贝到
当前连接的状态之中
(3) 然后,客户用新的算法、密钥参数发送一个 finished 消息,这条消息可以检查密
钥交换和鉴别过程是否已经成功。其中包括一个校验值,对所有的消息进行校验。
(4) 服务器同样发送 change_cipher_spec 消息和 finished 消息。
(5) 握手过程完成,客户和服务器可以交换应用层数据。
剩余26页未读,继续阅读
13572025090
- 粉丝: 45
- 资源: 313
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0