信息安全概论学习笔记

一、概论

1.1 计算机与社会

(1)计算机逐步进入社会

(2)计算机的脆弱性

1.2 信息安全

1.2.1 概念

(1)静态定义:采用国际标准ISO对计算机安全的定义:为数据处理系统建立和采用的技术上和管理上的安全保护,保护计算机硬件、软件数据不因偶然和恶意的原因而遭到到破坏、更改和泄露。

(2)动态定义:增加了对信息系统能连续正常工作的要求。

(3)目标:保密性完整性可用性、抗否认性、可控性(指可以控制授权范围内的信息流向及行为方式,对信息的传播及内容具有开展能力)

(4)面临的威胁:泄密、欺骗、中断、纂夺、监听、纂改、抵赖、延时

1.2.2 主要内容

网络信息系统安全包括物理安全、运行安全、管理和策略三个主要领域。

(1)物理安全:指保护计算机设备、网络以及其他设施免遭地震、水灾、火灾、有害气体和其他环境事故破坏的措施、过程。包括环境安全(计算机网络信息系统所在环境的安全保护)、设备安全(计算机网络信息系统设备的安全保护)、媒体安全(存储介质的安全管理)。

(2)运行安全:提供一套安全措施来保护信息处理过程的安全,其目的是保障系统功能的安全实现。eg.访问控制、加密、鉴别、病毒防护、备份与恢复、应急响应、风险分析等

(3)管理和策略:安全管理是保证计算机网络信息系统安全的特殊技术,包含制度和教育两方面的内容,有三项原则:多人负责原则、任期有限原则、职责分离原则。安全策略是指在一个特定的环境中,为保证提供一定级别的安全保护所必须遵循的规则。需要考虑和制定相关计划的策略领域有:系统管理策略、资源需求分配策略、使用策略、用户管理策略、灾难恢复计划。

1.2.3 模型

1)访问控制

在身份识别的基础上,根据身份对提出的资源请求加以控制。

(1)三个元素:主体(访问的发起者),客体,保护规则

(2)两个重要过程:通过鉴别来检验主体的合法身份,通过授权来限制用户对资源的访问级别

(3)一般的保护机制:强制访问控制(安全属性),自主访问控制(所有者)

2)强制访问控制

所有主体(用户、进程)和客体(文件、数据)都被分配了安全标签,安全标签标识一个安全等级,访问控制执行时对主体和客体的安全级别进行比较。

强制访问控制进行了很强的等级划分,所以经常用于军事用途。

3)自主访问控制

每个主体拥有一个用户名并属于一个组或具有一个角色;每个客体都拥有一个限定主体对其访问控制列表(ACL);每次访问发生时都会基于访问控制列表检查用户标志以实现对其访问权限的控制。

4)多级安全模型

将数据划分为多个安全级别与敏感度的系统称之为多级安全系统。

(1)BLP保密性模型:对主体和客体按照强制访问控制系统的策略进行分类,这种分类一般应用于军事用途。数据和用户被划分为以下五个安全等级:公开,受限,秘密,机密,高密。基于两种规则来保障数据的机密度与敏感度:上写,下读。

(2)BIBA完整性模型:该模型对数据提供了分级别的完整性保证,也使用强制访问控制系统。数据和用户被划分为以下五个安全等级:公开,受限,秘密,机密,高密。基于两种规则来保障数据的完整性:上读,下写。

(3)Clark-Wilson完整性模型:通常用于银行系统中来保证数据的完整性。系统接受自由数据条目(UDI)并将其转换为受限数据条目(CDI);受限数据条目仅能被转换程序(TP)所改变;转换程序保证受限数据条目的完整性;每个受限数据条目拥有一个完整性检查程序(IVP);访问控制机制由三个元素组成(主体、TP、CDI)在这里插入图片描述

5)多边安全模型

🍌多边意味着多个系统,多边安全系统及多个组织间的访问控制系统。多边安全的焦点在不同的安全集束(部门,组织等)间控制信息的流动,而不仅是垂直检验其敏感级别。

(1)Lattice安全模型:通过划分安全边界对BLP模型进行扩充,他将用户和资源进行分类,并允许他们之间交换信息。😄Lattice安全模型为分属不同安全集束的主体划分安全等级,而不同安全集束中的客体也必须进行安全等级划分。一个主体可同时从属于多个安全集束,而一个客体仅能位于一个安全集束。🍓Lattice安全模型本质上与BLP模型相同,但更注重安全集束,只有各对象位于相同的安全集束中,才满足上读下写原则。

(2)Chinese Wall模型:安全策略的基础是客户访问的信息不会与目前他们可支配的信息产生冲突。该模型有两个主要属性:用户必须选择一个他可以访问的区域;用户必须自动拒绝来自其他与用户所选区域的利益冲突区域的访问。

1.2.4 标准

(1)分类:

互操作标准:经过一个自发的选择过程后被普遍采用的算法和协议,就是所谓的事实标准。如对称加密标准DES、3DES、IDEA ,非对称加密标准RSA,VPN标准IPSec,传输层加密标准SSL,安全电子邮件标准S-MIME等。

技术与工程标准:信息产品通用测评标准(ISO 15408);安全系统工程能力成熟度模型(SSE-CMM),信息系统软件过程评估(ISO/IEC 15504),信息和相关技术控制目标(COBIT),系统与软件整合层次标准(ISO 15026),美国TCSEC(桔皮书),欧洲ITSEC,加拿大CTCS。

信息安全管理标准:信息安全管理体系标准(BS7799),信息安全管理标准(ISO 13335),GB17895-1999《计算机信息系统安全保护等级划分准则》

(2)安全管理标准BS 7799:由英国标准协会BSI制定,主要提供了有效地实施IT安全管理的建议,介绍了安全管理的方法和程序。

1.2.5 发展趋势

(1)信息安全技术发展

(2)信息安全产品发展

(3)信息安全方案发展

(4)信息安全服务发展

二、密码学概论

2.1 概述

(1)加密解密基本过程:使消息保密的技术和科学为密码编码学;破译密文的科学和技术为密码分析学。如果算法的保密性是基于保持算法的秘密,这种算法称为受限制的算法。在这里插入图片描述

(2)密码体制分类:对称密码体制:又叫传统密码算法:加密密钥能够从解密密钥中推算出来,反过来也成立。大部分加解密密钥使相同的,也叫秘密密钥算法或但密钥算法。对称算法可分为两类:序列算法(序列密码)和分组算法(分组密码)公钥密码体制:用作加密的密钥不同于用作解密的密钥,且解密密钥不能根据加密密钥计算出来。

(3)常用的密码分析攻击:

唯密文攻击:密码分析者知道加密算法、带破译的密文。

已知明文攻击:密码分析者知道加密算法、带破译的密文、由密钥形成的一个或多个明文-密文对。

选择明文攻击:密码分析者知道加密算法、带破译的密文、由密码分析者选择的明文,连同它对应的尤其密钥生成的密文。

选择密文攻击:密码分析者知道加密算法、带破译的密文、由密码分析者选择的猜测性密文,连同它对应的由密钥生成的已破译的明文。

自适应选择明文攻击:密码分析者知道加密算法、带破译的密文、由密码分析者选择的明文,连同它对应的尤其密钥生成的密文、由密码分析者选择的猜测性密文,连同它对应的由密钥生成的已破译的明文。

选择密文攻击和自适应选择明文攻击较少使用。

2.2 古典密码体制

古典密码是基于字符替换的密码,加密技术的两个基本构造模块是替代和置换。

2.2.1 恺撒密码

(1)基本原理:把字母表中的每个字母向前循环移动3位

(2)数学表达:为每个字母分配一个数值对每个明文字母p,用密文字母C代替。

