身份鉴别

2024-05-12

身份鉴别(共4篇)

身份鉴别 篇1

一、引言

互联网的蓬勃发展巩固了电子商务的地位, 但是, 目前电子交易的数量还是有限的, 主要原因在于目前已建立的电子商务系统大多存在安全隐患。例如, 以明文的方式传递机密信息、缺乏有效的身份认证和访问控制机制。电子商务在安全性、保密性等方面有着更高的要求, 进行有效的身份鉴别是电子商务系统安全的第一道门户, 是电子商务建设成败的关键。用户身份鉴别就是用户向计算机以一种安全的方式提交自己的身份证明, 然后由系统确认用户的身份是否属实, 最终拒绝用户或赋予用户一定权限的过程。目前大多数商业模型中, 采用基于口令或PIN密码方法用来保护电子交易, 并将它们嵌入磁条卡或智能卡, 但是这种系统只能在特定时间允许特定的人访问, 并没有办法知道持卡人是卡的合法持有者还是从别人那里窃取来的。

二、基于生物特征的鉴别技术

生物特征识别就是为了身份验证而采用自动化技术测量身体的特征或是个人行为的特点, 并将这些特征或特点与一个数据库的数据进行比较, 完成认证的一种解决方案。生物特征识别是一种年轻又古老的技术, 自古代中国的“摁手印”, 到20世纪60年代至70年代自动指纹识别设备在美国大范围的使用, 以及80年代虹膜系统的出现, 至今已开展了包括指纹、掌形、视网膜、虹膜、人脸、DNA、等多种生物特征识别技术的研究和应用。应用以上生物特征鉴别技术在电子商务中将会是今后的发展趋势, 尤其是在关键服务器或应用系统中。国际上对生物特征识别的研究已成为热点问题, 并取得了大量的优秀成果。国内的研究虽起步较晚, 但在指纹识别等方面已取得了丰硕的成果。

生物特征识别技术最早应用于公安系统, 主要利用指纹破案。9.11事件后, 国际航空组织即要求各成员国在旅行证件上加入生物特征信息, 包括人脸识别和指纹识别的双重识别技术。指纹认证中用来认证的是若干个指纹特征的组合, 其组合的惟一性使得以穷举法进行破译几乎是不可能的。这样确保了用户密钥能够安全地存储在密钥分配中心KDC中。用户还可以根据保密性的要求, 采用多个指纹对用户的RSA私钥进行多层加密, 进而获得更高的安全性能。另外, 使用指纹特征进行身份认证, 用户输入的指纹灰度在提取特征点之后在通过网络传输到KDC进行匹配, 这样不但减小了网络传输的负担, 而且会提高KDC端指纹认证的速度。指纹是经过指纹采集仪获取的完整指纹, 对于有意窃取者在其他场合获得的残缺指纹, 指纹认证系统将不予识别。这样就避免了用户指纹被窃取, 并用其去非法访问KDC的数据库, 进而获得用户的RSA私钥。基于指纹认证的网络安全机制, 保证了电子商务活动的安全进行。

与指纹识别相比, 人脸识别由于具有非接触式的特点, 成为电子商务领域中最有潜力的生物身份验证手段, 是模式识别和图像处理中最热门的研究主题之一。人脸识别算法主要由在线匹配和离线学习两个过程组成。在训练阶段中, 从样本图像中提取特征, 存储特征形成特征库。在训练阶段, 首先提取待识别人脸样本图像的特征, 然后用训练好的分类器进行待识别脸像特征和特征库中的特征匹配, 输出识别结果。因此, 特征提取和分类器设计是人脸识别的核心算法。早期的人脸识别算法主要是基于几何特征或模板匹配, 目前人脸识别的几个主流研究方向:特征脸方法、Fisher脸方法、弹性匹配方法及局部特征分析方法。

三、基于数字签名方案的身份鉴别

随着密码学技术的发展和Internet的广泛应用, 数字签名技术正以惊人的速度发展, 它已成为人们在电子交易过程中必不可少的一部分。把电子商务和安全的数字签名结合起来是完全有必要的。2005年4月1日, 我国正式颁布实施《电子签名法》。它的出台为我国电子商务发展提供了基本的法律保障, 它解决了电子签名的法律效力这一基本问题。

数字签名是一种以电子形式给一个消息签名的方法, 是只有消息发送方才能进行的签名, 是其他任何人都无法伪造的一段数字串, 这段特殊的数字串同时也是对签名的真实性的一种证明。数字签名具有不可伪造性、可靠性、不可重复性和不可抵赖性等特点。数字签名过程:首先是签名人的软件对发送消息进行散列函数运算后, 生成信息摘要 (message digest) —这段信息所特有的长度固定的信息表示, 然后, 软件使用签名人的数字证书一同传送给预定的接收者, 接着接收者的软件会对收到的信息生成信息摘要, 并使用签名人的公钥对签名人的摘要进行解密, 接收者的软件也可以进行配置, 验证签名人证书的真伪, 确保证书是由可信赖的CA颁发, 而没有被CA吊销, 如果两个摘要一样就表明接收者成功核实了数字签名。

在实际应用中有使用对称密钥的仲裁机构的数字签名、使用非对称密钥加密的数字签名、还可以利用非对称密钥和单向散列函数的数字签名等。目前在世界先进国家和我国普遍使用的电子签名技术是基于PKI的数字签名技术。它具有在技术上比较成熟、使用方便、具有可操作性的等优点。针对不同应用领域的签名方案各式各样, 如群签名方案、可传递签名方案等。

