网络安全基础
网络安全概述
网络安全通信的基本属性
- 机密性:只有发送方和接收方能理解报文内容;
- 消息完整性:消息未被篡改,发生篡改一定会被检测到;
- 可访问与可用性:对授权用户提供有效服务;
- 身份认证:双方确认彼此的真实身份。
典型的网络安全威胁
- 报文传输:传输过程中面临窃听、插入、假冒、劫持等安全威胁;
- 拒绝服务DoS(Denial of Service)、分布式拒绝服务DDoS;
- 映射:先探路,再攻击;
- 分组“嗅探”:Wireshark是一个典型的分组嗅探软件;
- IP欺骗。
数据加密
通信加密模型
简写 | 含义 |
---|---|
M | 明文空间 |
C | 密文空间 |
K | 密钥空间 |
E | 加密算法 |
D | 解密算法 |
通信加密分类
根据密码体制的特点、出现的先后时间,进行划分:
- 传统加密方式
- 对称密钥加密
- 非对称密钥加密
传统加密方式
替代密码:凯撒密码
例:对明文 "bob, I love you, Alice" ,利用 K=3 的凯撒密码加密,得到的密文是什么 ?
加密:K=3 的含义就是明文的每个字母按照字母表顺序推后3位。
密文:"ere, L oryh brx, Dolfh"
换位密码(置换密码):列置换密码
根据一定规则重新排列明文,以便打破明文的结构特性。只改变明文结构,不改变内容。
例:假设采用密钥 K=nice 的列置换密码,对明文 "bob i love you" 进行加密,加密得到的密文是什么 ?
第一步:确定密钥的长度(几个字母),并且确定密钥字母在字母表中的先后顺序,用数字表示。
密钥 K=nice ,则密钥长度为:4,密钥的字母先后顺序为:4312
第二步:将明文按密钥长度分组,每组一行。
1 | 2 | 3 | 4 |
---|---|---|---|
b | o | b | i |
l | o | v | e |
y | o | u | $ |
$:明文长度不是密钥长度的整倍数,则使用双方提前约定的字符进行填充。
第三步:输出顺序确定。看密钥字母顺序,和排列好后的表格对应。
当前密钥的字母顺序:4312
4 | 3 | 1 | 2 |
---|---|---|---|
b | o | b | i |
l | o | v | e |
y | o | u | $ |
第四步:输出密文。按照数字顺序,按照列输出字母。
密文:bvu ie$ ooo bly
对称密钥加密
加密密钥和解密密钥是 相同 的。
分类
- 分组密码(块密码):DES、AES、IDEA
- 流密码(序列密码)
DES
DES加密算法(Data Encryption Standard, 数据加密标准)
加密:明文分为64位分组,使用 56位的密钥,进行16轮加密。
三重 DES:使用两个密钥,执行三次DES算法,密钥长度达到 112位。
AES
AES加密算法(Advanced Encryption Standard, 高级加密标准)
密钥长度:128、192、256 位
特点:
- 分组长度和密钥长度均 可变;
- 循环次数允许在一定范围内根据安全要求 进行修改;
- 安全、效率、易用、灵活;
- 抗线性攻击和抗差分攻击的能力大大增强;
- 如果1秒暴力破解DES,则需要149万亿年破解AES。
IDEA
IDEA加密算法(International Data Encryption Algorithm, 国际数据加密算法)
非对称密钥加密(公共密钥加密)
加密密钥和解密密钥是 不同 的。
通信双方都有两个密钥:公钥(任何人可见)和私钥(仅自己可见)。
典型的公开密钥加密算法
- Diffie-Hellman 算法:基于数学中 素数原根 理论;
- RSA 算法:基于数论设计,安全性建立在 大数分解 的难度上。应用比较广泛,安全性高。
非对称密钥加密过程
:公钥
:私钥
:明文
消息完整性与数字签名
散列函数
典型的散列函数
- MD5:128 位散列值;
- SHA-1:160 位散列值。
散列函数的特性
- 散列函数算法公开;
- 快速计算;
- 对任意长度报文进行散列产生定长输出;
- 对于任意报文无法预知器散列值;
- 不同报文不产生相同的散列值;
- 单向性。
消息完整性的目标
- 证明报文确实来自声称的发送方;
- 验证报文在传输过程中没有被篡改;
- 预报报文的 时间、顺序 被篡改;
- 预报报文 持有期 被篡改;
- 预防 抵赖。
消息完整性检测方法
用散列函数,对报文进行进行散列化。
报文认证
消息的接收者能够检验收到的消息是否真实的方法。
报文认证要完成 消息源的认证 和 消息的认证。
简单报文验证
发送方:对 报文m 应用 散列函数H,得到固定长度的散列码,获取 报文摘要h,将 扩展报文(m, h) 发送给接收方。
接收方:收到 扩展报文(m, h) 后,提取出 报文m 和 报文摘要h,同样对 报文m 应用 散列函数H 获得 新的报文摘要H(m),将 报文m 和 新的报文摘要H(m) 进行对比。
判断:若相同,报文认证成功。否证报文认证失败。
不足:无法对 消息源 认证。
报文认证码MAC
前提:发送方和接收方 共享 一个 认证密钥s
发送方:对 报文m 和 认证密钥s 应用 散列函数H 得到 报文认证码h,将 扩展报文(m, h) 发送给接收方。
接收方:收到 扩展报文(m, h) 后,提取出 报文m 和 报文认证码h,对 报文m 和 认证密钥s 应用 散列函数H 得到 新的报文认证码H(m + s),将 报文认证码h 和 新的报文认证码H(m + s) 进行对比。
判断:若相同,报文认证成功。否证报文认证失败。
不足:无法保证消息在 接收方没有别篡改。
数字签名
在公开密码体制中,一个主体使用自己的 私钥加密 消息,得到的密文。密文可以使用该主体的 公钥解密 消息,恢复成原来的消息。公钥密码提供的这种消息认证服务可以看成是对消息原作者的签名。
数字签名的满足条件
- 接收方能够确认发送方的签名,但 不能伪造;
- 发送方发出签名的消息给接收方后,就 不能再否认 它所签发的消息;
- 接收方对已收到的签名消息 不能否认,有收报认证;
- 第三者可以确认收发双方之间的消息传递,但 不能伪造 这一过程。
简单数字签名
发送方:利用自己的 私钥 对 报文 加密,创建 签名报文。将 扩展报文(报文,签名报文) 发送给接收方。
接收方:收到扩展报文后,利用 发送方的公钥 解密 签名报文,并检验 解密后的报文 和 报文 是否一致。
判断:若一致,则签名报文的一定是发送方的私钥。
签名报文摘要
发送方:对 报文m 应用 散列函数H 生成 报文摘要H(m),然后通过自己的 私钥 对 报文摘要H(m) 进行加密生成 加密的报文摘要,将 扩展报文(报文,加密的报文摘要) 发送给接收方。
接收方:收到扩展报文后,利用 发送方的公钥 解密 加密的报文摘要 得到 原来的报文摘要,对 报文m 应用 散列函数H 得到 新的报文摘要,并校验 报文摘要 和 新的报文摘要 是否一致。
身份认证
身份认证(身份鉴别):一个实体经过计算机网络向另一个实体证明其身份的过程。
在身份认证的过程中,使用 一次性随机,来预防 重放攻击。
基于共享对称密钥的身份认证
- 发送方 向 接收方 发送 报文;
- 接收方 生成一个 一次性随机,然后把这个随机数发送给 发送方;
- 发送方 使用与 接收方 共享的 对称密钥 加密这个这个随机数,并发送给 接收方;
- 接收方 对 加密后的随机数 进行解密,并与原来的随机数进行对比,完成认证。
基于公开密钥的身份认证
- 发送方 向 接收方 发送 报文;
- 接收方 生成一个 一次性随机,然后把这个随机数发送给 发送方;
- 发送方 使用 自己的私钥 加密这个随机数,并发送给 接收方;
- 接收方 向 发送方 索要 发送方的公钥;
- 发送方 发送 自己的公钥 给 接收方;
- 接收方 使用 发送方的公钥 解密,并与原来的随机数进行对比,完成认证。
密钥分布中心与证书认证机构
密钥分布中心(KDC)
对称密钥 分布的典型解决方案:通信各方建立一个大家都信赖的密钥分布中心,解决对称密钥安全可靠的分布。
通信发起方生成会话密钥
- 发送方 和 接收方 进行保密通信。发送方 随机选择一个 会话密钥。用 发送方 与 KDC 之间长期的 共享密钥 加密会话密钥,发送给 KDC;
- KDC 得到后,解密获取会话密钥,以及所希望通信方。KDC 利用和 接收方 之间长期的 共享密钥 加密会话密钥,发送给 接收方;
- 接收方 解密,获取 会话密钥。
KDC生成会话密钥
- 发送方 希望和 接收方 通信时,首先向 KDC 发送请求信息;
- KDC 收到请求后,随机选择一个 会话密钥,并将会话密钥分别用和 发送方、接收方 的长期 共享密钥 加密,再分别发送给 发送方、接收方;
- 发送方、接收方 收到 KDC 的密文后,分别解密,得到 会话密钥。
证书认证机构(CA)
非对称密钥 的典型解决方法,将公钥与特定的实体绑定。
作用
- CA可以证实一个实体的真实身份;
- 一旦CA验证了某个实体的身份,CA会生成一个把其身份和实体的 公钥 绑定起来的证书,其中包含该实体的公钥及其全局唯一的身份识别信息等,并由CA对证书进行数字签名。
防火墙与入侵检测系统
防火墙
隔离组织内部网络与公共互联网,允许某些分组通过,而组织其他分组进入或离开内部网络的软件、硬件或者软件硬件结合的一种设施。
防火墙的分类
- 无状态分组过滤器:典型部署在 内部网络 和 网络边缘路由器 上的防火墙。根据 访问控制表(Access Control Lists, ASC) 实现;
- 有状态分组过滤器:跟踪每个 TCP 连接建立、拆除,根据状态确认是否允许分组通过;
- 应用网关:实现 授权 用户通过网关访问外部网络的服务。
入侵检测系统
入侵检测系统(IDS),是当观察到潜在的 恶意流量 时,能够产生警告的设备或系统。
网络安全协议
安全电子邮件
服务于 应用层
电子邮件对网络安全的需求
- 机密性
- 完整性
- 身份认证性
- 抗抵赖性
安全电子邮件标准:PGP标准(Pretty Good Privacy)
- 邮件加密;
- 报文完整性;
- 数字签名;
- 加密算法:公钥加密算法(RSA)、对称加密算法(3DES)、散列算法(SHA-1)
安全套接字层 SSL
服务于 传输层
SSL是介于 TCP 和 HTTP 等应用层协议之间的一个可选层,大多数应用层协议直接建立在SSL协议之上,SSL是两层协议。
当 HTTP 协议使用 SSL 进行安全通信时,称为安全HTTP,简称为 HTTPS。
应对Web浏览器威胁(恶意程序)方案
- 在电子商务背景下,提出 HTTP 安全电子商务交易协议
- 在传输层之上构建一个安全层:安全套接字层(Secure Socket Layer, SSL)
SSL协议栈(协议的总和)
- SSL握手协议:协商和建立密码组、服务器认证与鉴别和客户认证与鉴别;
- SSL更改密码协议:通信双方修改密码组;
- SSL警告协议:警告级别和警告代码;
- SSL记录协议:描述了信息交换过程中的消息格式,前面3个协议需要记录协议进行封装与传输。
虚拟专用网VPN和IP安全协议IPSec
服务于 网络层
虚拟专用网VPN
建立在公共网络上的安全通道,是用户通过公用网络建立的临时的、安全的连接。实现远程用户、分支机构、业务伙伴等于机构总部网络的安全连接,从而构建针对特定组织机构的专用网络。
重要特点:虚拟
涉及技术:隧道技术(核心)、数据加密、身份认证、密钥管理、访问控制、网络管理
IPSec
网络层使用最广泛的安全协议,是一个安全体系。
IPSec 体系结构:
- 封装安全载荷协议(ESP):源认证、消息完整性、机密性;
- 认证头(AH):源认证、消息完整性;
- 安全关联(SA):连接发送方和接收方;
- 密钥交换与管理(IKE)
IPSec 传输模式:
- 传输模式:数据报的发送和接收都由 端系统 完成;
- 隧道模式:部署在 网络边缘路由器 上,在路由器之间建立安全隧道,数据报在其中封装传输。
IPSec 传输模式和协议组合:
- 传输模式AH
- 隧道模式AH
- 传输模式ESP
- 隧道模式ESP:最广泛和最重要的 IPSec 形式