加密算法: C = E ( p ) = ( p + 3 ) m o d 26 ​ C=E(p)=(p+3) mod 26​ C=E(p)=(p+3)mod26​ ;而解密算法: p = D ( C ) = ( C − 3 ) m o d 26 ​ p=D(C)=(C-3)mod 26​ p=D(C)=(C3)mod26​

(3)改进: k ( 1 ≤ k ≤ 25 ) k(1 \leq k \leq 25) k(1k25)表示密钥,则通用的恺撒加密算法表示为 C = E ( p ) = ( p + k ) m o d 26 C=E(p)=(p+k) mod 26 C=E(p)=(p+k)mod26 ;而解密算法 p = D ( C ) = ( C − k ) m o d 26 p=D(C)=(C-k)mod 26 p=D(C)=(Ck)mod26

(4)攻击方式:

唯密文攻击:攻击者只有密文消息,策略就是穷尽搜素25个可能密钥

已知明文攻击:如果攻击者知道一个字符及他的密文,那么就能通过加密字符和解密后的明文之间的间距推出密钥是多少。

选择明文攻击:选择一个字符a作为明文,则由密文就可以推导出密钥

选择密文攻击:选择字符A作为密文,则由明文也可推导出密钥

2.2.2 Playfair密码

(1)基本原理: Playfair算法基于一个 5 × 5 ​ 5 \times5​ 5×5​字母矩阵(该矩阵使用一个关键词构造,方法是从左到右、从上到下顺序,填入关键词的字母(去除重复字母)后,将字母表其余字母填入)。加密方法是先将明文按两个字母一组进行分组,然后和在矩阵中找对应的密文,取密文的规则:

若明文分组出现相同字母在一组,则在重复的明文字母中插入一个填充字母如k进行分隔后重新分组

若分组到最后一组时只有一个字母,则补充字母k;

若明文字母在矩阵中同行,则循环取其右边字母为密文;

若明文字母在矩阵中同列,则循环取其下边字母为密文;

若明文字母在矩阵中不同行不同列,,则取其同行且与下一字母同列的字母为密文。

(2)实例:取关键词为monarchy,则字母矩阵为: ( M O N A R C H Y B D E F G I / J K L P Q S T U V W X Z ) \begin{pmatrix} M&O&N&A&R\\ C&H&Y&B&D\\ E&F&G&I/J&K\\ L&P&Q&S&T\\ U&V&W&X&Z\end{pmatrix} MCELUOHFPVNYGQWABI/JSXRDKTZ

明文we are discovered save yourself

分组为:we ar ed is co ve re ds av ey ouo rs el fk

用上述矩阵加密后的密文为:UG RM KC SX HM UF KM TB XO GC VM TA LU GE

(3)优点:改变了单字母替代密码的频率分布,且双字母组合有676种,识别各种双字母组合要比识别26个单字母困难多。

2.2.3 Vigenere密码

(1)基本原理:Vigenere密码是一种多表加密算法,在密文的不同位置出现的字符通常不是以同样的方式加密的,但它是一种周期密码,如果两个同样的字符出现的间隔固定,并且为密钥长度的倍数,则它们将以同样的方法进行加密

密钥:一个字符序列 k = ( k 1 , k 2 , . . . , k m ) k=(k_1,k_2,...,k_m) k=(k1,k2,...,km),m为任意值

明文 X = ( x 1 , x 2 , . . . , x n ) X=(x_1,x_2,...,x_n) X=(x1,x2,...,xn)被分为长度为m的段,如果消息的长度恰好不是m的倍数,则在末尾填充随机字符

加密函数 E k ( x 1 , x 2 , . . . , x n ) = ( ( x 1 + k 1 ) m o d 26 ) , . . . , ( ( x m + k m ) m o d 26 ) , . . . ( ( x 2 m + k 2 m ) m o d 26 ) , . . . , ( ( x N + k m ) m o d 26 ) ​ E_k(x_1,x_2,...,x_n)=((x_1+k_1)mod 26),...,((x_m+k_m)mod 26),...((x_{2m}+k_{2m})mod 26),...,((x_N+k_m)mod 26)​ Ek(x1,x2,...,xn)=((x1+k1)mod26),...,((xm+km)mod26),...((x2m+k2m)mod26),...,((xN+km)mod26)

密钥的第一个字符被加到明文的第1个、第(m+1)个、第(2m+1)个、第(3m+1)个字符上(进行mod26运算),以此类推

解密函数 D k ( y 1 , y 2 , . . . , y n ) = ( ( y 1 − k 1 ) m o d 26 ) , . . . , ( ( y m − k m ) m o d 26 ) , . . . ( ( y 2 m − k 2 m ) m o d 26 ) , . . . , ( ( y N − k m ) m o d 26 ) D_k(y_1,y_2,...,y_n)=((y_1-k_1)mod 26),...,((y_m-k_m)mod 26),...((y_{2m}-k_{2m})mod 26),...,((y_N-k_m)mod 26) Dk(y1,y2,...,yn)=((y1k1)mod26),...,((ymkm)mod26),...((y2mk2m)mod26),...,((yNkm)mod26)

(2)实例:明文:here is how it works,密钥为vector,用数值表示则k=(21,4,2,19,14,17),m=6。

密文则是C I T X W J C S Y B H N J V M L

2.2.4 Hill密码

(1)基本原理:Hill密码是一种多字母替代密码。该算法取m个连续的明文字母,并用m个密文字母代替,用向量或矩阵表示为: ( C 1 C 2 C 3 ) = ( k 11 k 12 k 13 k 21 k 22 k 23 k 31 k 32 k 33 ) ( P 1 P 2 P 3 ) ​ \begin{pmatrix} C_1\\ C_2\\ C_3\end{pmatrix}= \begin{pmatrix} k_{11}&k_{12}&k_{13}\\ k_{21}&k_{22}&k_{23}\\ k_{31}&k_{32}&k_{33}\end{pmatrix}\begin{pmatrix} P_1\\ P_2\\ P_3\end{pmatrix} ​ C1C2C3 = k11k21k31k12k22k32k13k23k33 P1P2P3 ,C和P是长度为3的列向量,分别表示密文和明文,K是 3 × 3 ​ 3 \times 3​ 3×3​矩阵,表示加密密钥,加密操作要执行模26

(2)实例:如果使用的加密密钥为 k = ( 17 17 5 21 18 21 2 2 19 ) ​ k=\begin{pmatrix} 17&17&5\\ 21&18&21\\ 2&2&19\end{pmatrix}​ k= 172121718252119 ,对明文pay more money加密,则先按三个字母一组分组(不足三个补x),然后求密文。

因为 p a y = ( 15 , 0 , 24 ) T pay=(15 ,0 ,24)^T pay=(15,0,24)T,则有 k ( 15 , 0 , 24 ) T = ( 375 , 819 , 486 ) T m o d 26 = ( 11 , 13 , 18 ) T = L N S k(15 ,0 ,24)^T=(375,819,486)^Tmod 26=(11,13,18)^T=LNS k(15,0,24)T=(375,819,486)Tmod26=(11,13,18)T=LNS

解密时使用逆矩阵 k − 1 = ( 4 9 15 15 17 6 24 0 17 ) k^{-1}=\begin{pmatrix} 4&9&15\\ 15&17&6\\ 24&0&17\end{pmatrix} k1= 41524917015617 ,对密文 ( 11 , 13 , 18 ) T (11 ,13 ,18)^T (11,13,18)T做运算, k − 1 ( 11 , 13 , 18 ) T m o d 26 = ( 431 , 494 , 570 ) T = ( 15 , 0 , 24 ) T = p a y k^{-1}(11,13,18)^T mod26=(431,494,570)^T=(15,0,24)^T=pay k1(11,13,18)Tmod26=(431,494,570)T=(15,0,24)T=pay

2.3 对称密码体制

2.3.1 DES

