认证技术

http://real.zjicm.edu.cn/infosec/studywl/chapter/ch05_04.htm

 

 

  数据加密是密码技术应用的重 要领域,在认证技术中,密码技术也同样发挥出色,但它们的应用目的不同。加密是为了隐蔽消息的内容,而认证的目的有三个:一是消息完整性认证,即验证信息 在传送或存储过程中是否被篡改;二是身份认证,即验证消息的收发者是否持有正确的身份认证符,如口令或密钥等;三是消息的序号和操作时间(时间性)等的认 证,其目的是防止消息重放或延迟等攻击。认证技术是防止不法分子对信息系统进行主动攻击的一种重要技术。

5.4.1  认证技术的分层模型

   认 证技术一般可以分为三个层次:安全管理协议、认证体制和密码体制。安全管理协议的主要任务是在安全体制的支持下,建立、强化和实施整个网络系统的安全策 略;认证体制在安全管理协议的控制和密码体制的支持下,完成各种认证功能;密码体制是认证技术的基础,它为认证体制提供数学方法支持。
  典型的安全管理协议有公用管理信息协议CMIP、简单网络管理协议SNMP和分布式安全管理协议DSM。典型的认证体制有Kerberos体制、X.509体制和Light Kryptonight体制。
  一个安全的认证体制至少应该满足以下要求:
  
1)接收者能够检验和证实消息的合法性、真实性和完整性。
  2)消息的发送者对所发的消息不能抵赖,有时也要求消息的接收者不能否认收到的消息。
  3)除了合法的消息发送者外,其他人不能伪造发送消息。
  发送者通过一个公开的无扰信道将消息送给接收者。接收者不仅得到消息本身,而且还要验证消息是否来自合法的发送者及消息是否经过篡改。攻击者不仅要截收和分析信道中传送的密报,而且可能伪造密文送给接收者进行欺诈等主动攻击。
  认证体制中通常存在一个可信中心或可信第三方(如认证机构CA,即证书授权中心),用于仲裁、颁发证书或管理某些机密信息。通过数字证书实现公钥的分配和身份的认证。
  数字证书是标志通信各方身份的数据,是一种安全分发公钥的方式。CA负责密钥的发放、注销及验证,所以CA也称密钥管理中心。CA为每个申请公开密钥的用户发放一个证书,证明该用户拥有证书中列出的公钥。CA的数字签名保证不能伪造和篡改该证书,因此,数字证书既能分配公钥,又实现了身份认证。数字证书的内容详见本章后续相关内容。

5.4.2  数字签名技术

  鉴别文件或书信真伪的传统做法是亲笔签名或盖章。签名起到认证、核准、生效的作用。电子商务、电子政务等应用要求对电子文档进行辨认和验证,因而产生了数字签名。数字签名既可以保证信息完整性,同时提供信息发送者的身份认证。
  数字签名就是信息发送者使用公开密钥算法技术,产生别人无法伪造的一段数字串。发送者用自己的私有密钥加密数据传给接收者,接收者用发送者的公钥解开数据后,就可以确定消息来自于谁,同时也是对发送者发送信息的真实性的一个证明。发送者对所发信息不能抵赖。
  数字签名与传统签名的区别:①需要将签名与消息绑定在一起;②通常任何人都可以验证;③要考虑防止签名的复制、重用。
  数字签名必须保证:
  
1)可验证。签字是可以被确认的。
  2)防抵赖。发送者事后不承认发送报文并签名。
  3)防假冒。攻击者冒充发送者向收方发送文件。
  4)防篡改。收方对收到的文件进行篡改。
  5)防伪造。收方伪造对报文的签名。
  签名对安全、防伪、速度要求比加密更高。
  一 个数字签名方案由安全参数、消息空间、签名、密钥生成算法、签名算法、验证算法等成分构成。从接收者验证签名的方式可将数字签名分为真数字签名和公证数字 签名两类。在真数字签名中,签名者直接把签名消息传送给接收者,接收者无需求助于第三方就能验证签名。在公证数字签名中,签名者把签名消息经由被称作公证 者的可信的第三方发送给接收者,接收者不能直接验证签名,签名的合法性是通过公证者作为媒介来保证的,也就是说接收者要验证签名必须同公证者合作。
  数字签名算法可分为普通数字签名算法、不可否认数字签名算法、Fail-Stop数字签名算法、盲数字签名算法和群数字签名算法等。普通数字签名算法包括RSA数字签名算法、ElGamal数字签名算法、Fiat-Shamir数字签名算法、Guillou-Quisquarter数字签名算法等。