四、总结

电子商务是一个充满挑战的领域, 这种挑战在很大程度上来源于对可使用的安全技术的依赖。只有结合多种身份鉴别技术, 才能有效地保证电子商务的安全性, 促进其良性发展。

摘要:身份鉴别是保证电子商务安全的重要手段, 本文重点分析了基于生物特征和数字签名的身份鉴别技术, 从而保证电子商务的安全和防范。

关键词:电子商务,身份鉴别,生物特征,数字签名

参考文献

[1]田捷等:生物特征识别技术理论与应用[M].电子工业出版社, 2005年

[2]章照止:现代密码学基础[M].北京邮电大学出版社, 2004年

身份鉴别 篇2

1 身份鉴别的基本概念

在国家颁布的GB/T 22239《信息安全技术信息系统安全等级保护基本技术要求》和《涉及国家秘密的信息系统分级保护技术要求》中,将“身份鉴别”作为信息安全的重要措施,要求在等级保护和分级保护设计中贯彻落实。

身份鉴别,简单地说就是通过录入代表特定身份人的信息,或通过收集特定人的生物特征信息,与资料库中存储的信息进行比对,以判定该特定人的身份,并确定是否准许登录系统,这种鉴别的过程叫做身份鉴别,与之相关的设备称为身份鉴别设备或系统。

身份鉴别,是信息安全的重要保护措施,是登录计算机信息应用程序系统、操作系统以及服务器、交换设备、存储设备等信息化设备或系统主要保护措施;通过身份鉴别使获得授权的用户和网络管理员、可以开启使用计算机终端设备、登录应用系统开展应用,网管员通过身份鉴别登录设备或系统开展参数配置、后台管理等网管工作。对没有获得授权的人拒绝开启设备或登录系统,保证设备的开启和系统的登录按照权限行驶;利用身份鉴别技术还可以控制重要场所的人员进出,保障涉密信息机房、重要信息机房、枪械库、金库等重要场所和环境的安全,即信息安全等级保护中所称的“物理安全”。

2 常用的身份鉴别技术

目前市场上成熟、常用的身份鉴别技术主要有三类:第一类为密码登录方式;第二类为读卡识别方式,包括插卡、射频感应卡、U盘等;第三类为人体生物特征识别类,包括人体指纹识别、人脸识别、虹膜识别、静脉识别等;第四类为人体行为识别,包括声音、步态、笔迹(签名)等。

掌静脉识别技术是人体生物特征识别技术的一种新技术,其优势明显优于其他识别技术。各种识别方式均有其自己的优势和缺陷,适用的出处也不尽相同。

最简单、最基础的身份鉴别方式是密码登录方式,其由用户帐号(或用户名)和密码组成。登录信息系统时,在系统界面弹出的窗口输入用户名和登录密码,通过了鉴别即可打开并进入系统。其特点是使用方面,成本低,几乎所有的信息技术设备和软件系统都配置有此功能。

读卡识别技术,主要应用于身份认证系统中。通过接触卡、感应卡、U盘等方式,将芯片卡或U盘中存储的特定人身份信息(密码保护的信息)与身份认证管理系统存储的信息进行比对,判断该特定人的信息是否为系统认证的身份,以及该身份所获得的授权,从而确定其是否准许登录该系统。身份认证必须与信息加密技术相结合才能保证认证的安全性。

人体生物特征识别方式的身份鉴别技术,是利用人体固有的生理特性(如指纹、脸相、虹膜等)和行为特征(如笔迹、声音、步态等)来进行特定人的身份鉴别。其比其他的身份鉴别方法更具安全性、保密性和使用便捷性,且具有不易遗忘、防伪性能好、不易被盗、随身“携带”等优点。

3 常用的生物特征识别技术

现在技术成熟推向市场化应用的生物特征识别技术有许多种,如指纹识别、虹膜识别、视网膜识别、面部识别、签名识别、声音识别等,近两年,业界开发出掌静脉生物识别技术,随着信息技术的飞速发展,将有越来越多的生物识别技术推向市场应用。

3.1 指纹识别技术

指纹识别技术有多种方法,其中有些是仿效传统指纹图像鉴定的方法,比较指纹的局部细节;有些直接通过全部特征进行识别;还有一些使用更独特的方法,如指纹的波纹边缘模式和超声波;有些设备能即时测量手指指纹和人体热红外线。在所有生物特征识别技术中,指纹识别是当前应用最为广泛的一种。

指纹识别方式,由于人的指纹唯一性非常强,几乎没有两个人相同的指纹信息,因此,采用人体指纹信息作为识别特定人的身份,其准确性高,且指纹采集器体积小,成本低。但是存在指纹采集器容易受到人体手指污染使其鉴别率降低的缺点。目前在身份认证、出入口管控(门禁、道闸)、考勤等系统中的应用较为广泛。

3.2 声音识别技术

声音识别技术是通过采集分析被鉴别者声音的物理特性来进行识别的技术。目前已经有一些声音识别产品进入市场,但使用起来还不太方便,这主要是因为传感器和人的声音可变性都很大。比起其他的生物识别技术,它使用的步骤也比较复杂,在某些场合不适用。

3.3 视网膜识别技术