(1)概述:数据加密标准(Data Encryption Standard,DES)。DES是分组加密算法,以64位为分组对数据进行加密。DES是对称算法,加密和解密用的是同一算法,密钥的长度为56位。

(2)流程:

在这里插入图片描述
在这里插入图片描述

(3)解密:加密和解密可使用相同的算法。唯一的不同之处是密钥的次序相反。

(4)安全性:弱密钥、补密钥、代数结构、密钥的长度、迭代的次数,S-盒的设计

(5)多重DES:对它最有效的攻击仍然是穷举攻击。

😄多重加密是一种组合技巧:用同一个算法在多重密钥的作用下多次加密同一个明文分组,一定要保证多重密钥是不同且相互独立的。

双重加密:用不同的密钥对一个分组进行两次加密,解密是一个反过程。

三重加密:用两个密钥对一个分组进行三次加密(用第一个密钥加密,第二个密钥解密,最后用第一个密钥加密),接收者用第一个密钥解密,第二个密钥加密,最后第一个密钥解密。

2.4 公钥密码体制

2.4.1 背包算法

0-1背包问题:给定一些物体,每个物体有不同的重量,是否有可能将这些物体放入一个背包,使背包的重量等于一个给定的值。

超递增序列: 其中每个元素都大于前面所有元素的和

(1)基本思想:一块明文的长度等于物体的个数,表示从中选取物体装入背包,密文为和,密钥为背包问题中物品重量序列。算法的关键是有两个不同的背包重量序列

背包算法先找到一个超递增背包的重量序列作为私钥,再由此构造一个有相同解的一般背包问题的序列作为公钥。

首先构造可在线性时间求的背包,eg超递增背包问题。

超递增背包问题

将背包重量与序列中最大元素相比较,如果总重量小于这个数则这个数不在背包中;

如果总重量大于或等于这个数,则这个数在背包中,用总重量减去这个数,

再与序列中下一个最大数比较,以此类推。

如果背包总重量减到0则得到背包的解,如果不为0则无解

从私钥构造公钥:选择一个超递增序列作为私钥,然后每一个值都乘以一个数n,对m取余(m应大于序列中所有数的和)n应与m互素。

加密:加密一个二进制消息,先将他分为长度和背包序列相同的块。1表示在包中,0不在包中.

解密:消息的合法接收者知道私钥mn的值。先计算 n − 1 ,满足 n × n − 1 m o d m = 1 n^{-1},满足n\times n^{-1} mod m=1 n1,满足n×n1modm=1,将密文的每一个值与 n − 1 n^{-1} n1相乘模m,然后用私钥来求解得到明文的解。

2.4.2 RSA算法

(1)基本原理:

公开密钥n:两素数p和q的乘积(p,q必须保密);e:与(p-1)(q-1)互素

私钥d: e × d e \times d e×d mod [(p-1)(q-1)]=1([辗转相除法](欧几里得算法_百度百科 (baidu.com))),等价表示为 d = e − 1 m o d [ ( p − 1 ) ( q − 1 ) ] d=e^{-1}mod [(p-1)(q-1)] d=e1mod[(p1)(q1)]

加密: c = m e m o d ​ c=m^emod​ c=memod n

解密: m = c d m o d m=c^dmod m=cdmod n

(2)速度:硬件实现时,RSA比DES慢大约1000倍,软件实现时,RSA比DES慢大约100倍。混合加密:采用对称密钥对消息进行加密,而用公钥对密钥本身进行加密:具有对称加密的速度和非对称的灵活性,适合CPU能力较弱的小型设备。

(3)安全性:RSA算法的安全性基于大数分解的难度。三种攻击RSA算法可能的方法是:强行攻击、数学攻击(对两个素数乘积的因子分解)、定时攻击。

2.4.3 ECC算法

椭圆曲线算法_百度百科 (baidu.com)

(1)基本原理:椭圆曲线密码体制是目前已知的公钥体制中,对每比特所提供加密强度最高的一种体制。

有限域上椭圆曲线:椭圆曲线是连续的,必须把椭圆曲线定义在有限域上。