5.4.3  身份认证技术

  身 份认证,又称身份鉴别,是指被认证方在没有泄露自己身份信息的前提下,能够以电子的方式来证明自己的身份,其本质就是被认证方拥有一些秘密信息,除被认证 方自己外,任何第三方(某些需认证权威的方案中认证权威除外)无法伪造,被认证方能够使认证方相信他确实拥有那些秘密,则他的身份就得到了认证。这里要做 到:在被认证方向认证方证明自己的身份的过程中,网络监听者(sniffer)当时或以后无法冒充被认证方;认证方以后也不能冒充。
  身份认证的目的是验证信息收发方是否持有合法的身份认证符(口令、密钥和实物证件等)。从认证机制上讲,身份认证技术可分为两类:一类是专门进行身份认证的直接身份认证技术;另一类是在消息签名和加密认证过程中,通过检验收发方是否持有合法的密钥进行的认证,称为间接身份认证技术。
  在用户接入(或 登录)系统时,直接身份认证技术要首先验证他是否持有合法的身份证(口令或实物证件等)。如果他有合法的身份证,就允许他接入系统中,进行允许的收发等操 作;否则拒绝他接入系统中。通信和数据系统的安全性常常取决于能否正确识别通信用户或终端的个人身份。比如,银行的自动取款机(ATM)可将现款发放给经 它正确识别的账号持卡人。对计算机的访问和使用及安全地区的出入放行等都是以准确的身份认证为基础的。
  进入信息社会,传统的身份认证方法,诸如户籍管理、身份证制度以及单位机构的证件和图章等,这些方法都已不能适应时代的要求。虽然有不少学者试图电子化生物唯一识别信息(如指纹、掌纹、声纹、视网膜、脸形等),但由于代价高,准确性低,存储空间大和传输效率低,不适合计算机读取和判别,只能作为辅助措施应用。使用密码技术,特别是公钥密码技术,能够设计出安全性高的识别协议。这里介绍一些常用的身份认证技术。
   1.身份认证方式
  身份认证常用的方式主要有两种,通行字方式和持证方式。
  通行字方式是使用最广泛的一种身份认证方式,即我们熟悉的“用户名+ 口令”方式。比如,我国古代调兵用的虎符、现代通信网的接入协议等。通行字一般为数字、字母、特殊字符等组成的字符串。通行字识别的方法是:被认证者先输 入他的通行字,然后计算机确定它的正确性。被认证者和计算机都知道这个秘密的通行字,每次登录时,计算机都要求输入通行字,这样就要求计算机存储通行字, 一旦通行字文件暴露,攻击者就有机可乘。为此,人们采用单向函数来克服这种缺陷,此时,计算机存储通行字的单向函数值而不是存储通行字,其认证过程为:
  
1)被认证者将他的通行字输入计算机。
  2)计算机完成通行字的单向函数值计算。
  3)计算机把单向函数值与机器存储的值比较。
  由于计算机不再存储每个人的有效通行字表,即使攻击者侵入计算机也无法从通行字的单向函数值表中获得通行字。当然,这种保护也抵抗不住字典式的攻击。
  持证方式是一种实物认证方式。持证是一种个人持有物,它的作用类似于钥匙,用于启动电子设备。使用较多的是一种嵌有磁条的塑料卡,磁条上记录有用于机器识别的个人识别号(PIN)。这类卡易于伪造,因此产生了一种被称作“智能卡”(Smartcard)的集成电路卡来代替普通的磁卡。智能卡已经成为目前身份认证的一种更有效、更安全的方法。
  智能卡仅仅为身份认证提供一个硬件基础,要想得到安全的识别,还需要与安全协议配套使用。
   2.身份认证协议
  目前的认证协议大多数为询问- 应答式协议,它们的基本工作过程是:认证者提出问题(通常是随机选择一些随机数,称作口令),由被认证者回答,然后认证者验证其身份的真实性。询问-应答 式协议可分为两类:一类是基于私钥密码体制的,在这类协议中,认证者知道被认证者的秘密;另一类是基于公钥密码体制的,在这类协议中,认证者不知道被认证 者的秘密,因此,它们又称为零知识身份认证协议。
  典型的零知识身份认证协议有ElGamal签名机制、Feige-Fiat-Shamir签名机制等。下面介绍ElGamal签名机制。密钥产生见本章相关部分。
  
ElGamal用于数字签名时,假设被签信息为M ,首先选择一个随机数k, k与 p - 1互质,计算a = gk ( mod p ),再用扩展 Euclidean 算法对下面方程求解b:
    
M = xa + kb ( mod p - 1 )
签名就是( a, b )。随机数k必须丢弃。验证时要验证下式:
    
ya * ab ( mod p ) = gM ( mod p )
   同时一定要检验是否满足1<= a < p;否则签名容易伪造。
  
