网络空间安全导论笔记
分组密码
分为对称分组密码和非对称分组密码,习惯上分组密码指对称分组密码
加解密速度较快,安全性好
子密钥生成的评价指标
- 实现简单、速度快、满足轮函数F的要求
- 种子密钥的所有比特对每个子密钥比特的影响大致相同
轮函数F
- 是分组密码的核心,是分组密码中单轮加解密函数
- 准则
- 非线性:体现算法复杂度
- 可逆性:能够实现解密
- 雪崩效应:输入即使只有很小的变化,也会导致输出产生巨大变化的现象
- 指标:安全性、速度、灵活性(成本)
迭代轮数
- 过多的迭代轮数会使加解密算法的性能下降,而实现的实际安全性增强不明显
- 决定迭代轮数的准则
- 密码算法分析的难度大于简单穷举搜索攻击的难度
DES算法
是分组密码的典型代表,其迭代轮数是16次
DES密钥长度按现在的计算能力不能低于穷举工具
DES密码长度是56位,密钥空间256<1020
- 加解密过程
- 将明文分为N组,每组明文Pi为64bits,并为Pi分配56bits的密钥,如果最后一组Pi不足64bits,按一定规则添上0-63bits,加密后得到密文分组CN
- 解密即其逆过程,先根据密钥解密,再看是否需要给最后一组去掉0-63bits
AES算法
序列密码
属于对称密码体制,又称为流密码
起源于维尔姆(Vernam)密码
- P:明文分组 C:密文分组 K密钥分组
序列密码的特点
加解密只是简单的模二加(异或)运算
密码安全强度主要依赖密钥序列的安全性
加解密没有分组限制,可随时加解密
密钥序列产生器(KG)基本要求
- 种子密钥长度足够长,一般在128位以上(密钥序列生成器的算法是公开的,需要抵御穷举攻击)
- 极大周期:密钥序列周期至少大于所需使用密钥序列的长度,否则出现使用相同密钥
- 随机性密钥序列{ki}具有均匀的n-元分布
- 不可逆性:由密钥序列提取关于种子密钥K的信息在计算上不可行
- 雪崩效应
- 密钥序列是不可预测的:即使知道前半部分也不能确定后半部分
对称密码体制
- 加密密钥和解密密钥相同,或者虽然不相同,但由其中一个可以很容易推出另一个
- 又称传统密码体制、秘密密钥体制、单密钥体制
- 从密钥使用方式上分为分组密码和序列密码
对称密码体制的缺陷
- 秘密的安全信道
- 密钥量大
- 数字签名问题:难以解决身份认证和交易不可否认的问题
非对称密码体制
- 加密密钥和解密密钥不相同,并且由其中一个可以很难推出另一个
- 又称公钥密码体制
- 用一个密钥进行加密(验证),用另一个密钥进行解密(签名),其中一个密钥可以公开,称为公钥,另一个需要秘密保存,称为私钥
公钥密码
单向函数
正向计算容易,反向计算难
DH密钥交换方案
不方便,不实用,必须同时在线才能完成
公钥密码基本原理(单向陷门函数)
RSA密钥对生成算法
RSA加解密过程
安全性基于分解大整数的困难性假定
以现有计算水平,RSA密钥长度为2048位被认为是安全的
- 第一个实用的公钥密钥算法
- 目前使用最多
- 理论基础是数论的欧拉定理
- 安全性依赖于大数的素因子分解的困难性
- 能用于加密也能用于数字签名
优点
- 密钥分发简单
- 需秘密保存的密钥量少
- 可以实现数字签名和认证的功能
缺点
- 比对称密码算法慢
- 密钥位数相对比较长
- 有数据扩展
Hash函数及应用
- 主要应用于消息认证码和数字签名技术
- 能验证信息的完整性
- 也称散列函数、杂凑函数,是一种单向密码体制,即是从明文到密文的不可逆映射,即只有加密过程,不存在解密过程
- 可以将任意长度的消息输入经过变换以后得到固定长度的数据输出,且容易计算
- 这种单向特征和输出数据长度固定使它可以生成消息或数据块的数据指纹(也称哈希值或消息摘要或散列值)
- 公式表示形式
- h=H(M)
- M:任意长度的消息
- H:哈希函数或杂凑函数或散列函数
- h:固定长度的哈希值
- 已知h,要找到H(M)=h实际上是不可能的
- h=H(M)
- 性质:
- 抗弱碰撞性,抗强碰撞性,雪崩效应
- 注:碰撞指不同的消息M1和M2是的H(M1)=H(M2)
- 安全性:攻击者的主要目标不是恢复原始的密文,而是寻找与合法消息哈希值相同的非法消息,然后用非法消息替代合法消息进行伪造和欺骗。所以对哈希函数的攻击也是寻找碰撞的过程
- 结论:假设哈希函数H输出长度为L位,全部可能的输出有n=2L个,但计算2L/2输出是产生强碰撞的概率大于50%,所以2L将决定输出长度为L的哈希函数h强碰撞的强度
常见的哈希函数(SHA)
- 称为安全哈希标注
- SHA-0和SHA-1可将一个最大264(约等于1019,1T约等于1013)位的消息转换成一串160位(目前计算能力,安全哈希值长度)的消息摘要
- SHA家族的五个算法:SHA-1、SHA-224、SHA-256、SHA-384、SHA-512。后四者有时并称SHA-2。第一个应用范围最广
SHA-1哈希值的生成过程
- 预处理:
- 将原始消息填充至比特长度为448模512,即如果消息长度不是512的倍数,则在消息末尾添加一个1,后面跟着0,直到总长度满足448模512。
- 在填充后的消息末尾添加64位的消息长度(以位为单位)。
- 初始化哈希值:
- 初始化一个160位的哈希值,通常使用特定的初始值。
- 处理消息:
- 将消息分成512位的块。对于每个块,执行以下步骤:
- 扩展:将512位的消息块扩展成80个160位的字。
- 初始化工作变量:设置五个32位的寄存器(A, B, C, D, E),这些寄存器将用于计算当前块的哈希值。
- 主循环:对80个160位的字进行20轮循环处理,每轮使用不同的函数和常数,更新寄存器的值。
- 添加:将处理后的块的哈希值与之前的哈希值相加,更新哈希值。
- 产生最终哈希值:
- 处理完所有消息块后,将最终的哈希值输出。
哈希函数的应用
- 消息认证
- 数字签名
- 口令的安全性
- 文件的完整性(如区块链、可信计算、文件病毒的检验、网页防篡改、黑白名单等)
- 密码协议的应用(如零知识证明、投掷硬币、比特承诺等)
- 计算机中不可能实现真正的掷硬币,但可以执行一个掷硬币协议
- 一般要满足以下三个条件
- 参与双方各有50%的机会获胜
- 规定如果双发中任何一方欺骗则认为其在博弈中失败
- 协议执行结束后双方都知道结果
消息认证码(MAC,Messages Authentication Code)
- 主要功能
- 确保收到的消息确实和发送的一样(完整性)
- 确保消息的来源真实性
- 消息认证码是与密钥相关的单向哈希函数
- MAC函数与单向哈希函数类似,但是其的输入要还包括一个密钥,不同的密钥产生不同的码,起到验证功能
- 应用的前提条件是发送者和接收者拥有一个共同的密钥,该密钥通常是对称密钥
基本实现过程
- 密钥生成:
- 首先,生成一个密钥。这个密钥只有通信双方知道,用于确保消息的安全性。
- 密钥分发:
- 将密钥安全地分发给通信双方。这通常在通信开始之前完成,并且需要保证密钥传输的安全性。
- 消息准备:
- 发送方准备要发送的消息。
- 密钥与消息结合:
- 发送方将密钥与消息结合。这可以通过多种方式完成,例如将密钥直接与消息拼接,或者使用更复杂的方法,如使用密钥对消息进行加密。
- 应用哈希函数:
- 使用一个哈希函数(如SHA-1、SHA-256等)对结合了密钥的消息进行处理。这一步的目的是生成一个固定长度的哈希值。
- 生成MAC:
- 哈希函数的输出就是MAC。这个MAC将作为消息的一部分一起发送给接收方。
- 消息传输:
- 发送方将原始消息和MAC一起发送给接收方。
- 验证MAC:
- 接收方收到消息后,使用相同的密钥和哈希函数对收到的消息进行处理,生成一个新的MAC。
- 然后,接收方将这个新生成的MAC与发送方发送的MAC进行比较。
- 完整性和身份验证:
- 如果两个MAC相同,接收方可以确信消息在传输过程中未被篡改,并且发送方是合法的(因为只有知道密钥的发送方才能生成正确的MAC)。
- 处理结果:
- 如果MAC验证成功,接收方可以安全地处理消息。
- 如果MAC验证失败,接收方应该拒绝消息,并可能通知发送方或采取其他安全措施。
数字签名(电子签名)
- 不是书面签名的数字图像化,而是一种电子代码,能验证发件人的身份和签名,还能验证文件原文的完整性
- 是连接到被签消息上的数字串
- 在通信网络中传输
- 利用以公开的验证算法来验证
- 不仅与签名者有关,也因消息而异
- 含义:
- 是指附加在数据单元(签名消息)上的一些数据(签名值),首先利用签名算法对该数据单元进行关键信息(哈希值)提取,然后使用签名者的独有信息(私钥)进行签名而成
- 并能被接收者利用签名者的公有信息(公钥)来验证其完整性、认证性、不可否认性
数字签名方案的组成
-
- P:明文空间 S:签名空间 K:密钥空间
- Sign:签名算法 Ver:验证算法
消息认证码与数字签名间的区别
恶意软件
- 指在未经授权的情况下,在系统中安装、执行并达到不正当目的的软件
- 常见的恶意软件
- 计算机病毒
- 木马
- 僵尸程序
- 广告软件
- 常见的恶意软件
- 通用特征
- 可执行代码:嵌入一个正常程序中,通过运行正常程序而运行,或是一个独立的程序
- 恶意目的
- 强制安装:通常通过漏洞或欺骗等手段,未经用户许可安装软件的行为
- 隐蔽性:难以在所依附的载体中和运行的程序中被发现
- 破坏性:不同的恶意代码对用户的计算机有着不同的破坏程度,且差别很大
- 中国法律中的定义
- 指编制者在计算机程序中插入的破坏计算机功能或数据,影响计算机使用并能自我复制的一组计算机指令或程序代码
计算机病毒的典型事件
- 莫里斯蠕虫病毒
- CIH病毒
- 冲击波病毒
- 勒索病毒
病毒与正常程序的区别
- 病毒一般不以文件形式独立存在,一般没有文件名,隐藏在正常程序和文件中,是一种非完整的程序。如果独立存在,其文件名通常伪装成系统文件
- 病毒在用户完全不知的情况下运行,将自身复制到其他正常程序中,并与合法程序争夺系统的控制权,甚至进行各种破坏
计算机病毒的特点
- 可执行代码、恶意目的、强制安装、破坏性
- 寄生性(隐蔽性):嵌入到宿主程序中,依赖于宿主程序而生存
- 触发性:根据特定条件发作
- 衍生性:为了逃避查杀,可以衍生出与原版本不同的变种
病毒寄生方式
- 静态寄生:寄生于磁盘、光盘等,不会主动传染,不会发作
- 动态寄生:病毒已被调入内存,已经或随时可以获得控制权进行传染或发作
计算机病毒典型类型
- 引导型病毒
- 通过软盘传染
- 寄生对象:引导扇区
- 激活方式:系统启动或读写磁盘
- 典型病毒:大脑病毒、小球病毒、火炬病毒等
- 文件型病毒
- 通过文件复制传染
- 寄生对象:可执行文件
- 激活方式:文件执行
- 典型病毒:1575病毒、CIH病毒等
- 蠕虫病毒
- 通过系统漏洞或网络协议漏洞传染:如果发现漏洞就下载并执行病毒程序,修改注册表
- 寄生对象:系统目录
- 激活方式:系统启动自动加载
- 典型病毒:冲击波病毒、求职信病毒等
- U盘病毒
- 依赖于U盘等可移动设备生存
- 寄生对象:可移动设备
- 激活方式:双击U盘盘符,便启动了隐藏的Autorun、inf等系统文件
- Autorun、inf是安装信息文件,通过其可以实现可移动设备的自动运行
- 典型病毒:记事本病毒、文件夹病毒、比肩社区病毒
防火墙
防火墙的分类
- 网络防火墙:用于专用设备、硬件、软件
- 计算机防火墙:用于软件
网络协议
为使计算机高速协调地进行数据交换,在格式和传输顺序等方面以事先预定好的规则进行数据传输
TCP\IP模型
- IP:互联网协议
- TCP:传输控制协议
- LAN:局域网
- WAN:广域网
OSI七层模型
- 从上到下为应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
- 应用层、表示层、会话层整合称为TCP\IP模型中的应用层,用于提供应用层的通信,如HTTP、Ftp协议,向用户提供应用程序
- 传输层不变,用于建立主机端与端的连接,如TCP、UDP协议,提供应用程序间的通信(UDP不能提供可靠的传输)
- 网络层不变,用于寻址和路由选择,如IP协议,保证数据包可靠到达目标主机,若不能到达,向源主机发送差错控制报文
- 数据链路层和物理层整合为网络接口层,用于提供介质访问、链路管理等以及比特流,如MAC地址
IP地址与端口
- IP地址相当于每台电脑的一个编号
- 端口对应网络的服务,不同的端口对接的网络不同
防火墙的含义
内外所有数据流必须经过防火墙,符合安全策略的数据流才能通过,相当于分离器、限制器、分析器
防火墙的基本功能
包过滤技术
- 基于IP地址来监视并过滤网络上流入和流出的IP包,它只允许与指定的IP地址通信,作用是在可信任网络与不可信任网络之间有选择地安排数据包的去向
- 信息过滤规则以其所收到的数据包头信息为基础
- 检测内容:一般检查网络层的IP头和传输层的包头
- IP源地址、IP目标地址、协议类型、TCP或UDP包的目的端口和源端口
- 包过滤规则必须存储在防火墙设备上,以特定的次序被存储,每一规则按照被存储的次序作用于包
状态检测防火墙
- 传统防火墙基于规则的静态过滤,该种防火墙采用动态的、基于连接方式的检查规则,不仅仅检查单个数据包,也观察一系列数据包的行为模式
工作原理
- 连接跟踪:当一个连接建立时,防火墙会为这个连接分配一个唯一的会话标识符,并将相关信息存储在会话表中
- 数据包过滤:判断该数据包是否属于某个已建立的连接
- 会话维护:识别并保持正常的网路会话,当一个连接结束时,防火墙会将相关的会话信息从会话表删除,防火墙还能处理多个并行连接,确保每个连接都能正常传输数据
NAT技术
- NAT称为网络地址转换,是由于合法的IP地址不够使用,例如公司使用内部IP,无法与外界直连,防火墙将内部的IP与对外IP作转换,使内部IP无需变动也能与外界联通
好处
- 缓解ip地址匮乏问题
- 内部网络可以使用私有IP地址,方便网络管理
- 隐藏了内部网络的结构,提高了安全性
VPN
含义
- 虚拟专用网,指通过一个公用网络建立一个临时的、安全和稳定的隧道,能提供与专用网络一样的功能和安全保障
- 虚拟指不需要实际的长途线路
- 专用网络指用户可以为自己定制一个符合自己需求的网络
- 公共网络主要指互联网
主要功能
- 数据保密性:保证通过公用网络传送的信息即使被 他人截获也不会泄密
- 数据完整性
- 身份认证
主要技术
- 隧道技术
- 数据加密、完整性技术
- 通常使用对称加密技术和消息认证码技术
- 密钥管理技术
- 身份认证技术
- 常用使用者名称和数字证书结合的认证方式
日志
- 会话日志:即普通连接日志
- 通信源地址、目的地址、源目端口、通信时间、通信协议、字节数、是否允许通过
- 内容日志:即深度连接日志
- 在普通连接日志的基础上记录下各个应用层命令参数和内容,如HTTP请求及其要取的网页名
典型应用模式
- 在安装防火墙的同时设立一个隔离区(DMZ),即一个非安全系统与安全系统之间的缓冲区,在这个小网络区域放置一些必须公开的服务器设施
入侵检测系统(IDS)
- 入侵:指对信息系统的未授权访问或未经许可在信息系统中进行操作
- 入侵检测:指对企图入侵、正在进行的入侵或已经发生的入侵进行识别的过程
- 作用:对网络内部进行实施的检测,主动发现入侵行为或非法行为,提高网络安全性
漏洞扫描技术
是一种能自动检测远程或本地主机系统在安全性方面存在弱点和隐患的程序包
实现过程
向目标机发送扫描引擎组装阿红相应的数据包,接收返回结果并与漏洞数据库的特征值比较
漏洞
一般指硬件或软件存在的安全缺陷,从而使攻击者能在未授权的情况下访问、控制系统
与Bug的关系
大部分Bug不涉及安全性,即不构成漏洞,大部分的漏洞来源于Bug,但不是全部
补丁
- 有的是为了加强软件功能而推出
- 安全补丁是软件开发厂商为堵塞安全漏洞开发的与原软件结合或对其升级的程序
- 是防漏洞最有效的方法