(2)实例: y 2 = x 3 + a x + b y^2=x^3+ax+b y2=x3+ax+b定义在有限域上,选择两个满足下列条件的小于p(p为素数)的非负整数a、b: 4 a 3 + 27 b 2 ( m o d 4a^3+27b^2(mod 4a3+27b2(mod p) ≠ 0 \neq0 =0,则满足下列方程的所有点(x,y),再加上无穷远点0,构成一个椭圆曲线 y 2 = x 3 + a x + b ( m o d y^2=x^3+ax+b(mod y2=x3+ax+b(mod p) ≠ 0 \neq0 =0,其中x,y属于0到p-1间的整数,这条椭圆曲线记为 E p ( a , b ) E_p(a,b) Ep(a,b)

y 2 = x 3 + x + 1 ( m o d ​ y^2=x^3+x+1(mod​ y2=x3+x+1(mod 23)记为 E 23 ( 1 , 1 ) ​ E_{23}(1,1)​ E23(1,1)。下表列出了组成 E 23 ( 1 , 1 ) ​ E_{23}(1,1)​ E23(1,1)的点(不包含O点)

(0,1)(0,22)(1,7)(1,16)(3,10)(3,13)(4,0)(5,4)(5,19)
(6,4)(6,19)(7,11)(7,12)(9,7)(9,16)(11,3)(11,20)(12,4)
(12,19)(13,7)(13,16)(17,3)(17,20)(18,3)(18,20)(19,5)(19,18)

表的创建:对于每个满足 0 ≤ x ≤ p 0\leq x\leq p 0xp的x,计算 x 3 + x + 1 ( m o d x^3+x+1(mod x3+x+1(mod 23),设x=1,则结果为3;

对于上一步得到的每个结果确定他是否有一个模p的平方根。 y 2 m o d 23 = 3 y^2 mod 23=3 y2mod23=3,若没有,则曲线上没有与这一x相对应的点;若有,就有两个满足平方根运算的y值(y=0时,只有一个平方根)这些(x,y)值就是 E p ( a , b ) E_p(a,b) Ep(a,b)中的点。

(3)加密过程:

A选取一条椭圆曲线,得到 E p ( a , b ) E_p(a,b) Ep(a,b),再选择 E p ( a , b ) E_p(a,b) Ep(a,b)的元素G,使得G的阶n是一个大素数(G的阶是指满足nG=O的最小n值)。

A选取整数 r a r_a ra r a r_a ra为私钥),计算 P a = r a G P_a=r_aG Pa=raG P a P_a Pa为公钥),公开 ( p , a , b , G , P a ) (p,a,b,G,P_a) (p,a,b,G,Pa),保密 r a r_a ra

B加密消息M,把M变换成为 E p ( a , b ) E_p(a,b) Ep(a,b)中的一个点 P m P_m Pm,然后选择随机数k,计算密文 C m = { k G , P m + k P a } C_m=\lbrace kG,P_m+kP_a\rbrace Cm={kG,Pm+kPa},并把 C m C_m Cm发送给A。(如果k使得kG或者 k P a ​ kP_a​ kPa为O,则要重新选择k。

(4)解密过程:A收到B的密文 C m − { k G , P m + k P a } C_m-\lbrace kG,P_m+kP_a\rbrace Cm{kG,Pm+kPa},A用这一对中的第一个点乘以A的私钥,再从第二个点减去这个值: ( P m + k P a ) − r a ( k G ) = P m + k r a G − r a k G = P m (P_m+kP_a)-r_a(kG)=P_m+kr_aG-r_akG=P_m (Pm+kPa)ra(kG)=Pm+kraGrakG=Pm
在这里插入图片描述

2.4.4 ELGamal算法

(1)基本原理:ELGamal体制的安全性基于有限域上求解离散对数的困难性。

(2)密钥的产生:选择一大素数p,再选取两个小于p的随机数g和x,并且g是p的本原根(意味着任何数y都可以表示为 y = g L y=g^L y=gL mod p)然后计算 y = g x m o d y=g^x mod y=gxmod p,得到公钥 K U = { y , g , p } ​ KU=\lbrace y,g,p\rbrace​ KU={y,g,p},私钥KP={x,p}。

(2)加密:把要加密的明文m编码为一个整数,范围在0<m<p之间。选取一个随机整数r(只有加密者知道的临时秘密数), y r = y r m o d y^r=y^r mod yr=yrmod p, g r = g r m o d g^r=g^r mod gr=grmod p;对明文m的加密函数: C = E K U ( m ) = ( m × y r ) m o d C=E_{KU}(m)=(m\times y^r)mod C=EKU(m)=(m×yr)mod p,最后加密者把 ( C , g r ) ​ (C,g^r)​ (C,gr)发送出去。

(2)解密:接收者收到密文 ( C , g r ) ​ (C,g^r)​ (C,gr)后,取出 g r ​ g_r​ gr,再利用私钥x计算 ( g r ) x = ( g x ) r = y r m o d ​ (g^r)^x=(g^x)^r=y^r mod​ (gr)x=(gx)r=yrmod p,再用辗转相除法求出 ( y r ) − 1 ​ (y^r)^{-1}​ (yr)1,最后利用乘法逆元 ( y r ) − 1 ​ (y^r)^{-1}​ (yr)1求出明文,解密函数: D K R ( C ) = ( y r ) − 1 × C m o d ​ D_{KR}(C)=(y^r)^{-1}\times C mod​ DKR(C)=(yr)1×Cmod p= ( y r ) − 1 × m × y r m o d ​ (y^r)^{-1}\times m \times y^r mod​ (yr)1×m×yrmod p=m mod p

三、数字签名和身份验证

3.1 报文鉴别

通信接收方能够鉴别验证所收到的报文(包括发送者、报文内容、发送时间、序列等)的真伪。

(1)报文源的鉴别:接收方使用约定的密钥(由发方决定)对收到的密文进行解密,并且检验还原的明文是否正确,根据检验结果就可以验证对方的身份。

(2)报文宿的鉴别:以密钥为基础的鉴别方案的每一报文中,同时加入收方标识符IDB,在以通行字为基础的鉴别方案中,每一报文加入收方通行字PWB。若采用公开密钥密码,报文宿的认证只要发方A对报文B的公开密钥进行加密即可,因为只有B才能用自己保密的解密密钥还原报文,若还原的报文是正确的,B便确认自己是指定的收方。

(3)报文时间性的鉴别:初始向量法、时间参数法、随机数法、挫败重播攻击

(4)报文内容的鉴别:

1)报文鉴别码:用一个密钥生成的一个小的数据块,追加在报文的后面

2)报文加密:用完整的报文的密文作为对报文的认证。

3)报文摘要:报文鉴别码的一个变种,将可变长度的报文M作为单向散列函数的输入,然后得出一个固定长度的标志H(M),这个H(M)就称为报文摘要(MD)

3.2 散列函数

又称哈希函数,是把任意长度的报文(消息)M,通过函数H,将其变为一个固定长度的散列码h,散列函数表示为h=H(M),他生成报文所独有的指纹。惟一地对应原始报文。

3.2.1 概述

(1)用途:验证完整性、密钥验证(大部分操作系统的密码都以hash版本的形式存储)

(2)当前国际通行的两大密码标准:

MD5:常用的128位的消息摘要,大量用于口令存储机制。

SHA和SHA-1:160位的消息摘要,两大算法是目前国际电子签名及许多其他密码应用领域的关键技术,广泛应用于金融、证券等电子商务领域。

(3)单向散列函数性质:广泛适用性、码长固定性、易计算性、单向不可逆性、弱单向性、强单向性。

(4)一般结构:建立在压缩函数基础之上的,它通过对消息分组的反复迭代压缩,生成一个长度固定的散列值。

3.2.2 摘要算法MD5

(1)基本原理:MD5_百度百科 (baidu.com)以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过一系列处理,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。

(2)流程:

a.填充式信息长度为512的整数倍:首先对信息进行填充,使信息长度扩展至512N+448 Bits,即64N+56个字节(Bytes),N为一个正整数。填充是在信息的后面填充一个1和无数个0,直到满足上面的条件时才停止用0对信息的填充。然后,在这个结果后附加64位二进制表示的原信息(填充前)长度。最后经过这两步的处理,现在的信息字节长度恰好为512的整数倍。

b.初始化MD缓冲区-记录128位消息摘要:由四个32位寄存器A,B,C,D表示,初始化为A=0x01234567,B=0x89abcdef,C=0xfedcba98,D=0x7654321。

c.按512位的分组处理输入消息:将上面四个链接变量复制到另外四个变量中:A到a,B到b,C到c,D到d。主循环有4轮,每轮循环都很相似,每一轮进行16次操作每次操作对a,b,c,d其中三个作一次非线性函数运算,然后将所得结果加上第四个变量,一个子分组和一个常数。再将所得结果向右环移一个不定的数,并加上a、b、c、d其中一个,最后用该结果取代a、b、c、d其中一个。

以下是每轮中用到的四个非线性函数:

F( X , Y , Z) = ( X & Y ) | ( ( ~ X ) & Z ) ,

G ( X ,Y , Z ) = ( X & Z)|( Y & ( ~ Z ) ) ,

H ( X , Y , Z ) = X ^ Y ^Z,

I ( X , Y , Z ) Y ^ ( X | ( ~ Z ) )

常数可以如下选择:在第i步,常数是 2 32 ∗ a b s ( s i n ( i ) ) 2^{32}* abs(sin(i)) 232abs(sin(i))的整数部分,i的单位是弧度。四轮完成后,下一个处理基于ABCD和新的512分组,直到所有分组全部处理完,ABCD的级联输出位散列值。

(3)攻击方式:一个安全的摘要算法在设计时必须满足两个要求:寻找两个输入得到相同的输出值在计算上是不可行的(抗冲突),对一个输出能得到给定的输入在计算上是不可行的。一般采取碰撞攻击:寻找两个输入得到相同的输出值(注意计算上的可行)🌔

3.3 数字签名

3.3.1 概述

(1)基本原理:数字签名实质就是把一个特定的数据与某个人相关联,该数据代表这个人。是一种重要的消息摘要,包括两个部分:签名,验证。
在这里插入图片描述

消息和数字签名是一起发给接收者。接收者通过签名来确定发送者的身份及数据的完整性。
在这里插入图片描述

(2)分类:如RSA数字签名算法、ElGamal数字签名算法、Fiat-Shamir数字签名算法、Guillou-Quisquarter数字签名算法等。

(3)安全性:绝大多数公开密钥算法都基于下面3个疑难问题:背包问题、离散对数、

(4)应用:最早的应用之一用来禁止对核试验条约的验证

(5)形式:

1)多重签名:多个用户对同一消息进行数字签名认证。多重签名以密钥共享(将一个密钥s分割为由N个参与者掌握的部分密钥 m 1 , m 2 , . . . , m n m_1,m_2,...,m_n m1,m2,...,mn,参与者的某些制定组合可以通过出示其掌握的秘密份额恢复密钥s,而其他组合则不能得到s的任何信息)为基础,结合密码算法实现。

2)不可抵赖的签名:数字签名能够被证明是有效的,但没有签名者的同意,接收者不能把它给第三方看。

3)制定确定人的签名:允许组织机构把签署文件的人同帮助验证签名的人分开。

4)团体签名:

本协议使用可信仲裁者Trent:

  • Trent生成一个大批公开密钥/私钥密钥对,并且给团体内每个成员一个不同的唯一私钥表。在任何表中密钥都是不同的。

  • Trent以随机顺序公开该团体所用的公开密钥主表。Trent保持一个哪些密钥属于谁的秘密记录。

  • 当团体内成员想对一个文件签名时,他从自己的密钥表中随机选取一个密钥。

  • 当有人想验证签名是否属于该团体时,只需查找对应公开密钥主表并验证签名。

  • 当争议发生时,Trent知道哪个公钥对应哪个成员。