ElGamal签名的安全性依赖于乘法群(IFp)* 上的离散对数计算。素数p必须足够大,且p-1至少包含一个大素数因子以抵抗Pohlig & Hellman算法的攻击。M 一般都应采用信息的HASH 值(如SHA算法)。ElGamal的安全性主要依赖于p和g,若选取不当则签名容易伪造,应保证g对于p-1的大素数因子不可约。

5.4.4  消息认证技术

  消息认证是指通过对消息或消息相关信息进行加密或签名变换进行的认证,目的是为防止传输和存储的消息被有意或无意地篡改,包括消息内容认证(即消息完整性认证)、消息的源和宿认证(即身份认证)及消息的序号和操作时间认证等。它在票据防伪中具有重要应用(如税务的金税系统和银行的支付密码器)。
  消息认证所用的摘要算法与一般的对称或非对称加密算法不同,它并不用于防止信息被窃取,而是用于证明原文的完整性和准确性。也就是说,消息认证主要用于防止信息被篡改。
   1.消息内容认证
  在介绍消息内容认证的常用方法之前,需要首先介绍一下HASH 函数(也称杂凑函数)。
  
1)HASH函数
  HASH函数是将任意长的数字串M映射成一个较短的定长输出的数字串H的函数,以h表示函数名,h(M)易于计算,称H=h(M)为M的杂凑值。这个H无疑打上输入数字串的烙印,因此又称其为输入M的数字指纹(Digital Finger)或消息摘要(Message Digest)。h是多对一映射,因此我们不能从H求原来的M,但可以验证任意给定序列M,是否与M有相同的杂凑值。
  若杂凑函数h 为单向函数,则称其为单向杂凑函数。用于消息认证的杂凑函数都是单向杂凑函数。单向杂凑函数按其是否有密钥控制划分为两大类:一类是有密钥控制的,以 h(k,M)表示,为密码杂凑函数;另一类是无密钥控制的,为一般杂凑函数。无密钥控制的单向杂凑函数,其杂凑值只是输入字串的函数,任何人都可以计算, 因而不具备身份认证功能,只用于检测接收数据的完整性,如篡改检测码MDC,主要用于非密码计算机应用中。有密钥控制的单向杂凑函数,要满足各种安全要 求,其杂凑值不仅与输入有关,而且与密钥有关,只有持此密钥的人才能计算出相应的杂凑值,因此具有身份验证功能,如消息认证码MAC。杂凑函数在实际中有 广泛的应用,在密码学和数据安全技术中,它是实现有效、安全可靠数字签名和认证的重要工具,是安全认证协议中的重要模块。由于杂凑函数应用的多样性和其本 身的特点而有很多不同的名字,其含义也有差别,如压缩(Compression)函数、紧缩(Contraction)函数、数据认证码(Data Integrity Check)、消息摘要、数字指纹、数据完整性校验(Data Integrity Check)、密码检验和(Cryptographic Check Sum)、消息认证码MAC(Message Authentication Code)、篡改检测码MDC(Manipulation Detection Code)等。
  构造杂凑函数的方法有两种:一种是直接构造,比如由美国麻省理工学院Rivest 设计的MD5杂凑算法,可以将任意长度的明文转换为128bit的数据摘要;美国国家标准局(NIST)为配合数字签名标准(DSA)于1993年对外公 布的安全杂凑函数(SHA),它可以对任意长度的明文产生160bit的数据摘要;另一种是间接构造,主要是利用现有的分组加密算法,诸如DES、AES 等,对其稍加修改,采用它们加密的非线性变换构造杂凑函数。比如,Rabin在1978年利用DES算法,提出了一种简单、快速的杂凑函数,其方法是将明 文分成长度为64bit的明文组m1 ,m2 ,…,mN ,采用DES的非线性变换对每一明文组依次进行变换,即令h0 =初始值,hi =Emi [hi-1 ],则最后输出的hN 即为明文的杂凑值。
  杂凑函数必须满足密码学的安全性要求。显然,对于一个单向杂凑函数h, 由M计算H=h(M)是容易的,但要产生一个M',使h(M')等于给定的杂凑值H是件难事,这正是我们密码中所希望的,否则敌方就会用M'来代替M,篡 改消息内容。若单向杂凑函数h对任意给定M的杂凑值H=h(M)下,找一个M',使h(M')=H在计算上不可行,则称h为弱单向杂凑函数;若要输入任意 一对信息(M1 ,M2 ),M1 ≠M2 ,使h(M1 )=(M2 )在计算上不可行,则称h为强单向杂凑函数。
  杂 凑函数的安全性取决于其抗击各种攻击的能力。攻击者的目标是找到两个不同消息映射同一杂凑值。一般假定攻击者知道杂凑算法,采用选择明文攻击法。强杂凑函 数正是基于生日攻击法定义的。所谓“生日攻击”是指利用概率来指导攻击者发现两条可产生同样散列结果的明文问题。例如,一个会场内,对于指定的日期,若要 求有人的生日与之相同的概率超过50%,则需要参加会议的人数超过183人;要求参会的人员中至少有两个人生日相 同的概率超过50%,那么参会人数仅需要23人。即在一定个数所组成的集合中,给定M找与M相匹配的M',概率要比从集合中任意取出一对相同元素 (M=M')的概率小得多。弱单向杂凑函数考察的是任意元素与特定元素的无碰撞性(Collision-free);强单向杂凑函数考察的是输入集中任意 两个元素的无碰撞性。因此,就无碰撞性而言,对强单向杂凑函数的要求比对弱单向杂凑函数的要求高。为了抵抗生日攻击及其他杂凑函数的攻击法,根据目前的计 算技术,杂凑函数值至少为128bit长。
  目前已研制出适合各种用途的杂凑算法,这些算法都是伪随机函数,任何杂凑值都是等可能的。输出并不以可辨别的方式依赖于输入。在任何输入串中单个比特的变化,将会导致输出比特串中大约一半的比特发生变化。
  总之,为了抵抗各种攻击,所采用的杂凑函数应满足单向性、伪随机性、非线性性及杂凑速率的高效性等密码学性质。
  
