基于USB_Key的PKI身份认证技术的分析与改进

时间:2019-05-15 02:24:47下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《基于USB_Key的PKI身份认证技术的分析与改进》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《基于USB_Key的PKI身份认证技术的分析与改进》。

第一篇:基于USB_Key的PKI身份认证技术的分析与改进

基于USB Key的PKI身份认证技术的分析与改进

摘要:在当今数字世界中,身份认证技术是各种安全技术的基础。USB Key技术是现在比较流行的基于PKI的强身份认证技术,特别是在网上银行等金融领域。研究了USB Key的典型使用流程,分析了这些流程中的安全威胁,最后着重提出了针对这些风险的安全解决方案,这些方案都是在具体项目得以实施应用,对目前的USB Key使用和开发具有很好的实用和借鉴意义。

关键词:USB智能密码钥匙;公钥密码基础设施;身份认证;数字签名;网上银行

中图分类号:TP393.08 文献标识码:A

Analysis and improvement of PKI identity authentication technology based on USB Key Abstract: Now in digital world, all of security technologies are based on digital identity authentication technology.And the USB Key technology is one of the most popular technologies, which is a strong authentication technology and based on PKI, especially in Internet banking filed.The typical usage flows are researched, the security threats are analyzed.At the last, the solutions are proposed corresponding to these threats, which is applied in practical projects and have great practical and economic value.Key words: USB Key;PKI;Identity authentication;Digital signature;Internet banking 1引言

随着互联网和电子商务的发展,USB Key作为网络用户身份识别和数据保护的“电子钥匙”,正在被越来越多的用户所认识和使用。

USB Key[1,2,3]这个概念最早是由加密锁厂家提出来的,加密锁是用来防止软件盗版的硬件产品,用于识别用户身份。与此同时,随着PKI[45,6]应用的兴起,数字证书[45,6]作为确认用户身份和保护用户数据有效手段越来越被人们所接受。然而数字证书实质上表现为带有用户信息和密钥的一个数据文件,如何保护数字证书本身又成为PKI体系中最薄弱的环节,专门用于存储秘密信息的USB Key就很自然的成为数字证书的最佳载体。利用USB Key来保存数字证书和用户私钥。

每一个USB Key都带有PIN码保护,这样USB Key的硬件和PIN码构成了可以使用证书的两个必要因子,也就是所谓的双因素认证[7]。

随着智能卡[8]技术的发展,智能卡运算能力不断提高,带有智能卡芯片的USB Key可以通过内置的智能卡芯片在Key内部硬件实现DES/3DES、RSA加解密运算,并支持Key内生成RSA密钥对,杜绝了密钥在客户端内存中出现的可能性,大大提高了安全性。

这样,基于智能卡技术和PKI技术的发展形成了目前广泛使用的USB Key身份认证产品。USB Key 基本功能包括:高质量随机数生成,公/私密钥对产生,数字证书下载存储,哈希运算,数字签名/验证,对称加/解密,非对称加/解密等功能。

USB Key是目前所有身份认证技术中认证强度最高的技术,但是使用过程中的漏洞会大大削弱这种优势,其安全形势也不用乐观。USB Key的使用流程

网银[9](Internet Banking,网上银行)等金融领域是目前USB Key应用最广泛最成熟的领域,下面主要以网银案例来介绍USB Key的使用流程,以时序图形式说明。2.1 首次登录流程

用户1.0 插入USB KeyUSB Key客户端网银服务器1.1 虚拟光盘自动运行1.2 客户端启动并进入登录界面1.3 与服务器建立单向SSL安全通道1.4 与客户端建立单向SSL安全通道1.5 提示用户输入相关信息进行用户绑定1.6 用户输入身份证号和授权码1.7 提取相关序号1.8 设备序号和数字证书序号1.9 发送用户信息到服务器1.10 验证用户信息如果成功,则绑定用户身份证号、USB Key序号及数字证书序号1.11 返回绑定结果1.12 提示用户登录成功或失败

图1 首次登录流程图

2.2 普通登录流程

用户2.0 插入USB KeyUSB Key客户端网银服务器2.1 虚拟光盘自动运行2.2 客户端启动并进入登录界面2.3 与服务器建立单向SSL安全通道2.4 与客户端建立单向SSL安全通道2.5 提示用户输入口令2.6 用户输入口令2.7 验证用户口令指令2.8 返回验证结果2.10 提取相关序号2.11 设备序号和数字证书序号2.9 验证失败则提示用户,否则继续2.12 发送用户信息到服务器2.13 验证用户信息2.14 返回验证结果2.15 提示用户登录成功或失败

图2 普通登录流程图 2.3 客户端认证和转账流程

用户USB Key3.0 用户登录成功后,转账客户端网银服务器3.1 与服务器建立双向SSL安全通道3.2 SSL签名请求3.3 SSL签名3.4 与客户端建立双向SSL安全通道3.5 建立失败则提示用户,否则继续3.6 提示用户输入转账信息3.7 输入转入账号和金额3.8 提交转账请求3.10 返回请求结果3.11 提示用户输入USB Key口令3.12 输入用户口令3.13 签名请求3.14 签名值3.15 提交交易签名3.9 验证表单3.16 验证签名3.17 返回验证结果3.18 返回交易结果

图3 客户端认证和转账流程图 USB Key安全性分析及改进方案

3.1 安全风险[10][11]

目前USB Key安全风险有:

USB Key 口令(密码)明文传输,可能被USB监听工具截获;

有的网银系统USB Key只做身份认证,不进行交易签名;或者USB Key签名请求没有校验和客户确认机制,客户在使用网银进行资金操作时,其用户私钥存在被他人远程非法调用并进行交易的可能;

USB Key主控密钥管理不善,存在泄露风险,不法分子可远程调用USB Key进行非法交易签名,进而盗取用户资金。3.2 安全需求:

加强用户交易授权认证。在使用USB Key进行交易授权认证时,应增加客户交易确认手段,如增加向客户发送含有待确认交易信息的短信等第二渠道认证方式,或使用带有确认按键或显示屏的USB Key。

严格USB Key密钥安全管理。要采用加密手段保存和传输USB Key的口令(密码),严格USB Key主控密钥、传输密钥等安全管理,防止不法分子获取USB Key访问控制权,非法调用或修改用户私钥。

加强网上银行客户端的安全保护。在保护键盘输入、防通信明文窃取、防黑客程序跟踪、防内存数据截获、防截取屏幕信息、防“钓鱼”欺骗、防交易数据篡改等多方面对网上银行系统及客户端采取技术加固措施。

3.3 安全改进措施 3.3.1 用户口令安全

用户口令的输入主要有两种:PC端输入和USB Key端输入。

PC端输入包括使用PC键盘和虚拟软键盘,PC键盘输入相对比较容易拦截监听到,而软键盘布局随机排列且不易被拦截到。PC端输入方式口令验证过程的安全性主要靠动态密钥加密用户口令数据。

另外,USB Key配备数字全键盘或可以输入数字的按键,用户口令(包括修改)的输入全部在设备上完成,用户口令不会出现在USB通信中,所以从根本上防止口令被拦截或破解。同时,由于用户口令在设备上输入,外界无法直接向设备发送校验口令指令,有效防止通过远程恶意发送校验口令指令导致设备锁死。

