《计算机信息安全》教学课件-第3章-数字签名与认证_第1页
《计算机信息安全》教学课件-第3章-数字签名与认证_第2页
《计算机信息安全》教学课件-第3章-数字签名与认证_第3页
《计算机信息安全》教学课件-第3章-数字签名与认证_第4页
《计算机信息安全》教学课件-第3章-数字签名与认证_第5页
已阅读5页,还剩149页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章数字签名与认证3.1数字签名概述3.2单向散列函数3.3Kerberos身份验证3.4公开密钥基础设施PKI3.5用户ID与口令机制3.6彩虹表

3.7生物特征识别技术3.8智能卡第3章数字签名与认证3.1数字签名概述3.1数字签名概述在网络通信和电子商务中很容易发生如下问题。1.否认,发送信息的一方不承认自己发送过某一信息。2.伪造,接收方伪造一份文件,并声称它来自某发送方的。3.冒充,网络上的某个用户冒充另一个用户接收或发送信息。4.篡改,信息在网络传输过程中已被篡改,或接收方对收到的信息进行篡改。3.1数字签名概述用数字签名(DigitalSignature)可以有效地解决这些问题。数字签名就是主要用于对数字信息进行的签名,以防止信息被伪造或篡改等。

3.1.1数字签名原理公开密钥体制可以用来设计数字签名方案。设用户Alice发送一个签了名的明文M给用户Bob的数字签名一般过程如下:1.Alice用信息摘要函数hash从M抽取信息摘要M’;用数字签名(DigitalSignatur2.Alice用自己的私人密钥对M’加密,得到签名文本S,即Alice在M上签了名;3.Alice用Bob的公开密钥对S加密得到S’;4.Alice将S’和M发送给Bob;5.Bob收到S’和M后,用自己的私人密钥对S’解密,还原出S;6.Bob用Alice的公开密钥对S解密,还原出信息摘要M’;7.Bob用相同信息摘要函数从M抽取信息摘要M”

;2.Alice用自己的私人密钥对M’加密,得到8.Bob比较M’与M”,当M’与M”相同时,可以断定Alice在M上签名。由于Bob使用Alice的公开密钥才能解密M’,可以肯定Alice使用了自己的私人密钥对M进行了加密,所以Bob确信收到的M是Alice发送的,并且M是发送给Bob的。有关hash函数的作用将在下一节介绍。

8.Bob比较M’与M”,当M’与M”相同时,

单向散列函数单向散列函数,也称hash函数,它可以提供判断电子信息完整性的依据,是防止信息被篡改的一种有效方法。单向散列函数在数据加密、数据签名和软件保护等领域中有着广泛的应用。3.2.1单向散列函数特点hash函数的作用是当向hash函数输入一任意长度的的信息M时,hash函数将输出一固定长度为m的散列值h。即:h=h(M)

单向散列函数安全的hash函数的特点是:1.hash函数能从任意长度的M中产生固定长度的散列值h。2.已知M时,利用h(M)很容易计算出h。3.已知M时,要想通过控制同一个h(M),计算出不同的h是很困难的。4.已知h时,要想从h(M)中计算出M是很困难的。5.已知M时,要找出另一信息M',使h(M)=h(M')是很困难的。安全的hash函数的特点是:最常用的hash算法有MD5、SHA算法等。下面介绍一个利用hash函数实现报文鉴别(证实)实例。

如果Alice发送了信息给Bob,Bob收到信息后需要证实:1.Bob收到的明文是否肯定由Alice发送的。2.Bob收到的明文是否被篡改。鉴别过程:1.Alice用单向散列函数h从明文M中抽取信息文摘X,并利用RSA算法和Alice的私人密钥sk对X加密,得到密文E(X)。

最常用的hash算法有MD5、SHA算法等。下这个过程相当于数字签名。2.Alice将M、E(X)发送给Bob3.Bob收到M、E(X)后,用Alice的公开密钥pk对E(X)解密,即:D(E(X))→X,还原出X4.Bob用相同的单向散列函数h从收到的明文M中抽取信息文摘X15.Bob比较X1和X,如果X1=X时,则证实:M是Alice发送的,并且明文在传输过程中没有被篡改;否则,证实:M不是Alice发送的,或者明文在传输过程中已经被篡改。

这个过程相当于数字签名。3.2.2MD5算法在对输入的明文初始化之后,MD5是按每组512位为一组来处理输入的信息,每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,把这四个32位分组串联(级联)后将生成一个128位散列值。MD5的算法步骤如下:

1.数据填充与分组3.2.2MD5算法

(1)将输入信息M按顺序每512位长度为一组进行分组,即:M=M1,M2,…,Mn-1,Mn(2)将信息M的Mn长度填充为448位。当Mn长度L(bit为单位)<448时,在信息Mn后加一个“1”,然后再填充447-L个“0”,使最后的信息Mn长度为448位。当Mn长度L≥448时,在信息Mn后加一个“1”,然后再填充512-L+447个“0”,使最后的信息Mn长度为512位,Mn+1长度为448位(1)将输入信息M按顺序每512位长度为一组

(3)将原填充前信息M长度L转换为64位二进制数,如果原信息长度L超过64位所能表示的范围,只保留最后64位。