2)消息内容认证
  消息内容认证常用的方法是:消息发送者在消息中加入一个鉴别码(MAC、MDC等)并经加密后发送给接收者(有时只需加密鉴别码即可)。接收者利用约定的算法对解密后的消息进行鉴别运算,将得到的鉴别码与收到的鉴别码进行比较,若二者相等,则接收,否则拒绝接收。
   2.源和宿的认证
  在 消息认证中,消息源和宿的常用认证方法有两种。一种是通信双方事先约定发送消息的数据加密密钥,接收者只需证实发送来的消息是否能用该密钥还原成明文就能 鉴别发送者。如果双方使用同一个数据加密密钥,那么只需在消息中嵌入发送者识别符即可。另一种是通信双方实现约定各自发送消息所使用的通行字,发送消息中 含有此通行字并进行加密,接收者只需判别消息中解密的通行字是否等于约定的通行字就能鉴定发送者。为了安全起见,通行字应该是可变的。
   3.消息序号和操作时间的认证
  消息的序号和时间性的认证主要是阻止消息的重放攻击。常用的方法有消息的流水作业、链接认证符随机数认证法和时间戳等。
   4.典型算法
  
1)MD5。信息摘要算法,由RSA Data Security公司的Rivest于1992年提出,能对任何长度的输入消息进行处理,产生128bit长的“消息摘要”输出。(详细资料可参见RFC 1321,具体算法实现可以查阅Bruce Schneier的著作《应用密码学--协议、算法与C源程序》中译版)
  2)SHA算法。美国国家标准技术研究所与国家安全局共同设计一个与美国数字签名算法(DSS)一起使用的安全哈希算法( Secure Hash Algorithm, 简称SHA)。1992年1月31日公布,1993年5月11日采纳为标准。1994年7月修改,1995年4月17日公布修改版本称为SHA-1。 SHA与MD4设计原则极为相似,所用的运算与MD4相同,每轮算法相同,只是所用的函数和常数不同。它能为任意长度的输入产生160bit的杂凑值。
  这两个算法目前广泛应用于因特网的消息认证与数字签名中。但据报道,我国密码学家、山东大学信息安全研究所王小云教授的研究团队已成功破译这两个因特网核心加密算法,这就要求在技术上,至少是在密钥的长度上必须进行加固,否则网络应用,特别是电子商务将面临巨大威胁。

5.4.5  数字水印技术

数字水印就是将特定的标记隐藏在数字产品中,用以证明原创者对产品的所有权,并作为起诉侵权者的证据。
  
1996 年,在英国召开了首届国际信息隐藏会议,提出了数字水印技术,用来对付数字产品的非法复制、传播和篡改,保护产权。在多媒体信息中隐蔽地嵌入可辨别的标 记,实现版权声明与跟踪。数字水印还可以广泛应用于其他信息的隐藏,如在一个正常的文件中嵌入文本、图像、音频等信息。
  当然,数字水印技术必须不影响原系统,还要善于伪装,使人不易察觉。隐藏信息的分布范围要广,能抵抗数据压缩、过滤等变换及人为攻击。总之,数字水印应“透明”、“健壮”和“安全”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值