视网膜识别技术利用光学设备发出的低强度光源扫描视网膜上独特的图案进行识别。有证据显示,视网膜扫描是十分精确的,但它要求被鉴别者正面注视接收器进行信息采集。这对于戴眼镜的人来说很不方便,而且与接收器的距离很近,让人不太舒服。所以尽管视网膜识别技术本身很好,但用户的接受程度较低,仍然是一种非主流的生物特征识别产品。

3.4 虹膜识别技术

虹膜识别技术是与眼睛有关的生物识别过程中对人产生干扰较少的技术。它利用普通的照相机元件采集信息,而且不需要用户与机器发生接触。另外,它有能力实现更高的模板匹配性能。因此,它吸引了各种人的注意。但虹膜扫描设备在操作的简便性和系统集成方面没有优势。

3.5 面部识别技术

面部识别技术是一种相当引人注意的技术,其能够将资料库的人面部图像与摄像机实时采集的图像进行比对,实施特定人身份鉴别。面部识别,经常有一些夸张功能的言论,但实际是很难实现的。比较两个静态图象识别率很高,将静态图像与动态实时图像进行比对识别很难,在人群中发现和确认某个人的身份难度更大。有些系统宣称能够实现静态图像与动态图像比对识别,实际上效果大打折扣。我们相信,随着3D技术和全息摄像技术的发展,面部识别技术会有突破性进步。

3.6 基因识别技术

随着人类基因组计划的推进,人们对基因的结构和功能的认识不断深化,并将其应用到个人身份鉴别中。在全世界60亿人中,同时出生、姓名一致、长相酷似、声音相同的人都可能存在,人的指纹也有可能受到伤害而消失,但只有基因才是代表本人遗传特性的,是独一无二、永不改变的特征。

制作这种基因身份证,首先是取得有关基因,并进行化验,选取特征位点(DNA指纹),然后录入到数据库中,基因身份证就制作出来了。如果人们喜欢加上个人病历并进行基因化验的话,也是可以的。发出基因身份证后,医生及有关的医疗机构等可利用智能卡阅读器阅读有关人的病历。

基因识别技术是一种高级的生物特征识别技术,由于技术上的原因,目前还不能做到实时取样和迅速鉴别,这在某种程度上限制了它的广泛应用。

除了上面提到的生物识别技术以外,还有通过气味、耳垂和其他特征进行识别的技术。但它们现今还不能走进实际应用中。

4 掌静脉识别技术

掌静脉识别技术,是利用近红外线摄像机读取人体手掌静脉血管纹路,与存储系统中的特定人手掌静脉血管纹路信息进行比较,从而判定两者的一致性。将该技术应用在身份鉴别系统中即成为掌静脉身份鉴别。工作原理是依据人类身体中流动的血液可吸收特定波长的光波的特性,将特定波长的光波照射人体手掌,可以获得静脉血管纹路的清晰图像。利用这一固有的科学特征,将获取的被鉴别人手掌静脉血管纹路影像进行分析、处理,从而获得其掌静脉血管纹路生物特征信息,再与事先采集的特定人的掌静脉特征进行比对,从而确认身份。

掌静脉识别系统,一种方式通过静脉识别仪获取个人手掌静脉血管纹路分布图,通过一种算法产生手掌静脉血管纹路分布图特征值,这个特征值就是鉴别与被鉴别对象的比对值。第二种获取特征值方式,是通过红外线CCD摄像头拍摄手指、手掌、手背静脉血管纹路图像进行采集,通过一种算法转换成特征值后存储在计算机系统中。身份鉴别时,实时采集被鉴别人的静脉血管纹路图像,运用先进的滤波、图像二值化、细化手段对数字图像提取特征,然后与存储在计算机系统中特征值数据库的信息进行比对。比对过程采用复杂的匹配算法对静脉特征值进行匹配,从而对鉴别对象进行身份鉴别,确认身份。

掌静脉识别技术有如下特点:

(1)活体识别,无法假冒

用掌静脉进行身份认证时,获取的是掌静脉血管纹路的图像特征,是手掌活体时才存在的特征。在掌静脉识别系统中,非活体的手掌是得不到静脉血管纹路图像特征的,因而无法识别,从而也就无法假冒。

(2)特征信息隐含于被鉴活体内部,防伪度高

静脉血管隐藏在身体内部,被复制或盗用的机率很小。用掌静脉进行身份认证时,获取的是手掌内部的静脉血管纹路图像特征,而不是手掌表面的图像特征。因此,不存在鉴别体被盗的问题,也不存在任何由于手掌表面的损伤、磨损、干燥或太湿等带来的识别障碍。该技术弥补了指纹识别速度慢、手指污渍或手指皮肤脱落时无法识别等缺点,提高了识别效率。

(3)非接触式采集信息

用掌静脉进行身份认证,获取手掌静脉血管纹路的图像时,手掌无须与设备紧密接触,轻轻一放,即可完成信息采集任务。这种方式没有手接触设备时不卫生的问题以及手指表面特征可能被复制所带来的安全问题,并避免了被当作审查对象的心理不适,同时也不会因脏物污染后无法识别。由于静脉血管位于手掌内部,气温等外部因素的影响程度可以忽略不计。信息采集无需与扫描器表面发生直接接触,使扫描过程既简单又自然,减轻了用户由于担心不卫生或使用麻烦而可能存在的抗拒心理,用户也易接受,几乎适用于所有用户。

