Download presentation
Presentation is loading. Please wait.
1
数据加密与鉴别
2
本章主要内容: 密码学及数据加密的基本概念 传统密码技术 对称密钥密码和公开密钥密码体制 密钥管理 网络通信加密方式 加密软件PGP
鉴别、CA认证和电子商务安全技术
3
前述的安全立法、加强行政人事管理、访问控制、系统软硬件保护等是保护网络系统安全的有效措施,但它们都不能从根本上解决数据安全问题,都存在一些不易解决的问题。采用密码技术保护网络中数据的安全是一种非常实用、经济、有效的方法。
4
一、 数据加密概述 对信息进行加密可以防止攻击者窃取网络机密信息,可以使系统信息不被无关者识别,也可以检测出非法用户对数据的插入、删除、修改及滥用有效数据的各种行为。 基于数据加密的数字签名和鉴别技术除具有保密功能外,还可以进行用户的身份验证和数据源及其内容的鉴别。
5
1 . 密码学的发展 密码学(Cryptology)是一门古老的学科。早在几千年前,人类就已经有了保密通信的思想和方法,但这些保密方法都是非常朴素、原始和低级的,而且大多数是无规律的。近现代一些著名的战争中都使用了密码技术。近年来,密码学研究之所以十分活跃,主要原因是它与计算机科学的蓬勃发展密切相连。
6
此外,还有电信、金融领域和防止日益广泛的计算机犯罪的需要。密码技术应用于计算机网络中的实例越来越多。
密码学从其发展来看,可分为两大阶段:传统密码学和计算机密码学。 第一阶段:传统密码学。主要是靠人工进行信息加密、传输和破译
7
第二阶段:计算机密码学。利用计算机进行自动或半自动地加密、解密和传输
1. 传统方式计算机密码学 2. 现代方式计算机密码学 对称密钥密码体制 公开密钥密码体制
8
密码学包括密码编码学和密码分析学两部分,这两部分相互对立,但也相互促进,相辅相成。
密码编码学研究的是通过编码技术来改变被保护信息的形式,使得编码后的信息除指定接收者之外的其他人都不可理解 密码分析学研究的是如何攻破一个密码系统,恢复被隐藏起来的信息的本来面目
9
2. 密码学的基本概念 加密在网络上的作用就是防止有价值的信息在网上被窃取并识别;
基于加密技术的鉴别的作用是用来确定用户身份的真实性和数据的真实性。
10
加密 :把信息从一个可理解的明文形式变换成一个错乱的、不可理解的密文形式的过程
明文(Plain Text):原来的信息(报文)、消息,就是网络中所说的报文(Message) 密文(Cipher Text):经过加密后得到的信息 解密:将密文还原为明文的过程
11
密钥(Key):加密和解密时所使用的一种专门信息(工具)
密码算法(Algorithm):加密和解密变换的规则(数学函数),有加密算法和解密算法 加密系统:加密和解密的信息处理系统 加密过程是通过某种算法并使用密钥来完成的信息变换
12
简单的密码系统示意图 明文P 解密密钥Kd 解密(D) 加密密钥Ke 加密(E) 密文C 攻击者
13
C= Ek (P) 加密实际上是要完成某种函数运算C=ƒ(P, K),
对于一个确定的加密密钥Ke,加密过程可看作是只有一个自变量的函数,记作Ek ,加密变换为: C= Ek (P) (加密变换作用于明文P后得到密文C) 同样,解密也完成某种函数的运算P=g(C, K)对于确定的解密密钥Kd,解密过程为: P= Dk (C) (解密变换作用于密文C后得到明文P)
14
由此可见,密文C经解密后还原成原来的明文,必须有
P= Dk (Ek (P))= Dk Ek(P) 此处“”是复合运算,因此要求 Dk Ek=I I为恒等变换,即Dk与 Ek是互逆变换
15
3. 密码的分类 按密码的历史发展阶段和应用技术分:手工密码、机械密码、电子机内乱密码和计算机密码
按密码转换的操作类型分:替代密码和移位密码
16
按保密程度划分,有理论上保密的密码、实际上保密的密码和不保密的密码
按明文加密时的处理方法分:分组密码和序列密码 按密钥的类型分:对称密钥密码和非对称密钥密码
17
分组密码 分组密码的加密方式是:首先将明文序列以固定长度进行分组,每组明文用相同的密钥和算法进行变换,得到一组密文。分组密码是以块为单位,在密钥的控制下进行一系列线性和非线性变换而得到密文的。
18
分组密码的加/解密运算是:输出块中的每一位是由输入块的每一位和密钥的每一位共同决定。
加密算法中重复地使用替代和移位两种基本的加密变换,此即Shannon 1949年发现的隐藏信息的两种技术:打乱和扩散。
19
打乱:就是改变数据块,使输出位与输入位之间没有明显的统计关系(替代);
扩散:就是通过密钥位转移到密文的其它位上(移位)。 分组密码的特点:良好的扩散性;对插入信息的敏感性,较强的适应性;加/解密速度慢;差错的扩散和传播。
20
加密/解密 输出块 输入块 加/解密钥块 发/收信端 分组密码
21
序列密码 序列密码加密过程是:把报文、语音、图像等原始信息转换为明文数据序列,再将其与密钥序列进行“异或”运算,生成密文序列发送给接收者。接收者用相同的密钥序列与密文序列再进行逐位解密(异或),恢复明文序列。
22
序列密码加/解密的密钥,是采用一个比特流发生器随机产生二进制比特流而得到的。它与明文结合产生密文,与密文结合产生明文。
序列密码的安全性主要依赖于随机密钥序列。
23
序列密码 比特流 发生器 密/明文输出 明/密文输入 发/收信端 异或
24
加密和解密过程都要使用密钥。如果加密密钥和解密密钥相同或相近,由其中一个很容易地得出另一个,这样的系统称为对称密钥系统,加密和解密密钥都是保密的;如果加密密钥与解密密钥不同,且由其中一个不容易得到另一个,则这种密码系统是非对称密钥系统,往往其中一个密钥是公开的,另一个是保密的。
25
前者也称为传统密钥密码体制,后者称为公开密钥密码体制。
相应地,这两种密码体制各有一些典型算法。对称密钥密码体制的主要算法有DES、IDEA、TDEA(3DES)、MD5、RC5等,也叫单密钥算法;公开密钥密码体制的主要算法有RSA、Elgamal、背包算法、Rabin、DH等。
26
二、 传统密码技术 1. 数据的表示 2. 替代密码 3. 移位密码 4. 一次一密钥密码
27
1. 数据的表示 传统加密方法加密的对象是文字信息。文字由字母表中的字母组成,在表中字母是按顺序排列的,赋予它们相应的数字标号,即可用数学方法进行运算(变换)了。将字母表中的字母看作是循环的,则字母的加减形成的代码可用求模运算来表示了。如 A+4=E,X+6=D (mod 26)
28
2 . 替代密码 替代也叫置换。替代密码就是明文中的每个或每组字符由另一个或另一组字符所替换,即形成密文。
在经典密码学中,有简单替代、多名码替代、多字母替代和多表替代加密法。
29
(1) 简单替代密码 简单替代的就是明文的一个字母,用相应的密文字母代替。规律是根据密钥形成一个新的字母表,与原明文字母表有相应的对应关系。
30
典型的一种替代密码是凯撒密码,又叫循环移位密码。其加密方法就是将明文中的每个字母都用其右边固定步长的字母代替,构成密文。
例如:步长为4,则明文A、B、C、…、Y、Z可分别由E、F、G、…、C、D代替。如果明文是“about”,则变为密文“efsyx”,其密钥k=+4。两个循环的字母表对应。
31
A B C D … … … … … … … … … … W X Y Z E F G H … … … … … … … … … … A B C D (a) A B C D … … … … … … … … … … W X Y Z Z Y X W … … … … … … … … … … D C B A (b) C F I L … … … … … … … … … … Q T W Z (c) 图5.2 替代加密 (a) 移位映射 (b) 倒映射 (c) 步长映射(步长为3)
32
(2) 多表替代密码 一种常用的多表替代密码叫Vigenere密码。它是循环使用有限个字母实现替代。 Vigenere密码就是把26个字母循环移位,排列在一起,形成26×26的方阵表。加密和解密时的明文、密钥、密文就是表中的行、列及交点的内容。
33
3. 移位密码 移位密码变换:只对明文字母重新排序,位置变化了,而不隐藏它们。是一种打乱原文顺序的替代法。
把明文按行写出,读出时按列进行,得到的即为密文。
34
如明文为“this is a bookmark”,将其分为三行五列,则为以下形式:
按列从左至右读,可得到密文: tskhamibasoriok
35
如果把明文字母按一定顺序排列成矩阵形式,用另一种顺序选择相应的列输出得到密文。如用“china”为密钥,对“this is a bookmark”排列成矩阵如下:
按“china”各字母排序“23451”顺序,输出得到密文 ioktskhamibasor
36
再如:对于句子“移位密码加密时只对明文字母重新排序字母位置变化但它们没被隐藏”,可选择密钥“362415”,并循环使用该密钥对上句进行移位加密。密钥的数字序列代表明文字符(汉字)在密文中的排列顺序。
37
按照该密钥加密可得到一个不可理解的新句子(密文)“密密位码移加对字只明时文新字重排母序置但位变母化没藏们被它隐”。解密时只需按密钥362415的数字从小到大顺序将对应的密文字符排列,即可得到明文。
38
简单异或 简单异或操作起来很简单,它主要是按位进行两个二进制位的异或,结果得到密文或明文。即 mk=c ck=m
该方法简单,但容易破译。
39
4. 一次一密钥密码 一次一密钥密码是一种理想的加密方案。就是一个随机密码字母集,包括多个随机密码,这些密码就好象一个本本,其中每页上记录一条密码。类似日历的使用过程,每使用一个密码加密一条信息后,就将该页撕掉作废,下次加密时再使用下一页的密码。
40
一次一密钥密码可推广到二进制数据的加密。用二进制数据组成一次密码本,用异或代替加法,对二进制密码和明文进行操作;解密时用同样的密码和密文进行异或,得到明文。
一次一密钥密码必须是随机产生的,这样才可做到最好效果的保密。
41
发送者使用密钥本中每个密钥字母串去加密一条明文字母串,加密过程就是将明文字母串和密钥本中的密钥字母串进行模26加法运算。
接收者有一个同样的密钥本,并依次使用密钥本上的每个密钥去解密密文的每个字母串。接收者在解密信息后也销毁密钥本中用过的一页密钥。
42
例如,如果消息是:ONETIMEPAD 密钥本中的一页密钥是:GINTBDEYWX 则可得到密文:VWSNKQJOXB 这是因为:O+G=V (mod 26) N+I=W (mod 26) E+N=S (mod 26) … … … …
43
一次一密的密钥字母必须是随机产生的。对这种方案的攻击实际上是依赖于产生密钥序列的方法。不要使用伪随机序列发生器产生密钥,因为它们通常有非随机性。如果采用真随机序列发生器产生密钥,这种方案就是安全的。
44
一次一密密码在今天仍有应用场合,主要用于高度机密的低带宽信道。美国与前苏联之间的热线电话据说就是用一次一密密钥本加密的,许多前苏联间谍传递的信息也是用一次一密钥密码加密的。至今这些信息仍是保密的,并将一直保密下去。
45
三、 对称密钥密码体制 1. 对称密钥密码的概念 也叫传统密钥密码体制,其基本思想就是“加密密钥和解密密钥相同或相近”,由其中一个可推导出另一个。使用时两个密钥均需保密。 传统密钥密码算法有: DES、IDEA、TDEA(3DES)、MD5、RC5等,典型的算法是DES算法。
46
密文 C 明文输出 M 明文输入 加密算法 解密算法 对称密钥 对称加密体制模型
47
2. DES算法 (1) DES概述 DES(数据加密标准)算法能对64位二进制数码组成的数据组在64位密钥的控制下进行加密和解密变换。64位密钥中有8位作为校验位(第8、16、24、32、40、48、56和64位),因此真正成为密钥的只有56位。
48
在70年代初,DES已推出并广泛应用,1977年被NBS公布为数据加密标准。
49
(2) DES算法的主要过程 ① 初始置换: ② 子密钥生成: ③ 乘积变换: ④ 末置换: 初始置换(IP) 乘积变换 子密钥生成
① 初始置换: ② 子密钥生成: ③ 乘积变换: ④ 末置换: 初始置换(IP) 乘积变换 子密钥生成 输入64位明文(密文) 64位密钥组 末置换(IP-1) 输出64位密文(明文)
50
(3) 初始置换IP 初始置换(permutation)按照固定的矩阵进行(移位),此部分与密钥无关,如下表。
51
三重DES算法需要执行三次DES的加密。一般三重DES算法使用两个DES密钥。其算法步骤为:
3. 对称密码体制的其它算法简介 (1) 三重DES算法(TDEA) 三重DES算法需要执行三次DES的加密。一般三重DES算法使用两个DES密钥。其算法步骤为: 发送端用密钥K1进行DES加密; 发送端用密钥K2对上一结果进行DES解密; 发送端用密钥K1对上一结果进行DES加密; 接收方则相应地使用K1解密,K2加密,再使用K1解密 。
52
K1 E M K2 D K3 C 三重DES的加密解密过程
53
(2) 国际数据加密算法(IDEA) IDEA是分组密码算法,分组长度为64位,但密钥长度128位。
该算法是用128位密钥对64位二进制码组成的数据组进行加密的,也可用同样的密钥对64位密文进行解密变换。 IDEA的密钥比DES的多一倍,增加了破译难度,被认为是多年后都有效的算法。
54
IDEA算法也是通过一系列的加密轮回操作的,每轮中也使用压缩函数进行变换,只是不使用移位置换。
异或 模216加法 模216+1乘法 这三种运算彼此混合可产生很好的效果。运算时IDEA把数据分为四个子分组,每个16位。
55
四、 公开密钥密码体制 1. 公钥密钥密码体制的概念
1. 公钥密钥密码体制的概念 加密密钥与解密密钥不同,且由其中一 个不容易得到另一个,则这种密码系统是非对称密钥系统。往往其中一个密钥是公开的,另一个是保密的。因此,相应的密码体制叫公开密钥密码体制。
56
W. Diffie和M. Hellman 1976年在IEEE Trans
W.Diffie和M.Hellman 1976年在IEEE Trans.on Information 刊物上发表了 “New Direction in Cryptography”文章,提出了“公开密钥密码体制”的概念,开创了密码学研究的新方向。
57
在公开密钥密码体制中,加密密钥是公开的,解密密钥是保密的,加/解密算法都是公开的。
公开密钥密码体制的主要算法有RSA、背包算法、 Elgamal、Rabin、DH等。
58
公钥体制加/解密模型 加密(E) 解密(D) 发送M 接收M Ke Kd 密文C=E(M,Ke)
59
用Ke对明文加密后,再用Kd解密,即可恢复出明文,即
M=D Kd{E Ke(M)} 加密和解密运算可以对调,即 M=D Kd{E Ke(M)} = E Ke {D Kd (M)}
60
但加密密钥不能用来解密,即 M≠D Ke{E Kd(M)} 在计算上很容易产生密钥对Ke和Kd 已知Ke是不能推导出Kd的,或者说从Ke得到Kd是“计算上不可能的”。
61
2. 数论基础 (1) 模运算 若a=b+kn对某些整数k成立 则a b (mod n ) 称b 为a模n的余数,或a与b是模n的同余
62
(2) 素数 一个只能被1和它本身整除的正整数。如以下各数为素数: 2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113, …,2521, , 等都是素数。
63
(3) 两数互素 两个数的最大公因子为1,则两数互素。 gcd(a,n)= a和n互素 15与28互素,13与500互素,而15与27不是互素 一个素数与它的倍数以外的任何其它数都是互素的
64
(4) 因子分解 对于一个数进行因子分解,就是找出其各个素数因子,如:15=35,80=2 2225,252601=4161101等。 在数论中,因子分解是一个古老的问题。分解一个数很简单,但其过程很费时。
65
目前最好的因子分解算法有: 数域筛选法:对大于110位字长的数,数域筛选法是已知的最快的因子分解算法。当它最初被提出时,还不算实用,但随着后来的一系列改进,成为新的一种因子分解实用算法。 二次筛选法:对于低于110位的十进制数,二次筛选法是已知的最快算法,且已得到广泛应用。该算法最快的版本叫多重多项式二次筛选的双重大素数算法。 椭圆曲线法:该算法曾用于寻找43位长数字的因子,对于更大的数是无用的。 此外,还有蒙特卡罗算法、连分式算法、试除法等因子分解算法。
66
3. RSA算法 RSA算法是1978年由三名美国MIT科学家Rivest, shamir和Adelman提出的一种著名的公开密钥密码算法(以该三位姓氏的第一个字母命名)。
67
经过多年的分析研究,在众多的公钥体制中,RSA倍受推崇,已被ISO/TC97的数据加密技术分委员会SC20推荐为公钥数据加密标准。
RSA算法是建立在素数理论(Euler函数和欧几里德定理)基础上的算法。
68
由数论知识可知,将一个具有大素数因子的合数进行分解是很困难的,或者说这个计算量是令人望而生畏的。RSA正是建立在这个理论基础之上的。
RSA算法的加密密钥Ke是公开的,而解密密钥Kd是保密的。
69
在此不介绍RSA的理论基础(复杂的数学分析和理论推导),只简单介绍密钥的选取和加、解密的实现过程。
假设用户A要对发送给B的数据加密,则可根据以下步骤选择密钥和进行密码变换:
70
(1) 随机地选取两个不同的大素数p和q(一般为100位以上的十进制数)予以保密;
(2) 计算 n = p · q,作为A的公开模数; (3) 计算 Euler 函数 (n)=(p-1) · (q-1) (mod n ) (4) 随机地选取一个与(p-1) · (q-1)互素的整数e,作为A的公开密钥; (5) 用欧几里德算法,计算满足同余方程 E•D1 (mod (n)) 的解d,作为A用户的保密密钥; (6) 任何向A发送明文的用户,均可用A的公开密钥 e 和公开模数 n, 根据式 C=Me (mod n) 得到密文C (7) 用户A收到C后,可利用自己的保密密钥d,根据 M=Cd (mod n) 得到明文M
71
RSA算法举例 对“HI”进行加密: (1) 选密钥 则n=55, (n)=40 取e=3(公钥), 则d=27 (mod 40)(私钥)
设p=5,q=11, 则n=55, (n)=40 取e=3(公钥), 则d=27 (mod 40)(私钥)
72
(2) 加密 设明文编码为: 空格=00,A=01,B=02, …,Z=26 则明文 HI=0809
C1=(08)3=512 (mod 55) C2=(09)3=729 (mod 55) N=14,Q=17 所以,密文为QN
73
(3) 恢复明文 M1=Cd=(17)27 08 (mod 55) M2=Cd=(14)27 09 (mod 55) 因此明文为“HI”。
74
RSA 算法的安全性 攻击方法 大数的因子分解是数论中的一个难题 蛮力攻击:对所有密钥都进行尝试
数学攻击:等效于对两个素数乘积(n)的因子分解 大数的因子分解是数论中的一个难题
75
DES和RSA算法的特点和比较 (1) DES的特点 可靠性较高 (16轮变化,增大了混乱性和扩散性,输出不残存统计信息);
加密/解密速度快; 算法容易实现 (可由软件和硬件实现,硬件实现速度快),通用性强;
76
算法具有对称性,密钥位数少,存在弱密钥和半弱密钥,便于穷尽攻击;
密钥管理复杂。
77
(2) RSA算法的特点 密钥管理简单 (网上每个用户仅保密一个密钥,且不需密钥配送); 便于数字签名; 可靠性较高 (取决于分解大素数的难易程度); 算法复杂,加密/解密速度慢, 难于实现。
78
混合加密方法 对称密钥密码算法的特点是算法简单,加/解密运算速度快;但其密钥管理复杂,不便于数字签名。而公开密钥密码算法的特点是密钥管理简单,便于数字签名;但算法的理论复杂,加/解密运算速度慢。两者的优缺点互补。
79
因此,在实际应用中,公开密钥密码系统并没有完全取代对称密钥密码系统。而是采用对称密钥加密方法与公开密钥加密方法相结合(混合)的方式,如下图所示。
80
两种密码体制的混合应用 明文 密文 加密后的 对称密钥 对称 密钥 加密(对 称算法) 加密(公 钥算法) 解密(对 解密(公 B的公钥
81
这种混合加密方式的原理是:在发送端先使用DES或IDEA对称算法加密数据,然后使用公开算法RSA加密前者的对称密钥;到接收端,先使用RSA算法解密出对称密钥,再用对称密钥解密被加密的数据。要加密的数据量通常很大,但因对称算法对每个分组的处理仅需很短的时间就可完成,因此对大量数据的加密/解密不会影响效率(若使用DES加密芯片,则速度会更快);
82
用RSA算法将对称密钥加密后就可公开了,而RSA的加密密钥也可以公开,整个系统需保密的只有少量RSA算法的解密密钥,因此这些密钥在网络中就很容易被分配和传输了;又因为对称密钥的数据量很少(64/128位),RSA只需对其做1~2个分组的加密/解密即可,也不会影响系统效率的。因此,使用这种混合加密方式既可以体现对称算法速度快的优势,也可发挥公钥算法密钥管理方便的优势,二者各取其优,扬长避短。
83
对公钥密码算法的误解 公开密钥算法比对称密钥密码算法更安全 公开密钥算法使对称密钥成为过时了的技术 使用公开密钥加密,密钥分配变得非常简单
任何一种算法都依赖于密钥长度、破译密码的工作量,从抗分析角度,没有一方更优越 公开密钥算法使对称密钥成为过时了的技术 公开密钥很慢,只能用在密钥管理和数字签名,对称密钥密码算法将长期存在 使用公开密钥加密,密钥分配变得非常简单 事实上的密钥分配既不简单,也不有效
84
五、 密钥管理 当合理的密码算法确定后,密码系统的保密强度完全取决于密钥的保密程度。因此,密钥管理在整个保密系统中占有重要地位,若密钥得不到合理的保护和管理,即使算法再复杂,保密系统也是脆弱的。密钥管理的目的就是要保证数据保密系统安全性。
85
密钥管理包括密钥的产生、密钥的存储和保护、密钥的更新、密钥的分发和传输、密钥的验证、密钥的使用、密钥的销毁等。这些问题的本质就是要正确地解决密钥从产生到使用全过程的安全性和实用性。
密钥管理最主要的过程是密钥的产生、保护、分发和使用。
86
1. 密钥的产生 密钥的产生是密钥管理中的基本问题。首先要保证所产生的密钥具有良好的随机性,避免产生简单、明显的密钥或一串容易记忆的字符或数字。现在代网络的信息量越来越大,需要密钥量也大,密钥的产生要能自动大量地进行。
87
密钥的产生主要利用噪声源技术,该技术就是产生二进制的随机序列或与之对应的随机数。其主要理论基础是混沌理论。
使用随机系列发生器可以自动地产生大量随机的密钥。
88
2. 密钥的保护和分发 密钥的分层保护也叫主密钥管理体制。它是以对称密钥为基础的管理体制。把密钥分为几层,高一层密钥保护低一层密钥。
2. 密钥的保护和分发 密钥的分层保护也叫主密钥管理体制。它是以对称密钥为基础的管理体制。把密钥分为几层,高一层密钥保护低一层密钥。 一般把密钥分为主密钥、辅助主密钥和会话密钥三个层次。主密钥对辅助主密钥进行加密保护,辅助主密钥对会话密钥进行加密保护。再用会话密钥对传输的具体信息进行加密保护。
89
该思想就是把网络中大量使用的会话密钥置于辅助主密钥的保护之下,通过网络送到各通信点。再由极少量的主密钥保护辅助主密钥。
也可根据网络的大小分为一级密钥、二级密钥和三级密钥等。 整个网络的密钥的保护与传输,都由计算机控制,实现密钥管理的自动化。
90
一种公开密钥的保护体制 若A与B通信,A产生公钥Ke和私钥Kd; A将Ke传输给B; B用Ke加密其产生的一个会话密钥Ks,并传输给A;
A用Kd解密Ks ; 用Ks加密A发给B的数据; 通信结束后, Ks被清除。
91
六、 网络保密通信 1. 通信安全 要保证系统的通信安全,就要充分认识到网络系统的脆弱性,特别是网络通信系统和通信协议的弱点,估计到系统可能遭受的各种威胁,采取相应的安全策略,尽可能地减少系统面临的各种风险,保证计算机网络系统具有高度的可靠性、信息的完整性和保密性。
92
网络通信系统可能面临各种各样的威胁,如来自各种自然灾害、恶劣的系统环境、人为破坏和误操作等。所以,要保护网络通信安全,不仅必须要克服各种自然和环境的影响,更重要的是要防止人为因素造成的威胁。
93
线路安全:通信过程中,通过在通信线路上搭线可以窃取(窃听)传输信息,还可以使用相应设施接收线路上辐射的信息,这些就是通信中的线路安全问题。可以采取相应的措施保护通信线路安全。采用电缆加压技术可保护通信电缆安全。
94
TCP/IP服务的脆弱性:基于TCP/IP协议的服务很多,常用的有Web服务、FTP服务、电子邮件服务等;人们不太熟悉的有TFTP服务、NFS服务、Finger服务等。这些服务都在不同程度上存在安全缺陷。
95
2. 通信加密 (1) 硬件加密和软件加密 网络中的数据加密可分为两个途径,一种是通过硬件实现数据加密,一种是通过软件实现数据加密。通过硬件实现网络数据加密有三种方式:链路加密、节点加密和端--端加密;软件数据加密就是指使用前述的加密算法进行的加密。
96
硬件加密:所有加密产品都有特定的硬件形式。这些加、解密硬件被嵌入到通信线路中,然后对所有通过的数据进行加密。虽然软件加密在今天正变得很流行,但硬件加密仍是商业和军事等领域应用的主要选择。选用硬件加密的原因有:
97
快速。加密算法中含有许多复杂运算,采用硬件措施将提高速度,而用软件实现这些复杂运算将影响速度;
安全。使用硬件加密设备可将加密算法封装保护,以防被修改。 易于安装。将专用加密硬件放在电话、传真机中比设置在微处理器中更方便。安装一个加密设备比修改配置计算机系统软件更容易。
98
软件加密:任何加密算法都可用软件实现。软件实现的劣势是速度、开销和易于改动,而优势是灵活性和可移植性,易使用,易升级。软件加密程序很大众化,并可用于大多数操作系统。这些加密程序可用于保护个人文件,用户通常用手工加/解密文件。软件加密的密钥管理很重要,密钥不应该存储在磁盘中,密钥和未加密文件在加密后应删除。
99
(2) 通信加密方式 链路加密:是传输数据仅在数据链路层上进行加密。链路加密是为保护两相邻节点之间链路上传输的数据而设立的。只要把两个密码设备安装在两个节点间的线路上,并装有同样的密钥即可。被加密的链路可以是微波、卫星和有线介质。
100
在链路上传输的信息是密文(包括信息正文、路由及检验码等控制信息),而链路间节点上必须是明文。因为在各节点上都要进行路径选择,而路由信息必须是明文,否则就无法进行选择了。
101
这样,信息在中间节点上要先进行解密,以获得路由信息和检验码,进行路由选择、差错检测,然后再被加密,送至下一链路。同一节点上的解密和加密密钥是不同的。
102
M 节点1 节点2 节点3 节点n L2 Ln-1 L1 E1 Dn D1 E2 D2 E3 C1 C2 Cn-1 链路加密
103
节点加密:是为解决数据在节点中是明文的缺点的加密方式。在中间节点装有加密/解密保护装置,由该装置完成一个密钥向另一个密钥的变换。因而该方式使得在节点内也不会出现明文。
104
但该方式与链路加密一样,都存在一个共同缺点:即也需要公共网络提供商配合,修改他们的交换节点,增加安全单元或保密装置。
105
端—端加密:是传输数据在应用层上完成加密的。端—端加密是对两个用户之间传输的数据提供连续的安全保护。数据在初始节点上被加密,直到目的节点时才能被解密,在中间节点和链路上数据均以密文形式传输。
106
只有在发送端和接收端才有加密和解密设备,中间各节点不需要有密码设备。
因为信息的报头为路径选择信息,各中间节点虽不进行解密,但必须检查报头信息,所以路径选则信息不能被加密,必须是明文。 所以,端--端加密只能对信息的正文(报文)进行加密,而不能对报头加密。
107
P L1 L2 Ln-1 节点2 节点3 节点n 节点1 E D C 端—端加密
108
几种通信加密方式的比较:常用的通信加密方式是链路加密和端—端加密。链路加密是对整个链路的通信采取保护措施,而端—端加密则是对整个网络系统采取保护措施。
109
链路加密: 方式比较简单,实现也较容易,只要把两个密码设备安装在两个节点间的线路上,并装有同样的密钥即可;
链路加密时由于报头在链路上均被加密,因此可防止报文流量的分析攻击。链路加密可屏蔽掉报文的频率、长度等特征,从而使攻击者得不到这些特征值;
110
一个链路被攻破,而不影响其它链路上的信息;
一个中间节点被攻破时,通过该节点的所有信息将被泄露; 加密和维护费用大,用户费用很难合理分配。
111
端—端加密: 可提供灵活的保密手段,如主机到主机、主机到终端、主机到进程的保护;
并非所有用户发送的所有信息都需要加密。只有需要保护的信息的发收方才需设置加密,个人用户可选择安装所需设备,因此加密费用低,加密费用能准确分摊;
112
加密在网络应用层实现,可提高网络加密功能的灵活性;
因为不能对路由信息进行加密,所以容易受到信息流量分析攻击; 整个通信过程中各分支相互关联,任何局部受到破坏时将影响整个通信过程。
113
通信加密方式的选择 在需要保护的链路数较多,或在文件保护、邮件保护、支持端—端加密的远程调用等通信场合,宜采用端—端加密方式,以利于降低成本,又能支持高灵活性、高保密性通信; 在多个网络互连的环境中,宜采用端—端加密方式;
114
在需要保护的链路数少,且要求实时通信、不支持端—端加密远程调用等场合,宜采用链路加密方式;
在需要抵御信息流量分析场合,可考虑采用链路加密和端—端加密相结合的加密方式。链路加密是对路由信息进行的,端—端加密是对端—端传输的报文进行的。 总的来说,与链路加密相比,端—端加密具有成本低、保密性强、灵活性好等优点,应用场合较多。
115
七、 鉴别与认证技术 1 . 鉴别技术概述 网络安全系统的一个重要方面是防止非法用户对系统的主动攻击,如伪造信息、篡改信息等。
七、 鉴别与认证技术 1 . 鉴别技术概述 网络安全系统的一个重要方面是防止非法用户对系统的主动攻击,如伪造信息、篡改信息等。 鉴别(Authentication 也叫验证)是防止主动攻击的重要技术。鉴别的目的就是验证一个用户身份的合法性和用户间传输信息的完整性与真实性。
116
鉴别包括报文鉴别和身份验证。 报文鉴别是为了确保数据的完整性和真实性,对报文的来源、时间性及目的地进行验证。 身份验证是验证进入网络系统者是否是合法用户,以防非法用户访问系统 报文鉴别和身份验证可采用数字签名技术及其他技术来实现。
117
鉴别过程通常涉及到加密和密钥交换。加密可使用对称密钥加密、非对称密钥加密或两种加密方式的混合。
鉴别的方式一般有用户帐户名/口令验证、摘要算法验证、基于PKI(公钥基础设施)验证等。
118
验证、授权和访问控制都与网络实体安全有关。虽然用户身份只与验证有关,但很多情况下还讨论授权和访问控制。
授权和访问控制都是在成功的验证之后进行的。 目前验证使用的技术有:数字签名、报文验证和身份验证。
119
身份验证一般涉及两个过程,一个是识别,一个是验证。
识别是指要明确访问者是谁,即要对网络中的每个合法用户都有识别能力。要保证识别的有效性,必须保证能代表用户身份的识别符的惟一性。
120
验证就是指在访问者声明自己的身份后,系统要对他所申明的身份进行验证,以防假冒。
识别信息一般是非秘密的,如信用卡上的用户名、身份证号码等;而验证信息一般是秘密的,如信用卡的密码。
121
身份验证的方法有:口令验证、个人持证验证和个人特征验证三类。
口令法最简单,系统开销也小,但其安全性也最差; 持证为个人持有物,如钥匙、磁卡、智能卡等。它比口令法安全性好,但验证系统比较复杂。磁卡常和PIN一起使用;
122
以个人特征进行验证时,可有多种技术为验证机制提供基础,如指纹识别、声音识别、血型识别、视网膜识别等。个人特征方法验证的安全性最好,但验证系统相应地也最复杂。
123
报文鉴别:报文鉴别是指在两个建立通信联系的用户之间,每个用户对收到的信息验证其真伪,以保证所收到的信息是真实的。
报文鉴别又称完整性校验,在银行业称为消息认证,在OSI安全模型中称为封装。
124
报文鉴别过程必须确定以下三个内容: 报文是由指定的发送方产生的; 报文内容没有被修改过; 报文是按已传送的相同顺序收到的。 第一种确定由数字签名来完成,后两种确定又分为报文内容和报文时间性验证。
125
报文的内容验证: 同加密一样,鉴别也需要一个好的鉴别算法,但它的设计比加密算法要容易些。鉴别算法也需要有一个保密密钥,整个鉴别过程的安全性完全取决于密钥的安全性。鉴别算法的强度要求与加密算法的一样,也要能经受住攻击。
126
报文鉴别的常用方法是使用信息摘要或散列函数进行。
信息摘要是在任意大的信息中产生固定长度的摘要,而其特性是无法找到两个摘要相同的信息。因此,可以将比信息小得多的摘要看作与完整信息是等同的。
127
报文的时间性验证 信息的时间性验证可使用报文鉴别码和电子时间戳技术。
验证报文是否以发方传输的顺序被接收,可采用这样的方法:假定时变量T是接收方和发送方预先约定的,那么,只要在每份报文中加入T,就可以建立起报文传输顺序。
128
具体方法是:每当用户A要给B发送报文时,A先通知B,B就给A发送一个随机数T,A在发送给B的报文中加入T,那么B就可以通过验证在报文中返回的T值来确认报文是否是按正确顺序接收的。在这种方法中,由于T是在需要时产生的一个变量,并且包含在报文正文中,所以只有在接收方同时对报文内容进行鉴别时,这种方法才起作用。
129
单向散列函数概要 Hash : 哈希函数,杂凑函数,散列函数 H 具有如下特性: h= H(m) 可以操作任何大小的报文m
给定任意长度的m,产生的h的长度固定 给定m计算h=H(m) 是容易的 给定h寻找m,使得H(m)=h是困难的 寻找任何(x, y),x≠y,使得H(x) =H(y)是计算上不可行的
130
MD5 算法简介 Ron Rivest 设计, RFC 1321 经历过MD2, MD4 不同的版本 对任意输入均产生128bit的输出
基于32位的简单操作,易于软件实现 简单而紧凑,没有复杂的过程和大数据结构 适合微处理器实现(特别是Intel)
131
其他散列算法 SHA1的全称是Secure Hash Algorithm(安全哈希算法)
MD5 算法的哈希值大小为 128 位。而SHA1 算法的哈希值大小为 160 位。两种算法都是不可逆。
132
2004年8月17日的美国加州圣巴巴拉的国际密码学会议(Crypto’2004)上,来自中国山东大学的王小云教授做了破译MD5、HAVAL-128、 MD4和RIPEMD算法的报告,公布了MD系列算法的破解结果。宣告了固若金汤的世界通行密码标准MD5的堡垒轰然倒塌,引发了密码学界的轩然大波。
133
2 . 数字签名 数字签名(Digital Signature)可解决手写签名中的签字人否认签字或其他人伪造签字等问题。因此,被广泛用于银行的信用卡系统、电子商务系统、电子邮件以及其他需要验证、核对信息真伪的系统中。
134
手工签名是模拟的,因人而异,而数字签名数字式的(0、1数字串),因信息而异。
数字签名的功能: 收方能够确认发方的签名,但不能伪造; 发方发出签过名的信息后,不能再否认; 收方对收到的签名信息也不能否认; 一旦收发方出现争执,仲裁者可有充足的证据进行评判。
135
一个由公开密钥密码体制实现的数字签名过程如下图
(1) 直接方式的数字签名 一个由公开密钥密码体制实现的数字签名过程如下图 签名 验证 A B M S KAd KAe
136
一个典型的由公开密钥密码体制实现的、带有加密功能的数字签名过程如下图
KBd 加密(E) KBe 解密 (D) C 信道 签名 验证 KAd KAe A B M S
137
数字签名的主要方式是:报文的发送方利用单向散列函数从报文文本中生成一个128位的散列值(或信息摘要)。发送方用自己的私人密钥对这个散列值进行加密来形成发送方的数字签名。然后,该数字签名将作为报文的附件和报文一起发送给报文的接收方。
138
报文的接收方首先从接收到的原始报文中计算出128位的散列值(或信息摘要),接着再用发送方的公开密钥来对报文附加的数字签名进行解密得到原散列值。如果这两个散列值相同,则接收方就能确认该数字签名是发送方的。通过数字签名能够实现对原始报文的鉴别。
139
(2) 数字签名过程 只有加入数字签名及验证才能真正实现信息在公开网络上的安全传输。加入数字签名和验证的文件传输过程如下(见下图)
发送方首先用Hash函数从原报文中得到数字签名,然后采用公开密钥算法用自己的私有密钥对数字签名进行加密,并把加密后的数字签名附加在要发送的报文后面;
140
单向函数 明文 信息 摘要 签名后的 信息摘要 密文 用A的私 钥签名 发送方A 用A的公 钥验证 接收方B 比 较 数字签名和验证过程
141
发送方选择一个会话密钥对原报文进行加密,并把加密后的文件通过网络传输到接收方;再用接收方的公开密钥对会话密钥进行加密,并通过网络把加密后会话密钥传输到接收方;
接受方使用自己的私有密钥对会话密钥信息进行解密,得到会话密钥的明文; 接收方再用会话密钥对加密了的报文进行解密,得到原报文;
142
接收方用发送方的公开密钥对加密的数字签名进行解密,得到数字签名的明文;
接收方再用得到的原报文和Hash函数重新计算数字签名,并与解密后的数字签名进行对比。如果两个数字签名是相同的,说明文件在传输过程中没有被破坏,信息完整。
143
(3) 数字签名算法和技术 目前,广泛应用的数字签名算法主要有三种:RSA签名、DSS(数字签名系统)签名和Hash签名。这三种算法可单独使用,也可综合在一起使用。数字签名是通过密码算法对数据进行加、解密变换实现的。
144
(4) 数字签名与信息加密的区别 数字签名的加密/解密过程和信息(报文)的加密/解密过程虽然都可使用公开密钥算法,但实现过程正好相反,使用的密钥对也不同。数字签名使用的是发送方的密钥对,发送方用自己的私有密钥进行加密(签名),接收方用发送方的公开密钥进行解密(验证)。这是一个一对多的关系:任何拥有发送方公开密钥的人都可以验证数字签名的正确性。
145
而信息(报文)的加密/解密则使用的是接收方的密钥对,这是多对一的关系:任何知道接收方公开密钥的人都可以向接收方发送加密信息,只有唯一拥有接收方私有密钥的人才能对信息解密。在实用过程中,通常一个用户拥有两个密钥对,一个密钥对用来对数字签名进行加密/解密,一个密钥对用来对信息(报文)进行加密/解密。这种方式提供了更高的安全性。
146
数字签名大多采用非对称密钥加密算法,它能保证发送信息的完整性、身份的真实性和不可否认性,而数字加密采用了对称密钥加密算法和非对称密钥加密算法相结合的方法,它能保证发送信息的保密性。
数字签名和信息加密过程的区别比较明显(如下图所示)。
147
数字签名与数据加密的区别 接 收 者 加密 发 送 使用发送者的私钥 使用接收者的公钥 数字签名 解密 使用发送者的公钥 使用接收者的私钥
验证 数字签名与数据加密的区别 数据加密 数据解密
148
3.公钥基础设施(PKI) PKI是用于发放公开密钥的一种渠道 CA(证书授权中心) RA(注册) Directory Directory
用户 注册 签发证书、证书回收列表 PKI是用于发放公开密钥的一种渠道 CA(证书授权中心) RA(注册) Directory 大量的查询操作 少量的插入、删除和修改
149
CA认证 验证通信中使用的密钥对是否就是用户的密钥对,要使用证书验证。
证书(Certification)或凭证是一种特殊的签名信息。它包含用户特异名字、公钥和有效期。它是由CA(Certificate Authority 验证中心)进行签名得到的(发放的)。
150
CA的英文全称是Certificate Authority,即证书授权中心,也叫认证中心。CA作为权威的、可信赖的第三方,是发放、管理、废除数字证书的机构。其作用是检查证书持有者身份的合法性,并签发证书,以防证书被伪造或篡改,以及对证书和密钥进行管理,承担公钥体系中公钥合法性检验的责任。
151
CA认证中心的主要功能 证书的颁发 证书的更新 证书的查询 证书的归档 证书的作废
152
CA的签名过程 用户产生密钥对,并将公钥部分及其它识别信息提交给CA。当CA一旦对用户的身份表示满意,就取下用户的公钥,并对它制作信息摘要; 信息摘要用CA的专用密钥进行加密,制作用户公钥的CA签名;
153
用户的公钥和验证用户公钥的CA签名组合在一起制作数字证书。
154
CA签发并管理正式使用的公钥和与用户相关联的证书。证书只在某一时间内有效,因而CA保存一份有效证书及其有效期清单。有时证书或许要及早废除,因而CA保存一份废除的证书及有效证书的清单。CA的有效证书、废除证书或过期证书的清单可提供给任何一个要获得这种清单的人。
155
数字证书:是一个经证书授权中心数字签名的、包含公开密钥拥有者信息及公开密钥的文件。最简单的证书包含一个公开密钥、名称以及CA中心的数字签名。一般情况下证书中还包括密钥的有效时间,发证机关(证书授权中心)的名称,该证书的序列号等信息。
156
数字证书主要有以下四大功能 (1) 保证信息的保密性 (2) 保证信息的完整性 (3) 保证交易者身份的真实性 (4) 保证不可否认性
157
数字证书通常有以下类型 个人证书:包括个人安全电子邮件证书和个人身份证书。 企业证书:包括企业安全电子邮件证书和企业身份证书。
服务器证书:包括Web服务器证书和服务器身份证书。 信用卡身份证书:包括消费者证书、商家证书和支付网关证书。
158
数字证书的应用:网络上的行政作业和商务活动,如发送安全电子邮件、访问安全站点、网上证券、网上招投标、网上签约、网上办公、网上缴费、网上纳税等网上安全电子事务处理和安全电子交易活动。其应用范围涉及需要身份认证及数据安全的各个行业。
159
3. 一种网络环境下的密钥管理算法 Kerberos的主要功能是解决保密密钥管理与分发问题。
3. 一种网络环境下的密钥管理算法 ----Kerberos Kerberos的主要功能是解决保密密钥管理与分发问题。 Kerberos建立在一个安全的、可信赖的密钥分配中心(KDC)的概念上。建有KDC的系统用户只需保管与KDC之间使用的密钥加密密钥—与KDC通信的密钥即可。
160
KDC的工作过程: 假设A要与B通信,A先向KDC提出申请与B的联系和通信会话密钥; KDC为A和B选择一个会话密钥Ks,分别用A和B知道的密钥进行加密,然后分送给A和B;
161
A和B得到KDC加密过的信息后,分别解密之,得到会话密钥Ks ;
至此,A与B即可用进行通信了。通信结束后, Ks随即被销毁。 KDC可以看作一个密钥源,它可以与DES 一起使用,也可以是一个公开密钥源。
Similar presentations