第五部分 信息认证技术 5.1 数字签名技术 5.2 身份识别技术 5.3 杂凑函数和消息完整性 5.4认证模式与认证方式 5.5 认证的具体实现 5.6 认证码 认证的目的 认证的目的有两个方面: 一是验证信息的发送者是合法的,而不是冒充的,即实体认证,包括信源、信宿的认证和识别; 二是验证消息的完整性,验证数据在传输和存储过程中是否被篡改、重放或延迟等。 5.1.1 数字签名技术 数字签名在信息安全,包括身份认证、数据完整性、不可否认性以及匿名性等方面有重要应用,特别是在大型网络安全通信中的密钥分配、认证及电子商务系统中具有重要作用。数字签名是实现认证的重要工具。 什么是数字签名(1/2) 1.通过单向哈希函数实现的数字签名 通过一个单向函数对要传送的报文进行处理得到的用以认证报文来源并核实报文是否发生变化的一个字母数字串,该字母数字串被成为该消息的消息鉴别码或消息摘要。 什么是数字签名(2/2) 2.公钥签名技术 公钥体制签名的时候用户用自己的私钥对原始数据的哈希摘要进行加密得到数据,然后信息接收者使用信息发送者的公钥对附在原始信息后的数字签名进行解密后获得哈希摘要,并通过与用自己收到的原始数据产生的哈希摘要对照,便可确信原始信息是否被篡改,这样就保证了数据传输的不可否认性 。 数字签名的特性( 1/2) 签名是可信的:任何人都可以方便地验证签名的有效性。 签名是不可伪造的:除了合法的签名者之外,任何其他人伪造其签名是困难的。这种困难性指实现时计算上是不可行的。 签名是不可复制的:对一个消息的签名不能通过复制变为另一个消息的签名。如果一个消息的签名是从别处复制的,则任何人都可以发现消息与签名之间的不一致性,从而可以拒绝签名的消息。?? 数字签名的特性(2/2) 签名的消息是不可改变的:经签名的消息不能被篡改。一旦签名的消息被篡改,则任何人都可以发现消息与签名之间的不一致性。 签名是不可抵赖的:签名者不能否认自己的签名。 数字签名技术的功能 数字签名可以解决否认、伪造、篡改及冒充等问题,具体要求为: 发送者事后不能否认发送的报文签名 接收者能够核实发送者发送的报文签名、接收者不能伪造发送者的报文签名、接收者不能对发送者的报文进行部分篡改 网络中的某一用户不能冒充另一用户作为发送者或接收者。 数字签名分类 以安全性分 (无条件安全的数字签名 (计算上安全的数字签名 以可签名次数分 (一次性的数字签名 (多次性的数字签名 数字签名原理 数字签名的实现方法 用对称加密算法进行数字签名 用非对称加密算法进行数字签名 用对称加密算法进行数字签名(1/2) Hash函数 所谓Hash函数,即对于任意长度的信息m,经过哈希函数运算后,压缩成固定长度的数,比如64比特,要求满足: (1)已知哈希函数的输出,要求它的输入是困难的,即已知c=Hash(m),求m是困难的。 (2)已知m,计算Hash(m)是容易的。 (3)已知C1=Hash(m1),构造m2使Hash(m2)=C1是困难的。 (4)c=Hash(m),c的每一比特都与m的每一比特相关,并有高敏感性。即每改变m的一比特,都将对c产生明显影响。 (5)作为一种数字签名,还要求哈希函数除了信息m自身之外,应该基于发信方的秘密信息对信息m进行确认。 用对称加密算法进行数字签名(Hash签名 ) (2/2) 该签名不属于强计算密集型算法,应用较广泛 使用这种较快Hash算法,可以降低服务器资源的消耗,减轻中央服务器的负荷 Hash的主要局限是接收方必须持有用户密钥的副本以检验签名, 因为双方都知道生成签名的密钥,较容易攻破,存在伪造签名的可能 用非对称加密算法进行数字签名和验证 ??1 发送方首先用公开的单向函数对报文进行一次变换,得到数字签名,然后利用私有密钥对数字签名进行加密后附在报文之后一同发出。 ??2 接收方用发送方的公开密钥对数字签名进行解密变换,得到一个数字签名的明文。发送方的公钥是由一个可信赖的技术管理机构即验证机构(CA: Certification Authority)发布的。 3 接收方将得到的明文通过单向函数进行计算,同样得到一个数字签名,再将两个数字签名进行对比,如果相同,则证明签名有效,否则无效。 5.1.2常用的数字签名体制介绍 用非对称加密算法实现的数字签名技术最常用的是DSS和RSA签名 5.1.3盲签名和群签名 这一部分介绍两种特殊的签名方法: 一、盲签名 二、群签名 1.盲签名 一般的数字签名中,总是要先知道了文件内容后才签署,但有时需要对一个文件签字,而且不想让签名者知道文件的内容,称这样的签名为盲签名(Blind Signature)。 利用盲变换可以实现盲签名 盲签名过程图示 盲签名 (1)完全盲签名 现在假设B担任仲裁人的角色,A要求B签署一个文件,但并不想让他知道文件的内容,而且B也没必要知道文件的内容,他只需要确保在需要时能进行公正的仲裁。 完全盲签名的具体过程 1)盲变换 A对要进行签名的文件和一个随机数相乘,该随机数称为盲因子。这实际完成了原文件的隐藏。隐藏完的文件被称为盲文件。 2)?A将该盲文件送给B. 3)签名. ? B对该盲文件签名。 4)解盲变换 A对签过字的盲文件除以用到的盲因子,就得到B对原文件的签名. 算法说明 只有当签名算法和乘法是可交换的,则上述的协议就可以真正实现,否则就要考虑用其他方法对原文件进行盲变换。 为保证B不能进行欺诈活动 ,要求盲因子是真正的随机因子,这样B不能对任何人证明对原文件的签名,而只是知道对其签过名,并能验证该签名。这就是一个完全盲签名的过程。 完全盲签名的特点 首先B对文件的签名是合法的,和传统的签名具有相同的属性。 B不能将所签文件与实际文件联系起来,即使他保存所有曾签过的文件,也不能获得所签文件的真实内容。 盲签名(2)盲签名 完全盲签名可以使A令B签任何内容的文件,这对B显然是很危险的. 为了避免恶意的使用,采用“分割——选择”技术 B能知道所签为何物,但他因为协议规定的限制条件,无法进行对他有利的欺诈,或者说进行欺诈所需代价超过其获利。 盲签名示例一 要确定对于进出关口的人是不是毒贩,海关不可能对每个人进行检查。一般用概率方法,例如对入关者抽取1/10进行检查。那么毒贩在大多情况下可逃脱,但有1/10的机会被抓获。而为了有效惩治犯罪,一旦抓获,其罚金将大于其它9次的的获利。所以通过适当地调节检查概率,就可以有效控制贩毒活动。 盲签名示例说明 通常人们把盲变换看作是信封,盲化文件就是对文件加个信封。而去掉盲因子的过程就是打开信封。 文件在信封中时无人能读它,而在盲文件上签名相当于在复写纸信封上签名,从而得到了对真文件(信封内)的签名。 盲签名(3)盲签名算法 D.Chaum于1985年提出一个盲签名算法,采用的是RSA算法,令B的公钥为,私钥为,模为。 1)A要对消息m进行盲签名,选1<k<m,作 2) B对t签名 3) A计算 的得 这是B对m按RSA体制签名。 2.群签名 群体密码学 群体密码学是研究面向一个团体的所有成员需要的密码体制。 在群体密码中,有一个公用的公钥,群体外面的人可以用它向群体发送加密消息,密文收到后要由群体内部成员的子集共同进行解密。 群签名特点: 群签名(Group Signature)是面向群体密码学中的一个课题分支,于1991年由Chaum和Van Heyst提出。群签名有以下几个特点: 1)只有群体中的成员能代表群体签名; 2)接收到签名的人可以用公钥验证群签名,但不可能知道由群体中哪个成员所签; 3)发生争议时可由群体中的成员或可信赖机构识别群签名的签名者. 这类签名可用于投标商务活动中。 5.2 身份识别技术 基本概念 几种常见的身份识别系统 通行字(口令)认证系统 个人特征的身份证明 基于零知识证明的识别技术 智能卡在个人身份证明中的作用 5.2.1基本概念 身份识别 定义 指定用户向系统出示自己身份的证明过程,通常是获得系统服务所必需的第一道关卡。 身份识别技术能使识别者识别到自己的真正身份,确保识别者的合法权益。 是社会责任制的体现和社会管理的需要。 常用身份识别技术 一类是基于密码技术的各种电子ID身份识别技术; 基于这种技术的数字证书和密码都存在被人盗窃、拷贝、监听获取的可能性 解决办法:数字证书的载体可以采用特殊的、不易获取或复制的物理载体,如指纹、虹膜等。 另一类是基于生物特征识别的识别技术。 电子ID身份识别技术的常用方式 一种是使用通行字的方式 通行字是使时最广泛的一种身份识别方式,比如中国古代调兵用的虎符和现代通信网的拔入协议等。 另一种是使用持证的方式 持证(token)是一种个人持有物,它的作用类似于钥匙,用于启动电子设备。 通行字技术识别办法 识别者A先输入他的通行字,然后计算机确认它的正确性。A和计算机都知道这个秘密通行字,A每次登录时,计算机都要求A输入通行字。 要求计算机存储通行字,一旦通行字文件暴露,就可获得通行字。为了克服这种缺陷,人们建议采用单向函数。此时,计算机存储通行字的单项函数值而不是存储通行字。 通行字技术认证过程 1.A将他的通行字传送给计算机 2.计算机完成通行字的单向函数值的计算 3.计算机把单向函数值和机器存储的值比较 持证(token) 一种嵌有磁条的塑料卡,磁条上记录有用于机器识别的个人信息。 这类卡通常和个人识别号(PIN) 一起使用 这类卡易于制造,而且磁条上记录的数据也易于转录,因此要设法防止仿制。 为了提高磁卡的安全性,人们建议使用一种被称作“智能卡”的磁卡来代替普通的磁卡,智能卡与普通的磁卡的主要区别在于智能卡带有智能化的微处理器和存储器。 5.2.2几种常见的身份识别系统 1.通行字(口令)认证系统 2.个人特征的身份证明 3.基于零知识证明的识别技术 4.智能卡在个人身份证明中的作用 1 通行字认证系统:(1)基本概念 通行字(口令)是一种根据已知事物验证身份的方法,也是一种最为广泛研究和使用的身份识别方法。 在实际的安全系统中,还要考虑和规定口令的选择方法、使用期限、字符长度、分配和管理以及在计算机系统中的安全保护等。不同安全水平的计算机系统要求也不相同。 示例 在一般非保密的联机系统中,多个用户可共用一个口令,这样的安全性很低了。 可以给每个用户分配不同的口令,以加强这种系统的安全性。但这样的简单口令系统的安全性始终是不高的。 在安全性要求比较高的系统中,可以要求口令岁时间的变化而变化,这样每次接入系统时都是一个新的口令,即实现动态口令。这样可以有效防止重传攻击。 还有通常的口令保存都采取密文的形式,即口令的传输和存储都要加密,以保证其安全性 通常口令的选择原则 1 、易记 2、难以被别人发现和猜中 3、抗分析能力强 ? 通常口令的选择原则 为防止口令被猜中以通行短语(Pass phrass)代替口令,通过密钥碾压(Key Crunching)技术,如杂凑函数,可将易于记忆足够长的口令变换为较短的随机性密钥。 口令分发的安全也是口令系统安全的重要环节,通常采用邮寄方式,安全性要求较高时须派可靠的信使传递。为了安全常常限定输入口令的次数以防止猜测的攻击等。 (2)口令的控制措施 1/3 (1)系统消息。一般系统在联机和脱机时都显示一些礼貌性用语,而成为识别该系统的线索,因此这些系统应当可以控制这类消息的显示。而口令是一定不能被现实出来的。 (2)限制试探次数。不成功口令的发送一般限制3至6次,超过限定次数,系统将对该用户的身份ID进行锁定,直到重新授权才再开启。 (3)口令的使用设定有效期。一旦某个口令的使用超过有效期将作废,重新设定新口令。 (2)口令的控制措施 (2/3) (4)双口令系统。允许联机是一个口令,允许接触敏感信息还需要另外一个口令。 (5)规定最小长度。限制口令至少为6到8个字节以上,为防止猜测成功概率过高,还可采用掺杂或采用通行短语等加长和随机化。 (6)封锁用户系统。可以对长期未联机用户或口令超过使用期限的用户ID封锁。直到用户重新被授权。 (2)口令的控制措施 (3/3) (7)根口令的保护。根(root)口令一般是系统管理员访问系统所用口令,由于系统管理员被授予的权力远大于一般用户,因此它自然成为攻击的目标。从而在选择和使用中要倍加保护。要求必须采用16进制字符串、不能通过网络传送、要经常更换等。 (8)系统生成口令。有些系统不允许用户自己选定口令,而由系统生成、分配口令。系统如何生成易于记忆又难以猜中的口令是要解决的一个关键问题。如果口令难以记忆,则用户要写下来,则增加了暴露的危险;另一危险是若口令生成算法被窃,则危及整个系统的安全。 2.个人特征的身份证明 生物统计学正在成为自动化世界所需要的自动化个人身份认证技术中最简单而安全的方法。 它是利用个人的生理特征来实现。 因人而已、随身携带,不会丢失且难以伪造,极适用于个人身份认证。 身份识别技术主要的几种情况 (1)手写签名识别技术 (2)指纹识别技术 (3)语音识别技术 (4)视网膜图样识别技术 (5)虹膜图样识别技术 (6)脸型识别 (1)手写签名识别技术(1/3) 传统的协议和契约等都以手写签名生效。发生争执时则由法庭判决,一般都要经过专家鉴定。由于签名动作和字迹具有强烈的个性而可作为身份验证的可靠依据。 (1)手写签名识别技术(2/3) 机器自动识别手写签名成为模式识别中的重要研究之一。 进行机器识别要做到: 一签名的机器含义, 二手写的字迹风格(对于身份验证尤为重要) 可能的伪造签名有两种情况: 一是不知道真迹,按得到的信息随手签名; 二是已知真迹时模仿签名或影描签名。 (1)手写签名识别技术(3/3) 自动的签名系统作为接入控制设备的组成部分时,应先让用户书写几个签名进行分析,提取适当参数存档备用。 (2)指纹识别技术 指纹作为身份验证的准确而可靠的手段 指纹相同的概率不到 形状不随时间变化 提取方便 将指纹作为接入控制的手段大大提高了其安全性和可靠性。 缺憾 通常和犯罪联系在一起,人们一般都不愿接受这种方式 机器识别指纹成本很高。 (3)语音识别技术 每个人说话的声音都有自己的特点,人对语音的识别能力是特别强的。 在商业和军事等安全性要求较高的系统中,常常靠人的语音来实现个人身份的验证。 机器识别语音的系统可提高系统安全,并在个人的身份验证方面有广泛的应用。 现在美国、德国等已经开发出了基于语音的识别系统,在用于防止黑客进入语音函件和电话服务系统。 (4)视网膜图样识别技术 人的视网膜血管的图样具有良好的个人特征。 基本方法 用光学和电子仪器将视网膜血管图样纪录下来,一个视网膜血管的图样可压缩为小于35字节的数字信息。 可根据对图样的节点和分支的检测结果进行分类识别。 要求被识别人要合作允许进行视网膜特征的采样。 验证效果相当好,但成本较高,只是在军事或者银行系统中被采用 。 (5)虹膜图样识别技术 虹膜是巩膜的延长部分,是眼球角膜和晶体之间的环形薄膜,其图样具有个人特征,可以提供比指纹更为细致的信息。 可以在35到40厘米的距离采样,比采集视网膜图样要方便,易为人所接受。 存储一个虹膜图样需要256个字节,所需的计算时间为100毫秒。 开发出基于虹膜的识别系统可用于安全入口、接入控制、信用卡、POS、ATM等应用系统中,能有效进行身份识别。 (6)脸型识别 首先有Harmon等人设计了一个从照片识别人脸轮廓的验证系统。但是这种技术出现差错的几率比较大。 现在从事脸型自动验证新产品的研制和开发的公司有好多家了,在金融、接入控制、电话会议、安全监视、等系统中得到一定的应用。 3.基于零知识证明的识别技术 (1)概述 零知识证明的基本思想 你向别人证明你知道某种事物或具有某种东西,而且别人并不能通过你的证明知道这个事物或这个东西,也就是不泄露你掌握的这些信息。 零知识证明问题 最小泄露证明(Minimum Disclosure proof) 零知识证明(Zero Knowledge proof)。 最小泄露知识证明应该满足条件 现在假设用P表示示证者,V表示验证者 。 (1)示证者几乎不可能欺骗验证者,若P知道证明,则可使V几乎确信P知道证明;若P不知道证明,则他使V相信他知道证明的概率几近于零。 (2)验证者几乎不可能得到证明的信息,特别是他不可能向其他人出示此证明。 (3)而零知识证明除了以上两个条件外,还要满足:验证者从示证者那里得不到任何有关证明的知识。 (2)零知识证明的基本协议 Quisquater等人给出了一个解释零知识证明的通俗例子,即零知识洞穴。 (2)零知识证明的基本协议 设P知道咒语,可打开C和D之间的密门,不知道者都将走向死胡同。 下面的协议就是P向V证明他知道这个秘密,但又不让V知道这个秘密。 协议1 1、V站在A点; 2、P进入洞中任一点C或D; 3、P进入洞之后,V走到B点; 4、V叫P:(a)从左边出来或(b)从右边出来; 5、P按照V的要求实现(因为P知道该咒语); 6、P和V重复执行上面的过程次。 协议分析 P的确可以使V确信他知道该咒语,但V在这个证明过程中的确没有获得任何关于咒语的信息。该协议是一个完全的零知识证明。 这个协议相当于下面要介绍的分割和选择协议(Cut and Choose),是公平分享东西时的经典协议。 协议2 1、P将东西切成两半 2、V选其中之一 3、P拿剩下的一般。 协议分析 P为了自己的利益在切的时候要力求公平分割,因接下来是由V先选择要哪部分。 如果将关于零知识洞穴的协议中P掌握的咒语换为一个数学难题,而P知道如何解这个难题,就可以设计实用的零知识证明协议。 4.智能卡在个人身份证明中的作用(1) 智能卡通常被称为IC卡、智慧卡、聪明卡,英文名称为smart card 或“Integrated Circuit Card”,是1970年由法国人Roland Moreno发明的,同年日本发明家Kunitaka Arimura取得了首项智能卡的专利,距今已有近30多年的历史了。 .智能卡在个人身份证明中的作用(2) 定义 它是一种芯片卡,又名CPU卡,是由一个或多个集成电路芯片组成,并封装成便于人们携带的卡片,在集成电路中具有微电脑CPU和存储器。 智能卡具有暂时或永久的数据存储能力,其内容可供外部读取或供内部处理和判断之用,同时还具有逻辑处理功能,用于识别和响应外部提供的信息和芯片本身判定路线和指令执行的逻辑功能。 计算芯片镶嵌在一张名片大小的塑料卡片上,从而完成数据的存储与计算,并可以通过读卡器访问智能卡中的数据。 智能卡在个人身份证明中的作用(3) 日常应用 例如,打IC电话的IC卡,手机里的SIM卡,银行里的IC银行卡等等。 安全应用 由于智能卡具有安全存储和处理能力,因此智能卡在个人身份识别方面有着得天独厚的优势。 最著名的是Secue ID系统,已经被普遍应用于安全性要求较高的系统中。 5.3 杂凑函数和消息完整性 5.3.1基本概念 5.3.2常见的单向杂凑函数 5.3.1基本概念 (1/5) 杂凑函数 也称为Hash函数,就是把任意长的输入串变化成固定长的输出串的一种函数。 用h表示哈希函数,M表示要进行变换的数字串,则称H=h(M)为的杂凑值,也称杂凑码。 杂凑函数为单向杂凑函数。 基本概念(2/5) 消息完整性 是指对接收的数据的任何改动都能被发现。而杂凑函数的一个主要功能就是为了实现数据完整性的安全需要。 单向的杂凑函数还可以按照其是否有密钥控制分为两类: 一类有密钥控制,以h(k,M)表示,为密码杂凑函数; 另一类无密钥控制,为一般杂凑函数。(只用于检测接受数据的完整性) 基本概念(3/5) 密码杂凑函数除了对数据完整性检验外,还具有身份认证的功能,需要满足以下的要求: 1.输入长度是任意的。 2.输出长度是固定的,根据目前的计算技术应至少取128比特长,以便抵抗生日攻击。 3.对每一个给定的输入,计算输出其杂凑值是很容易的。 4.给定杂凑函数的描述,找到两个不同的输入消息杂凑到同一个值在计算上是不可行的,或给定杂凑函数的描述和一个随机选择的消息,找到另一个与该消息不同的消息使得它们杂凑到同一个值在计算上也是不可行的。 基本概念(4/5) 攻击杂凑函数的典型方法 穷举攻击、生日攻击和中途相遇攻击。 其中穷举攻击比较直接,但效率低。 生日攻击的基本观点来自于生日问题: 在一个教室里最少有多少学生时,可使得在这个教室里至少有两个学生的生日在同一天的概率不小于50%?这个问题的答案是23。 这种攻击不涉及杂凑算法的结构,可用于攻击任何杂凑算法。 目前为止,能抗击生日攻击的的杂凑值至少要达到128bit。 基本概念(6/6) 中途相遇攻击是一种选择明文/密文的攻击,主要是针对迭代和级连的分组密码体制设计的杂凑算法。 关于杂凑函数的安全性设计的理论主要有两点: 一个是函数的单向性; 二是函数影射的随机性。 5.3.2常见的单向杂凑函数 MD4算法 MD5算法 SHA算法 5.4认证模式与认证方式 5.4.1认证与鉴定 5.4.2认证模式与认证方式 5.4.1认证与鉴定 认证活动又称为鉴别,是证明某人或对象身份的过程,是认证者对被认证者的确定的过程。 鉴定是判定识别个体的过程,在现实世界,我们通过这个人的生物特征,将他与其他个体区别开来,比如DNA信息、虹膜、指纹等。 数字世界中,信息安全所能提供的安全方案也是对我们现实生活的模拟。 认证与鉴定 鉴定是对事务的提取与区分,认证则是验证者对证明者的判定。 饭店住宿时提供身份证或是驾驶证、军人证等证明自我,就是鉴定; 使用钥匙打开房间门锁才能进入,是门锁对家庭成员的认证。这就象在数字世界中,我们使用用户名和口令。 5.4.2认证模式与认证方式 在网络中,认证是我们使用远程服务的前提。 认证贯穿于网络服务的全部过程中。 1.认证模式 通常使用如下三种模式对网络认证加以保护: 用户认证:是基于使用者本身的认证 会话认证:是对于用户访问服务权限的认证 客户认证:一般基于源地址而不是基于用户的访问授权的认证 2.认证方式 认证方式通常分为三类: 使用生物体本身的属性来识别,比如个体的指纹、手印、笔迹、声音、头像、虹膜、DNA等个体特征; 使用认证者和验证者所共知的信息系统,比如使用相同的数据加密方法等; 使用用户者所具有事物的进行认证,比如使用者的钥匙、智能卡等。