3.3.2 密钥对安全

用户密钥对是在申请证书时在设备内部随机产生的,而不是事先存在或导入的。

用户私钥存放于芯片特殊保护区域,外面无法对其直接操作,并且通过各种手段都无法读出或替换,防止用户私钥被导出、读出或替换,保证用户私钥数据的安全。

所有用户私钥的操作都由用户口令来控制,需用户口令验证通过后才能进行数字签名操作,在操作完成后重置验证口令标志,防止私钥操作被远程劫持。同时,加密私钥操作指令的会话密钥都是一次一密,有效防止签名指令重发攻击。3.3.3 数据通信安全

设备和主机的通信数据很容易被USB监控软件(如:Bushound)获取,保护通信数据的安全,防止敏感信息泄露就显得至关重要。

基本思路:数据通信安全就是要保护主机和设备通信数据,防止数据被截取或篡改。保护通信数据的密钥是动态会话密钥,而不是单纯的静态密钥,这样即使某一段数据被拦截并破解,只要及时协商一个新的会话密钥,即可防止后面的通信被破解。并且,比如签名等比较敏感的指令数据的会话密钥都会用一次协商一次(一次一密)。协商基本流程,如图4所示。

主机设备

1、在设备初始化/格式化时随机产生一个专门用于协商会话密钥RSA密钥对(K)2.“发起协商”会话密钥,并携带主机产生的8字节随机数(Rh)3.返回设备随机数(Rd)和RSA密钥对公钥(Kpub)4.组装会话密钥,并用公钥(Kpub)加密会话密钥5.“协商”会话密钥指令,携带加密的会话密钥6.用私钥(Kpri)解密出会话密钥7.返回协商结果8.加密通信数据

图 4 安全通信的基本流程

1、会话密钥对生成。专门用于协商会话密钥的RSA密钥对(以下简称会话密钥对)在设备初始化/格式化时生成,这个密钥对与用户的密钥对毫无关系,仅用于会话密钥的协商,即使这个密钥对被破解也不会影响到用户的密钥对。会话密钥对随机产生,每个设备都不相同,并且同一个设备每一次格式化的密钥对也不相同。这些措施的目的就是要保障即使一个设备通信被破解也不会影响到别的设备,并且可以防止通信重放攻击。

2、发起协商。协商会话密钥的过程由主机(应用)发起。主机发送“发起协商” 指令,该指令同时携带主机随机产生的8字节随机数(Rh).指令形式如:发起协商指令头+主机产生的8字节随机数(Rh)。

3、返回设备随机数和会话密钥对公钥。当设备收到发起协商指令后,设备首先保存主机产生的8字节随机数(Rh),同时设备也产生8字节的随机数(Rd)。最后设备返回随机数(Rd)和会话密钥对公钥。指令响应形式:设备产生的8字节随机数(Rd)+会话密钥对公钥(Kpub)。

4、组装会话密钥。当主机收到发起协商指令返回后,主机保存设备产生的8字节随机数(Rd)和会话密钥公钥(Kpub)。接着,主机开始组装会话密钥,组装完成后用会话密钥公钥(Kpub)加密会话密钥。组装过程,如图 5 所示:

设备 8字节随机数(Rd)主机 8 字节随机数(Rh)设备右半 4 字节随机数主机左半 4 字节随机数设备左半4字节随机数主机右半4字节随机数RSA 公钥加密会话密钥公钥(Kpub)会话密钥密文

图 5 组装会话密钥

5、协商。主机组装完会话密钥并加密后,通过“协商”指令发送到设备,指令形式如:协商指令头+会话密钥密文。

6、设备解密会话密钥。当设备收到“协商指令” 发送过来的会话密钥密文后,设备使用会话密钥对的私钥(Kpri)解密出会话密钥(SK)。由于在“发起协商” 指令中设备已经获得了主机产生的随机数,所以设备也会自己组装会话密钥(SK’),然后设备比较(SK)和(SK’)是否一致。最后返回协商结果给主机,如图6所示。会话密钥密文8字节设备随机数(Rd)8字节主机随机数(Rh)会话密钥对私钥(Kpri)RSA私钥解密会话密钥(SK)设备右半4字节随机数主机左半4字节随机数设备左半4字节随机数(Rd)主机右半4字节随机数(Rd)比较返回失败相同?更新当前会话密钥返回成功图 6 解密会话密钥

7、返回协商结果,返回协商结果成功或失败。

8、加密通信。会话密钥协商成功后,主机和设备就可以使用刚刚协商的会话密钥来加密通信。一些敏感指令(比如:签名,验证用户口令)需要会话密钥动态变化,一次一密。3.3.4 交易签名安全

交易签名是对敏感交易数据进行签名。在签名运算之前,交易数据(TLV格式)先送到USB Key设备上显示,用户确认后在设备内部进行签名,防止非法程序对所签数据进行篡改。同时,由于内部数据签名之前进行数据填充,有效防止利用非交易签名来伪造交易签名。

签名数据数据检查USB Key内部符合交易数据格式(预定义TLV格式)是交易数据确认(设备LCD显示)数据填充否对填充后数据做哈希运算从设备上验证用户口令对数据哈希值做签名运算签名值

图 7 数据签名流程

从图 7 可以看到,明文数据进入设备后,设备首先检查数据是否是预定义格式的签名数据,如果不是的话,将不在设备上显示,验证用户口令后直接签名,返回签名值;如果符合交易数据格式化的话,首先在设备上显示交易内容,待用户确认后,对交易数据进行特别的内部填充,接着对填充后的数据进行哈希运算获取哈希值,待在设备上验证用户口令后,对数据进行签名并返回签名值。整个流程数据从进入设备到签名,从未出过设备。

由于交易签名数据会在设备内部填充,而非交易签名数据(比如:SSL安全通道签名)不会被填充,外界也无法模拟这个填充过程,所以利用非交易签名来伪造交易签名就无法实现。

同时可以发现,图中的除了数据填充外,其他过程都是标准处理流程,所以下面主要介绍一下数据填充。

数据填充的目的是防止交易签名的伪造,交易数据的填充过程,在设备外面无法完成,因为填充的数据是保密的。数据的填充方式如:填充值+交易签名数据。

填充的关键是填充的数据值。填充数据是在设备初始化/格式化时写入设备的,根据设备序号来派生的,因而每个设备的填充值都不一样;并且派生密钥存在控制卡中,由银行管理员来设置别人无法获取,因而无法得到填充值。

填充值写入设备安全机制,如图8所示:

签名填充值写入及授权使用<>设置填充值派生主密钥银行管理员<><>控制卡<>写入签名填充值<>操作员设备

图 8 填充值写入设备机制

填充值是在设备格式化时写入的,此时设备和控制卡之间经过双向认证(遵循 GP 2.1.1 SCP01规范)已建立安全通道,所以填充值明文不会出现在主机内存中,格式化程序也无法获取。结论

