《计算机网络安全与技术》期末复习
Readme
真的考的好细呜呜呜,40个选择题,三道简答题,两道大题
简答题第三题考恶意软件,老师完全没讲过啊,这是直接抄往年题改都没改吗……
大题一题是Playfair和什么来着,一题是DH+S-DES
感觉考这个得把PPT从头到尾看两遍才行,像我这种两天速通的毫无疑问地寄了……
复习相关
序言:
恩格玛
密码学基础
密码的基本概念、发展历程(1949, 1976);古典密码部分破译不考,代换置换二选一(一般有计算题);对称密码部分S-DES算法一定考(公式会给),其他的了解原理;非对称密码部分公钥密码原理,RSA DH算法过程会给,要会用;密钥分配
古典密码算法都不给,其他的会给
认证技术
算法不用背,要会分析/使用,知道消息认证怎么使用
basic认证缺陷,表单认证,增强认证要分清
互联网安全协议
网络层
传输层
应用层
Why Learn Network Security
1.无处不在的通信
1.1 人类的基本需求
通信的基本要素:信源、信道、信宿
三网合一:三网指电信网、计算机网络和有线电视网
1.2 电信网的发展历程
电报:
- 电磁电报机
- 摩尔斯电码
- 电信号用编码代替文字和数字
电话:
- 用电流来通话,将声音这种机械能转换为电能
- 电磁感应:将电信号变成声音的受话器
- 一对多(交换机的出现)
- 程控交换机
- 计算机+交换机
无线电报:
- 电磁波
- 无线电
- 寻呼机
移动电话:
- 蜂窝移动
- 蜂窝移动通信系统主要由交换网路子系统NSS、无线基站子系统BSS、移动台MS三大部分组成
- 1G-4G
1.3 计算机网络的发展历程
- 计算机孤岛
体积庞大、价格昂贵的计算成本、数据资源不能共享
- 终端出现
通过电话线传输
星形拓扑结构:
- 计算机和计算机互联
APRANET:
不采用传统电信网的集中式结构,提出分组交换技术的概念
形成了通信子网和资源子网的网络结构
Host:资源子网,给人用;
IMP:路由器,专用计算机,只负责传递信息。所有的路由器组成通信子网
传送方式:store and forward存储转发。指路由器对数据的处理:先存下来,然后发走
分组交换:某个message较长,将其变成一个个小组,每个小组独立转发,最后在host处再拼接起来。
- 网络和网络互联
现代计算机网络互连阶段特征是网络体系结构的形成和网络协议的标准化;
采用标准统一的TCP/IP协议,标志着互联网Internet的诞生
计算机网络的定义:
2.无处不在的网络安全
2.1 重要的基础设施
互联网的安全问题
2.2 互联网中的攻击
- 蛮力破解
用数字和字母的任意组合,猜出用户名和密码
撞库攻击:攻击者用获取的用户名和密码去尝试登录其他更大型的信息系统(用户在两个信息系统中使用相同的用户名和密码)
- 中间人攻击
在两个受害者网络链路之间进行数据监听和数据篡改的攻击方式
- 拒绝服务攻击
企图通过使计算机崩溃或把它压垮来阻止提供服务,一般是针对重要的大型网站的攻击行为
是目前网络上存在最多的攻击
用户一般不会直接成为拒绝服务攻击的目标,但是拒绝服务攻击会直接影响网络的可用性
- 病毒(恶意软件)
2.3 互联网中的防守
3.揭开现象看本质Enigma
Enigma密码机:转轮式密码机
组成
组成:键盘、转轮和显示器
加密方法:代换密码算法
转轮机:自动转动替换对应字母的设备,单表代换密码变成多表代换密码
反射器:使译码的过程和编码的过程完全一样
工作过程
先转转轮再看对应的数字!
举例
密码学基础
必会密码学基础
- 密码学基本概念
- 古典密码、近代密码(对称)、现代密码(非对称)的各自技术特点
- 流密码和分组密码、混淆与扩展、Feistel 密码结构的基本概念
- 密钥分配的三种情况、密钥分配中心 KDC 模式
1.初识密码
1.1 与人类共生
1.2 密码基本概念
- 传统加密(对称加密,单钥加密)
- 代换、置换
- 现代加密(非对称加密,公钥加密)
- 将算法和密钥分开,密码算法公开,密钥保密
密码编码学系统具有三个独立的特征:
- 转换明文为密文的运算类型
- 置换:将明文中的元素重新排列
- 代换:将明文中每个元素映射成为另外一个元素
- 原则是不允许丢失信息,即所有的运算都是可逆的
- 所用的密钥数
- 对称/单钥
- 非对称/公钥
- 处理明文的方法
- 分组密码/块密码
- 流密码/序列密码
1.3 密码发展历程
- 古典密码(手工、机械阶段~1949年):密码学是一门艺术
- 近代密码(计算机阶段:1945-1975):密码学成为科学(计算机是1946年出现)
- 现代密码学原理:加密体系的安全性并不依赖于加密的方法本身,而是依赖于所使
- 用的密匙
- 现代密码(1976~现在):密码学的新方向 — 公钥密码学
2.古典密码
数据的安全基于算法的保密
2.1 代换技术
- Casear密码
- 加密:字母表中的每个字母用它之后的第3个字母代换
- 解密:密文里的每个字母用它之前的第3个字母代换
- 穷举可破解凯撒密码,只用试25个密钥即可
- 单表代换
- 单表代换密码
- Playfair密码(要会算)
多表代换
把明文中的双字母作为一个单元并将其转换成密文的双字母音节(二进二出)
基于一个由密钥词构成的5×5字母矩阵
密钥词构造方法:顺序都是从左到右、从上到下。首先将密钥词填入5x5矩阵,再将字母表中密钥词字母外剩余的字母按字母表顺序填入,其中I/J始终填入一个方格
加密方法:一次加密两个字母
- 如果两个字母相同,则添加一个填充字
- 两个字母同行,用右边的字母代换(每行和每列都是循环的,比如上图中R右边的字母是M)
- 两个字母同列,用下面的字母代换
- 其他情况,用在自己的行另一个字母的列上的字母代换自己
解密就是上述规律反过来(但是”其他情况”下仍然是自己的行另一个字母的列)
- Hill密码
- 多表代换
- 矩阵K的行列数m相等,且是人为指定的,表示将m个连续的明文字母代换为m个密文字母
- C = KP mod 26,C是密文,K是3x3的加密密钥信,P是明文
- 加密相当于矩阵与向量的乘法,P是一次处理的明文字符
- 解密时需要用到K矩阵的逆K^-1,P = K^-1 C mod 26
- Vigenere密码
- 使用一系列Casear密码组成密码字母表的加密算法,属于多表代换密码
- 每个明文字母对应着多个密文字母
- 加密方式:每个明文字母按顺序对应密钥中的一个字母。根据对应的密钥所在行,查当前明文字母对应的字母,得到密文字母
- 解密方式:还是看密文字母对应的密钥所在行,然后找对应的明文字母
- Verman密码和一次一密
2.2 置换技术
通过置换形成新的排列
将消息按行写成矩形块,按列读出,列的顺序就是密钥:
恩格码的转轮就是置换
2.3 破译举例
3.对称密码算法
3.1 S-DES算法(也叫简化DES)
基础知识
密钥是十位的,明文和密文都是八位的:
八位进,八位出,分组对称密码算法
加密过程:一个很复杂的硬算过程
- 密钥生成:
- 加密过程
解密过程
密文输入后还是先做IP,最后做IP^-1得到明文
先使用密钥K2,再使用密钥K1
其他流程与加密过程完全一样
注意两个P4得到的结果与加密过程对称,可依次来判断是否计算正确
3.2 Feistel密码结构
流密码和分组密码
- 流密码:每次加密数据流的一位或一个字节
- 分组密码:将一个明文组作为整体加密并且得到的是与之等长的密文组
混淆与扩散
- 扩散:明文扩散在密文中
- 使明文的统计特征消散在密文中,让每个明文数字尽可能地影响多个密文数字
- 混淆:密文与密钥之间的关系
- 尽可能地使密文和加密密钥间的统计关系更加复杂,以挫败推导出密钥的意图
- 扩散和混淆成为了现代分组密码设计的里程碑
Feistel 密码结构的基本概念
- 使用乘积密码的概念来逼近简单代换密码
- 乘积密码:依次使用两个或两个以上的基本密码
- 交替使用代换和置换
- 几乎所有的传统的分组密码算法的结构都有和 Feistel Cipher类似的结构
3.3 DES算法
3.4 常用对称密码
3-DES、Blowfish、RC5、AES
- 3-DES:三重DES加密
- Blowfish算法:与古典Feistel结构不同,Blowfish算法每轮运算都是对数据的左右两个部分同时执行运算
- RC5:
- AES:AES不是Feistel结构,AES的每一轮都使用代换和置换并行的处理整个数据分组
4.非对称密码算法
4.1 公钥密码原理
原理
公钥密码是基于数学函数而不是代换和置换
符号说明:
$$K_s: 会话密钥\ KU_{a}:A的公钥\ KR_a: A的私钥 $$
- 公钥公开,用于加密和验证签名
- 私钥保密,用作解密和签名
加密原理:任何人向B发信息都使用同一个密钥(B的公钥)加密。没有人可以得到B的私钥,只有B可以解密
签名原理:A向B发送消息,用A的私钥加密(签名);B收到密文后,用A的公钥解密(验证)
公钥密码系统是基于陷门单向函数的概念
应用
一些vs
4.2 数论基础
4.3 RSA算法
分组密码
密钥的产生
加密/解密过程
明文数字化过程:
4.4 DH密钥交换算法
Diffie-Hellman密钥交换算法的目的是使两个用户能够安全地交换密钥,该算法本身也只局限于进行密钥交换
Diffie-Hellman密钥交换算法的有效性在于计算离散对数非常困难
5.密钥分配
存在链路加密和端到端加密两种方式
方法一和二需要人工传送密钥,适用于链路加密;
对于端到端加密,则使用密钥分配中心
密钥分配中心KDC模式:
公钥密码的主要作用之一就是解决密钥分配问题,
公钥密码可用于下面两个方面:
- 公钥的分配
- 公钥密码用于传统密码体制的密钥分配
常用的公钥分配方法有四种:
- 公开发布
- 任一通信方可以将他的公钥发送给另外一个通讯方或者广播给通信各方
- 缺点:任何人都可以伪造这种公钥的公开发布
- 公开可访问目录
维护一个动态可访问的公钥目录
这种方法比公开公钥要安全,但是也存在缺点:一旦攻击者获得或者计算出目录管理员的私钥,带来的危险将很大
- 公钥授权
- 公钥证书
由于公钥密码速度较慢,几乎没有用户愿意在通信中完全使用公钥密码,因此公钥密码更适合作为传统密码中实现密钥分配的一种手段
三种密钥分配方法:
- 简单的密钥分配方法
- 具有保密性和真实性的密钥分配方法
- 混合方法
认证技术:认证=比较
1.消息认证
1.1基本概念
消息认证就是验证所收到的消息确实是来自真正的发送方且未被修改的消息
凡认证必比较
- 消息认证也可以验证消息的顺序和及时性。
- 数字签名是一种认证技术,可以用来抗击发送方否认
1.2三种认证函数
产生认证符的函数称为认证函数
三种认证函数:
- 消息加密:整个消息的密文作为认证符
- 消息认证码MAC:MAC是消息和密钥的公开函数,它产生定长的值,该值作为认证符
- Hash函数:它是将任意长的消息映射为定长的hash值的公开函数,以该hash值作为认证符
认证函数1:消息加密
- 对称加密:
加密前对每个消息附加一个错误检测码,也称之为帧校验序列FCS或者校验和
先计算FCS,再加密:可以提供认证
先加密,再计算FCS:攻击者可以构造具有正确错误控制码的消息,造成混淆
- 公钥加密:
- 只提供保密性,不提供认证
- 如果既要提供保密性,又要提供认证,发送方A可以先用其私钥加密(数字签名),然后用B的公钥加密
认证函数2:消息认证码MAC
利用密码生成一个固定长度的短数据块,并将该数据块附加在消息之后
因收发双方共享密钥,MAC不提供数字签名
一般将认证与保密性相结合使用
与明文有关的认证中:算明文的MAC码,MAC被加密
与密文有关的认证中:算密文的MAC码,MAC没有被加密
认证函数3:Hash函数
提供认证和保密:对消息和hash码整个进行加密
提供认证:只对hash码进行加密
提供认证和数字签名:使用发送方的私钥对hash码进行加密
提供认证、保密和数字签名:使用发送方的私钥对hash码进行加密后,再用对称密码中的密钥对消息和加密后的hash码进行加密
若通信双方共享秘密值S:发送方将M和S联结后再计算hash值,并放在M的后面:
对整个消息和hash码加密:提供认证和保密性
1.3安全hash函数一般结构
Hash函数将输入消息分为L个固定长度的分组,每个分组长度为b位,最后一个分组不足b位时,需要填充成b位
设计安全hash函数可以归纳为设计具有抗碰撞能力的压缩函数问题,并且该压缩函数的输入是定长的
1.4常用hash算法
MD5
算法过程:
- 增加填充位(第1位为1,其余为0),填充完后消息比512的整数少64位。这64位用来表示填充前的报文长度(增加消息长度的目的是为了加强算法安全强度)
- 初始化MD缓存:
- 计算Hash值:
SHA1
SHA-1算法输入是长度小于264位的消息,也将消息按照512位分组,但hash值和连接变量长为160位
算法过程:
前面的都和MD5一样,在初始化MD缓存这一步需要用5个32位的寄存器
且压缩函数由十轮运算组成,十轮运算分成两组,每轮执行16迭代20步
RIPEMD160
RIPEMD-160算法的输入是任意长的消息,输出是160位的消息摘要;输入以512位的分组单位进行处理,hash值和链接变量是160位
算法过程:
基本和SHA1一样
比较
抗穷举能力:三种算法都不易受到弱碰撞性攻击,MD5易收到强碰撞性攻击
抗密码分析能力:对三种算法的密码分析从易到难MD5, SHA1, RIPEMD160
速度:MD5最快(相对简单,迭代次数少)
低端位/高端位:SHA1是高位在前,其他两个都是低位在前
1.5数字签名算法DSS
数字签名标准DSS:DSS是一种公钥方法,与RSA不同,DSS不能用于加密或者密钥分配,只提供数字签名功能
2.身份认证
2.1电子身份认证概述
需要大量使用消息认证技术:
What you know
What you have
Who you are
2.2网站身份认证技术
- 最简单的网站用户认证:HTTP的Basic认证
- 改进解决Basic认证的问题:基于表单的身份认证
- 若干网站增强认证技术:
- 手机短信口令
- 动态口令
- USB KEY
- 数字证书
HTTP的Basic认证
用户身份凭证:账号+静态口令
HTTP是一次连接的无状态网络协议,所以需要在每次发出HTTP请求时,将用户身份凭证的明文发送到服务器端,服务器与存储在服务器端的用户凭证进行比较
认证过程:
优缺点:
改进:
- 改进一:
- 通过使用任意对称密码,将P作为密钥,对U进行加密。但是无法躲避重放攻击
- 改进二:
- 使用消息认证中的MAC技术
- 采用挑战/响应(Challenge/Response)机制,需要进行两次HTTP请求
基于表单的身份认证
为了解决Basic认证的问题:
- 账号口令长期本地保存
- 服务器端每次都进行账号口令验证
Web的Session机制:
过程:
优缺点:
改进:
- 改进1:
- 引入Challenge/Response机制,避免口令明文通过网路传输,并且能避免重放攻击
- 改进2:
- 在第二步传输账号口令时(即客户端将表单发送给服务器),使用传输层SSL协议传输HTTP请求
常见不安全的做法:改进方式加上时间戳
网站身份增强的其他方式
互联网安全协议
网络层安全协议
IPsec:IP+安全
IPsec概念
IPsec的原理在于可以在IP层(也就是网络层)加密和/或认证所有流量
IPsec的实施:
- 主机
- 防火墙
- 路由器
IPsec体系结构
- IPsec文档
IPsec文档被分成了七个部分:
体系结构、认证头AH、封装安全载荷ESP、认证算法、加密算法、解释域(DOI)、密钥管理(IKE)
- IPsec服务
- 安全关联SA
IP流量与特定SA相关是通过安全策略数据库SPDB定义的
SPDB至少应该包括定义IP流量子集的入口、指向该流量SA的指针
- 模式
AH和ESP均支持两种模式:传输模式和隧道模式
IPsec:认证头AH
认证头AH支持数据完整性和IP包的认证
认证基于消息认证码MAC,双方必须共享一个公钥
反重放攻击:
完整性校验值:
认证数据AD域包含完整性校验值ICV,ICV是一种报文认证编码MAC或者MAC算法生成的截断代码
传输模式:通常以端到端方式实现(在主机上实现)
隧道模式:通常在防火墙或路由器上实现
AH对接收数据包的处理:
AH对输出数据包的处理:
IPsec:封装安全载荷ESP
载荷数据、填充数据、填充长度和邻接头域都在ESP中被加密。
与AH相比ESP增加的:
IPsec:安全关联组合
IKE:IPsec管理密钥
基本知识
IKE协议解决了在不安全的网络环境中安全地建立或更新共享密钥的问题
IKE的精髓在于:永远不在不安全的网络上直接传送密钥,而是通过一系列的数据交换,通信双方最终计算出共享密钥
其核心技术就是DH密钥交换算法
IKE不但可自动地为参与通信的实体协商安全关联SA,还可以维护安全关联数据库SADB
主要用途局限于为IPsec通信双方建立安全关联SA
工作阶段
SA交换-密钥交换-身份和交换验证
一个IKE SA协商(第一阶段)可为多个IPsec SA协商(第二阶段)提供服务
工作模式
工作过程
传输层安全协议
SSL:为应用层服务
SSL可以和不同的应用层协议适配
体系结构
记录协议
为SSL连接提供两种服务:
- 保密性
- 报文完整性
握手协议
四个阶段:
- 建立安全能力:
- client发hello,server发hello
- 服务器认证和密钥交换
- 服务器发,SSL证书认证、密钥交换、hello_done
- 若服务器使用SSL3.0,则需要客户端提供数字证书
- 客户认证和密钥交换
- 客户端验证服务器的证书是否有效
- 客户发交换密钥,包含pre_master_secret和消息认证码密钥
- 主密钥master_secret并不直接用于数据加密和认证,而是用来产生连接所需要的一系列密钥
- 结束
- 客户计算出加密和认证密钥后,向服务器发出change_cipher_spec,服务器转换为新协商的密码对
- 客户发出finished,验证密钥交换和认证过程是否成功
- 服务器发送change_cipher_spec和结束报文finished
告警协议
告警协议用于向对等实体传递SSL相关的警报
修改密码规约协议
应用层安全协议
HTTPS:HTTP+SSL
ARP欺骗
ARP欺骗(ARP Spoofing)是一种中间人攻击的常用手段
地址解析协议ARP(Address Resolution Protocol):工作在数据链路层,实现MAC地址与IP地址的映射
ARP欺骗成功后,可以继续进行DNS欺骗
HTTPS
使用HTTPS协议依旧无法避免ARP欺骗和嗅探攻击,但是由于HTTPS采用SSL加密传输,即时被嗅探到也无法得到明文信息
使用ettercap进行报文篡改,首先要禁止服务器对通信内容进行压缩,因为压缩后内容变为乱码,无法识别;使用HTTPS后,内容不压缩也是无法识别的密文,攻击者无法对通信内容进行篡改
故HTTPS防止中间人攻击的主要原因是它对通信内容加密了
但实际上SSL也不能确保HTTPS安全:中间人将HTTPS替换为HTTP
SET:安全电子交易协议
基础知识
电子商务安全要求:
- 数据传输的安全性:对称加密
- 数据的完整性:双重数字签名
- 身份验证:口令等
- 交易的不可抵赖:时间戳、数字签名、数字证书等
CA认证体系通常以各种基本加密算法为基础,同时采用各种基本安全技术,为上层的安全应用协议提供证书认证功能
SET协议目标:解决多方认证问题、保证订单信息和个人账号信息的隔离
SET协议采用电子证书来解决各参与方的身份认证问题