为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

Lotus Domino Notes中强身份认证的应用

2017-12-30 10页 doc 28KB 10阅读

用户头像

is_180829

暂无简介

举报
Lotus Domino Notes中强身份认证的应用Lotus Domino Notes中强身份认证的应用 岳工自动化 2008年第27卷第4期 固络与信息技市0.I.Automation NetworkandInformationTechnology2008,Vo1.27,No.4 文章编号:1006—1576(2008)04—0042—02 LotusDominoNotes中强身份认证的应用 粱文铮,沈浩 (中国工程物理研究院计算机应用研究所,四川绵阳621900) 摘要:在一套以Notes开发的B/S结构OA系统中,实现USB—Key硬件和MD5 散列算法...
Lotus Domino Notes中强身份认证的应用
Lotus Domino Notes中强身份认证的应用 岳工自动化 2008年第27卷第4期 固络与信息技市0.I.Automation NetworkandInformationTechnology2008,Vo1.27,No.4 文章编号:1006—1576(2008)04—0042—02 LotusDominoNotes中强身份认证的应用 粱文铮,沈浩 (中国物理研究院计算机应用研究所,四川绵阳621900) 摘要:在一套以Notes开发的B/S结构OA系统中,实现USB—Key硬件和MD5 散列算法加密的强身份认证和集 成.其步骤包括:初始化,强身份认证等.该集成在解决用户身份认证过程中安 全问题的同时,能够将用户从繁 杂的用户名/密码中解脱出来. 关键词:MD5散列算法;随机数;代理;CGI变量 中图分类号:TP393.08文献标识码:A ApplicationofStrongIdentityAuthenticationinLotusDominoNotes LIANGWen—zheng,SHENHao (InstituteofComputerApplication,ChinaAcademyofEngineeringPhysics,Mianyang621 900,China) Abstract:TheB/SstructureOAsystembasedonNotesdevelopment,realizesUSB— Keyhardwareandstrongidentity authenticationandintegrationofMD5disperselistalgorithmencrypt.Itsstepsincludeinitiali zation,andstrongidentity authentication.Itsintegrationschemesolvesthesafetyproblemofuseridentityauthenticatio nandcomplexusername/ codeproblemsatthesametime. Keywords:HMAC—— MD5;Randomdata;Agent;CGIvariable 0引言 由于传统的用户名加密码的认证模式已经不能 满足网络环境下的安全需求.故通过分析已有的数 据加密算法,在基于Notes开发的B/S结构OA系 统中成功地进行了集成和验证,同时给出了Notes 登录库身份认证中传参问题的解决方法. 1MD5散列算法 MD5(MessageDigestAlgorithm5)散列算法, 作用是使用散列函数,把任意长度的字节串变换成 一 定长度的大整数即可将一个可变长度的信息变 换为固定长度输出,也称作"信息摘要".其特点: ?输入2个不同的明文不会得到相同的输出值; ?根据输出值不能得到原始明文,即过程不可逆. 由于固定长度的字符串可用来检查文件的完整 性,验证数字签名以及用户身份验证等,MD5被广 泛用于加密和解密技术上.在软件的加密保护中, 一 般只使用MD5算法作为加密的中间步骤. 2总体与实现 图1为一个计算机网络及安装在客户端上的具 有MD5散列算法加密功能的USB—Key的简单示意 图,该网络既可以是一个小型的局域网或Intranet, 又可以是现实中的Internet. 一羽lL些网缝的其它部 图1网络示意图 2.1初始化 首先由服务器端生成合法用户的20位密钥L3j, 并保存在Notes数据库中.然后将该密钥和用户的 唯一身份标识符(登录名)传入USB—Key中, USB—Key通过HMAC—MD5算法将传入的密钥转换 成2个16位的私钥对,最后把该私钥对和登录名一 起保存在USB—Key中. 创建Init单,在表单中添加如下域:SOPIN (管理员SOPIN码),USERNAME(用户登录名) 和USERKEY(密钥),添加按钮:初始化(Initialize). 服务器端的初始化:通过notes公式 @Command([FileSave])将USERNAME和 USERKEY存入notes数据库,当使用其他数据库 保存时,则需考虑notes和其他数据库的集成(如: sqlserver,Sybase,oracle等),然后编写相应的代 收稿日期:2008-01—13;修回日期:2008—02—29 作者简介:梁文铮(1983一),男,重庆人,2005年毕业于电子科技大学,现为中国工程 物理研究院在读硕士研究生,从事软件工程与数据 库研究. ?42? 兵工自动化 2008年第27卷第4期 网络与信息技市 NetworkandInformationTechnology 0.I.Automation 2008,Vo1.27,No.4 理将data进行存储;最后将USERNAME和 USERKEY通过IE传给USB—Key初始化页面. 客户端USB—Key的初始化:在按钮中通过编 写JavaScript调用相关API完成对key的初始化: 首先在key中生成指定名称的二级目录;然后根据 MD5HMAC方法把USERKEY转换为私钥对并分别 写入文件1和文件2;最后创建用户文件,把用户 登录名写入文件3,伪代码如下: fl="0l23456789ABCDEF": Soft—MD5HMAC(0,0,doc.USERKEY.Value,f1); CreateFile(0,1,16,4,7,2,1,2);Write(0,0,0,fl,16); CreateFile(0,3,3,2,0,0,7,2); Write(0,0,0,doc.USERNAME.value,3); 2.2强身份认证 当利用密钥进行身份验证时,客户端首先向服 务器发出登录请求,服务器则通过用户登录名从数 据库中取出相应用户的密钥.这意味着当前与客户 端连接的USB-Key中己存储了合法的用户信息和 私钥信息,且登录用户已经通过正确的PIN码成功 访问USB—Key. 当服务器收到客户端的登录请求后,便向客户 端发送一个随机字符串X,该随机字符串最终送入 客户端的USB-Key中进行计算.与此同时,服务 器则根据用户登录名取出对应的密钥并利用发送给 客户端的随机串X,在服务器上用加密引擎进行运 算,得到运算结果Rh. 客户端将此随机串X传入USB—Key中, USB-Key则利用此串与内置在其中的私钥文件对 通过硬件加密引擎进行运算,也得到一个运算结果 Rc,将此运算结果在网络中发送给服务器. 服务器比较两运算结果Rh(服务器)与Rc(客 户端)是否相同,便可确定一个网络用户的身份合 法性.由于私钥对存在于USB—Key中,而整个运 算过程也是在其中来完成的,密钥鉴别是通过加密 算法来实现的,随机字符串作为运算的一个输入因 子使其运算结果也随输入的变化而不同,如果黑客 简单截获到认证过程的数据仍无法在网络中冒充 USB—Key客户端,所以整个认证体系对现有的网 上身份认证做了十分有益的补充钔,如图2. --—一 12(Domino服务器) 吕{-'4 5'圈16 图2强身份认证过程示意图 Notes中认证过程实现如下: 建立表单logon,在表单中添加如下域:PIN (USB—Key的PIN码),RandomData(随机串); 然后建立按钮:提交(Submit). 首先初始化Key对象,输入PIN码访问当前 USB—Key;把访问路径切换到存放用户登录名的二 级目录,读取登录名信息和长度;然后打开私钥文 件,对当前私钥文件完成一次hash运算得到Rc(客 户端),伪代码如下: UserNameLen=GetFilelnfo(0x0,0x3,0x3,0); UserlD=Read(0,0,0,UserNameLen); OpenFile(0x0,0x1);Digest=HashToken (1,2,RandomData); 服务器端生成Rh并完成Rc和Rh的比较: HMAC— MD5(UserKey.getBytes0); MD5hm=newHMAC— hm.addData(Randata.getBytes());digest=hm.sign(); ServerDigest=hm.toString0; 由于初始化阶段的密钥和身份认证阶段的随机 串都是20位字符串,可以通过设计并调用统一代 理实现,伪代码如下: StringRndData=…';charUpper='z';charLower='a': Randomr=newRandom(); for(inti=0;i<20;i++){inttempval=(int)((int)Lower+ (r.nextFloat()((int)(Upper—Lower)))); RndData+=newCharacter((char)tempva1).toString0;】】 2.3遇到的问题和解决方法 根据该NotesOA系统的设计,登录时由登录表 单logon在WebQueryOpen事件中调用随机串生成 代理f@Command([ToolsRunMacro];"(GenerateR andomData)")),生成20位字符串RandomData,然 后在登录按钮的onclick事件中将RandomData传入 USB-Key中通过Hash运算生成Rc(客户端),再 把Rc和RandomData传给服务器端做比较.最后根 据比较结果判定当前登录用户身份的合法性. 由于使用Notes开发,设计登录机制时直接采 用LotusDominoNotes提供的登录库和公共通讯录 (name.nsf),或者基于该登录引擎进行定制和二次 开发.故在设计登录页面时受到以上条件的约束, 无法直接把Rc和RandomData在响应登录事件时传 给后台,也就无法完成用户身份的合法性校验. 解决方法是:在onclick事件触发的JavaScript 代码中正常返回语句returntrue之前,添加 {document.al1.RedirectTo.value="/OA/main.nsf/Valid ation?OpenForm&"+Digest+"&"+docRandomData.V alue;1,将Rc和RandomData传给中间表单 Validation.(下转第5o页) ?43? 兵工自动化 2008年第27卷第4期 网络与信息技市 NetworkandInformationTechnology 0.I.Automation 2008,Vo1.27,No.4 a— val,uintn—index,uint*locX,uint*locY) { uinti; //启动定位引擎 L0C—DISABLE0; L0C—ENABLE0; //使能LOC— REFERENcE—LOAD,准备写入参考坐标 LOC—. REFERENCE——LOAD(TRUE); ||写参考竖标 //等待完成后读出坐标值 while(!LOC—DONE()); *locX=LOCX: locY=LOCY; //关闭定位引擎 LOC— DISABLE(); } 4结束语 for(i=O;i<LOC——REF——NODE;i++) {该方法是一款优秀的片上系统解决方案,必将 REFc00RD=..de在无线传感网络为代表的应用领域中有所表现 .RERCOORD=refNodes『i1. v:……,…'………………………… 参考坐标写入完成 参考文献: LOC— REFERENCE—LOAD(FALSE);【1】于海斌,等.智能传感器网络系统【M】.北京:科学出 //使能LOC—PARAMETER—LOAD,准备写入测量参数版社.2006. LOC— PARAMETER— LOAD(TRUE);【2】崔莉,等.无线传感器网络研究进展【J】.计算机研究与 MEASPARM=aval;发展,2005,42(1):163—174. MEAsPARM="jndex;【3】ByrneJA . 1Idsforthe21stCentury. BusinessWeek【J】.for(i= 0;i<LOCREFNODE;i++)….'一……………'…….' ,1999,(8):78—167? MEASPARM=refNodes【i】.rssi;【4】10EmergingTechnologiesthatWillChangetheWorld[J]. 1TechnologyReview,2003,106(1):33—49. //测量参数写入完成【5】马永强,等.基于ZigBee技术的射频芯片CC2430【J】. LOC— PARAMETER—LOAD(FALSE);单片机与嵌入式系统应用,2006,3:45—47. ,,启动定位估计计算【6】CC2430PRELIMINARYDataSheet(Rev.1.03),2005. LOC—RUN();[71CC2431PRELIMINARYDataSheet(Rev.1.O),2007. (上接第43页)在中间表单Validation中通过CGIL5J 变量Query—String获取Rc和RandomData然后在 Validation表单的WebQueryOpen事件中完成用户 身份认证,并返回相应的验证值;最后在Validation 表单的onLoad事件中根据返回值判定当前用户是 否继续完成登录事件或者重定向回登录页面,这样 便完整地实现了用户身份认证全过程. 3基于PKI的强身份认证应用简述 目前主流的业界PKI是RSALab的 PKCS#11(也称Cryptoki).PKCS#11属于公开密钥 加密标准(PKCS),它通过定义通用的编程接口模 型(Cryptokitokens),来解决不同厂商和开发人员 的公开密钥加密应用之间的交互与兼容问题. 设计基于PKI安全体系和USB-Key硬件的强 身份认证方案时应考虑:首先,访问USB—Key的 应用程序必须遵循PKCS}}l1标准;其次,通过定制 USB-Key的驱动程序来实现Key的接入认证以及 对Key中数据加密存储的支持;最后,开发支持 Cryptokitokens的USB—Key应用程序接口,该接口 负责与USB驱动程序通讯. 这样,兼容PKCS#11的应用程序可以使用 ? 5O? USB—Key来存储私钥和数字证书,生成RSA/DSA 密钥对,进行数字签名与认证和加解密数据. 4结语 该集成方案解决了用户身份认证中的安全问 题.在没有建立CAf6】证书服务等高安全性PKI认 证体系时,较简单的username/password模式,基 于MD5散列算法加密的USB-Key强身份认证不失 为一种高可靠性的系统安全认证集成解决方案.访 问USB-Key需提供该Key的PIN码,即使在USB— Key丢失的情况下,也不会对信息系统构成安全隐 患.同时将用户从繁杂的用户名/密码中解脱出来. 参考文献: 【1】LiuLixin.TheInformationSecurityofOASystemBased onLotus/Domino【Z】.2005. 【2】彭文波.MD5算法原理及应用【J】_信息网络安全,2004, (5). 【3]冯登国.公开密钥基础设施一概念,标准和实施【M】.北 京:人民邮电出版社,2001. 【4】EPass1000NDDeveloper'SGuide—FeitianTechnologies[Z]. 【5]杨海涛.LotusDomino系统实现似cGI交互的便捷方法 【J】.计算机系统应用,200l,(3). 【6]张巍.认证中心CA的功能及实现技术【J】_计算机工程 与技术.2003.
/
本文档为【Lotus Domino Notes中强身份认证的应用】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索