我们生活的现实世界是一个真实的物理世界,每个人都拥有独一无二的物理身份。而今我们也生活在数字世界中,一切信息都是由一组特定的数据表示,当然也包括用户的身份信息。而计算机只能识别用户的数字身份,所以计算机给用户的授权也是针对用户数字身份进行的。保证访问者的数字身份与物理身份相对应,就是身份认证管理系统所需要解决的问题。为了保护信息安全,现在有身份认证、授权管理控制、日志审计、防火墙等安全技术。其中身份认证是其他技术的基础。如果用户身份被非法冒用,那么用户的权限也被非法使用,安全审计等就失去意义。本文通过研究当前最流行的基于PKI的USB Key身份认证技术,总结出目前USB Key使用或部署中的一些安全威胁;最后针对这些安全威胁,对每个具体的安全点都提出了实用的安全解决方案,这些方案都在项目或产品中得到应用和检验,具体很好的使用价值和经济价值。

参考文献:

[1]苏正荣.简析USB Key的工作原理及应用[J].中国金融电脑, 2009,(05)[2]杨帆.USB KEY体系研究与技术实现[D]武汉大学, 2004 [3]刘红明.基于SSX45安全芯片的USB Key设计与实现[D]上海交通大学, 2009.[4]Carlisle Adams, Steve Lloyd, Understanding PKI: Concepts, Standards, and Deployment Considerations[M], Addison-Wesley Professional, 2 edition ,November 16, 2002 [5]Jianying Zhou, Meng-Chow Kang,Feng Bao, Hwee-Hwa Pang, Applied Public Key Infrastructure[M], 2005 [6]关振胜,公钥基础设施PKI与认证机构CA[M], 2002 [7]吴永英,邓路,肖道举,陈晓苏.一种基于USB Key的双因子身份认证与密钥交换协议[J]计算机工程与科学, 2007,(05)[8]张鑫,李方伟,潘春兰.一种增强的基于智能卡的远程身份鉴别方案[J]计算机应用, 2009,(04)[9]程宇贤.网上银行身份认证系统的安全性研究[D]上海交通大学, 2010 [10]张轶辉,王昭顺,USB密码钥匙漏洞分析及防御策略的研究 [J],航空计算技术,2007 [11]张锟,颜学龙.USB KEY的体系结构分析及安全策略研究[J]安防科技, 2009,(02)

第二篇:身份认证技术

身份认证技术百科名片

动态口令牌身份认证技术是在计算机网络中确认操作者身份的过程而产生的解决方法。计算机网络世界中一切信息包括用户的身份信息都是用一组特定的数据来表示的,计算机只能识别用户的数字身份,所有对用户的授权也是针对用户数字身份的授权。如何保证以数字身份进行操作的操作者就是这个数字身份合法拥有者,也就是说保证操作者的物理身份与数字身份相对应,身份认证技术就是为了解决这个问题,作为防护网络资产的第一道关口,身份认证有着举足轻重的作用。

身份认证方法

在真实世界,对用户的身份认证基本方法可以分为这三种:(1)根据你所知道的信息来证明你的身份(what you know,你知道什么);(2)根据你所拥有的东西来证明你的身份(what you have,你有什么);(3)直接根据独一无二的身体特征来证明你的身份(who you are,你是谁),比如指纹、面貌等。在网络世界中手段与真实世界中一致,为了达到更高的身份认证安全性,某些场景会将上面3种挑选2中混合使用,即所谓的双因素认证。

以下罗列几种常见的认证形式:

静态密码

用户的密码是由用户自己设定的。在网络登录时输入正确的密码,计算机就认为操作者就是合法用户。实际上,由于许多用户为了防止忘记密码,经常采用诸如生日、电话号码等容易被猜测的字符串作为密码,或者把密码抄在纸上放在一个自认为安全的地方,这样很容易造成密码泄漏。如果密码是静态的数据,在验证过程中 需要在计算机内存中和传输过程可能会被木马程序或网络中截获。因此,静态密码机制如论是使用还是部署都非常简单,但从安全性上讲,用户名/密码方式一种是不安全的身份认证方式。它利用what you know方法。

智能卡(IC卡)

一种内置集成电路的芯片,芯片中存有与用户身份相关的数据,智能卡由专门的厂商通过专门的设备生产,是不可复制的硬件。智能卡由合法用户随身携带,登录时必须将智能卡插入专用的读卡器读取其中的信息,以验证用户的身份。智能卡认证是通过智能卡硬件不可复制来保证用户身份不会被仿冒。然而由于每次从智能卡中读取的数据是静态的,通过内存扫描或网络监听等技术还是很容易截取到用户的身份验证信息,因此还是存在安全隐患。它利用what you have方法。

短信密码

短信密码以手机短信形式请求包含6位随机数的动态密码,身份认证系统以短信形式发送随机的6位密码到客户的手机上。客户在登录或者交易认证时候输入此动态密码,从而确保系统身份认证的安全性。它利用what you have方法。具有以下优点:(1)安全性由于手机与客户绑定比较紧密,短信密码生成与使用场景是物理隔绝的,因此密码在通路上被截取几率降至最低。(2)普及性只要会接收短信即可使用,大大降低短信密码技术的使用门槛,学习成本几乎为0,所以在市场接受度上面不会存在阻力。

(3)易收费由于移动互联网用户天然养成了付费的习惯,这和PC时代互联网截然不同的理念,而且收费通道非常的发达,如果是网银、第三方支付、电子商务可将短信密码作为一项增值业务,每月通过SP收费不会有阻力,因此也可增加收益。(4)易维护 由于短信网关技术非常成熟,大大降低短信密码系统上马的复杂度和风险,短信密码业务后期

客服成本低,稳定的系统在提升安全同时也营造良好的口碑效应,这也是目前银行也大量采纳这项技术很重要的原因。

动态口令牌

目前最为安全的身份认证方式,也利用what you have方法,也是一种动态密码。动态口令牌是客户手持用来生成动态密码的终端,主流的是基于时间同步方式的,每60秒变换一次动态口令,口令一次有效,它产生6位动态数字进行一次一密的方式认证。由于它使用起来非常便捷,85%以上的世界500强企业运用它保护登录安全,广泛应用在VPN、网上银行、电子政务、电子商务等领域。

USB KEY

基于USB Key的身份认证方式是近几年发展起来的一种方便、安全的身份认证技术。它采用软硬件相结合、一次一密的强双因子认证模式,很好地解决了安全性与易用性之间的矛盾。USB Key是一种USB接口的硬件设备,它内置单片机或智能卡芯片,可以存储用户的密钥或数字证书,利用USBKey内置的密码算法实现对用户身份的认证。基于USB Key身份认证系统主要有两种应用模式:一是基于冲击/响应的认证模式,二是基于PKI体系的认证模式,目前运用在电子政务、网上银行。

OCL

OCL可以提供身份认证的数字签名

数字签名又称电子加密,可以区分真实数据与伪造、被篡改过的数据。这对于网络数据传输,特别是电子商务是极其重要的,一般要采用一种称为摘要的技术,摘要技术主要是采用 HASH 函数(HASH(哈希)函数提供了这样一种计算过程:输入一个长度不固定的字符串,返回一串定长度的字符串,又称 HASH 值)将一段长的报文通过函数变换,转换为一段定长的报文,即摘要。身份识别是指用户向系统出示自己身份证明的过程,主要使用约定口令、智能卡和用户指纹、视网膜和声音等生理特征。数字证明机制提供利用公开密钥进行验证的方法。