2.初始化散列值在MD5算法中要用到4个变量,分别为A、B、C、D,均为32位长。初始化值为:A=0x01234567B=0x89abcdefC=0xfedcba98D=0x76543210在MD5算法过程中,这四个32位变量被称为链接变量(chainingvariable),它们始终参与运算并形成最终的散列值。3.计算散列值(1)将填充后的信息按每512位分为一块(Block),每块按32位为一组划分成16个分组,2.初始化散列值即Mi=Mi0,Mi2,…,Mi15,i=1~n。(2)分别对每一块信息进行4轮计算(即主循环),每轮计算基本相同。每一轮定义一个非线性函数,它们分别是:F(X,Y,Z)=(X&Y)|((~X)&Z)G(X,Y,Z)=(X&Z)|(Y&(~Z))H(X,Y,Z)=X^Y^ZI(X,Y,Z)=Y^(X|(~Z))其中:函数中的X、Y、Z均为32位二进制数,按C++语言习惯,用&表示按位与,|表示按位或,~表示按位取反,^表示按位异或。即Mi=Mi0,Mi2,…,Mi15,i=1~

(3)将A、B、C、D这四个变量分别复制到变量a、b、c、d中。(4)每一轮又进行16次操作,每次操作对a、b、c、d中的三个变量作一次非线性函数运算,然后将所得的结果与第四个变量、信息的一个分组Mj和一个常数ti相加。再将所得的结果循环左移一个不定数s,并加上a、b、c、d中的一个变量。设Mj表示每块信息的第j个分组(j=0~15,i=1~64),<<<表示循环左移s位,则4轮运算中的一个具体运算函数可表示如下:(3)将A、B、C、D这四个变量分别复制到变量a