(4)识别准确度极高

人体掌静脉血管的个体性特征很强,与手指的指纹相似,两个人完全相同的掌静脉血管纹路概率非常低,这为提高掌静脉识别技术的准确率奠定了基础。据有关文献显示,静脉识别技术的准确度极高,认假率为0.0001%,拒真率为0.01%,注册失败率为0%。

掌静脉识别的准确率,与其特征信息采集、处理、比对、算法等技术直接相关。现在的静脉识别技术与前几年韩国首尔大学研究公布的识别准确率(94.8%)有了很大的提高。

(5)安全等级高

正是由于掌静脉识别技术的活体识别、内部特征、非接触式和识别准确率高的特征,使其防伪度高,被复制或盗用的机率很低,保证了身份鉴别的安全性,特别适用于安全性要求高的场所。

5 掌静脉识别技术的应用

掌静脉识别技术应用领域广泛,凡是涉及到信息安全的地方、物理环境安全,都可以采用掌静脉识别技术进行身份鉴别。比如:银行的金库门、武器仓库大门、涉密信息机房门、机要机房门、监狱AB门等,以及重要的信息系统登录认证等,采用掌静脉识别技术进行身份识别;公共场所出入控制;银行存取款身份认证等。

身份鉴别 篇3

随着计算机网络技术的迅猛发展, 特别是Internet 的广泛应用, 网络逐步渗入到经济、政治、文化等社会各个领域, 但由于网络病毒、网络漏洞引发的系统损害, 网络安全成为人们普遍关注的焦点, 对WWW上安全技术的研究已引起了广泛关注[1]。针对WWW上的威胁以及防止对Web 系统的攻击, 国际上已经采用了众多安全机制, 包括安全认证、访问控制等。其中身份鉴别对于开放环境中的WWW信息系统的安全性起着重要的作用, 在某种程度上它是其他安全服务的基础, 是保障系统安全性的关键。

针对Web 安全认证的需求, 本文提出了一种基于Plugin 的WWW身份鉴别方案。在此基础上, 基于安全Plugin插件, 结合PKI体系, 并通过使用 USBKey智能密匙来实现对用户身份的鉴别。

1主要技术介绍

1.1Plugin技术

Plugin是由Netscape公司最早提出的一种浏览器插件技术, 它的本质是在不修改程序主体的情况下, 对浏览器功能的加强和扩充。虽然, Plugin是独立的代码模块, , 但它可以作为浏览器的一部分, 不但可以扩展浏览器的功能, 实现浏览器和用户的交互功能和多媒体功能, 还可以处理一种或多种的MIME 类型的文件。当插件的接口被公开时, 任何人都可以自己制作插件来解决一些操作上的不便或增加一些功能。通过Plugin技术, 各种应用程序和集成软件都能够以插件模型的方式直接嵌入到网页中, 提供灵活的Web应用。

Plugin结构不但使得软件可以动态地寻找和加载特定的代码模块[2], 而且使得软件具有更好的可重用性和可扩展性, 因此被越来越广泛地采用。近年来, 基于Plugin的应用软件设计变得越来越流行, 并且已经成功地应用于Mozilla Firefox和Eclipse开发环境等各种不同的应用之中[3]。

1.2PKI技术

公开密钥基础设施PKI体系是由Internet标准组和美国国家标准与技术研究院 (NIST) 制定的基于公开密钥理论和技术建立起来的安全体系, 是提供信息安全服务的具有普适性的安全基础设施。它由公开密钥密码技术、数字证书、数字证书认证机构 (CA) 和公开密钥的安全策略等基本成分共同组成。严格地讲, 一个完善的 PKI 必须具有数字认证机构 CA、证书库、密钥备份及恢复系统、证书作废处理系统、PKI 应用接口系统等组成部分。其中, 数字证书认证机构CA是整个系统的核心。

PKI技术是信息安全技术的核心, 也是电子商务和电子政务的关键和基础技术。它能够有效地解决电子商务和电子政务应用中的机密性、真实性、完整性和抗抵赖性等安全问题。

1.3USBKey

USBKey也称为USB安全钥或智能密码钥匙, 是基于USB技术, 以现代密码学的先进密码体制为基础, 在硬件上实现的集加密、认证及数字签名技术于一体的, 具有高安全性、高处理速度的硬件安全产品。它不但具有热插拔、传输速度快、接口简单以及价格便宜等优点, 而且内置智能卡芯片, 可以通过存储的私钥在内部完成数字签名等功能。

和单钥的动态密码锁不同的是:USBKey采用双钥加密的鉴别模式, 它内置单片机或智能卡芯片, 有一定的存储空间, 可以存储用户的私钥以及数字证书。由于用户私钥保存在USBKey中, 理论上使用任何方式都无法读取, 因此保证了身份鉴别的安全性。

2基于Plugin 的WWW身份鉴别方案的设计

2.1主要身份鉴别方案的分析及插件设计方案的提出

目前, 基于WWW的身份鉴别方案主要包括以下三种[1]:

(1) 基本HTTP身份鉴别 该身份鉴别方式由HTTP协议本身提供, 大多数浏览器和Web服务器都支持该方式的身份鉴别。但是在这种身份鉴别方案中, 用户口令以Base64编码格式在网络中传输, 容易被截获和篡改, 因此它不能应用于对安全比较敏感的应用中;

