计算机网络安全技术 笔记 4
传输层与网络层安全协议
传输层安全协议 SSL
IPsec可以提供端到端的安全传输,但是不能处理同一端系统中不同应用之间的安全需求,因此需要传输层的安全协议:基于传输层的安全服务,保证两个应用之间的保密性和安全性,为应用层提供安全服务
常见协议包括
- SP4:从属于安全数据网络系统SDNS,由NSA与NIST开发
- SSH:通过 强制认证+数据加密 实现 安全登陆+安全传输
- TLSP:ISO开发和标准化的协议,通信加密+完整性验证
- SSL:安全套接层安全机制
我们主要讨论SSL,它是一个工作在TCP之上、对应用层透明的协议,可以为端到端的应用提供保密性、完整性和身份认证等安全服务
体系结构
- 两个实体:客户机 + 服务器,基于证书在双方之间完成身份认证
- 两个概念:会话 + 连接,会话是虚拟连接,连接是特定通道
- 两层协议:握手协议 + 记录协议

会话与连接
- 会话是客户端与服务器之间的虚拟连接,通过握手协议建立,用以协商密码算法、主密钥等
- 连接是特定的通信信道(例如一次HTTPS访问可能需要多次连接),通常映射成是一次TCP连接
- 会话 - 连接是一对多的关系
会话参数包括:
- 会话标识符
- 对等实体证书
- 压缩方法
- 加密规格(例如加密算法等)
- 主控密钥
- 是否可以恢复
连接参数
- 服务器和客户随机数
- 服务器写MAC密钥:服务器发送数据进行MAC操作的密钥
- 客户机写MAC密钥:客户机发送数据进行MAC操作的密钥
- 服务器写密钥:服务器加密 - 客户解密的对称密钥
- 客户机写密钥:服务器解密 - 客户加密的对称密钥
- 初始化向量
- 序列号
SSL记录协议
为SSL连接提供两种服务:
- 保密性:使用握手协议定义的共享密钥,对payload进行加密
- 完整性:用握手协议定义的共享密钥计算MAC
记录协议的操作过程为:
- 分片:将应用层数据分成若干片,每片不超过字节
- 压缩:握手协议约定了压缩算法
- 加密:包括添加MAC码、载荷加密、添加SSL记录头

SSL握手协议
功能包括:
- 协商密码算法与主会话密钥
- client和server相互认证
握手协议通过若干次报文交换完成,每个报文包括三个字段:
- 类型:1 B
- 长度:3 B
- 内容:>= 1 B

一共需要四个阶段来完成,大体上为建立通道 - 验证身份 - 交换密钥
- 建立安全能力:
- client发送client_hello报文,其中密码参数包括密钥交换算法、加密算法、MAC算法
- server发送server_hello报文
- server认证、密钥交换
- server发送其SSL数字证书
- 如果需要client认证,则server发送certificate_request
- server发送server_hello_done,等待client相应
- client认证、密钥交换
- client收到server_hello_done,验证证书
- 如果收到了certificate_request,则发送数字证书,如果没有可用数字证书则发送一个alert,但是此时如果client的认证是强制的将导致会话失败
- client发送client_key_exchange,如果发送过数字证书则会用密钥进行签名
- 结束阶段
- client利用发送过去的密钥派生出所有算法需要的密钥
- client发送change_cipher_spec
- server转换为新密码对
- client发送新算法、密钥的finished报文
- server发送change_cipher_spec
- server发送finished
SSL告警协议与修改密码规约协议
告警协议alert用于向peer传递SSL相关的晶胞,其报文只有两个字节:
- 第一个字节标识告警 / 致命错误
- 第二个字节标识特定告警信息
修改密码规约协议chaneg_cipher_spec,在握手协议的结束阶段发送,通知接收方,以后的记录将使用刚才协商的密码算法和密钥进行加密/认证
只有一个字节,只有一个有效值
SSL安全性分析
- SSL为每次安全连接产生一个128位长的随机序号,可以防范重放攻击
- 保密性建立在算法安全性基础之上
- SSL对应用层不透明,只能提供交易中客户与服务器间的双方认证,在涉及多方的电子交易中,SSL协议并不能协调各方间的安全传输和信任关系
应用层安全协议 HTTPS
Web的安全问题
Web的安全性需要三个方向:
- server数据存储安全
- client的计算机安全
- 双方之间通信安全
针对Web的攻击可以按照威胁位置分为如上三类,也可以根据威胁方式分类:
- 主动攻击,包括伪装成其它用户、篡改客户和服务器之间的消息或者篡改Web站点的信息等
- 被动攻击,包括在浏览器和服务器通信窃听、获得原来被限制使用的权限等
提供Web安全的方法包括:
- IP级安全,如IPsec
- TCP级安全,如SSL
- 应用级安全,为应用定制安全协议,例如安全电子交易SET
针对HTTP的攻击
应用最为广泛的应用层协议是HTTP,但是它是明文传输,没有完整性校验和状态连接
常见的攻击有:
- 监听嗅探:直接嗅探到明文信息
- 篡改劫持:直接劫持并修改通信数据包
- 伪造服务器:ARP欺骗、DNS欺骗、钓鱼等
中间人攻击
攻击者与通讯双方建立独立的联系,由于HTTP不会进行认证且明文传输,因此这个操作是无法被防御的,一种常见的攻击手段是ARP欺骗
ARP是建立IP-MAC映射表的协议,但是其也没有进行任何验证,因此攻击者可以伪造ARP报文,从而将双方的通信打断(将通信目标节点的MAC改成攻击者的MAC),从而能够窃取信息、篡改信息
在ARP欺骗成功之后,可以继续实现DNS欺骗
HTTPS
是HTTP与SSL的合并,相当于在HTTP与TCP之间增加了一个SSL层,对数据进行加密,实现了保密性、完整性和身份认证

