当前位置: 首页 > article >正文

网络安全与基础总复习

零——复习资料

  • 网络安全基础应用与标准(第六版)
  • Netsec中文译版课件

第一章——引言

1.1 CIA三元组

image

  • 机密性(Confidentiality):数据机密性;隐私性
  • 完整性(Integrity):数据完整性;系统完整性
  • 可用性(Availability)

为了使安全场景更全面又提出新的概念,提及较多的有:真实性,可计量性

安全的三个等级

分为低中高(了解)

image

1.2 OSI安全体系结构

  • 安全攻击:威胁信息安全的行为
  • 安全机制:检测防范恢复的机制
  • 安全服务:增强,传递安全的服务

X.800定义OSI安全体系结构
RFC4949 定义威胁和攻击


  • 威胁:可能造成攻击的潜在攻击
  • 攻击:故意避开安全防范进行破坏安全的行为

1.3 安全攻击

被动攻击

本质是监听,获取传输的目标信息,被动攻击有两种形式。

  • 消息内容泄露攻击
  • 流量分析攻击

主动攻击(则试图改变系统资源或影响系统操作)

有四类

  • 假冒 :一个实体假冒成另一个实体
  • 重放 :截取,重传,产生非授权
  • 改写信息 : 篡改,延迟,重排等
  • 拒绝服务 :禁止已授权对象或设备
对比
  1. 被动攻击:不影响系统资源,不影响系统操作
    主动攻击:试图改变系统资源或影响系统操作

  2. 被动攻击:易发现
    主动攻击:不易发现

1.4 安全服务(X.800定义)

  • 认证(authentication):确保信息实体是真实的
  • 访问控制(access control):限制控制通过通讯链路访问主机的活动
  • 数据机密性(data confidentiality):防御被动攻击(passive attack),防止流量劫持。
  • 数据完整性(data integrity):确保消息收发是一致的
  • 不可抵赖性(nonrepudiation):防止发送者或接收者否认一个传输消息
  • 可用性服务(availability service):当收到命令,主机可以正常处理服务

第二章 对称加密和信息机密性

image

2.1 密码分类

按一下三个角度分类

  • 明文转换密文的类型
    所有算法都基于替换和换位,要求信息不得缺失

  • 使用的密钥数
    若双方使用同意密钥则为:对称,单钥,私钥或传统加密
    若不同,则为非对称,双钥,宫钥加密

  • 明文处理方式
    分组密码一次处理一个元素
    流密码连续地处理输入元素,每次产生一个输出元素

攻击类型

攻击类型攻击所需要的信息
唯密文(Ciphertext only)1.加密算法 2.要解密的密文
已知密文(Known plaintext)1.加密算法 2.要解密的密文 3.一个/多个密钥产生的密文
选择明文(Chosen plaintext)1.加密算法 2.要解密的密文 3.某段明文+该段明文的密文
选择密文(Chosen ciphertext)1.加密算法 2.要解密的密文 3.密文+该段密文解密出的明文
选择文本(Chosen text)1.加密算法 2.要解密的密文 3. 密文+该段密文解密出的明文 4.某段明文+该段明文的密文

暴力攻击(Brute Force Attack)

破译是很难预估的,若算法无弱点,有x个可能的密钥,则需要x/2次才有可能完全破解。暴力攻击就是穷举所有的可能性。


Feistel密码结构

很多对称加密算法的结构

image

简而言之:文本一分为二,右端由一个初始的轮函数加密,与左端进行异或,并将结果对换,如此往复,且每次子密钥/轮函数(k/f)都不同,都是基于上一次迭代演算来的。迭代16次。

Felstel设计要素
  • 分组大小:分组越细致安全性越高,但是加密解密效率降低,目前都为128bit
  • 密钥大小:同上,目前主流也为128bit
  • 迭代轮数:轮次多少不能显著提升安全性,因为本质是单局处理,一般16轮。
  • 子密钥产生算法:越复杂越难破解
  • 轮函数:同上
  • 快速软件加密/解密:算法执行速度
  • 容易分析:越容易越易破解