生物识别技术

运用who you are方法,通过可测量的身体或行为等生物特征进行身份认证的一种技术。生物特征是指唯一的可以测量或可自动识别和验证的生理特征或行为方式。生物特征分为身体特征和行为特征两类。身体特征包括:指纹、视网膜、虹膜、掌型、脸型、人体气味、手的血管和DNA等;行为特征包括:签名、语音、行走步态等。目前部分学者将视网膜识别、虹膜识别和指纹识别等归为高级生物识别技术;将掌型识别、脸型识别、语音识别和签名识别等归为次级生物识别技术;将血管纹理识别、人体气味识别、DNA识别等归为“深奥的”生物识别技术,指纹识别技术目前应用广泛的领域有门禁系统、微型支付等。Infogo身份认证

网络安全准入设备制造商,联合国内专业网络安全准入实验室,推出安全身份认证准入控制系统。

双因素身份认证

所谓双因素就是将两种认证方法结合起来,进一步加强认证的安全性,目前使用最为广泛的双因素有:动态口令牌 + 静态密码USB KEY + 静态密码二层静态密码 等等。

第三篇:SKEY认证方案的分析与改进

S/KEY认证方案的分析与改进

殷松瑜,徐炜民

(上海大学 计算机工程学院,上海 200072)

摘 要:本文提出的改进S/KEY身份认证协议,使用随机数与机密信息进行异或运算,屏蔽重要信息防止机密泄露,实现了用户和服务器间的相互认证,认证服务器的计算负载并没有增加。本方案克服了传统S/KEY一次性口令认证方案不能抵抗重放攻击,小数攻击,冒充攻击,中间人攻击安全漏洞,有效地防止了连接劫持、协议破坏攻击等攻击手段,显著地增强了应用系统的安全性。关键词:S/KEY身份认证; 一次性口令; 异或; 散列函数 中图法分类号: TP393108

文献标识码: A

Analysis and Improvement of S/KEY Authentication Scheme

YIN Song-yu,XV Wei-min

(School of Engineering and Computer Science Shanghai University , Shanghai 200072)

Abstract:This paper proposes a new improved S/KEY protocol.As is described in my authentication scheme that the random number XORed by the confidential information prevents confidential information from disclosure, and a mutual authentication between the user and the server is effectively carried out , but which do not increase the overhead of authentication server.The new S/KEY solution can not only overcome the vulnerabilities of security that the traditional S/KEY one-time password protocol will not help the server to resist the replay attacks, small integer attacks, personate attacks and man-in–middle attacks, but also effectively prevent the server from connection hijacking, protocal–broken and other attacks, so the improved S/KEY protocol significantly enhances the security level of application system.Key words: S/KEY Authentication;One-Time Password;XOR;Hash fuction

是验证通信双方是否符合其所声称的身份, 防止非法用户窃取合法用户的身份,以得到不应有的授权进入系统获得不正当利益或恶意破坏系统。

传统的认证技术是输入用户名/口令的基本认证方式,这种认证最大的问题是用户名和口令都以明文的方式在不安全的网络中传输,很容易受到恶意的窃听、篡改、重放或在线猜测和离线字典攻击。安全的基于证书的数字签名技术必须以完整的CA(Certification Authority,证书授权中心)体系为基础,但目前在国内还没有法律上所公认的可信的第0 引言

计算机通信技术和网络的发展使得网络成为信息交换的主要手段,越来越多的企业将电子商务作为重要的运营模式。当企业用户在其业务活动中把自己完全展示给外部的用户和商业合作者或当通过网络获取客户的敏感数据时, 网络的安全访问控制就成了保护企业信息安全, 防止黑客恶意攻击破坏的重要手段。身份认证是确保网络系统中信息安全的门户,网络应用系统的第一道防线。身份认证的目的就三方证书授权中心。对于在不安全的网络环境中的企业来说,采用实现不太复杂,又无需第三方认证的一次性口令(One Time Password,OTP)认证技术是一种很有吸引力的的解决方案,从理论上讲,只使用一次的密码(A Single Use Password)是永远不会被破解,是最安全的密码。

本文在分析研究S/KEY一次性口令认证技术的基础上,针对S/KEY系统的缺陷[1][2][3]提出了一种新的改进方案。已有的一些改进方案[4][5][6][7]使用离散对数公钥加密技术,另外一些方案 [8]使用对称加密方法,虽然改进方案宣称无需第三方公证,但是如何管理分配加密密钥,是否最后还是依靠公钥基础设施PKI,这些都是很难解决的问题。使用加密方法增加了系统开销和实现的复杂度,这也就失去了口令认证的优点:实现方案简单,运行成本低等。而方案

[9][10][11]

虽然对S/KEY认证技术有所改进,却并没有完全解决S/KEY系统的安全问题。本文所提出的方案使用随机数与机密信息进行异或运算,屏蔽重要信息内容防止机密向外泄露,相比原来S/KEY方案认证服务器增加的运算量很小。改进方案克服了传统S/KEY一次性口令不能抵抗小数攻击,冒充攻击等安全漏洞,实现了用户和服务器间的相互认证,有效地防止了连接劫持、协议破坏攻击等攻击手段,显著地增强了应用系统的安全性。一次性口令认证技术

窃取系统口令文件、通过偷听网络连接来获取和合法用户的口令以及重放是常见的攻击方式。一次性口令系统设计的目的就是为了对付这种类型的攻击, 使用户在每次注册时使用一个以前没有使用过的口令。1.1 基本原理

OTP的主要思路是:在登录过程中加入不确定因子,使每次登录过程中生成的密码都各不相同,以提高登录过程的安全性。系统接收到登录口令以后, 以同样的算法做一个验算即可验证用户的合法性。目前有许多方法可以实现一次性口令身份认证,常用的有如下3种:(1)Lamport方案[15]。即哈希链(Hash chains)算法。在初始化阶段选取一个口令pw和一个次数n,及一个单向散列函数Hash,通过计算y= Hash n(pw),把y和n的值存到服务器上。用户端计算y'= Hash n-1(pw)的值,服务器计算 z = Hash(y')的值同服务器上相应的值y进行比较。如果z=y,则验证成功,然后用y'的值取代服务器上y的值,n的值减1。通过哈希链算法,用户每次登录到服务器端的口令都不相同。这种方案的优点是易于实现,且无须特殊硬件的支持。而缺点是用户需要进行多次Hash运算,其安全性依赖于单向散列函数Hash,而且每隔一段时间还需要重新初始化系统,服务器的额外开销很大。

(2)时间同步方案(见图1)[15]。每个系统用户都持有相应的时间同步令牌(token)。令牌内置时钟,种子密钥和加密算法。时间同步令牌根据当前时间和种子密钥可以每分钟动态生成一个一次性口令。动态口令传送到认证服务器。服务器通过其种子密钥副本和当前时间计算出所期望的输出值,对用户进行验证。如果相匹配,则登录通过。虽然该方法可以保证很高的安全性,然而技术上很难保证用户的时间同步令牌在时间上和认证服务器严格同步,因为数据在网络上传输和处理都存在一定的时间延迟,所以该方案实现时是在允许的时间误差范围内(例如多少秒)都可以通过认证,但是当时间误差超过允许值时,对正常用户的登录往往造成身份认证失败,这是时间同步方案很大的缺点,另外该方案要求有时间同步令牌这类特殊硬件的支持。