FF(a,b,c,d,Mj,s,ti

表示a=b+((a+F(b,c,d)+Mj+ti

)<<<s)

GG(a,b,c,d,Mj,s,ti

)表示a=b+((a+G(b,c,d)+Mj+ti

)<<<s)HH(a,b,c,d,Mj,s,ti

)表示a=b+((a+H(b,c,d)+Mj+ti

)<<<s)II(a,b,c,d,Mj,s,ti

表示a=b+((a+I(b,c,d)+Mj+ti

)<<<s)

在第i步中,常数ti

取值为232×abs(sin(i))的整数部分,i的单位为弧度。这样就可以得到4轮共64步操作见教材。FF(a,b,c,d,Mj,s,ti

(5)进行上述64步操作后,将A,B,C,D,分别加上a,b,c,d,就完成了MD5一次运算,如图所示。然后再对下一块信息继续进行MD5算法,直到所有信息块都进行MD5算法为止。

(5)进行上述64步操作后,将A,B,C,D,分

(6)最后的输出就是A、B、C、D的级联,即A作为低位,D作为高位,共128位输出。MD5被广泛用于加密和解密技术中,可以用来保护密码、生成软件注册码等。3.2.3SHA算法SHA-1散列算法过程如下:1.SHA-1对输入明文的预处理过程和MD5相同,但SHA输出为160位,并分别存储于五个32位变量中,这五个变量初始值为:A=0x67452301B=0xefedab89

(6)最后的输出就是A、B、C、D的级联,即A作C=0x98badefeD=0x10325476E=0xc3d2elf0和MD5算法一样,SHA-1一次处理512位信息,主循环的次数就是信息中512位分组的数目。2.先将A、B、C、D和E五个变量复制到变量a、b、c、d和e中。3.SHA-1也有四轮循环,但每轮有20次操作(MD5共有四轮,每轮有16次操作),共有80次操作。每次操作对a、b、c、d和e中三个变量进行一次非线性运算。C=0x98ba

SHA每一轮的非线性函数F为:

SHA每一轮的非线性函数F为:

5.将输入的512位明文分为16组,每组32位,表示为M0,M1,…,M15。再将该512位明文变换成80组,每组32位的W0,W1,…,W79信息。Wt定义如下:Wt=Mt0≤t≤15Wt=(Wt-3^Wt-8^Wt-14^Wt-16)<<<1

16≤t≤795.将输入的512位明文分为16组,每组36.这样SHA算法四轮共80次循环可以描述为:FORt=0TO79DOTEMP=(a<<<5)+Ft(b,c,d)+e+Wt+Kte=dd=cc=b<<<30b=aa=TEMP7.SHA循环结束后将进行:A=A+aB=B+b

6.这样SHA算法四轮共80次循环可以描述为:

C=C+cD=D+dE=E+e8.然后再用相同的方法进行下一个分组运算,直到所有分组都处理完为止。最后将A,B,C,D,E输出,就得到SHA的散列值。C破解MD5算法网站:

相信吗?《计算机信息安全》教学课件-第3章--数字签名与认证

3.3Kerberos身份验证3.3.1什么是KerberosKerberos是一种网络身份验证协议,Kerberos要解决的问题是:在一个开放的分布式网络环境中,如果工作站上的用户希望访问分布在网络中服务器上的服务和数据时,我们希望服务器能对服务请求进行鉴别,并限制非授权用户的访问。在分布式网络环境下,可能存在以下三种威胁:1.用户可能访问某个特定工作站,并伪装成该工作站的用户;

3.3Kerbero

2.用户可能会更改工作站的网络地址,伪装成其他工作站;3.用户可能窃听报文交换过程,并使用重放攻击来获得进入服务器或中断进行的操作。针对分布式网络环境下的安全威胁,kerberos提供认证身份服务不依赖主机操作系统的认证、不信任主机地址、不要求网络中的主机保持物理上的安全。Kerberos服务起到可信仲裁者的作用,它提供了安全的网络鉴别,实现服务器与用户间的相互鉴别。

2.用户可能会更改工作站的网络地址,伪装成3.3.2Kerberos工作原理整个Kerberos系统由认证服务器AS、票据许可服务器TGS、客户机和应用服务器四部分组成。

Kerberos第5版协议如图所示。

3.3.2Kerberos工作原理1.凭证Kerberos使用两类凭证:票据和鉴别码。票据是用来在认证服务器和用户请求的服务之间传递用户的身份,同时也传递附加信息用来保证使用票据的用户必须是票据中指定的用户。对单个的服务器和客户而言,票据包括了客户名、服务器名、网络地址、时间标记(又称时间戳)和会话密钥等,这些信息用服务器的密钥加密。客户一旦获得该票据,便可多次使用它来访问服务器,直到票据过期为止。

1.凭证鉴别码则是另外一个凭证,与票据一起发送。将鉴别码提供信息与票据中的信息进行比较,一起保证发出票据的用户就是票据中指定的用户。鉴别码包括用户名、时间标记和一个可选的附加会话密钥key等,它们用Kerberos服务器与客户共享的会话密钥加密。Kerberos鉴别码的格式如下:

与票据不同的是,鉴别码只能使用一次。鉴别码则是另外一个凭证,与票据一起发送。将鉴别

2.客户票据获取

客户给Kerberos鉴别服务器发送一个信息,该信息包括客户名及其TGS服务器名。Kerberos鉴别服务器在其数据库中查找该客户,如果客户在数据库中,Kerberos便产生了一个会话密钥。Kerberos利用客户的密钥加密会话密钥,然后为客户产生一个许可票据TGT(TicketGrantingTicket)向TGS证实他的身份,并用TGS的密钥加密。鉴别服务器将这两种加密的信息,即会话密钥和许可票据TGT发送给客户。

2.客户票据获取

3.服务器票据获取

当客户需要一个他从未拥有的票据时,他可以向TGS发送一个请求。TGS在接收到请求后,用自己的密钥解密此TGT,然后再用TGT中的会话密钥解密鉴别码。最后,TGS比较鉴别码中的信息与票据中的信息、客户的网络地址与发送的请求地址,以及时间标记与当前时间。如果每一项都吻合,便允许处理该请求。

3.服务器票据获取

4.服务请求当客户向服务器鉴别自己的身份时,客户产生一个鉴别码。并由TGS为客户和服务器产生的会话密钥对鉴别码加密。请求由从Kerberos接收到的票据和加密的鉴别码组成。服务器解密并检查票据和鉴别码,以及客户地址和时间标记。当一切检查无误后,根据Kerberos,服务器就可以知道该客户是不是他所宣称的那个人。

4.服务请求

3.4公开密钥基础设施PKI

PKI就是通过使用公开密钥技术和数字证书来提供网络信息安全服务的基础设施,是在统一的安全认证标准和规范基础上提供在线身份认证、证书认证CA(CertificateAuthority)、数字证书、数字签名等服务。3.4.1数字证书数字证书(DigitalCertificate)是由权威机构CA发行的一种权威性的电子文档,是网络环境中的一种身份证,用于证明某一用户的身份以及其公开密钥的合法性。数字证书原理是基于公开密钥体制。3.4公开密钥基础设施P从最终使用者来看,数字证书可分为系统证书和用户证书。从证书的用途来看,数字证书可分为签名证书和加密证书。1.系统证书系统证书指CA系统自身的证书,包括CA中心的证书、业务受理点的证书以及CA系统操作员的证书。2.用户证书用户证书包括:(1)个人数字证书:证书中包含个人身份信息和个人的公开密钥,用于标识证书持有人的个人身份。

从最终使用者来看,数字证书可分为系统证书和用(2)机构数字证书:证书中包含企业信息和企业的公开密钥,用于标识证书持有企业的身份。(3)个人签名证书:证书中包含个人身份信息和个人的签名私钥,即私人密钥,用于标识证书持有人的个人身份。

(4)机构签名证书:证书中包含企业信息和企业的签名私钥,用于标识证书持有企业的身份。

(5)设备数字证书:证书中包含服务器信息和服务器的公开密钥,用于标识证书持有服务器的身份。

(2)机构数字证书:证书中包含企业信息和企业的

3.签名与加密证书签名证书用于对用户信息进行签名,以保证信息的不可否认性。加密证书用于对用户传送信息进行加密以保证信息的真实性和完整性。在使用中必须为用户配置两对密钥,即签名密钥对、加密密钥对,及两张证书。签名密钥对由签名私人密钥和验证公开密钥组成。

加密密钥对由加密公开密钥和解密私人密钥组成。

3.签名与加密证书

4.数字证书一个标准的数字证书包含内容有:版本、序列号、签名算法标识、签发者、有效期、主体、主体公开密钥信息、CA的数字签名、可选项等。(1)证书版本号:指出该证书使用了哪种版本的标准;

(2)证书序列号:CA会给每一个证书分配唯一的证书序列号;

(3)证书签名算法标识符:用来指定CA签发证书时所使用的公开密钥算法和hash算法;

4.数字证书

(4)证书认证机构:证书的发行机构名称,命名规则一般采用格式;(5)证书有效期:证书起始时间以及终止时间,指明证书在这两个时间段内有效;(6)证书所有人的名称:命名规则一般采用格式;(7)证书所有人的公开密钥信息:包括证书持有人的公钥、算法的标识符和其他相关的密钥参数。(8)CA的数字签名:这是使用发布者私钥生成的签名,以确保这个证书在发放之后没有被篡改过;(4)证书认证机构:证书的发行机构名称,命名规则

(9)可选项:包括签发者唯一标识、证书持有人唯一标识符等都是可选项,可根据需要进行选择。智能卡(IC卡)和电子钥匙UKey具备便于携带、抗复制、低成本及不易损坏等特征,是目前较为理想的数字证书存储介质。

(9)可选项:包括签发者唯一标识、证书持有3.4.2PKI基本组成

PKI至少具有认证机构(CA)、数字证书库、密钥备份及恢复系统、证书作废处理系统、PKI应用接口系统五个基本系统,构建PKI也将围绕这五大系统来构建。

1.认证机构CA

CA的主要功能就是签发证书和管理证书,其主要职责包含下面几个方面:

(1)验证并标识证书申请者的身份;(2)确保CA用于签名证书的非对称密钥的质量和安全性;

3.4.2PKI基本组成

(3)确保整个签证过程的安全性,确保签名私人密钥的安全性;(4)管理证书信息资料,包括公开密钥证书序列号、CA标识等的管理;(5)确定并检查证书的有效期限;(6)确保证书用户标识的唯一性;(7)发布并维护作废证书表;(8)向申请人发通知。2.数字证书库

数字证书库是证书集中存放的地方,是网上的一种公共信息库,用户可以从证书库中获得其他用户的证书和公开密钥。(3)确保整个签证过程的安全性,确保签名私人密

3.密钥备份及恢复如果用户丢失了用于解密数据的密钥,则密文数据将无法被解密,造成数据丢失。为避免这种情况的出现,PKI应该提供备份与恢复解密密钥的机制。4.证书作废处理系统

同日常生活中的各种证件一样,数字证书在CA为其签署的有效期以内也可能需要作废。作废证书一般通过将证书列入作废证书表CRL(CertificateRevocationLists)来完成。证书的作废处理必须在安全及可验证的情况下进行,系统还必须保证CRL的完整性。3.密钥备份及恢复5.密钥和证书的更新

为了保证安全,证书和密钥必须有一定的更换频度。因此,PKI对已发的证书必须有一个更换措施,这个过程称为密钥更新或证书更新。

6.证书历史档案

在密钥更新后,每一个用户都会形成多个旧证书和至少一个当前新证书。这一系列旧证书和相应的私人密钥就组成了用户密钥和证书的历史档案。

与私人密钥不同的是,为了防止其他人使用旧的签名密钥,当签名密钥被更新时,必须完全销毁旧的签名密钥。5.密钥和证书的更新

7.PKI应用接口

PKI应用接口系统需要实现如下的功能:(1)为所有用户以一致、可信的方式使用公开密钥证书提供支持;

(2)为用户提供安全、统一的密钥备份与恢复支持;

(3)确保用户的签名私人密钥始终只在用户本人的控制之下,阻止备份签名私人密钥的行为;

(4)根据安全策略自动为用户更换密钥,实现密钥更换的自动、透明与一致;

7.PKI应用接口

(5)为方便用户访问加密的历史数据,向用户提供历史密钥的安全管理服务;

(6)为所有用户访问统一的公用证书库提供支持;

(7)向所有用户提供统一的证书作废处理服务;

(8)完成交叉证书的验证工作,为所有用户提供统一模式的交叉验证支持;

(9)支持多种密钥存放介质,包括IC卡、PC卡、安全文件等。

(5)为方便用户访问加密的历史数据,向用户提供历3.4.3对PKI的性能要求

作为网络安全环境的一种基础设施,PKI必须具有良好的性能。(1)透明性和易用性。(2)可扩展性。(3)互操作性。

(4)

支持多应用

(5)支持多平台。3.4.3对PKI的性能要求3.4.4PKI的标准

与PKI相关的标准主要包括以下一些:

1.ASN.1(AbstractSyntaxNotationOne)是描述在网络上传输信息格式的标准方法。2.是一个将局部目录服务连接起来,构成全球分布式目录服务系统的协议,它定义了一个机构如何在全局范围内共享其名字和与之相关的对象。3.为用户名称提供了通信实体的鉴别机制,并规定了实体鉴别过程中广泛适用的证书语法和数据接口。

3.4.4PKI的标准

4.PKCS系列标准由RSA实验室针对PKI体系的加解密、签名、密钥交换、分发格式及行为等制订的PKCS系列标准(PKCS#1~PKCS#15)。

5.OCSP在线证书状态协议是因特网工程技术小组IETF颁布的用于检查数字证书在某一交易时刻是否仍然有效的标准。

6.轻量级目录访问协议LDAP是目录访问协议的一个子集,它简化了目录访问协议,并且在功能、数据表示、编码和传输方面都进行了相应的修改。4.PKCS系列标准由RSA实验室针对PKI

7.PKIX系列协议定义了证书在Internet上的使用,包括证书的生成、发布和获取,各种产生和分发密钥的机制,以及怎样实现这些协议的轮廓结构等。

7.PKIX系列协议定义了证书在Intern

3.5用户ID与口令机制

3.5.1用户认证

用户认证是对计算机系统中的用户进行验证的过程,用户必须提供他能够进入系统的证明。用户认证往往是许多应用系统中安全保护的第一道防线,它的失败可能导致整个系统的崩溃。目前最常用的用户身份认证机制是口令。3.5用户ID与口令机制

基于口令的认证方式是最常用的和最简单一种技术,但它存在严重的安全问题。3.5.2不安全口令例如将节假日、自己或家人的出身年月日、家庭电话或手机号码、身份证等作为密码使用,认为选择这些数字便于记忆。要知道,你认为最容易记忆的密码也是最不安全的密码。现在有各种各样的破译密码软件,如L0phitCrack、getpassword等,它们的基本原理就是使用所谓的“密码字典”。基于口令的认证方式是最常用的和最简单一种技术

安全口令为增加破译密码的难度,在选用密码时,一定要注意如下几点:1.要随机选择密码数字。2.在选择密码时,最好能同时使用字母(包括字母的大小写)、数字、特殊符号。如A9d$42,使用这种类型的密码是更为安全的。3.使用密码位数要尽可能地长,如10位密码。为什么?4.应该定期更换密码。如Windows中的密码设置(组策略)方法。

安全口令在口令不被泄露的前提下,口令的安全性取决于口令的个数多少,也就是口令的空间。口令空间越大,在口令空间中找到某个口令的可能性就越小。从n个不同的符号中取出m个数作为口令,可以组成的口令个数为n^m个。显然,可以用作口令的符号n越多,口令的位数m越长,口令空间也就越大,口令也就越安全。在ASCII(AmericanStandardCodeforInformationInterchange)码中数字个数有10个,包括大小写字母个数有52个,特殊可见符号有32个,所以可以作为口令符号的个数n=94个。

在口令不被泄露的前提下,口令的安全性取决于口令5.将使用的密码记录在其它比较安全的地方,便于找回密码。

3.5.4口令攻击现在对口令的攻击包括以下几种:1.网络数据流窃听。2.字典攻击。3.穷举攻击。4.暴力攻击4.窥探。5.诈骗。6.垃圾搜索。5.将使用的密码记录在其它比较安全的地方,便于3.5.5改进方案1.修改口令登记程序,限制用户使用弱口令,拒绝任何不符合安全策略的口令。这样就可以增加字典攻击的难度。2.强制口令使用周期性,也就是要求定期更换口令。3.保持口令历史记录,使用户不能循环使用旧口令。

4.限制用户输入错误口令次数(如3次)。5.使用一次性口令或动态口令。6.完善帐号管理制度。7.加密口令文件。3.5.5改进方案3.5.6彩虹表彩虹表本质上就是由一张采用各种hash加密算法,通过hash值链生成的明文与密文的关系对照表。彩虹表对目前的密码系统构成严重的威胁,利用彩虹表可以破解Windows登录密码的LM/NTLM、word、pdf、SQL数据库、MD5、SHA等各种密码。彩虹表的最基本的原理就是组合了暴力法和查表法(穷举法),并在这两者之中取得一个折中,用我们可以承受的时间和存储空间进行破解。3.5.6彩虹表设有单向散列函数H,明文集合P,对应的密文集合C,有C=H(P)。定义一个约简函数R,使得P=R(C)。但由于H是不可逆函数,对于每个密文进行R运算后,几乎不可能得到原来对应的明文。彩虹表先假设有一个明文p0,按下面方法进行计算:看教材

设有单向散列函数H,明文集合P,对应的密文集合2.彩虹表的防御(1)根据彩虹表的原理,彩虹表生成与某个具体的hash函数H有关,H如果发生了改变,则已有的彩虹表数据就完全无法使用,必须针对特定的H重新生成。通过改变H的形式或参数,就可以提高了破解的难度。(2)方法是提高H函数的计算难度,例如将H定义为计算多次MD5后的结果。由于H在算法中的重复性,当单次H函数的计算耗时增加,意味着彩虹表的生成时间会大大的增加,从而也能提高破解的成本。2.彩虹表的防御3.6生物特征识别技术生物特征识别技术(Biometrics)是根据人体本身所固有的生理特征、行为特征的唯一性,利用图像处理技术和模式识别等方法来达到身份鉴别或验证目的的一门科学。人体的生理特征包括面像、指纹、掌纹、视网膜、虹膜和基因等。人体的行为特征包括签名、语音和走路姿态等。生物特征识别主要有面像识别、指纹识别、掌纹识别、虹膜识别、视网膜、话音识别和签名识别等。3.6生物特征识别技术

3.6.1生物特征识别系统组成一个典型的生物特征识别系统如图所示。

3.6.1生物特征识别系统组成现在有人称集光学、传感技术、超声波扫描和计算机技术于一身的生物特征识别技术为第三代身份验证技术。生物特征识别技术已经成为一种公认的、最安全和最有效的身份认证技术,将成为IT产业最为重要的技术革命。人们可以免除忘记密码的苦恼,也不必担心自己证件被伪造以及密码被破解等威胁。

现在有人称集光学、传感技术、超声波扫描和计算3.6.2指纹识别指纹是人的手指的图案、断点和交叉点上各种不相同的纹路。几乎所有指纹识别算法都是先建立指纹库,识别指纹时,在指纹库中查找,并匹配指纹的特征。为了提高指纹的对比速度,先将指纹的特征分为全局特征和局部特征。指纹的全局特征是指用人眼直接就可以观察到的特征,包括指纹的纹型、模式区、核心点、三角点、纹数等。

3.6.2指纹识别局部特征是指指纹上节点的特征。在进行指纹匹配时,先匹配指纹的全局特征,再匹配指纹的局部特征。1指纹的全局特征(1)纹型。

局部特征是指指纹上节点的特征。在进行指纹匹配(2)模式区。

(3)核心点。(4)三角点。(5)纹数。

(2)模式区。

2指纹局部特征指纹的断点、分叉点和转折点就称为“节点”。局部特征是指指纹上的节点的特征,节点特征提供了指纹唯一性的确认信息。指纹上的节点特征包括节点的分类、节点的方向、节点的位置、节点的曲率(即节点纹路方向改变的速度)四种属性。指纹的节点有以下几种类型:

2指纹局部特征

3.特征模板在某一特定指纹图像上提取的各类特征点的集合称该指纹的特征模板。4.指纹采集技术

指纹采集模式主要分为接触式和非接触式两种。目前采集指纹图像主要使用光学传感器、电容传感器、超声波扫描感器和压敏式传感器等。(1)光学传感器就是通过光线照到压有指纹的玻璃表面,利用棱镜反射,由光电耦合器件CCD(Charge-CoupledDevice)采集指纹图像。3.特征模板

(2)电容式传感器是将近百万个电容传感单元阵列集成到了一个半导体晶片上。当用手指表皮按压到半导体芯片上时,由于指纹的脊和谷与电容传感单元之间的距离不同,得到不同的电容场得到完整的指纹图像。(3)超声波扫描传感器是利用超声波扫描指纹的表面,获取指纹上脊和谷不同深度的反射信号,得出指纹的图像。(4)压敏式传感器和热敏式传感器。

指纹识别技术是目前最成熟的生物识别技术,是方便、可靠、非侵害和价格便宜的生物识别技术解决方案。

(2)电容式传感器是将近百万个电容传感单元阵列3.6.3虹膜识别人眼虹膜位于眼睛黑色瞳孔与白色巩膜之间的圆环状部分,总体上呈现一种由里向外的放射状结构,每一个虹膜都包含一个独一无二的基于斑点、细丝、冠状、条纹、隐窝等形状的细微特征,如图3.7所示。

3.6.3虹膜识别虹膜的生物特征识别技术是基于以下依据:

1.虹膜的纤维组织细节复杂而丰富,具有极大的随机性;

2.虹膜组织具有因人而异的固有特征。3.虹膜组织特征终生保持不变;

4.不可能在对视觉无严重影响的情况下改变虹膜特征;

5.一般疾病不会对虹膜组织造成损伤。虹膜识别系统主要包含:1.虹膜图像采集装置。2.活体虹膜检测。

虹膜的生物特征识别技术是基于以下依据:

3.特征提取和匹配。与其他生物特征相比,虹膜是一种更稳定、更可靠的生理特征。3.6.4其他生物识别技术1.笔迹识别2.声音识别3.手形识别

4.视网膜识别5.面像识别6.DNA基因识别3.特征提取和匹配。

3.7智能卡智能卡是一种将具有加密、存储、处理能力的集成电路芯片镶嵌于塑料基片中,封装成卡的形式。

3

IC智能卡具有以下特点。

1.强大的运算处理能力。

2.智能卡芯片能够有效抵御电子探测攻击和物理攻击。

3.芯片自锁功能。4.全球唯一序列号。5.智能卡芯片提供了硬件随机数发生器。6.硬件时钟定时器是软件设计、反跟踪等软件保护手段中必备的功能。

7.智能卡操作系统COS主要有通讯管理、文件管理、安全管理和应用管理四个部分。

IC智能卡具有以下特点。本章教学要求:(1)掌握数字签名原理;(2)知道数字签名标准DSS;(3)了解PGP加密软件;(4)掌握单向散列函数概念;(5)掌握MD5算法过程;(6)知道SHA安全散列算法;(7)知道Kerberos工作原理;(8)知道PKI概念;本章教学要求:(9)掌握数字证书概念;(10)掌握用户ID与口令机制;(11)知道彩虹表的原理(12)掌握生物特征识别技术原理;(13)掌握指纹识辨技术;(14)知道虹膜识别技术;(15)了解其他生物识别技术等;(16)了解智能卡技术。(9)掌握数字证书概念;第3章数字签名与认证3.1数字签名概述3.2单向散列函数3.3Kerberos身份验证3.4公开密钥基础设施PKI3.5用户ID与口令机制3.6彩虹表

3.7生物特征识别技术3.8智能卡第3章数字签名与认证3.1数字签名概述3.1数字签名概述在网络通信和电子商务中很容易发生如下问题。1.否认,发送信息的一方不承认自己发送过某一信息。2.伪造,接收方伪造一份文件,并声称它来自某发送方的。3.冒充,网络上的某个用户冒充另一个用户接收或发送信息。4.篡改,信息在网络传输过程中已被篡改,或接收方对收到的信息进行篡改。3.1数字签名概述用数字签名(DigitalSignature)可以有效地解决这些问题。数字签名就是主要用于对数字信息进行的签名,以防止信息被伪造或篡改等。

3.1.1数字签名原理公开密钥体制可以用来设计数字签名方案。设用户Alice发送一个签了名的明文M给用户Bob的数字签名一般过程如下:1.Alice用信息摘要函数hash从M抽取信息摘要M’;用数字签名(DigitalSignatur2.Alice用自己的私人密钥对M’加密,得到签名文本S,即Alice在M上签了名;3.Alice用Bob的公开密钥对S加密得到S’;4.Alice将S’和M发送给Bob;5.Bob收到S’和M后,用自己的私人密钥对S’解密,还原出S;6.Bob用Alice的公开密钥对S解密,还原出信息摘要M’;7.Bob用相同信息摘要函数从M抽取信息摘要M”

;2.Alice用自己的私人密钥对M’加密,得到8.Bob比较M’与M”,当M’与M”相同时,可以断定Alice在M上签名。由于Bob使用Alice的公开密钥才能解密M’,可以肯定Alice使用了自己的私人密钥对M进行了加密,所以Bob确信收到的M是Alice发送的,并且M是发送给Bob的。有关hash函数的作用将在下一节介绍。

8.Bob比较M’与M”,当M’与M”相同时,

单向散列函数单向散列函数,也称hash函数,它可以提供判断电子信息完整性的依据,是防止信息被篡改的一种有效方法。单向散列函数在数据加密、数据签名和软件保护等领域中有着广泛的应用。3.2.1单向散列函数特点hash函数的作用是当向hash函数输入一任意长度的的信息M时,hash函数将输出一固定长度为m的散列值h。即:h=h(M)

单向散列函数安全的hash函数的特点是:1.hash函数能从任意长度的M中产生固定长度的散列值h。2.已知M时,利用h(M)很容易计算出h。3.已知M时,要想通过控制同一个h(M),计算出不同的h是很困难的。4.已知h时,要想从h(M)中计算出M是很困难的。5.已知M时,要找出另一信息M',使h(M)=h(M')是很困难的。安全的hash函数的特点是:最常用的hash算法有MD5、SHA算法等。下面介绍一个利用hash函数实现报文鉴别(证实)实例。

如果Alice发送了信息给Bob,Bob收到信息后需要证实:1.Bob收到的明文是否肯定由Alice发送的。2.Bob收到的明文是否被篡改。鉴别过程:1.Alice用单向散列函数h从明文M中抽取信息文摘X,并利用RSA算法和Alice的私人密钥sk对X加密,得到密文E(X)。

最常用的hash算法有MD5、SHA算法等。下这个过程相当于数字签名。2.Alice将M、E(X)发送给Bob3.Bob收到M、E(X)后,用Alice的公开密钥pk对E(X)解密,即:D(E(X))→X,还原出X4.Bob用相同的单向散列函数h从收到的明文M中抽取信息文摘X15.Bob比较X1和X,如果X1=X时,则证实:M是Alice发送的,并且明文在传输过程中没有被篡改;否则,证实:M不是Alice发送的,或者明文在传输过程中已经被篡改。

这个过程相当于数字签名。3.2.2MD5算法在对输入的明文初始化之后,MD5是按每组512位为一组来处理输入的信息,每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,把这四个32位分组串联(级联)后将生成一个128位散列值。MD5的算法步骤如下:

1.数据填充与分组3.2.2MD5算法

(1)将输入信息M按顺序每512位长度为一组进行分组,即:M=M1,M2,…,Mn-1,Mn(2)将信息M的Mn长度填充为448位。当Mn长度L(bit为单位)<448时,在信息Mn后加一个“1”,然后再填充447-L个“0”,使最后的信息Mn长度为448位。当Mn长度L≥448时,在信息Mn后加一个“1”,然后再填充512-L+447个“0”,使最后的信息Mn长度为512位,Mn+1长度为448位(1)将输入信息M按顺序每512位长度为一组

(3)将原填充前信息M长度L转换为64位二进制数,如果原信息长度L超过64位所能表示的范围,只保留最后64位。

2.初始化散列值在MD5算法中要用到4个变量,分别为A、B、C、D,均为32位长。初始化值为:A=0x01234567B=0x89abcdefC=0xfedcba98D=0x76543210在MD5算法过程中,这四个32位变量被称为链接变量(chainingvariable),它们始终参与运算并形成最终的散列值。3.计算散列值(1)将填充后的信息按每512位分为一块(Block),每块按32位为一组划分成16个分组,2.初始化散列值即Mi=Mi0,Mi2,…,Mi15,i=1~n。(2)分别对每一块信息进行4轮计算(即主循环),每轮计算基本相同。每一轮定义一个非线性函数,它们分别是:F(X,Y,Z)=(X&Y)|((~X)&Z)G(X,Y,Z)=(X&Z)|(Y&(~Z))H(X,Y,Z)=X^Y^ZI(X,Y,Z)=Y^(X|(~Z))其中:函数中的X、Y、Z均为32位二进制数,按C++语言习惯,用&表示按位与,|表示按位或,~表示按位取反,^表示按位异或。即Mi=Mi0,Mi2,…,Mi15,i=1~

(3)将A、B、C、D这四个变量分别复制到变量a、b、c、d中。(4)每一轮又进行16次操作,每次操作对a、b、c、d中的三个变量作一次非线性函数运算,然后将所得的结果与第四个变量、信息的一个分组Mj和一个常数ti相加。再将所得的结果循环左移一个不定数s,并加上a、b、c、d中的一个变量。设Mj表示每块信息的第j个分组(j=0~15,i=1~64),<<<表示循环左移s位,则4轮运算中的一个具体运算函数可表示如下:(3)将A、B、C、D这四个变量分别复制到变量a

FF(a,b,c,d,Mj,s,ti

表示a=b+((a+F(b,c,d)+Mj+ti

)<<<s)

GG(a,b,c,d,Mj,s,ti

)表示a=b+((a+G(b,c,d)+Mj+ti

)<<<s)HH(a,b,c,d,Mj,s,ti

)表示a=b+((a+H(b,c,d)+Mj+ti

)<<<s)II(a,b,c,d,Mj,s,ti

表示a=b+((a+I(b,c,d)+Mj+ti

)<<<s)

在第i步中,常数ti

取值为232×abs(sin(i))的整数部分,i的单位为弧度。这样就可以得到4轮共64步操作见教材。FF(a,b,c,d,Mj,s,ti

(5)进行上述64步操作后,将A,B,C,D,分别加上a,b,c,d,就完成了MD5一次运算,如图所示。然后再对下一块信息继续进行MD5算法,直到所有信息块都进行MD5算法为止。

(5)进行上述64步操作后,将A,B,C,D,分

(6)最后的输出就是A、B、C、D的级联,即A作为低位,D作为高位,共128位输出。MD5被广泛用于加密和解密技术中,可以用来保护密码、生成软件注册码等。3.2.3SHA算法SHA-1散列算法过程如下:1.SHA-1对输入明文的预处理过程和MD5相同,但SHA输出为160位,并分别存储于五个32位变量中,这五个变量初始值为:A=0x67452301B=0xefedab89

(6)最后的输出就是A、B、C、D的级联,即A作C=0x98badefeD=0x10325476E=0xc3d2elf0和MD5算法一样,SHA-1一次处理512位信息,主循环的次数就是信息中512位分组的数目。2.先将A、B、C、D和E五个变量复制到变量a、b、c、d和e中。3.SHA-1也有四轮循环,但每轮有20次操作(MD5共有四轮,每轮有16次操作),共有80次操作。每次操作对a、b、c、d和e中三个变量进行一次非线性运算。C=0x98ba

SHA每一轮的非线性函数F为:

SHA每一轮的非线性函数F为:

5.将输入的512位明文分为16组,每组32位,表示为M0,M1,…,M15。再将该512位明文变换成80组,每组32位的W0,W1,…,W79信息。Wt定义如下:Wt=Mt0≤t≤15Wt=(Wt-3^Wt-8^Wt-14^Wt-16)<<<1

16≤t≤795.将输入的512位明文分为16组,每组36.这样SHA算法四轮共80次循环可以描述为:FORt=0TO79DOTEMP=(a<<<5)+Ft(b,c,d)+e+Wt+Kte=dd=cc=b<<<30b=aa=TEMP7.SHA循环结束后将进行:A=A+aB=B+b

6.这样SHA算法四轮共80次循环可以描述为:

C=C+cD=D+dE=E+e8.然后再用相同的方法进行下一个分组运算,直到所有分组都处理完为止。最后将A,B,C,D,E输出,就得到SHA的散列值。C破解MD5算法网站:

相信吗?《计算机信息安全》教学课件-第3章--数字签名与认证

3.3Kerberos身份验证3.3.1什么是KerberosKerberos是一种网络身份验证协议,Kerberos要解决的问题是:在一个开放的分布式网络环境中,如果工作站上的用户希望访问分布在网络中服务器上的服务和数据时,我们希望服务器能对服务请求进行鉴别,并限制非授权用户的访问。在分布式网络环境下,可能存在以下三种威胁:1.用户可能访问某个特定工作站,并伪装成该工作站的用户;

3.3Kerbero

2.用户可能会更改工作站的网络地址,伪装成其他工作站;3.用户可能窃听报文交换过程,并使用重放攻击来获得进入服务器或中断进行的操作。针对分布式网络环境下的安全威胁,kerberos提供认证身份服务不依赖主机操作系统的认证、不信任主机地址、不要求网络中的主机保持物理上的安全。Kerberos服务起到可信仲裁者的作用,它提供了安全的网络鉴别,实现服务器与用户间的相互鉴别。

2.用户可能会更改工作站的网络地址,伪装成3.3.2Kerberos工作原理整个Kerberos系统由认证服务器AS、票据许可服务器TGS、客户机和应用服务器四部分组成。

Kerberos第5版协议如图所示。

3.3.2Kerberos工作原理1.凭证Kerberos使用两类凭证:票据和鉴别码。票据是用来在认证服务器和用户请求的服务之间传递用户的身份,同时也传递附加信息用来保证使用票据的用户必须是票据中指定的用户。对单个的服务器和客户而言,票据包括了客户名、服务器名、网络地址、时间标记(又称时间戳)和会话密钥等,这些信息用服务器的密钥加密。客户一旦获得该票据,便可多次使用它来访问服务器,直到票据过期为止。

1.凭证鉴别码则是另外一个凭证,与票据一起发送。将鉴别码提供信息与票据中的信息进行比较,一起保证发出票据的用户就是票据中指定的用户。鉴别码包括用户名、时间标记和一个可选的附加会话密钥key等,它们用Kerberos服务器与客户共享的会话密钥加密。Kerberos鉴别码的格式如下:

与票据不同的是,鉴别码只能使用一次。鉴别码则是另外一个凭证,与票据一起发送。将鉴别

2.客户票据获取

客户给Kerberos鉴别服务器发送一个信息,该信息包括客户名及其TGS服务器名。Kerberos鉴别服务器在其数据库中查找该客户,如果客户在数据库中,Kerberos便产生了一个会话密钥。Kerberos利用客户的密钥加密会话密钥,然后为客户产生一个许可票据TGT(TicketGrantingTicket)向TGS证实他的身份,并用TGS的密钥加密。鉴别服务器将这两种加密的信息,即会话密钥和许可票据TGT发送给客户。

2.客户票据获取

3.服务器票据获取

当客户需要一个他从未拥有的票据时,他可以向TGS发送一个请求。TGS在接收到请求后,用自己的密钥解密此TGT,然后再用TGT中的会话密钥解密鉴别码。最后,TGS比较鉴别码中的信息与票据中的信息、客户的网络地址与发送的请求地址,以及时间标记与当前时间。如果每一项都吻合,便允许处理该请求。

3.服务器票据获取

4.服务请求当客户向服务器鉴别自己的身份时,客户产生一个鉴别码。并由TGS为客户和服务器产生的会话密钥对鉴别码加密。请求由从Kerberos接收到的票据和加密的鉴别码组成。服务器解密并检查票据和鉴别码,以及客户地址和时间标记。当一切检查无误后,根据Kerberos,服务器就可以知道该客户是不是他所宣称的那个人。

4.服务请求

3.4公开密钥基础设施PKI

PKI就是通过使用公开密钥技术和数字证书来提供网络信息安全服务的基础设施,是在统一的安全认证标准和规范基础上提供在线身份认证、证书认证CA(CertificateAuthority)、数字证书、数字签名等服务。3.4.1数字证书数字证书(DigitalCertificate)是由权威机构CA发行的一种权威性的电子文档,是网络环境中的一种身份证,用于证明某一用户的身份以及其公开密钥的合法性。数字证书原理是基于公开密钥体制。3.4公开密钥基础设施P从最终使用者来看,数字证书可分为系统证书和用户证书。从证书的用途来看,数字证书可分为签名证书和加密证书。1.系统证书系统证书指CA系统自身的证书,包括CA中心的证书、业务受理点的证书以及CA系统操作员的证书。2.用户证书用户证书包括:(1)个人数字证书:证书中包含个人身份信息和个人的公开密钥,用于标识证书持有人的个人身份。

从最终使用者来看,数字证书可分为系统证书和用(2)机构数字证书:证书中包含企业信息和企业的公开密钥,用于标识证书持有企业的身份。(3)个人签名证书:证书中包含个人身份信息和个人的签名私钥,即私人密钥,用于标识证书持有人的个人身份。

(4)机构签名证书:证书中包含企业信息和企业的签名私钥,用于标识证书持有企业的身份。

(5)设备数字证书:证书中包含服务器信息和服务器的公开密钥,用于标识证书持有服务器的身份。

(2)机构数字证书:证书中包含企业信息和企业的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论