(2) 基于摘要的身份鉴别 (RFC2069) 这种身份鉴别方式是把经过摘要算法变换后的编码传送给服务器, 网络中的身份鉴别请求信息不包含明文口令, 但它不提供对应用数据的加密并且没有得到商用Web 浏览器的广泛支持;

(3) 基于强鉴别协议的身份鉴别 这种身份鉴别方式通常采用数字证书等安全机制来实现, 需要必要的PKI公钥基础设施来颁发和产生数字证书。

在B/S模式下为了实现基于强鉴别协议的身份鉴别, 需要在浏览器端使用数字证书对机密信息进行数字签名或加密操作, 然而, 浏览器本身并没有提供这些功能, 因此, 需要浏览器能够解析和调用另外的基于数字证书应用的安全代码。为了实现该操作, 其中一种方法是将相关安全代码直接内嵌在浏览器中, 但是, 这种方法需要对不同的浏览器各自开发一个定制版本的浏览器, 任务量比较大, 另外还需要在浏览器中对这些安全功能进行UI设计, 因而, 这种方法不可取;另一种方法是利用各种浏览器都支持的JavaScript脚本来调用相关安全代码, 与第一种方法相比, 工作量差不多, 但这种方法可以通过开发浏览器所支持的插件来实现。针对不同的浏览器, 插件的实现方式主要有以下三种:

· Plugin插件方式 Firefox等浏览器可采用Plugin插件方式, 不同平台下Plugin对应的动态库需要单独编译;

· Activex插件 (控件) 方式 IE通常采用Activex插件方式, 它同时也支持Plugin插件方式;

· Applet插件方式 采用Applet方式只需要开发一次即可, 无需针对不同平台或不同浏览器分别开发, 但采用这种方式调用的安全代码必须是Java语言编写的, 然而实际上大部分安全代码以C语言的居多, 因而普适性较差;另外, 主流浏览器的内部代码都是采用C/C++语言编写的, 对Applet的支持需要很多中间桥接代码, 而且还需要额外Java环境的支持, 因而可用性较差。

通过上述分析, 并结合实际的应用需求, 本文采用Plugin技术, 通过封装基于数字证书应用的安全C API来开发浏览器安全插件, 并使用JavaScript脚本语言实现安全插件和浏览器的交互。

2.2安全插件的设计

本文所提的安全插件就是封装了基于数字证书应用的常见安全C API (*.dll 或*.so格式的安全组件) 的浏览器插件, 即根据Netscape的Plugin API规范, 通过接口的转换, 模拟出一种特有的文档类型, 从而使得*.dll 或*.so格式的安全组件可以被浏览器识别和调用。

插件实现的关键在于其输出函数的约定以及如何把插件所支持的格式名映射到插件DLL的句柄。安全插件的实现原理如图1所示, 它主要包括C安全组件、安全JavaScript对外接口、插件浏览器端和插件自身端四部分。为了便于脚本调用并消除潜在的编码问题, 首先, 将安全C接口转换为安全JavaScript对外接口;其次, 根据Plugin API文档规范[4]对JavaScript安全接口进行映射;然后, 通过扩展Plugin API中的NPP Functions (在Plugin中实现的由浏览器调用的接口) 和NPN Functions (在浏览器中实现的由Plugin调用的接口) 实现安全插件自身端与插件浏览器端的数据交换和互操作;最后, 根据Scripting Plugin文档规范, 对插件对外接口进一步映射, 并采用Mozilla提供的最新的NPRuntime [5]脚本访问技术对插件对外接口进行封装, 以实现安全插件对浏览器端JavaScript 脚本的支持。目前, NPRuntime接口已经支持Firefox 1.0、Mozilla 1.7.5、Netscape 8.0和Safari 1.3以及它们的更高版本。

2.3身份鉴别方案的设计

用户i在进行身份鉴别之前, 需要进行初始化操作: 首先下载并安装USBKey驱动程序和安全Plugin插件, 然后插入USBKey, 填写用户注册信息并申请PKCS#12[6]格式的数字证书。用户经过初始化过程后, 在USBKey内部就会自动生成密钥对。

身份鉴别方案的身份鉴别流程如图2所示, 用户登录时采用挑战/应答方式执行身份鉴别, 其中PWi′表示数据库中用户i的密码; (A||B) 表示两个字符串A 和B 的连接;SHA1 (A) 表示对字符串A 进行SHA1 散列变换;Sign (A, B) 表示用私钥B对A签名;VerifySign (A, B, C) 表示用散列值A和证书公钥B验证签名C。具体步骤如下:

步骤1 用户在登录控制台首页时, 在客户端插入USBKey、并输入PIN码校验;

步骤2 PIN码校验通过后, 输入UIDi 和PWi, 并把UIDi传送给鉴别服务器;

步骤3 鉴别服务器在数据库中查找与UIDi相对应的公钥证书和PWi′, 并与CA服务器交互以验证该证书的有效性, 若证书有效则进入下一步骤;

步骤4 提取证书公钥PubKey和产生随机数Rs, 并把Rs发送给客户端;

步骤5 客户端调用安全插件接口, 使用SHA1单向散列运算得A=SHA1 (UIDi‖PWi‖Rs) , 然后使用USBKey中的私钥PriKey进行签名计算得B=Sign (A, PriKey) ;