5)盲签名:盲签名_百度百科 (baidu.com)

3.3.2 RSA数字签名体制

公开密钥n:两素数p和q的乘积(p,q必须保密);e:与(p-1)(q-1)互素

私钥d:$e \times d $ mod [(p-1)(q-1)]=1([辗转相除法](欧几里得算法_百度百科 (baidu.com))),等价表示为 d = e − 1 m o d [ ( p − 1 ) ( q − 1 ) ] ​ d=e^{-1}mod [(p-1)(q-1)]​ d=e1mod[(p1)(q1)]

加密: c = m e m o d c=m^emod c=memod n

解密: m = c d m o d ​ m=c^dmod​ m=cdmod n

缺点:产生密钥很麻烦,收到素数产生技术的限制,为保证安全性,n要600bit以上,运算代价高,速度慢

3.3.3 离散对数签名体制

(1)相关参数:

选择大素数p,q

q是p-1或p-1的大素数因子

选择g,值在1和p之间,且满足 g q = 1 m o d g^q=1 mod gq=1mod p

私钥x 小于q

公钥 y = g x m o d ​ y=g^x mod​ y=gxmod p(g,p公开)

(2)签名:选择一个小于q并互素的随机数k,计算 r = g k m o d ​ r=g^k mod​ r=gkmod p, s = ( H ( M ) − x r ) k − 1 m o d ​ s=(H(M)-xr)k^{-1} mod​ s=(H(M)xr)k1mod (p-1),把消息和签名结果(M,r,s)发送给接收者,由于引入了k,即使对于同一个消息由于k的不同,也会导致签名结果的变化,所以称其为随机化的数字签名。

(3)认证:取得发送方的公钥y,如果 p − 1 ≥ r ≥ 1 ​ p-1 \geq r \geq1​ p1r1​,那么继续后续步骤,否则该签名是不合法的;计算 u 1 = y r r s m o d ​ u_1=y^rr^s mod​ u1=yrrsmod p, u 2 = g H ( M ) m o d ​ u_2=g^{H(M)}mod​ u2=gH(M)mod p,比较 u 1 和 u 2 ​ u_1和u_2​ u1u2,如果 u 1 = u 2 ​ u_1=u_2​ u1=u2,表示签名有效,否则签名无效。

(4)变形:把签名过程中的等式 s = ( H ( M ) − x r ) k − 1 m o d s=(H(M)-xr)k^{-1} mod s=(H(M)xr)k1mod (p-1) 得到 H ( M ) = ( x r + k s ) H(M)=(x r +ks) H(M)=(xr+ks) mod (p-1),将其变化为 u = x × v + k × w u=x\times v +k\times w u=x×v+k×w mod (p-1)称为签名方程。如果u=H(M),v=r,w=s,那么签名方程就是ElGamal签名过程中使用的等式。

3.3.4 DSS数字签名体制

(1)原理:数字签名标准(DSS,Digital SignatureStandard)采用的算法是DSA,密钥长度为512-1024位。密钥长度愈长,签名速度愈慢,制约运算速度的主要因素是大数的模指数运算

(2)DSA基本过程:
在这里插入图片描述

(3)DSA的变形:
在这里插入图片描述

3.4 身份认证

3.4.1 概述

(1)原理:🍦身份认证是通信双方在实质性数据传输之前进行==审查和证实==对方身份的操作。身份验证是用户向系统出示自己身份证明的过程,是系统查核用户身份证明的过程。这两个过程是判明和确认通信双方真实身份的两个重要环节,通常称为身份验证(或身份鉴别)

认证服务是运行在一个安全机器上的一个程序,通过发出一个需求、给出一个响应这样一个过程在网络上进行认证。

(2)分类:可分为软件认证和硬件认证;从认证需要验证的条件来看,可分为单因子认证和双因子认证;从认证信息来看,可分为静态认证和动态认证。

3.4.2 认证方法

(1)基于用户所知:口令核对

(2)基于用户所有:IC卡认证,动态口令(动态口令牌是客户手持用来生成动态密码的终端,主流的是基于时间同步方式的,每60秒变换一次动态口令,口令一次有效,它产生6位动态数字进行一次一密的方式认证。)

(3)基于用户特征:生物特征认证

3.4.3 Kerbeeros认证协议

(1)简介:基于私钥加密算法,需要可信任第三方作为认证服务器的网络认证系统。[Kerberos](Kerberos认证_百度百科 (baidu.com))设计的目的是解决在分布网络环境下,用户访问网络资源时的安全问题。Kerberos协议有三个通信参与方:需要验证身份的通信双方和一个双方都信任的第三方KDC。发起认证服务的一方称为客户方,客户方需要访问的对象称为服务器方

(2)组成:Kerberos应用程序库,加密/解密库、数据库程序库、数据库管理程序、KDBM服务器、认证服务器、数据库复制软件、用户程序、应用程序

(3)认证方案:

1)认证服务器(AS):用于在登陆时验证用户的身份;与每个用户共享一个秘密口令

2)授予许可证服务器(TGS):发放“身份证明许可证”;与AS共享一个秘密口令 K t g s ​ K_{tgs}​ Ktgs

3)服务器(Server):客户请求工作的实际执行者

Kerberos有一个所有客户和自己安全通信所需的秘密密钥数据库**(KDC),Kerberos知道每个人的秘密密钥**,所以能产生消息向每个实体证实另一个实体的身份。同时还能产生会话密钥,只供一个客户机和一个服务器使用,会话密钥用来加密双方通信消息,通信完毕,即被销毁。

以第四版说明处理过程:

csADxtgsKxKx,ylifeTSAc T x , y T_{x,y} Tx,y
用户C身份码应用服务器S身份码x的网络地址TGS身份码x的密钥x与y的会话密钥生存周期时间戳身份验证器x与y间的凭据
  1. 客户机C向AS发送申请C -> AS:{c,TS1}

  2. 客户机C取得初始凭证AS -> C:{ K c , t g s , c , A D c , t g s , T S 2 , l i f e 1 K_{c,tgs},c,ADc,tgs,TS2,life1 Kctgs,c,ADc,tgs,TS2,life1, T c , t g s T_{c,tgs} Tc,tgs} K c K_{c} Kc

    初始凭据 T c , t g s = { K c , t g s , c , A D c , t g s , T S 2 , l i f e 1 } K t g s T_{c,tgs}=\lbrace K_{c,tgs},c,ADc,tgs,TS2,life1\rbrace K_{tgs} Tc,tgs={Kc,tgs,c,ADc,tgs,TS2,life1}Ktgs

  3. 客户C从TGS处申请C -> TGS:{s, T c , t g s ​ T_{c,tgs}​ Tc,tgs,Ac}, A c = { c , A D c , T S 3 } K c , t g s ​ Ac=\lbrace c,AD_c,TS3 \rbrace K_{c,tgs}​ Ac={c,ADc,TS3}Kc,tgs

  4. 取得应用服务器S的票TGS->C:{s, K c , s , T S 4 , T c , s K_{c,s},TS4,T_{c,s} Kc,s,TS4,Tc,s} K c , t g s K_{c,tgs} Kc,tgs T c , s = { K c , s , c , A D c , s , T S 4 , l i f e 2 } K s T_{c,s}=\lbrace K_{c,s},c,AD_c,s,TS4,life2 \rbrace K_s Tc,s={Kc,s,c,ADc,s,TS4,life2}Ks

  5. 向应用服务器S请求服务C->S:{Ac, T c , s T_{c,s} Tc,s}, T c , s = T_{c,s}= Tc,s={ K c , s , c , A D c , s , T S 4 , l i f e 2 K_{c,s},c,AD_c,s,TS4,life2 Kc,s,c,ADc,s,TS4,life2} K s K_s Ks A c = Ac= Ac={c, A D c , T S 5 AD_c,TS5 ADc,TS5} K c , s K_{c,s} Kc,s

  6. 互相验证身份S->C:{TS5+1} K c , s ​ K_{c,s}​ Kc,s