HTTPS仍然无法避免ARP欺骗,但是嗅探到的只能是密文,因此可以在一定程度上进行防范,但是如果攻击者使用自己的证书替换掉服务器的证书,那通信过程对于攻击者来说就是明文
但是HTTPS仍然可能被攻击,例如SSLStrip:
- 先进行中间人攻击来拦截 HTTP 流量
- 将出现的 HTTPS 链接全部替换为 HTTP,同时记下所有改变的链接
- 使用 HTTP 与受害者机器连接
- 同时与合法的服务器建立 HTTPS
- 受害者与合法服务器之间的全部通信经过了代理转发
- 出现的图标被替换成为用户熟悉的“小黄锁”图标,以建立信任
- 中间人攻击就成功骗取了密码、账号等信息,而受害者一无所知
电子商务安全
电子商务安全应该包括:
- 基本加密算法
- 以基本加密算法为基础的证书认证体系CA(Certificate Authority)以及数字信封、数字签名等基本安全技术
- 以基本加密算法、安全技术、CA体系为基础的各种安全应用协议
其对安全的基本要求有:
- 授权合法性
- 信息的保密性
- 信息的完整性
- 身份的真实性
- 不可抵赖性
- 存储信息的安全性
电子商务安全体系包括网络系统安全、网络信息安全、网络交易安全等

安全电子交易协议 SET
参与方包括:
- 持卡人(cardholder)
- 网上商家(merchant)
- 发卡银行(issuer)
- 收款银行(acquirer)
- 支付网关(Payment Gateway)
- 证书授权(CA)


- 购买请求
- 持卡人向商家发送支付信息和订购信息,二者之间有一定联系(防止商家篡改),但是要分开签名和加密,即分别加密后拼接再次加密,之后用持卡人私钥签名
- 商家向收款银行发送支付信息
- 支付授权
- 商家通过支付网关和发卡行时得到授权,才能发货
- 支付授权交换由授权请求和授权响应组成,授权请求报文包括支付信息、双签名、授权公钥、双方证书,授权响应是与请求对应的回复
- 支付网关对授权请求的处理是:
- 验证所有证书的合法性
- 解密数字信封,获得会话密钥,解密authorization block
- 验证商家对authorization block 的数字签名
- 解密Payment Block的数字信封,解密支付信息
- 验证双签名
- 验证transiaction ID 与PI中的是否一致
- 从发卡行申请支付
- 支付获取
- 商家只有通过支付获取,才能完成银行的转帐业务
- 获取请求报文由以下几部分组成:支付的数量、交易ID、获取权标、商人的签名密钥、证书
- 支付获取由获取请求和获取响应报文组成
- 获取响应报文由以下几部分组成:网关的签名、加密获取相应数据块、网关签名密钥证书