步骤6 客户端发送B给鉴别服务器, 服务器验证B和Rs是否被重放, 当且仅当两者均未被重放时才进行下一步骤操作;

步骤7 先后计算得A′=SHA1 (UIDi‖PWi‖Rs) , C=VerifySign (A′, PubKey, B) , 若“C=true”, 则鉴别成功, 反之鉴别失败。

3基于Plugin 的WWW身份鉴别系统的实现

3.1身份鉴别系统的结构设计

身份鉴别系统以PKI为基础, 采用基于J2EE的三层B/S系统架构, 其系统逻辑结构如图3所示。应用服务器与鉴别服务器相对独立, 并分别部署Web应用程序和鉴别服务程序;用户在浏览器端安装浏览器安全插件和USBKey驱动后便可以执行鉴别客户端程序, 承担鉴别客户端功能;数据库服务器用于存储合法的用户列表以及对应的数字证书等数据信息。在身份鉴别过程中, 需要访问数字证书认证机构的CA认证服务器系统, 通过下载数字证书吊销列表 (CRL) 来验证证书的有效性。

3.2身份鉴别系统的程序实现

整个身份鉴别系统分为两部份:服务器端鉴别程序和浏览器端鉴别程序, 主要采用Java、JSP、Servlet和Plugin技术实现。身份鉴别程序设计原理如图4所示, 在保证安全C API和安全Java API功能一致 (输入条件相同时, 输出值相同) 的条件下, 分别对它们进行Plugin封装和Java封装。其中, 由C API封装而成的安全Plugin插件, 通过提供JavaScript对外接口实现与浏览器的互操作, 浏览器端应用程序通过JavaScript脚本调用Plugin并执行安全操作和鉴别逻辑, 从而实现与服务器的交互。

本系统所采用的数字证书格式遵循X.509[7]规范, SHA1单向散列算法和RSA公钥签名算法均遵循PKCS#11[8]规范。

3.2.1 鉴别服务器端程序的实现

服务器端程序主要由Servlet来实现, 主要功能包括响应客户端请求、产生随机数、查找验证证书的有效性、单向散列运算和验证签名等功能。主要程序示例如下:

3.2.2 浏览器端程序的实现

由于该身份鉴别系统是基于B/S模式应用的, 因而如何通过浏览器实现浏览器端的安全操作是关键, 也是难点。为了实现浏览器端的安全操作, 本文采取的方法是:鉴别客户端程序主要由JSP来实现, 并借助于浏览器安全插件, 使用JavaScript脚本执行安全操作和鉴别逻辑。主要实现以下功能:验证USBKey的PIN码、获取服务器随机数、获取服务器随机数、单向散列运算、用USBKey对摘要值签名等功能。主要程序示例如下:

4安全性和有效性分析

4.1身份鉴别方案的安全性分析

本身份鉴别方案以SHA1单向散列函数和RSA公钥签名体制为基础, 因此它的安全性建立在SHA1与RSA的安全性之上, 这里假设SHA1和RSA都是安全的。

(1) 观察图2可以发现:本方案是一种基于硬件的身份鉴别方案, 其安全的地方在于:身份鉴别过程中的数字签名 (Sign) 是基于USBKey的, 只有拥有USBKey的用户并同时知道其PIN码才可以进行签名操作。如果用户i不小心遗失了USBKey, 由于USBKey具有几次PIN码验证失败后自动锁定功能, 攻击者几乎不可能利用有限的几次试验机会破解PIN码。即便是破解了PIN码, 由于不能与用户名和密码匹配, 同样无法通过身份鉴别。因此, 可以抵抗各种假冒和猜测攻击。

(2) 在鉴别过程中, 服务器以随机数为挑战码, 这样保证了挑战码的唯一性和不可重复性, 从而使任何截取了鉴别信息的攻击者都不能通过重放来再次登录。因此, 该方案可以抵抗截取/重放攻击和暴力攻击。

(3) 在本方案中, 进行的所有签名都不是针对原消息的签名, 而是对由客户端和服务器端双方合成消息的散列函数值的签名, 因此, 本方案可以抵抗这种针对RSA 的选择密文攻击[9]。

4.2身份鉴别系统的有效性分析

(1) USBKey驱动和安全插件安装和使用简单, 它们一旦被安装成功后, 插入USBKey就能直接使用, 方便用户操作。

(2) 在进行动态口令鉴别的同时必须通过静态口令的鉴别, 在未查到用户公钥证书或证书被吊销的情况下, 不需要执行其后的随机数产生、验证签名等大规模运算, 降低了服务器端的系统开销。

5结束语

当前, 我国大多数电子政务、电子商务系统仍采用基于用户名和口令的身份鉴别机制, 这种机制已经严重地制约了网络应用的发展。针对这一问题, 本文通过Plugin技术把基于数字证书应用的C程序嵌入到了Firefox浏览器中, 从而有效地扩展了Firefox浏览器的功能。在此基础上, 提出了基于Plugin的WWW身份鉴别方案, 该方案通过在浏览器端使用安全Plugin插件, 实现了鉴别服务器对用户身份的身份鉴别, 既克服了用户名/口令机制不能抵抗暴力攻击、猜测和重放攻击的缺点, 又防止了私钥的落地、泄露和复制, 有很高的安全性。而且, 基于此方案所建立的WWW身份鉴别系统, 具有很好的互操作性、扩展性和跨平台性, 可广泛适用于各类B/S网络应用。