步骤1、2在用户首次登陆系统时使用,3、4在用户每次申请某个特定的应用服务器的服务使用,5用于特定的服务器中每一个服务的认证,6可选,只用于相互认证。

(4)三种安全等级:

a. 只在网络开始连接时进行认证,认为连接建立起来后的通信是可靠的。

b. 安全消息传递:对每次消息都进行认证工作。

c. 私有消息:不仅对每条消息进行认证,而且对每条消息进行加密。

(5)交叉领域认证:

支持交叉领域,要满足三个条件

a. Kerberos服务器在数据库中必须拥有所有用户ID和所有参与用户口令哈希后的密钥。所有用户都已经注册到Kerberos服务器。

b. Kerberos服务器必须与每个应用服务器共享保密密钥,所有服务器已经注册到Kerberos服务器

c. 不同领域的Kerberos服务器之间共享一个保密密钥,相互之间要注册。
在这里插入图片描述

(6)特点:与授权机制相结合;实现了一次性签放的机制,并且签放的票据都有一个有效期;支持双向身份认证;支持分布式网络环境下的认证机制,通过交换跨域密钥来实现;Kerberos在分布式网络环境中具有比较强的安全性。

3.4.4 X.509认证协议

(1)概述:X.509基于公开密钥和数字签名,这个协议并没有指明公钥加密算法,但推荐RSA。在X.509中规定了几个可选的认证过程,所有过程都假设双方互相知道对方的公钥:简单认证程序(建议了安全度较低的身份认证);强认证程序(高安全度,使用公开密钥密码学);密钥及证书管理证书扩充及证书吊销列表扩充。用户的数字证书是X.509的核心。

(2)简单认证过程:有三种运行方式:

a. 用户将其口令及用户代号,未作任何加密保护,直接以明文方式传送到接收端。

b. 用户将其口令,代号,一随机数或时间戳在经过单向函数保护后,传送到接收端

c. 用上面第2种方法,先经第一次单向函数保护所有数据,然后再连同另一组随机数或时间戳再经过第二次的单向函数保护后,传送到接收端。

(3)密钥及证书管理:

  1. 公钥的确认:认证中心CA以数字签名技术,将每个用户的公钥与个人的身份数据签成电子证书。用户收到证书后通过验证程序,确信证书无误,所含公钥、身份数据及其他内容确实是证书上声称的主体的。

  2. 特性:在X.509中提到证书必须符合有下列两点特性:1.所有可取得认证中心公钥的用户,可以找到任何已经经过该认证中心认证的公钥。2.除了认证中心本身以外,其他任何人修改证书的动作都会被察觉、检测出来。认证中心以自己的私钥为用户签发证书,用户可以使用认证中心的公钥验证所获证书的正确性。

  3. 证书的格式在这里插入图片描述

  4. 证书的获取:用户证书除了放在公共目录供他人访问,还可以由用户直接把证书发给其他用户。通常用户数量极多,应由多个CA,每个CA为一部份用户发行签署证书。

    CA《A》 表示证书发送机构CA向用户A发放的证书

    CA {I} 表示CA对I的哈希值签名

    在这里插入图片描述

  5. 证书的吊销:有些证书未到截至日期被吊销;每个CA要维护一个证书吊销列表;每一用户收到他人消息中的证书时都必须通过目录检查是否被吊销。

(4)强认证:借助用户所拥有的公钥来证明它的身份,先决条件是认证中心体系已建立。

  1. 单向认证:单向认证只需一次通信 A − > B : A { t A , r A , B , s g n D a t a , E k u b [ K a b ] } A->B:A\lbrace t_A,r_A,B,sgnData,E_{kub}[K_{ab}]\rbrace A>B:A{tA,rA,B,sgnData,Ekub[Kab]}
  2. 双向认证:增加一次通信过程 A − > B : A { t A , r A , B , s g n D a t a , E k u b [ K a b ] } A->B:A\lbrace t_A,r_A,B,sgnData,E_{kub}[K_{ab}]\rbrace A>B:A{tA,rA,B,sgnData,Ekub[Kab]} B − > A : B { t B , r B , A , r A , s g n D a t a , E k u a [ K b a ] } ​ B->A:B\lbrace t_B,r_B,A,r_A,sgnData,E_{kua}[K_{ba}]\rbrace​ B>A:B{tB,rB,A,rA,sgnData,Ekua[Kba]}
  3. 三向认证:最后增加了一个A向B的回答。 A − > B : A { t A , r A , B , s g n D a t a , E k u b [ K a b ] } ​ A->B:A\lbrace t_A,r_A,B,sgnData,E_{kub}[K_{ab}]\rbrace​ A>B:A{tA,rA,B,sgnData,Ekub[Kab]} B − > A : B { t B , r B , A , r A , s g n D a t a , E k u a [ K b a ] } ​ B->A:B\lbrace t_B,r_B,A,r_A,sgnData,E_{kua}[K_{ba}]\rbrace​ B>A:B{tB,rB,A,rA,sgnData,Ekua[Kba]} A − > B : A { r B } ​ A->B:A\lbrace r_B\rbrace​ A>B:A{rB}

t A t_A tA:时间戳,包含起始时间和终止时间,用来防止报文的延迟传送

r A r_A rA:现时,在一个有效期内是唯一的,B需要保存 r A r_A rA直到有效期结束

B B B:B的身份信息

s g n D a t a sgnData sgnData:签名数据

E k u b [ K a b ] E_{kub}[K_{ab}] Ekub[Kab]:用B的公钥加密的会话密钥

3.4.5 CA系统结构

(1)公钥基础设施PKI:Public Key Infrastructure,一种遵循既定标准的密钥管理平台,能够为所有网络应用提供加密和数字签名等密码服务,及所必需的密钥和证书管理体系。完整的PKI必须具有权威认证机构CA数字证书库密钥备份及恢复系统证书作废系统应用接口API

(2)主要功能:证书的颁发,证书的更新,证书的查询(证书申请的查询,用户证书的查询),证书的作废(用户私钥泄露等原因,证书或列有效期),证书的归档(管理作废证书和作废私钥)。

(3)系统结构:

CA服务器:认证中心的核心,保存了根CA的私钥。在这里插入图片描述

RA服务器:注册机构,实现用户的注册,分成RA操作员,RA服务器

证书目录服务器:认证中心颁发的证书只是捆绑了特定的实体和身份和公钥,但是没有提供如何找到该实体证书的方法。LDAP轻量级目录访问协议。

证书链构造在这里插入图片描述

证书验证过程在这里插入图片描述

3.4.6 授权管理基础设施PMI

(1)概述:PMI(Privilege Management Infrastructure),目标是向用户和应用程序提供授权管理服务,提供用户身份到应用授权的映射功能。PMI以资源管理为核心,对资源的访问控制权统一交由授权机构统一处理,即有资源的所有者来进行访问控制。同PKI相比,两者主要区别在于:PKI证明用户是谁而PMI证明这个用户有什么权限,能干什么,且PMI需要PKI为其提供身份认证。

(2)体系:可分为三级

SOA中心信任源点,是整个授权管理体系的中心业务节点,也是PMI的最终信任源最高管理机构

AA中心:是PMI的核心服务节点,是对应于具体应用系统的授权管理分系统,由具有设立AA中心业务需求的各应用单位负责建设,并与SOA中心通过业务协议达成相互信任关系。