(3)质询/应答方案(Challenge/Response)(见图2)

[15]

。每个用户都持有相应的质询/应答令牌。令牌内置种子密钥和加密算法。用户需要访问系统时,服务器随机生成一个质询(Challenge),用户将该质询手工输入到质询/应答令牌中,质询/应答令牌利用内置的种子密钥和加密算法对其计算出相应的应答(Response)。用户将该应答手工输入到主机再上传给服务器。服务器根据该用户存储的种子密钥和加密算法计算出应答并和用户上传的应答进行比较,该方法可以保证很高的安全性。但该方案也有缺陷:需要特殊硬件(质询/应答令牌)的支持,增加了该方案的实现成本;用户需多次手工输入数据,易造成较多的输入失误,使用起来十分不便;用户的身份标识直接在网络上明文传输,攻击者可很容易地截获它,留下了安全隐患;没有实现用户和服务器间的相互认证,不能抵抗来自服务器端的冒充攻击;质询每次都由服务器随机生成,造成了服务器开销过大。

1.2 S/KEY一次性口令认证协议

目前在实际应用最广泛的一次性口令是S/Key认证协议,它也是质询/应答方式的一种。

S/Key一次性口令的原理是: OTP为每个用户分配一个账号,每个账号配有种子(Seed)、迭代值(Iteration)和秘密通行短语(Secret Pass Phrase,SPP)。在客户端和服务器端各安装一个OTP计算程序,用户通过客户机访问服务器时,首先向服务器传送自己的账号,服务器应答一个由与该账号对应的种子Seed和迭代值Seq组成的质询, 用户在客户端输入只有自己知道的秘密通行密语给予应答,客户机OTP计算程序使用该质询和秘密通行短语产生一个一次性口令,并以该一次性口令登录,作为对质询的应答。服务器端OTP计算程序同时也产生一次性口令,然后与所收到的一次性口令进行对比,从而完成服务器对登录用户的鉴别。每次登录成功后,迭代值递减。

但是当迭代值递减为0或秘密通行短语泄密后,则用户必须重新初始化系统。这也是S/KEY一次性口令最大的不足。1.3 单向散列函数

S/KEY认证是一种摘要认证, 主要利用了散列函数又称为哈希函数(Hash), 就是把可变输入长度申转换成固定长度输出串散列值的一种函数。S/KEY认证的安全性正是依赖于散列函数的单向、计算不可逆的特性:

(1)给定消息M很容易计算Hash(M),但是根据Hash(M)反向计算M却很难,几乎是不可能。

(2)给定M消息要找到另一消息M’, 并满足Hash(M)= Hash(M’)也是几乎不可能。

目前,著名的散列函数有MD4、MD5和SHA。SHA(Security Hash Arithmetic)是由美国国家标准和技术(NIST)提出的。SHA-1 算法允许的最大输入报文的长度不超过26

4位,输出160 比特的报文摘要。SHA-1 与MD5相似,都是从MD4 导出的,但它对强行攻击具有更大的强度,且易于实现。传统S/KEY认证系统[1] S/KEY认证系统分注册阶段和认证阶段2个阶段实现。本文使用的标志如下:U为客户端;S为服务器端;ID为用户身份标志;PW为用户口令;→为信息发送标识;//为级联运算符;⊕为异或运算符;H(x)为安全哈希函数;Hi

(x)为对x进行i次哈希运算;N为口令序列的元素个数;Seq为当前序列数(第i次认证序列数,Seq=N-i)。2.1注册过程

注册工作由客户端U与服务器端S共同参与完成,协商并保存在认证过程中将要用到的数据,要求注册工作必须在安全环境下进行。

(1)U输入ID和PW,请求注册;(2)S为U选择种子值Seed发送给U;