目前该身份鉴别系统已经成功应用于北京平谷和四川德阳等国产基础软件平台项目示范应用点的办公自动化系统中。

摘要:在B/S体系结构中采用插件 (Plugin) 技术可以有效地增强浏览器功能。从基于Web的安全认证出发, 研究了浏览器中Plugin程序的设计方法, 提出了在浏览器中采用Plugin技术实现基于USBKey的身份鉴别方案, 并结合PKI体系, 实现了具有较高安全性的身份鉴别系统。

关键词:插件,USBKey,身份鉴别,PKI

参考文献

[1]Rolf Oppliger.WWW安全技术[M].杨义光, 冯运波, 李忠献, 译.北京:人民邮电出版社, 2001.

[2]刘毅, 陈慧蓉, 荣钢.Plug-in结构应用程序设计[J].计算机应用, 2002 (4) .

[3]Jens Dietrich, John Hosking, Jonathan Giles.A Formal Contract Lan-guage for Plugin-based Software Engineering.12th IEEE InternationalConference on Engineering Complex Computer Systems, 2007.

[4]Netscape Plugin API (NPAPI) documentation.http://web.archive.org/web/20040203041440/http://devedge.netscape.com/library/manuals/2002/plugin/1.0/.

[5]NewscriptabilityAPI.[2004-9-15]http://www.mozilla.org/projects/plugins/npruntime.html.

[6]PKCS#12 v1.0:Personal Information Exchang Syntax.RSA Laborato-ries.1995.

[7]ITU-TRecommendation X.509.Information Technology-Open SystemsInterconnection-The Directory:Authentication Framework, 1997.

[8]PKCS#11 V1.0:PKCS#11 Cryptographic Token Interface Standard.RSA Laboratories, 1995.

身份鉴别 篇4

在传统的房屋交易的过程中, 看房是最重要的组成部分之一。它包括预约、看楼、对比、咨询、再预约、再看楼的循环过程。用传统的买房人亲历亲为方式为顾客服务, 以人均买房或租房看五套房为例, 若采用传统预约看楼方式, 则需要至少五天时间, 不但成本高而且费时费力。房屋在线交易系统的建立将从根本上改变以往传统买卖房屋的模式, 通过虚拟现实、照片、视频, 借助互联网手段将房屋的重要信息对外公开, 为客户选择提供一种简洁、快速、直观的买房前预选途径, 使顾客足不出户就可完成买房前的看房阶段。为顾客看房节省大量的时间和精力, 提高单次看房的成交率, 把销售人员和顾客从繁重的看楼过程中解脱出来。

系统采用ASP技术, 后台数据库采用SQL Server。由于房屋的特殊性及大规模的系统、分布式应用、广泛的网络连接需要系统具有更高的可靠性和更强的安全控制, 其中使用加密算法是必不可少的安全措施。如果不对密码做任何处理, 攻击者可以很轻易的从数据库中得到用户信息, 所以本系统在用户登录到服务器数据库时, 采用MD5算法对用户名和密码进行加密后再将其保存在数据库中, 这样可以更好的保护用户登录的信息。另外本文还针对在房屋在线交易系统中的应用, 结合实际编程, 分析了MD5算法的不足之处, 并提出了改进措施。

1 系统的体系结构

房屋在线交易系统可以为各类用户提供方便的在线购房环境, 是把买家、卖家结合起来的交互式远程系统, 用户可以在系统中实现注册、浏览房屋信息、搜索查询房屋信息、预约看房、处理预约等功能;管理员可以通过用户管理、预约管理、房屋信息管理、留言管理等管理功能来对系统进行维护更新。

本系统是一个B/S结构的系统, 它是由多个系统模块组成的, 其中包含后台管理模块, 用户管理模块, 信息管理模块, 导航管理模块。后台管理模块包括后台登录和注销, 验证码, MD5加密, 并包括查询, 查看房源, 修改, 删除房源, 添加新的房源, 删除订单, 修改订单状态, 查看, 审核, 删除评论。用户管理模块包括查看、修改、删除前台用户, 后台用户管理, 后台用户权限控制, 修改当前登录用户密码。信息管理模块包括首页新闻管理, 首页公告设置, 查看、删除意见反馈, 留言板块管理。导航管理模块作用就是为了能让用户在很短的时间内就能找到所需要的东西, 这必然要求功能分类准确, 功能文字描述贴切, 导航按键中应该包含所有客户的大部分需求, 但又需将首页的信息控制在一定的范围内;按房屋分类、最热门房源、畅销户型、小区关注等方面设置各级导航, 搜寻和检索, 主要使用了以下两类导航:

(1) 全局导航。包括系统的主要栏目和一级目录内容所对应的页面, 这些页面的链接出现在系统的每页上。这样, 用户浏览系统的任何时刻和任何地点, 都有可以由全局导航链接直接抵达相应的页面上。

(2) 局部导航。一般包括系统的次要栏目和二级以上目录内容所对应的页面。这些页面仅出现在一些相在联的页面上。用户只有在这些相关的页面上通过局部导航链进入这些页面。

2 数据库登录及加密设计

2.1 数据库登录