AA代理点:是PMI的用户代理节点,也称为资源管理中心,是与具体应用用户的接口,是对应AA中心的附属机构,接受AA中心的直接管理,由各AA中心负责建设,并报经主管的SOA中心同意并签发相应的证书。AA代理点的设立和数目由各AA中心根据自身的业务发展需求而定。

四、网络安全协议

4.1 因特网与TCP/IP安全

4.1.1 TCP/IP协议栈

在这里插入图片描述

4.1.2 互联网地址

互联网上每个接口必须有一个唯一的互联网地址(IP地址)长32bit,层次结构。

在这里插入图片描述

4.1.3 协议封装

在这里插入图片描述

4.1.4 IP协议

(1)安全问题:不可靠协议,没有确认数据包是否按顺序或是未被破坏,而高层在接受服务时通常假设源地址是有效的,IP地址成为认证的基础。

(2)ping of death攻击:原理:向被攻击主机发送大量的碎片包,使这些碎片组装起来后构成了一个超出最大限制的ping请求包从而造成被攻击主机的缓冲区溢出。解决办法:可以在防火墙上过滤掉ICMP报文,或者在服务器上禁止ping,并且只在必要时打开ping服务;对操作系统进行补丁,内核将不再对超长包进行重组。

(3)Teardrop攻击:**原理:**构造错误的分片信息,系统重组分片数据时内存计算错误,导致协议栈崩溃。

IP数据包在网络传递时,数据包可以分成更小的片段,攻击者可以通过发送两段(或者更多)数据包来实现Teardrop攻击,第一个包的偏移量为0,长度为N,设数据包中第二片IP包的偏移量小于第一片结束的位移,而且算上第二片IP包的Data,也未超过第一片的尾部,这就是重叠现象。为了合并这些数据段,TCP/IP堆栈会分配超乎寻常的巨大资源,从而造成系统资源的缺乏甚至机器的重新启动。

**解绝方法:**为操作系统打补丁。

在这里插入图片描述

(4)Smurf攻击:[该攻击](Smurf攻击_百度百科 (baidu.com))向一个子网的广播地址发一个带有特定请求(如ICMP回应请求)的包,并且将源地址伪装成想要攻击的主机地址。子网上所有主机都回应广播包请求而向被攻击主机发包,使该主机受到攻击。

(5)pingflood攻击:该攻击在短时间内向目的主机发送大量ping包,造成网络堵塞或主机资源耗尽。

(6)源路由:通过IP协议的额外选项-IP源路由选项,允许发送者指定包的一条源地址和目的地址的路由。A-c-d-b。使用选项的IP包好像是从该路径上的最后一个系统传递过来的。允许黑客伪装成其他可信任的机器(d),幸运的是大多数主要服务都不使用源路由选项,可以使用防火墙来过滤任何的源路由选项数据包。

4.1.5 TCP协议

(1)概述:可靠的面向连接的

在这里插入图片描述
在这里插入图片描述

(2)安全缺陷:

a. TCP连接的可靠性:三次握手,确保双方做好传输准备,若在规定的时间内应答没有接收到,包被重传。在这里插入图片描述

Land攻击:攻击者将一个TCP包的源地址和目的地址,源端口和目的端口都设置为目标主机的地址,这种包可以造成被攻击主机试图与自己建立连接而陷入死循环,从而很大程度地降低系统性能。

b. 无认证机制:TCP假定只要接收到数据包含有正确的序列号就认为数据是可以接受的,一旦连接建立,服务器无法确定进入的数据包是否来自真实的机器。

会话劫持:截取客户和服务器之间的数据流,攻击者可看到序列号,伪造数据包放TCP流中,允许攻击者以被骗客户具有的特权来访问服务器,攻击者不需要知道口令,只需等待用户登录到服务器,劫持会话数据流即可。

在这里插入图片描述

IP欺骗原理:通过伪造一个可信任地址的数据包以使一台机器认证另一台机器的复杂技术。攻击是利用应用程序之间基于IP地址的认证机制,攻击者通过IP地址欺骗获得远程系统的非法授权访问。辅助技术:SYN淹没,阻止B响应A的包。序列号预测。解决方法:由于攻击者必须按照一定的顺序来完成网络入侵,可安装一个网络嗅探器;配置路由器和网关,使他们拒绝网络外部与本网内具有相同IP地址的连接请求。在这里插入图片描述

4.1.6 UDP协议

(1)概述:提供不可靠无连接的分组传输服务,会出现丢失、重复、延迟、乱序。

(2)Fraggle拒绝服务式攻击:单播、广播、多播

Fraggle 类似于Smurf攻击,只是使用UDP应答消息而非ICMP。 UDP端口7 ECHO 和端口19Chargen 在收到UDP报文后都会产生回应,在UDP的7号端口收到报文后会回应收到的内容,而UDP的19号端口在收到报文后会产生一串字符流,它们都同ICMP一样会产生大量无用的应答报文占满网络带宽;

攻击者可以向子网广播地址发送源地址为受害网络或受害主机的UDP包,端口号用7或19 ,子网络启用了此功能的每个系统都会向受害者的主机作出响应从而引发大量的包,导致受害网络的阻塞或受害主机的崩溃,子网上没有启动这些功能的系统将产生一个ICMP不可达消息因而仍然消耗带宽,也可将源端口改为Chargen 目的端口为ECHO 这样会自动不停地产生回应报文其危害性更大;

4.1.7 ARP/RARP协议

(1)概述:(Address Resolution Protocol)[ARP](ARP(地址解析协议)_百度百科 (baidu.com))。用于实现从IP地址到MAC地址的映射,即询问目标IP对应的MAC地址的一种协议。ARP协议在IPv4中极其重要。[RARP](反向地址转换协议_百度百科 (baidu.com))(Reverse Address Resolution Protocol))是将ARP反过来,从MAC地址定位IP地址的一种协议,将打印机服务器等小型嵌入式设备接入网络时会使用到。

(2)组成:ARP请求,ARP回应,RARP请求,RARP回应

(3)ARP欺骗:ARP攻击只能用于本地网络的假冒,这意味着攻击者必须已经获得网络中某台机器的访问权(已被IP欺骗)在这里插入图片描述

(4)中间人攻击:中间人攻击_百度百科 (baidu.com)

4.2 SSL协议

4.2.1 概述

安全套接字层协议(Security Socket Layer)基于web应用的安全协议,SSL主要采用公开密钥体制和X.509数字证书技术,其目标是保证两个应用间通信的保密性、完整性和可靠性,可在服务器和客户端两端同时实现支持。SSL介于可靠的传输层协议和应用层协议之间。SSL可用于任何面向连接的安全通信,但通常用于安全web应用的HTTP协议。

4.2.2 协议结构

(1)a. 协议栈:在这里插入图片描述

(2) 两个状态:连接状态、会话状态

会话状态要素:会话标识符;对方证书;压缩方法;密码规范;主密码;可重用否

连接状态要素:服务器和客户端的随机数;服务器写MAC密码;客户端写MAC密码;服务器写密钥;客户端写密钥;初始向量;序列号

(3)通信步骤:建立TCP连接;SSL握手,建立SSL会话;通过会话传送加密数据包;释放连接,会话过期。

4.2.3 记录层协议

(1)概述:记录协议层的功能是根据当前会话状态给出压缩算法、对称加密算法、MAC算法等参数,以及连接状态中给出Client和Server的随机数、加密密钥、MAC secrets、IVS、消息序列号对当前的连接中要传送的高层数据实施压缩/解压缩、加/解密、计算/校验MAC等操作在这里插入图片描述

(2)SSL记录协议的发送过程(接受过程反之):

分片:信息分片成不超过 2 14 2^{14} 214字节(16384字节)的明文记录

加MAC:用Ciper Spec指定的MAC算法生成MAC