(3)U设置一次性口令序列的最大元素个数N,并计算口令序列的第一个口令HN(PW//Seed)传送给S;(4)S建立记录,存储ID,Seed,N,HN

(PW//Seed)。2.2认证过程

第i次认证过程如下:

步骤1 U→S:ID,认证请求;

步骤2 S→U:Seq=N-i,Seed;

步骤3 U→S:ID, HN-i(PW//Seed);

步骤4 S用收到的HN-i(PW//Seed)再做一次哈希运算

H(HN-i

(PW//Seed)),与上次认证成功后保留的H

N-(i-1)

(PW//Seed)比较,若相等,S就向U发送登

录成功消息,并保留HN-(i-1)

(PW//Seed)作为下一

次认证的验证值。

2.3 传统S/KEY认证系统的安全缺陷分析

S/KEY系统虽能有效抵御重放攻击,有一定的安全性,但是系统本身仍有很多缺陷。

S/KEY系统无法抵御冒充攻击,即冒充服务器攻击。传 统S/KEY系统是一种简单的认证协议,认证过程中只对用户 进行认证而不对服务器进行认证,并且S/KEY方案并没有提 供对传输数据的加密,Seed和Seq都是以明文形式在传输信道中传输,因此,攻击者可以欺骗用户去登录攻击者指定的假冒服务器,当用户提交认证请求时,假冒服务器可以发送事先窃听到的Seed,Seq给用户从而欺骗用户得到一次有效的登录口令,再伪装成合法用户登录服务器。

小数攻击是特别针对于口令序列类型的OTP方案的攻 击方式,S/KEY认证系统不能防御此种攻击。攻击者可以得 到系统使用的安全散列函数H(x),通过监听和篡改步骤(2)中的序列数Seq为一个小很多的数值m给用户,这样用户就会计算出Hm

(PW//Seed)给攻击者,攻击者再将Hm

(PW//Seed)哈希Seq-m次,既H

seq-m

(Hm(PW//Seed))得到Hseq

(PW//Seed)也就

是正确的口令去登录服务器,因为m< Seq,所以攻击者在成功进行一次攻击后仍可保留Hm

(PW//Seed)以后使用,只要服务器在认证时在步骤(2)中发送一个比m大的序列数攻击者就可计算出正确的口令来登录服务器。

S/KEY系统无法抵御协议破坏攻击,如果在合法用户和 服务器进行正常认证过程中攻击者成功地进行了窃听,并在 步骤(3)中,攻击者窃取到了第i次有效的口令HN-i

(PW//Seed)后将认证过程破坏或服务器崩溃,那么在系统重启后会直接恢复到认证破坏前的步骤(3),这时攻击者就可以利用协议被破坏前窃取到的有效口令登录服务器。

中间人攻击是指攻击者通过各种技术手段将自己控制的计算机非法连接到2台正常通信计算机的通信信道之间,直接即时地读取和篡改信道中的信息,而通信两端的计算机却认为彼此还在互相通信,无法察觉信息已经被转发过。这种隐蔽性攻击是对网络安全极具威胁和破坏性的一种攻击方式。S/KEY系统对于中间人攻击更显得无能为力,只要攻击者通过一定的技术手段成功建立好中间人攻击环境,则U与S之间传递的一切信息都会经过攻击者控制的计算机进行转发,攻击者只需在步骤(3)中获得一次性口令后强迫合法用户下线,再直接转发口令给S冒充合法用户登录。

连接劫持攻击最早由Bellovin[3]

提出,这种攻击方法是非法用户绕过身份确认这一关,等到合法用户通过认证成功与服务器建立连接后,设法劫取此连接先行抢入连接冒充合法用户侵入系统。

S/KEY认证系统的改进

3.1 改进思路

1)在证明对方身份之前,不给出有关信息的鉴别,不泄露有关信息,2)尽量使用简单而且安全的算法以减少认证服务器的运算量,提高效率,3)尽可能使传送的消息简短,减少相互传递的认证信息的个数,减少网络通信量,4)用户和系统之间进行相互认证,5)提供安全通信防止连接劫持的功能。3.2注册过程

注册工作与传统S/KEY方案大体相同,由U与S共同参与完成,协商并保存在认证过程中将要用到的数据,由服务器端S建立记录,存储ID,Seed,N,HN(PW//Seed),所不同的是客户端也要记住ID,Seed,并保证ID,Seed作为U和S共享秘密的安全。种子Seed的设置原本是为了客户在不同的服务器上方便使用OTP[1],在不同的服务器使用不同的Seed,这样即使客户使用同一个秘密通行短语SPP在不同的服务器上也能生成不同的OTP。在本方案中客户U记住Seed就能实现与服务器协商会话密钥(一个客户端生成的随机数),并且Seed也不需要每一次认证都传送给客户端,以减少被窃听的可能。

从安全角度考虑客户端可以用USBkey存储机密信息,而服务器端同样要保证存放客户信息的数据库的安全,防止非法窃取机密信息,特别是内部攻击。3.3认证过程

服务器端保留有一张表,每条记录包含:用户名ID,种子Seed,当前序列号Seq=N-i,上次成功登录密码PN-(i-1)

i-1=H(PW//Seed);

第i次认证过程:

步骤1 U→S:认证请求,H(ID),H(ID//Seed)⊕Ri; 步骤2 S→U:Seq⊕Ri,Pi-1⊕Ri; 步骤3 U→S: Pi⊕Ri;

步骤4 S→U:认证成功消息,保留Pi。

步骤说明:

步骤1:客户端U在每一次认证前都要产生一个随机数Ri 作为下面认证过程的会话密钥,用来屏蔽相关信息以防止泄密。为了保护客户ID,Seed信息,不传送明文,而改为发送他们的哈希函数值。

步骤2 :服务器端S在数据库中查找到ID对应的Seed,计算H(ID//Seed)⊕Ri⊕H(ID//Seed)= Ri 就可以得到随机数Ri,至此通过ID,Seed作为共享秘密由U和S协商了会话密钥Ri。为了不泄露机密信息,S发送Seq和Pi-1的加密形式,以防止被恶意攻击者窃听。

步骤3:客户端U通过计算Seq⊕Ri⊕Ri=Seq,和Pi-1⊕Ri⊕Ri= Pi-1,得到了当前序列号Seq=N-i和上次成功登录密码

PN-i

i-1以后,再计算第i次登录密码Pi=H(PW//Seed), 比较 H(Pi)和Pi-1,若相等则继续向服务器端发送加密形式的Pi;否则就中断认证过程。

步骤4: 服务器端S接受到客户端发来的登录密码加密的Pi后,计算Pi⊕Ri⊕Ri=Pi得到第i次登录密码Pi,再次计算H(Pi)并把它和自己保存的上次成功登录密码Pi-1进行比较,若相等则S向U发送登录成功消息,并用Pi替换Pi-1作为保留的值用于下一次认证,否则就中断认证过程,拒绝用户登录。3.3 改进S/KEY方案的安全性讨论

方案注册阶段在安全环境下进行,用户用USBkey 保存机密信息ID,Seed,可有效防止共享秘密信息泄漏,从而保证了会话密钥Ri的绝密性。共享秘密是确保本方案安全的基本条件之一。

在步骤(l)中,发送客户ID,Seed信息的散列值也杜绝了相关秘密的外泄。U和S通过共享秘密ID,Seed相互协商交换随机数Ri作为会话密钥,而下面认证过程的相互传递信息的机密性,都是依靠随机数Ri对传递的消息进行异或运算来防止非法窃听和篡改。

本方案还有一个确保安全性的基本条件,那就是用异或运算加密的安全性, 虽然MD5,SHA函数已被证明是不安全的[13], 而新方案采用异或运算方法对散列值值进行加密,Hash函数长度(例如MD5为128位, SHA为160位)足以保证攻击者不能通过穷举法破解有关机密信息[14]

。这里建议使用长

度更长更安全的Hash函数如SHA-224, SHA-256, SHA-384 和

SHA-512。

在步骤(2)中,S通过共享秘密解密h(ID//Seed)⊕Ri得到会话密钥Ri,使用Ri异或运算散列值Seq和Pi-1来加密,即使攻击者有进行猜测、穷举等攻击的可能,但是异或运算加密的时间很短,并且每次认证随机数都不同,因此,可以保证此过程中异或运算加密信息的安全性。

由于客户端用户用以产生OTP口令的秘密通行密语也就是真正的用户口令既不在网上传输,也不存储在服务器端及客户端的任何地方,只有使用者本人知道,因此即便在不安全的网络通信信道中秘密通行密语也不会被窃取,字典攻击、口令字猜测等常用的攻击手段对破解真正的用户口令都无能为力。OTP口令只使用一次,即使在网络传输过程中被捕获下一次也被不能被重复使用。这样一来攻击者既不能非法窃取相关客户的机密信息来构造出正确的OTP口令,又不能重放已经截获的信息来通过服务器认证,所以对于客户来说整个认证过程是安全的。

在步骤(3)中实现了客户端对服务器端的认证,因为只 有服务器端才保存有上次成功登录密码Pi-1。在步骤(4)中实现了服务器端对客户端的认证,只有客户端才能正确生成第i次登录密码PN-i

i=H(PW//Seed),因为只有客户端才知道秘密通行短语PW和种子Seed。本方案实现了客户端和服务器端的双向认证,可以抵抗来自客户端的假冒攻击和来自服务器端的假冒攻击,却不会使合法用户的合理要求得不到满足,也就是说本方案可以防止拒绝访问攻击和中间人攻击。

由于在认证的过程中客户端的机密信息:用户名ID,种子Seed,当前序列号Seq=N-i都被加密,攻击者无法窃听,当然也就不能篡改Seq,冒充服务器向用户发送一个小很多的数值m进行小数攻击。另外攻击者窃取不到第i次有效的口令HN-i(PW//Seed),即使认证过程被破坏或服务器崩溃,系统重启后会直接恢复到认证破坏前的步骤(3),这时攻击者就也不能利用协议被破坏前窃取到的有效口令登录服务器,所以协议破坏攻击对本方案不可行。步骤(4)结束后服务器端完成了对客户端的身份认证。但是攻击可能设法劫取此连接以冒充合法用户访问服务器。这样攻击者就成功地冒充用户,达到了欺骗服务器的目的。所以在本方案中当合法用户登录完成后,服务器端会定期地向客户端发出质询(Challenge),而客户端必须作出相应的应答(Response)否则就会切断该用户的已有连接。服务端向客户端发送的质询和客户应答需要另外建立一条连接,不影响原连接的客户端与服务器的正常通信,这对用户而言是透明的[10]。

为了避免被动攻击(Passive Attack)[16],每个用户登录时,只能建立一条连接,这样就能防止其他用户监听到部分口令后发动多条连接猜测后续的口令。3.4 改进S/KEY方案的实现问题

在运行效率方面,本方案主要的计算是散列函数和异或运算,而利用公私钥加密算法实现OTP,或者在有限域上用离散对数实现OTP相比,无论是硬件资源需求还是在运算复杂度上都要简单。另外生成随机数Ri的工作移到客户端上执行,和质询/应答方案(Challenge/Response)相比减少了服务器的额外开销。

通过网络安全注册可以实现如下:首先客户下载服务器的公钥用来加密一个对称加密私钥K发送给服务器,由服务器用于加密发往客户端的机密信息如种子Seed等,而客户也可以通过服务器的公钥加密发往服务器的信息,当用户重新初始化系统也可以通过网络安全注册。

S/KEY方案当迭代值递减为0或秘密通行短语泄密后, 用户需要重新初始化系统,这是S/KEY方案最大的缺点,但是从安全维护的角度来说初始化系统,同时也是在检查系统是否发生异常,是否受到攻击,是否有机密信息泄露并做好防范措施,保证系统的安全。结束语

用户身份认证是网络中保证信息安全的重要前提,一次性口令协议是简单认证中一种具有较高安全性的一类协议。本文提出了一种新的S/KEY认证方案,克服了传统的S/KEY认证的安全缺陷,有效地保护了用户身份机密信息,实现了客户端和服务端双向认证。改进协议能够较好地抵御

小数攻击、假冒攻击、协议破坏攻击等恶意破坏,实现了分布式系统的安全认证和持续用户认证,提高了S/KEY系统的安全性,并且没有增加认证服务器的计算负载。

改进S/KEY方案相对于强制认证的PKI等而言,具有实现简单、使用方便的特点,所以在很多场合都有推广意义,例如硬件资源少,运算能力有限的移动设备的远程身份认证。本方案还可以集成到其他安全解决方案中,如智能卡,指纹识别等以提高应用系统的安全防护能力。

参考文献

[1] Haller N.A one-time password system[S],(RFC2289),1998

[2] Mudge.Vulnerabilities in the S /KEY one time password system[EB/OL].http://www.xiexiebang.com

第四篇:养老金身份认证

养老金身份认证怎样进行操作 建模和认证前的注意事项建模和认证前的注意事项建模和认证前的注意事项建模和认证前的注意事项

1、请不要戴眼镜进行建模或者认证;

2、请不要将头发遮挡住眉毛或者眼睛;

3、请不要在机器上安装虚拟摄像头等软件;

4、请在认证前,保证没有任何其他程序正在使用摄像头(比如正在使用QQ视频聊天,请先关闭视频);

5、无论是在家中,或者在其它任何地方进行认证时,请先确保光照均匀,没有偏光,侧光,背光的普通室内环境光照条件。身后不能正对明亮的窗户,或者脸旁两侧有很亮的灯光,避免图像过亮,影响您的认证效果;

6、如果您的机器配置较低(比如单核cpu 1.5G以下,内存在1GB以下),请您耐心等待,可能需要较长的等待时间,如果可能请更换一台配置更高的机器进行认证;

7、尽量采用清晰的摄像头进行认证,比如请尽量采用外接的摄像头而避免用笔记本自带的摄像头;

8、如果您购买了智慧眼的双目摄像头,请保证两个USB接口都插入了电脑的USB。建模和认证过程中的注意事项建模和认证过程中的注意事项建模和认证过程中的注意事项建模和认证过程中的注意事项

1、认证开始时,请保持双眼平视摄像头,并保持头部不动。听到“请眨眼”语音提示时,请先连续眨动多次,并稍稍小范围上下左右5°以内摆动一下头部,确保认证快速通过;

2、认证开始时,请保持正面中性表情,不要大笑或者做其它剧烈的表情,否则,可能会造成认证失败;

3、请保持距离摄像头在40-60cm的范围内,保持脸部在视频的橙色矩形框内,保持脸上各部分没有被帽子墨镜或者其它物体遮挡;

4、在进行认证时,请保持视频中只有需要认证的一个人,其它人员请远离摄像头视频范围;

5、请不要试图用照片代替真人进行认证,系统会自动判定并记录下来,这会造成您无法完成认证并会受到处理;

6、建模模块系统提示“认证成功,身份证号为多少”的对话框,才能算是建模成功;

7、认证模块系统提示“认证成功,身份证号为多少”的对话框,才能算是认证成功。

第五篇:统一身份认证(CAS)简单说明与设计方案

统一身份认证(CAS)简单说明与设计方案(转)

1.单点登录概述

所谓单点登录(SSO),只当企业用户同时访问多个不同(类型的)应用时,他们只需要提供自身的用户凭证信息(比如用户名/密码)一次,仅仅一次。SSO解决方案(比如,CAS)负责统一认证用户,如果需要,SSO也可以完成用户的授权处理。可以看出,当企业用户在不同的应用间切换时,他们不用再重复地输入自身的用户凭证了。在实施SSO后,所用的认证操作都将交给SSO认证中心。现有的SSO解决方案非常多,比如微软的MSN Passport便是典型的SSO解决方案,各Java EE容器都提供了自身的专有SSO能力。

2.CAS的总体架构

1.CAS简介

CAS(中央认证服务)是建立在非常开放的协议之上的企业级SSO解决方案。诞生于2001年,在2002年发布了CAS2.0协议,这一新的协议提供了Proxy(代理)能力,此时的CAS2.0支持多层SSO能力。到2005年,CAS成为了JA-SIG旗下的重要子项目。由于CAS2.0版本的可扩展能力不是非常完美,而且他的架构设计也不是很卓越,为了使得CAS能够适用于更多场合,JA-SIG打算开发出同时遵循CAS1.0和CAS2.0协议的CAS3.X版本。

现在的CAS3全面拥抱Spring技术,比如Spring DI容器和AOP技术、Spring Web MVC、Spring Web Flow、Spring Ldap Template等。

通常,CAS3由两部分内容构成:CAS3服务器和CAS客户端。由于CAS2.0协议借助于XML数据结构与客户进行交互,因此开发者可以使用各种语言编写的CAS3客户与服务器进行通信。CAS3服务器采用纯Java开发而成,它要求目标运行环境实现了Servlet2.4+规范、提供Java SE 1.4+支持。如果宿主CAS3服务器的目标Java EE容器仅仅实现了Servlet2.3-规范,则在对CAS3服务器进行少量的改造后,CAS3也能运行其中。

运行时,CAS3服务器仅仅是一个简单的Web应用,使用者只需要将cas.war直接丢到目标Java EE容器后,即完成了CAS3的部署。

2.CAS词汇概念

TGC(ticket-granting cookie)---------受权的票据证明

KDC(Key Distribution Center)----------密钥发放中心

Service ticket(ST)---------服务票据,由 KDC 的 TGS 发放。任何一台 Workstation 都需要拥有一张有效的 Service Ticket 才能访问域内部的应用(Applications)。如果能正确接收 Service Ticket,说明在 CASClient-CASServer 之间的信任关系已经被正确建立起来,通常为一张数字加密的证书

Ticket Granting tieckt(TGT)---------票据授权票据,由 KDC 的 AS 发放。即获取这样一张票据后,以后申请各种其他服务票据(ST)便不必再向 KDC 提交身份认证信息(准确术语是 Credentials)。

authentication service(AS)---------认证用服务,索取 Crendential,发放 TGT

ticket-granting service(TGS)---------票据授权服务,索取 TGT,发放 ST

3.CAS工作原理

CAS的单点登录的认证过程,所用应用服务器受到应用请求后,检查ST和TGT,如果没有或不对,转到CAS认证服务器登录页面,通过安全认证后得到ST和TGT,再重新定向到相关应用服务器,在回话生命周期之内如果再定向到别的应用,将出示ST和TGT进行认证,注意,取得TGT的过程是通过SSL安全协议的。

如果通俗形象地说就是:相当于用户要去游乐场,首先要在门口检查用户的身份(即 CHECK 用户的 ID 和 PASS), 如果用户通过验证,游乐场的门卫(AS)即提供给用户一张门卡(TGT)。

这张卡片的用处就是告诉游乐场的各个场所,用户是通过正门进来,而不是后门偷爬进来的,并且也是获取进入场所一把钥匙。

现在用户有张卡,但是这对用户来不重要,因为用户来游乐场不是为了拿这张卡的而是为了游览游乐项目,这时用户摩天楼,并想游玩。

这时摩天轮的服务员(client)拦下用户,向用户要求摩天轮的(ST)票据,用户说用户只有一个门卡(TGT), 那用户只要把 TGT 放在一旁的票据授权机(TGS)上刷一下。

票据授权机(TGS)就根据用户现在所在的摩天轮,给用户一张摩天轮的票据(ST), 这样用户有了摩天轮的票据,现在用户可以畅通无阻的进入摩天轮里游玩了。

当然如果用户玩完摩天轮后,想去游乐园的咖啡厅休息下,那用户一样只要带着那张门卡(TGT).到相应的咖啡厅的票据授权机(TGS)刷一下,得到咖啡厅的票据(ST)就可以进入咖啡厅

当用户离开游乐场后,想用这张 TGT 去刷打的回家的费用,对不起,用户的 TGT 已经过期了,在用户离开游乐场那刻开始,用户的 TGT 就已经销毁了。

3.CAS的实现原理

由于CAS是基于Cookie的服务,所以它使用了Spring CookieGenerator来生成相应Cookie,下面的代码段摘自与CAS服务器的WEB-INF/中的cas-server.xml配置文件。

class=“org.springframework.web.util.CookieGenerator”>

一旦用户登录到CAS服务器后,可以借助于URL为/cas/logout的地址退出,并且这种logout结果将导致浏览器中已存储的Cookie被销毁掉,即销毁CAS与当前用户间已建立的信任关系(Web SSO会话)。

1.AuthenticationHandler认证处理器

浏览项目的web.xml,可以发现如下内容:

contextConfigLocation

/WEB-INF/applicationContext.xml,/WEB-INF/deployerConfigContext-acegi.xml

org.jasig.cas.web.init.SafeContextLoaderListener

SafeContextLoaderListener实现了SafeContextListener,它借助于ContextLoader-Listener装载Spring DI容器。这样做的原因是因为Spring在通过

ContextLoaderLitener启动时可能出现异常,造成整个CAS不能正常启动,经过SafeContextLoaderListener,则在异常发生时,CAS服务器也可以启动。在deployerConfigContext.xml中,可以看到只定义了一个Bean:

class=“org.jasig.cas.authentication.AuthenticationManagerImpl”>

SimpleTestUsernamePasswordAuthenticationHandler的作用是如果用户名与密码输入一样,则通过系统认证。这个是开发过程中常用的一个handler,但是在开发完毕后应该除去。

AuthenticationManagerImpl负责认证用户,比如一个admin/admin用户是否合法就是它来验证的。AuthenticationManagerImpl对象会借助于他引用的credentialsToPr-incipalResolvers和authenticationHandlers集合完成用户的认证工作。Authentication-Handlers负责完成用户认证,而

credentialsToPrincipalResolvers负责构建认证结果。其中,并不是authenticationHandlers的全部集合都参与到用户认证中,一旦某个AuthenticationHandler成功完成用户的认证,则认证进程就到此为止,进而转到credenti-alsToPrincipalResolvers来构建认证结果。credentialsToPrincipalResolvers的过程也类似于此。

2.CAS的时序图

来自:

下载基于USB_Key的PKI身份认证技术的分析与改进word格式文档
下载基于USB_Key的PKI身份认证技术的分析与改进.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    基于802.1x认证技术的应用分析

    基于802.1x认证技术的应用分析 一、引言 802.1x协议起源于802.11协议,后者是IEEE的无线局域网协议,制订802.1x协议的初衷是为了解决无线局域网用户的接入认证问题。IEEE802LA......

    腾讯微博个人认证,腾讯微博身份认证

    腾讯微博认证主要是为了确保信息真实、准确,以及鼓励用户对自己言论的真实性负责。此服务正式对所有能够提供有效身份数据的腾讯网友开放。个人认证帐号为黄色V标志,非个人认......

    养老金身份领取资格认证须知

    养老金身份领取资格认证须知 一、认证方式 1、 网上认证:离退休人员从人脸模型建立之月起,六个月认证一次,认证地点可就近有计算机网络的网吧、社区、家庭。具体操作方法如下:......

    腾讯微博个人认证,腾讯微博身份认证

    腾讯微博个人认证,身份认证之后可以成为对外的媒体,有机会获得腾讯的推荐,通过认证的人会被认为是有一定影响力的名人,你说的话就代表了大众媒体说得话了,你可以得到很多的关注的......

    腾讯微博身份认证流程

    腾讯微博身份认证流程微博认证的好处就是提高知名度,让更多的朋友关注你,有的时候实名认证也是保护自己的一些真实信息被别人盗用的一种手段,但是如何实名认证看以下文章,腾讯微......

    基于U盘的身份认证

    基于优盘进行身份认证方案设计 现在市场上出现各种各样的基于硬件的加密设备,但应用于身份认证的还很少,大部分应用在软件产品的加密方面。 软件开发商在开发软件特别是行业软......

    企业技术改进与合理化建议管理办法

    企业技术改进与合理化建议管理办法(建议稿)第一章 总则技术改进与合理化建议(以下简称技术建议),和推行工厂现代化管理,是企业革新挖潜、降低成本、提高产品质量、提高劳动生......

    企业技术改进与合理化建议管理制度

    企业技术改进与合理化建议管理制度 □ 总则 第一条 技术改进与合理化建议(以下简称技术建议)和推行工厂现代化管理,是企业革新挖潜、降低成本、提高产品质量、提高劳动生......