2.2 对称加密算法

数据加密标准(DES)

算法描述:明文64bit,密钥长度56bit,16轮迭代,以原始56比特密钥为基础产生16组子密钥。第一次使用第16次的子密钥,最后一次使用第一次的子密钥。

强度:至少目前无公开说明该算法有缺陷。只能通过穷举

2.5 分组密码工作方式(了解)

工作模式简略
电子密码本模式(ECB)1.每次加密密钥相同 2.相同明文=相同密文 3. 64bit工作模式易暴露
密码分组连接模式(CBC)1.每次加密密钥相同 2. 从第二次输入开始,输入是当前密文与前一个密文分组的异或
密码反馈模式(CFB)1. 某一初始向量(IV)首先进行加密,然后与明文进行异或,最后继续反馈到加密算法内 2. 不能并行输入 3. 不损失安全性前提下更简单的处理一个块
计数器模式(CTR)1.一个计数器对应一个分组,计数器+密钥进行加密

第三章 公钥密码和消息认证

消息认证:防止被动攻击(窃听),主动攻击(伪造数据和业务)的方法。

常规加密的消息认证

  • 密钥:使用相同密钥才能加密解密消息
  • 序列号:感知是否被篡改
  • 时间戳:是否在正确的时间接收消息

非加密消息认证

特点:在内容上附加认证标签。不加密信息

消息认证码(MAC)

内容:将一段加密的消息认证码(MAC),附着到明文上传递给目标,目标有相同密钥可以解密加密的MAC,解密MAC和传递的MAC一样,则说明消息未被篡改,消息来源合法。

3.2 安全散列函数

特性/要求

  • 散列函数适用任意长度的数据
  • 散列函数生成的散列值是定长的
  • 计算密文是易实现的
  • 单向性:不可由密文推演到明文
  • 抗第二原像攻击性:对于相同的密文,他们的明文不可一致
  • 抗碰撞性:凭计算是不可能计算(或者说很难计算),明文不一致的输入他们的密文相同。
  • 预映射阻力:对于给定的输出,应该非常困难(在实际上是不可能)找到一个输入,使得哈希函数的输出等于给定的输出。
  • 二次预映射阻力:对于给定的输入,应该非常困难(在实际上是不可能)找到另一个输入,使得两个输入的哈希函数的输出相同。
  • 碰撞阻力:应该非常困难(在实际上是不可能)找到两个不同的输入,使得他们的哈希函数的输出相同。
    ————copilot

满足前五个为弱散列函数,前六个为强散列函数

3.4 公钥密码

组成

  • 明文
  • 加密/解密算法
  • 公钥和私钥
  • 密文

思想

假设两个通信方A,B,通信前每人会生成两个密钥,一个为公钥一个为私钥,公钥是公开的。若A向B发送消息,则A需要使用公钥进行加密,发送给B,B再用私钥解密,其他人不可对公钥进行逆向解密,只有公钥发行者才可以通过密钥解密。

image

image

3.5 公钥密码算法

RSA (重要)

算法步骤

①选择两个不相等质数p,q
②计算φ(n)=(p-1)(q-1) ; n=pq
③选择一个整数e,满足:1<e<φ(n);e与φ(n)互为质数
④再选择一个d,满足ed≡1(mod φ(N)) (ed/φ(N)=1)
⑤则公钥为(e,n)
⑥私钥为(d,n)

  • 加密:给定明文M,计算密文C=MemodN。

  • 解密:给定密文C,计算明文M=CdmodN。

算法安全

①数学攻击:使用越大位数d的数字,越可以防范数学攻击。
②时间攻击:通过解密的运行时间推断d的长度,可以引入随机延迟
③选择密文攻击:通过选择发送目的性的数据块分析所需的信息,可以引入无意义的文本填充。

Diffie-Hellman密钥交换

目的:安全交换密钥

算法步骤

①甲与乙共享一个大的质数p和一个基g(1<g<p)
②甲选择一个密钥a,计算A=gamodp,发送A给乙
③乙选择一个密钥b,计算B=gbmodp,发送B给甲
④甲计算s=Bamodp 乙计算s=Abmodp,他们拥有共同的密钥s。