如图1所示, 用户打开在线售房系统的Web页面, 输入ID和口令试图登录时, 服务器端脚本提供给用户一个包含有从数十亿可能值中产生的随机数的表格, 而客户端的脚本将这个随机数值添加到口令后并加以MD5单向运算, 然后以MD5算法的输出作为口令, 这个口令为MD5口令, 客户端脚本然后将用户ID和MD5口令传输至服务器。因为这个值是MD5算法的输出, 反向推算出用户原来输入的口令是几乎不可能的。

2.2 MD5算法描述

MD5加密算法对文件中的内容进行摘要运算, 一次循环包含了四轮64步及一次累加运算, 执行分为以下几个步骤:

第一步, 补位:MD5算法先对输入的数据进行补位, 使得数据的长度 (以byte为单位) 对64求余的结果是56。即数据扩展至LEN=K*64+56个字节, K为整数。

补位方法:补一个1, 然后补0至满足上述要求。相当于补一个0x80的字节, 再补值为0的字节。这一步里总共补充的字节数为0~63个。

第二步, 附加数据长度:用一个64位的整数表示数据的原始长度 (以bit为单位) , 将这个数字的8个字节按低位的在前, 高位在后的顺序附加在补位后的数据后面。这时, 数据被填补后的总长度为:LEN=K*64+56+8= (K+1) *64 Bytes。

第三步, 初始化MD5参数:有四个32位整数变量 (A, B, C, D) 用来计算信息摘要, 每一个变量被初始化成以下以十六进制数表示的数值, 低位的字节在前面。

word A:01 23 45 67

word B:89 ab cd ef

word C:fe dc ba 98

word D:76 54 32 10

低位的字节在前面指的是Little Endian平台上内存中字节的排列方式, 而在程序中书写时, 要写成:

A=0x67452301

B=0xefcdab89

C=0x98badcfe

D=0x10325476

第四步, 定义四个MD5基本的按位操作函数:

X, Y, Z为32位整数。

F (X, Y, Z) = (X and Y) or (not (X) and Z)

G (X, Y, Z) = (X and Z) or (Y and not (Z) )

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

I (X, Y, Z) =Y xor (X or not (Z) )

再定义四个分别用于四轮变换函数。设Mj表示消息的第j个子分组 (从0到15) , <

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

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

处理数据, N是总的字节数, 以64个字节为一组, 每组作一次循环, 每次循环进行四轮操作。要变换的64个字节用16个32位的整数数组M[0...15]表示。而数组T[1...64]表示一组常数, T为4294967296*abs (sin (i) ) 的32位整数部分, i的单位是弧度, i的取值从1到64。具体过程如下:

3 MD5算法的应用及分析

由于服务器端的口令以加密方式存放, 不仅可以防止口令被具有系统管理权限的用户知道, 而且服务器在验证用户身份时不需要进行加解密运算, 没有给服务器增添计算负担。单纯的MD5加密方式, 有其非常明显的缺陷——用户口令经过MD5运算后, 此MD5口令将始终保持一个值。这很容易受到重放和字典两种方式的攻击。重放攻击, 监听的黑客只需简单地截获这个MD5口令就可用它来登录服务器;字典攻击, 黑客截获这个MD5口令后将它与口令字典中的条目 (这些条目也进行过一次MD5运算) 逐个进行比对, 那些长度过短的口令与用词太常见的口令将很容易被攻破。

针对上面这种方法的缺陷, 本文提出了一种改进方案, 它主要采取给口令附加随机数方式来防止重放攻击与字典攻击。其基本步骤如下: (1) 当用户试图登录到一个Web服务器, 服务器脚本将提供给用户一个随机数; (2) 用户在登录表单中输入它们的用户名和口令, 客户端的脚本首先将口令进行一次MD5运算, 然后将运算结果附上服务器传来的随机数再进行一次MD5运算, 把最后的结果连同用户名一同传输至服务器; (3) 服务器收到用户名与口令后, 根据用户名在数据库或文件中找到用户存放在服务器的口令 (此口令已进行过一次MD5加密) , 将此口令与服务器脚本产生的随机数再进行一次MD5加密, 最后将加密结果与客户端传来的口令进行比较, 如相等, 则设置一个服务器端会话变量以确定用户认证通过。

四轮MD5算法在20世纪90年代, 密码学界基本都认为四轮已经够用了, 但是随着计算机技术的发展, 现在的计算速度可以支持改进的更多轮数的Hash函数。由于加法的多次使用会达到乘法的效果, 所以建议在各轮中增加类似于原MD5算法中第四轮完成后的累加, 如果在每轮后都有这么一个累加运算不会造成多大的时间复杂度, 给分析以加速差分的扩展, 使修改少数几位就能产生一个碰撞的概率变得更小。

4 结论

通过对房屋在线交易系统的开发, 根据系统的需求对在线系统进行了加密, 分析了MD5算法的加密过程, 对其缺点进行了进一步改进, 增加了随机数验证。通过碰撞分析, 对交易系统的加密, 提出了新的设计思路。

摘要:在以Web形式提供房屋在线交易服务的系统中, 用户从浏览器登录服务器数据库时, 信息的安全性至关重要。为保证在线交易的正常进行, 根据在线交易系统的设计, 本文介绍了MD5算法的在身份鉴别中的应用, 分析MD5算法的不足并提出了解决方法。

关键词:房屋在线交易系统,MD5,加密

参考文献

[1]崔国华, 周荣华, 粟栗.关于MD5强度分析的研究[J].计算机工程与应用.2003.

上一篇:四个三下一篇:幼儿教学中的语言教育