报头:由内容类型(8bit,表明用来处理这个包装的数据片的更高层协议)、主要版本(8bit)、次要版本(8bit)、压缩字长(16bit)组成。

在这里插入图片描述

4.2.4 修改密文规约协议

表示密码策略的变化,在完成握手协议前客户端和服务器端都要发送这一消息,以便通知对方其后的记录将用刚刚协商的密码规范及相关的密钥来保护。所有的更改密码规范消息都将产生一个意外消息警告。

4.2.5 告警协议

当握手过程或数据加密等操作出错误或发生异常情况时,向对方发出警告或终止当前连接。组成:第一个字节的值为warning或fatal,第二个字节是具体的告警消息。

4.2.6 握手协议

(1)概述:客户端和服务器要建立一个连接就必须要进行握手过程。每次握手都存在一个会话和一个连接,连接一定是新的,但会话可能新可能是已存在的。

(2)消息组成:

Hello Request问候请求:信息发送者:服务器;接收者反应:如果客户端在进行握手协议,则忽略该消息,如果客户端有空,则发送Client Hello。在随后的握手协商结束后,服务器才能再次发送Hello Request

Client Hello客户端问候消息:发送者:客户端;内容:客户端版本号,随机数(用于密码学计算),会话ID,密码组(一个客户端支持的密码算法组合的列表。第一个元素为密钥交换方法,第二个元素为CipherSpec),压缩算法。

密钥交换的方法:RSA,Diffie-Hellman(依赖于离散对数,固定的Diffie-Hellman,短暂的Diffie-Hellman)

CipherSpec:包括以下字段:加密算法,MAC算法,加密类型,可输出的,散列大小,密钥素材,IV大小

Server Hello服务器问候消息处理了Client Hello消息后,可用一个握手失败警告或者一个Server Hello消息来响应。结构类似于Client Hello,区别在于:Client Hello用于列出客户端的能力,而Server Hello则用于做出决定,并将该决定传输回客户端。

Server Certificate服务器证明消息:如果要求验证服务器,则服务器立刻在Server Hello信息后发送其证明Certificate,通常为一个X.509V3服务器证书。该消息可以使客户端得到服务器的公钥,客户端将用该公钥加密实际的会话密钥。

Server Key Exchange服务器密钥交换消息:当服务器没有Certificate或有一个仅用于签名的Certificate或采用Fortezza密钥交换时,服务器才会发送一个Server Key Exchange。该消息补充以前在Server Hello消息声明中的密码组,为客户端提供了继续通信而需要的算法变量。

Certificate Request证明请求消息向客户端请求一个证书。两个参数组成:第一个参数表明可以接受的证书类型,第二个参数表明可以接受的CA的可接受的特定名称DN。如果服务器是匿名的,则在请求客户端Certificate时会导致致命错。

Server Hello Done服务器问候结束消息表明Server Hello结束,然后等待客户端响应。客户端收到该消息后检查服务器提供的Certificate是否有效,以及服务器的Hello参数是否可接受。

Client Certificate客户端证明消息:该信息是客户端收到服务器的Server Hello Done后可以发送的第一条信息,只有服务器请求Certificate时才发送。如果客户端没有合适的Certificate,则发送没有证明的告警信息,如果服务器要求有客户端验证,则收到告警后宣布握手失败。

Client Key Exchange客户端密钥交换消息:允许客户端向服务器发送密钥信息,该信息是关于双方在会话中使用的对称密钥算法的。

Certificate Verify证明检查消息:用于提供对客户端证书的显式认证。

Finished结束消息:该信息在Change Cipher Spec之后发送,以证明密钥交换和验证的过程已顺利进行。当服务器收到该消息,同样发送一个Change Cipher Spec消息,然后发送他的Finished消息,此时握手协议完成,双方可以安全的传输应用数据了。在这里插入图片描述

(3)注意:为了提供性能,双方可以缓存并重用在握手协议过程中交换的信息,称为会话ID重用。

4.2.7 密码计算

(1)主密码:共享的主密钥由预主密钥衍生而来

(2)预主密码:在RSA中由客户端生成,然后通过Client Key Exchange消息发送给服务器。在Diffie-Hellman中,由每一方(服务器和客户端)使用对方的Diffie-Hellman公开值生成。

4.3 SET协议

4.4 IPSec协议

(1)概述:由三个基本要素(验证头AH,封装安全载荷ESP,互联网密钥管理协议IKMP)提供认证,数据完整性验证,保密这三种保护形式。可以保护通过公有或私有IP网络传送的私有数据。在这里插入图片描述

(2)安全体系结构:

体系结构:覆盖定义IPSec技术的一般性概念,安全需求,定义和体制。

ESP:插入IP数据包的一个协议头,具有为IP数据包提供机密性,数据完整性,数据源认证和抗重传攻击等攻击。

AH:插入IP数据包的一个协议头。其中ICV是消息认证码的一种截断版本在这里插入图片描述

加密算法:用于ESP。

认证算法:用于AH和ESP可选的鉴别选项。

密钥管理:描述密钥管理机制的文档。

解释域DOI:包含其他文档需要的为了彼此间相互联系的一些值。

(3)工作模式:

传输模式:对IP包的部分信息提供安全保护。采用AH传输模式主要为IP数据包提供认证保护;采用ESP传输模式,主要对IP数据包的上层信息提供加密和认证双重保护。在端点执行,因此主机必须配置IPSec。

隧道模式:对整个IP包提供安全保护,基本原理是构造新的IP数据包。采用AH隧道模式主要为整个IP数据包提供认证保护(可变字段除外);采用ESP隧道模式,主要对整个IP数据包的上层信息提供加密和认证双重保护。在安全网关上执行,两端主机不必知道IPSec。

(4)安全关联:使通信双方的认证算法,加密算法保持一致,相互建立的练习被称为安全关联(Security Association,SA),SA是构成IPSec的基础。安全关联是单向的。一个SA有三个参数来标识:安全参数索引SPI,目的IP地址,安全协议标识符。

五、防火墙与反病毒技术

5.1 防火墙

5.1.1 概述

(1)概述:位于被认为是安全和可信的内部网络与一个被认为是不那么安全和可信的外部网络之间的一个封锁工具。可看成:过滤器+安全策略,防火墙一般对来自内部网络系统的安全威胁不具备防范功能。

(2)功能:过滤不安全服务,过滤非法用户和站点访问控制,集中式安全保护,防御,加密支持,认证支持,管理,记录和报表。

(3)发展:基于路由器的防火墙,用户化防火墙工具套,建立在通用操作系统上的防火墙,具有安全操作系统的防火墙。

(4)分类:按安全控制策略分类,网络体系结构分类,应用技术分类,拓扑结构分类。

5.1.2 包过滤型

(1)概述:包过滤器是最原始的防火墙。根据每个包头部的信息来决定是否要将包继续传输。通常使用路由器来实现。

(2)发展:静态包过滤(最小特权原则),动态包过滤(检测模块)

(3)规则:访问控制列表,按照从前往后的顺序与过滤表格中每行的条件比较。包括一下信息:接口和方向,源和目的IP地址,IP选项,高层协议,TCP包的ACK位检查,ICMP的报文类型,TCP和UDP包的源和目的端口。

(4)包过滤设置:按地址过滤,按服务过滤

(5)包过滤的特性:

IP包过滤特性:IP源地址、目的地址,IP选项,协议类型,IP分段字段。数据包过滤器一般仅对第一个分段进行过滤,只有收到设置分片结束标志的包时才简单的重组被分片的包。

TCP包过滤特性:TCP的启动连接请求包中的ACK位为0,而其他数据包ACK位为1。ACK为1表示确认号合法,为0表示数据段不包含确认信息。在这里插入图片描述

UDP包过滤特性:和TCP数据包有相似之处,但没有ACK位。

ICMP包过滤特性

RPC服务的包过滤特性

数据包过滤风险

  • 15
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值