中间人攻击

假设一个中间人丙可以劫持甲乙之间的通信
则甲乙都是向丙进行通信,而不是甲乙单向通信。

①甲乙分别计算公钥YAYB,甲向乙发送YA
②丙自己单独计算两个公钥XD1和XD2。丙劫持YA,并且向乙发送XD1,计算K2=(YA)XD2modq
③乙接收XD1,K1=(YD1)XBmodq,向甲发送XA
④丙劫持乙发送的消息,向甲发送YD2,计算K1=(YB)XD1modq
⑤甲接收YD2,并且计算K2=(YD2)XAmodq

简单的说,就是甲和丙共享K2,乙和丙共享K1。K2是用甲的YA和丙的YD2计算得到的,K1是由乙的YB和丙的YD1计算得到的

预防方法为使用数字签名和公钥证书

其他公钥密码
数字签名标准

美国国家标准与技术研究所(NIST) 定制的数字签名标准(DSS),后期提出了数字签名算法(DSA)

椭圆曲线密码

对标RSA算法的产物 (ECC)

3.6 数字签名

数字签名算法(DSA)
算法步骤

甲的消息首先经过密码哈希函数加密后,附上甲的私钥输入数字签名产生算法内,生成一个短块,附在消息上,发送给乙。然后乙收到该消息+签名后,把甲的消息放入密码哈希函数内,加上签名和甲的私钥进入数字签名验证算法内。

第四章

4.2 密钥分配

有以下四种密钥分配的选择

  • A选定密钥并且通过物理方法给B
  • 第三方可以选定密钥并通过物理方法传递给A和B
  • 若AB之前使用过一个密钥,那么一方可以通过被旧密钥加密的新密钥传递给另一方
  • 如果AB各自有一条到达第三方C的加密链路,那么C可以在加密链路上传递A和B

基于第四种思想的是密钥分发中心(Key Distribution Center KDC),KDC决定哪些系统之间允许通信,两个系统被允许建立连接时,KDC为这条链路提供一次性密钥。

Kerberos 4

关键词

简写意义
C客户端
AS认证服务器
V服务器
IDC客户端上用户的身份标识
IDV服务器上的身份标识
PC客户端上用户的口令
ADC客户端的网络地址
KV认证服务器和登录服务器的共享密钥

image


http://www.kler.cn/a/419527.html

相关文章:

  • Linux locate 命令详解
  • Uniapp自动调整元素高度
  • Maven 配置
  • HTML5动漫主题网站——天空之城 10页 html+css+设计报告成品项目模版
  • ProtoBuf快速上手(C++)
  • SpringBoot3 + Vue3 由浅入深的交互 基础交互教学2
  • React Native 组件详解之SectionList、StatusBar、Switch、Text 、 TextInput
  • Python基础可能经常出现的异常类型
  • 身份证 OCR 识别 API 接口的应用场景
  • JVM_总结详解
  • 大模型开发和微调工具Llama-Factory-->LoRA合并
  • 本地部署开源趣味艺术画板Paint Board结合内网穿透跨网络多设备在线绘画
  • Axios与FastAPI结合:构建并请求用户增删改查接口
  • qt QRadialGradient详解
  • 读《Effective Java》笔记 - 条目15
  • 数据结构与算法学习笔记----堆
  • day32|leetcode 509.斐波那契数,70.爬楼梯,746.使用最小花费爬楼梯
  • 什么是隐式类型转换?隐式类型转换可能带来哪些问题? 显式类型转换(如强制类型转换)有哪些风险?
  • 人工智能技术在外骨骼机器人中的应用,发展历程与原理介绍
  • 普及组集训--图论最短路径
  • 婚礼照片分享平台WeddingShare
  • Java NIO 全面详解:初学者入门指南
  • C 语言学习的经典书籍有哪些?
  • 【数据分析】伊藤公式
  • 【golang】单元测试,以及出现undefined时的解决方案
  • Linux离线安装docker(arm64架构cpu)极速版