发布时间:2016-3-5 18:17
分类名称:Private
本部分的文档主要介绍信息安全方面的基础知识和公司的系列产品,信息安全的理论知识包括身份认证与信息的关系、身份认证的分类、身份认证中的口令认证、挑战/应答模式认证、数字签名认证和身份认证的系统应用以及身份认证的加密算法详解。
产品部分是对公司的五大系列产品进行介绍说明,包括ePass USB Key系列、OTP动态令牌系列、ROCKEY软件加密锁系列、FTCOS智能卡系列、智能卡读写器系列。针对每个系列的产品对其产品原理、产品系列、产品说明以及技术特点等知识介绍。这些知识可以帮助相关员工了解公司产品的基础的同时,也可以更好的将其应用到工作中,服务于公司。
读者对象
本文档适用于公司内部非开发人员或是想了解这些知识的公司内部人员。
身份认证的概念
1 信息与身份认证的关系
信息作为一种资源,它的普遍性、共享性、增值性、可处理性和多效用性,使其对于人类具有特别重要的意义。信息安全的实质就是要保护信息系统或信息网络中的信息资源免受各种类型的威胁、干扰和破坏,即保证信息的安全性。根据国际标准化组织的定义,信息安全性的含义主要是指信息的完整性(integrity)、机密性(confidentiality)和可用性(availability),简称(CAI)。
信息的价值的体现就是通过信息的传递来完成的,广泛意义上的信息传递的传统意义就是指信息的传输与交换,在当今的社会信息的传递早于传感技术与计算机技术紧密的联系起来了,构成了成了一个信息传递的一个基本模式,如图:
然而这个传递的过程中又存在着各种对信息安全的破坏的威胁,首先意定的接受端能够检验和证实消息的合法性、真实性、完整性,其次消息的发送端对所发消息的不可抵赖性,而在信道中我们还有要保证信息不会被恶意的篡改、伪造等。网络信息化时代的最大特征就是身份的数字化和隐形化,如何准确识别一个人的身份,同时保护信息资料安全是现代社会必须面对和解决的一个问题。因此可以看出身份认证技术在信息安全领域占据的重要地位,而且身份认证也是现如今最为有效的信息保护措施。
2 身份认证的概念
身份认证(Authentication)是系统审查用户身份的过程,从而确定该用户是否具有对某种资源的访问和使用权限。它与数字签名是有区别的:认证一般是基于收发双方共享的保密数据,以证实被鉴别对象的真实性,而用于验证签名的数据是公开的;数字签名主要是防止通信过程中的抵赖、假冒行为,身份认证主要是防止通信开始前的假冒行为;数字签名技术可用于身份认证。身份认证通过标识和鉴别用户的身份,提供一种判别和确认用户身份的机制。计算机网络中的身份认证是通过将一个证据与实体身份绑定来实现的。实体可能用户、设备、进程、系统。计算机网络世界中一切信息包括用户的身份信息都是用一组特定的数据来表示的,计算机只能识别用户的数字身份,所有对用户的授权也是针对用户数字身份的授权。如何保证以数字身份进行操作的操作者就是这个数字身份合法拥有者,也就是说保证操作者的物理身份与数字身份相对应,身份认证就是为了解决这个问题,作为防护网络资产的第一道关口,身份认证有着举足轻重的作用。
3 身份认证的分类
传统的身份认证是基于三种认证因子的:
身份认证技术从是否使用硬件可以分为软件认证和硬件认证,从认证需要验证的条件来看,可以分为单因子认证和双因子认证。从认证信息来看,可以分为静态认证和动态认证。身份认证技术的发展,经历了从软件认证到硬件认证,从单因子认证到双因子认证,从静态认证到动态认证的过程。认证体系也越来越完善,已经在人们的生活中得到广泛应用。
口令认证
用户名/口令是最简单也是最常用的身份认证方法,它是基于"what you know"的验证手段。每个用户的口令是由这个用户自己设定的,只有他自己才知道,因此只要能够正确输入口令,计算机就认为他就是这个用户。然而实际上,由于许多用户为了防止忘记口令,经常采用诸如自己或家人的生日、电话号码等容易被他人猜测到的有意义的字符串作为口令,或者把口令抄在一个自己认为安全的地方,这都存在着许多安全隐患,极易造成口令泄露。即使能保证用户口令不被泄露,由于口令是静态的数据,并且在验证过程中需要在计算机内存中和网络中传输,而每次验证过程使用的验证信息都是相同的,很容易驻留在计算机内存中的木马程序或网络中的监听设备截获。
1 口令认证的特点
口令是用户与计算机之间以及计算机与计算机之间共享的一个秘密,在通信过程中其中一方向另一方提交口令,表示自己知道该秘密,从而通过另一方的认证。口令通常由一组字符串来组成,为便于用户记忆,一般用户使用的口令都有长度的限制。出于安全考虑,在使用口令时需要注意以下几点:不使用默认、设置足够长的口令、不要使用结构简单的词或数字组合、增加密码的组合复杂度、使用加密、避免共享密码、定期更换口令。 传统的口令认证方式是先建立用户账户,然后为每一个用户账户分配一个口令。用户登录首先发送一个包含用户账户和口令的请求登录信息,主机系统根据存储在用户数据库中的用户账户和口令进行验证。如果正确则允许登录,否则拒绝。
2 口令认证出现的问题
3 解决办法及认证的发展
就以上出现的七大问题来看用户名/密码方式一种是极不安全的身份认证方式。可以说基本上没有任何安全性可言。提高密码的安全使用来说,主要是从计算机系统入手,使其具备下列安全性:1.入侵者即使取得储存在系统中的密码也无法达到登录的目的。这需要在密码认证的基础上再增加其他的认证方式,如地址认证。2.通过监听网络上传送的信息而获得的密码是不能用的。3.最有效的方式是数据加密。计算机系统必须能够发现并防止各类密码尝试攻击。可使用密码安全策略。而对于当今的社会,信息的重要性及价值日益凸显,各种各样的漏洞和攻击,让这个本来就不安全、单纯的密码的身份认证机制已经远远没有能力去保护信息的安全性了。为了解决固定密码认证的诸多问题,安全专家提出了一次性口令(OTP:One Time Password)的密码体制,以保护关键的计算资源。
4 OTP技术
OTP全称叫One-time Password,也称动态口令,是根据专门的算法每隔60秒生成一个与时间相关的、不可预测的随机数字组合,每个口令只能使用一次,每天可以产生43200个密码。
4.1 OTP的原理和模式
在登录过程中加入动态的、变化的因子,使每次登录过程中传送的信息都不相同,以提高登录过程安全性。 例如:登录密码=MD5(用户名+密码 +时间),系统接收到登录口令后做一个验算即可验证用户的合法性。 这些动态的、变化的因子选择方式大致有以下几种:
下面以挑战/应答口令原理为例,介绍一下动态动态口令的生成,发送,以及认证的过程,如图二:
4.2 OTP特点
在登录过程中加入不确定因素,使每次登录过程中传送的信息都不相同,以提高登录过程安全性。例如:登录密码=MD5(用户名+密码 +时间),系统接收到登录口令后做一个验算即可验证用户的合法性。由于不确定因素的引用,可以保证在不同的时间内产生不同的密码,这样可以解决传统密码认证方面的缺陷,社会工程学,字典攻击,搭线窃听等方面来的威胁得到了大幅度的降低。
4.3 OTP的应用
OTP应用的领域非常广泛,如网上银行、电话银行服务、证劵交易、Intranet/Extranet登录等,应用产品的分类大体上有三种:
挑战/应答模式认证
1 挑战/应答机制原理
在网络环境中基于挑战/应答(Challenge/Response)方式的身份认证系统就是每次认证时认证服务器端都给客户端发送一个不同的"挑战"字串,客户端程序收到这个"挑战"字串后,做出相应的"应答",以此机制而研制的系统。
这种模式的认证大致流程是:首先,证明者和验证者同时输入要证明的值,证明者要给验证者做出承诺,他所作的都是真实有效的;然后验证者根据证明值来发出挑战,证明者接受挑战以后做出相应的相应,反复数次验证者发现证明者做出的相应都是正确的,那么就可以说明证明者所知道的了。
2 零知识认证
挑战/应答模式的认证思想是来源于零知识认证的,这种思想最大的特点就是不透漏关键信息就可以进行信息交换,下面就介绍一个典型的零知识认证的例子。
在现实生活当中,也可能你并不知道某个秘密,但是你可以判断对方是否知道这个秘密,其过程是证明者的一方,试图使被称为验证者的另一方相信自己的身份是正确的,却不向验证者提供任何有用的信息,一问一答的形式来验证证明者的所知的。这一认证理念是建立在数学基础上的,十分抽象,所以这里为大家举一个非常出名的例子:山洞问题。
以上是一个山洞的地图,假设P知道打开门的咒语,按照下面的协议P就可以向V证明:他知道咒语但是不需要告诉V咒语的内容。
1.V站在A点;2.P进入山洞,走到C点或D点;3.当P消失后,V进入到B点;4.V指定P从左边或者右边出来;5.P按照要求出洞(如果需要通过门,则使用咒语);6.P和V重复1-5步骤n次。如果P知道咒语,他一定可以按照V的要求正确地走,出山洞n次;如果P不知道咒语,并想使V相信他直到咒语,就必须每次都事先猜对V会要求他从哪一边出来。
3 挑战应答模式的问题
基于挑战/应答模式下得认证,挑战和应答的两个过程都要经过信道,所以在信道中极容易受到中间人攻击。中间人攻击(Man-in-the-Middle Attack,简称"MITM攻击")是一种"间接"的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为"中间人"。然后入侵者把这台计算机模拟一台或两台原始计算机,使"中间人"能够与原始计算机建立活动连接并允许其读取或修改传递的信息,然而两个原始计算机用户却认为他们是在互相通信。通常,这种"拦截数据——修改数据——发送数据"的过程就被称为"会话劫持"(Session Hijack)。常见的攻击方式有DNS欺骗、会话劫持、代理服务器等,它可以将通信双方的信息进行窃取和篡改,危害极大。
数字签名认证
1 数字签名的特点
数字证书由权威公正的CA中心签发,是网络用户的身份证明。使用数字证书,结合数字签名、数字信封等密码技术,可以实现对网上用户的身份认证,保障网上信息传送的真实性、完整性、保密性和不可否认性。数字证书目前已广泛应用于安全电子邮件、网上商城、网上办公、网上签约、网上银行、网上证券、网上税务等行业和业务领域。
保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。
数字签名是个加密的过程,数字签名验证是个解密的过程。报文的发送方用一个哈希函数从报文文本中生成报文摘要(散列值)。发送方用自己的私人密钥对这个散列值进行加密。然后,这个加密后的散列值将作为报文的附件和报文一起发送给报文的接收方。报文的接收方首先用与发送方一样的哈希函数从接收到的原始报文中计算出报文摘要,接着再用发送方的公用密钥来对报文附加的数字签名进行解密。如果两个散列值相同、那么接收方就能确认该数字签名是发送方的。通过数字签名能够实现对原始报文的鉴别。
2 数字签名的作用
数字签名有两种功效:
3 数字签名的问题
常见的数字签名攻击类型有:
身份认证的应用
1 Radius认证系统
RADIUS1)定义了如何装载位于网络接入服务器(NAS)与RADIUS认证服务器(RAS&RADIUS Server&3A Server)之间用于认证,授权和配置的信息.其中RADIUS Server对NAS链接作出认证.RADIUS通过管理用户数据库(包括安全,授权和计费),管理和为用户提供业务(如PPP,SLIP,telnet,rlogin)的详细配置信息来完成如下三方面工作:1.认证(Authentication);2.授权(Authorzation);3.计费(Accounting)。
1.1 Radius基本结构及流程
Radius主要由三部分组成:客户端,NAS(网络接入服务器),Radius认证服务器。具体是的流程是一个基于客户端与服务器之间的挑战/应答方式的认证,具体流程:
1.2 Radius认证系统的特点
由于客户端与RADIUS服务器之间的交互是通过共享密钥来进行相互认证的,共享密钥不会通过网络传送。另外,为了减少在不安全的网络中侦听到用户密码的可能性,在客户端和RADIUS服务器之间传送的密码都是加密的。因此radius认证系统具备以下优点:1.抗窃听:无明文口令在网上传输;2.抗重放攻击:挑战是随机数,每次不同;3.抗地址假冒攻击:认证每隔1-2分钟就进行;4.口令猜测:对有缺陷的口令有效。
1.3 Radius认证系统的问题
RADIUS系统是目前最常用的认证计费系统之一,它简单安全,易于管理,扩展性好,所以得到广泛应用。但是由于系统协议本身的缺陷,比如基于UDP的传输、简单的丢包机制、没有关于重传的规定和集中式计费服务,都使得它不太适应当前网络的发展,需要进一步改进。 当前IETF成立了专门的工作组讨论关于认证、授权和计费(Authentication, Authorization and Accounting, AAA)的问题,他们认为,一个良好的AAA协议必须具有如下特点:
2 Kerberos认证系统
Kerberos系统为分布式计算环境提供一种对用户双方进行验证的认证方法。它的安全机制在于首先对发出请求的用户进行身份验证,确认其是否是合法的用户;如果是合法的用户,再审核该用户是否有权对他所请求的服务或主机进行访问从加密算法上来讲,其验证是建立在对称加密的基础上的。它采用可信任的第三方,密钥分发中心(KDC)保存与所有密钥持有者通信的保密密钥。Kerberos是基于对称加密体制来实现认证的。
Kerberos协议是为基于TCP/IP的Internet和Intranet设计的安全认证协议,它工作在C/S模式下,以可信赖的第三方KDC(密钥分配中心)实现用户身份认证。在认证过程中,Kerberos使用对称密钥加密算法,提供了计算机网络中通信双方之间的身份认证。。它的安全机制在于首先对发出请求的用户进行身份验证,确认其是否是合法的用户;如果是合法的用户,再审核该用户是否有权对他所请求的服务或主机进行访问。在Kerberos中会对每一个用户分配一个密钥对,如果网络中存在N个用户,则Kerberos系统会保存和维护N个密钥对。同时,在Kerberos系统中只要求使用对称密码,而没有对具体算法和标准作限定,这样便于Kerberos协议的推广和应用。
2.1 Kerberos组成及认证过程
一个完整的Kerberos系统主要由以下几个部分组成:用户端(Client)、服务器端(Server)、密钥分配中心(Key Distribution Center,KDC)、认证服务器(Authentication Server,AS)、票据分配服务器(Ticket Granting Server,TGS)、票据、时间戳。Kerberos系统认证过程:
2.2 Kerberos认证系统的特点
Kerberos系统的这种认证机制有很多好处,首先,安全性高:Kerberos系统对用户的口令进行加密后作为用户的私钥,从而避免了用户的口令在网络上显示传输,使得窃听者难以在网络上取得相应的口令信息;其次透明性高:用户在使用过程中,仅在登录时要求输入口令,与平常的操作完全一样,Kerberos的存在对于合法用户来说是透明的;最后是可扩展性好:Kerberos为每一个服务提供认证,确保应用的安全。Kerberos系统和看电影的过程有些相似,不同的是只有事先在Kerberos系统中登录的客户才可以申请服务,并且Kerberos要求申请到入场券的客户就是到TGS(入场券分配服务器)去要求得到最终服务的客户。
2.3 Kerberos认证系统的问题
尽管Kerberos认证体系有诸多优点,但是同样也存在很多缺点。比如说,1.依赖性:加密系统的依赖性(DES)、对 IP 协议的依赖性和对时间依赖性;2.票据有效期:有效期最小为5分钟,最大约为21小时, 往往不能满足要求;3.认证转让能力:不允许签发给一个用户的鉴别证书转让给其他客户使用;4.领域间的鉴别管理起来困难;5.加密操作缺陷:非标准形式的DES加密(传播密码分组链接 PCBC)方式,易受攻击;6.会话密钥:存在着攻击者重放会话报文进行攻击的可能;7.口令攻击:未对口令提供额外的保护,攻击者有机会进行口令攻击。
Kerberos设计的目的是解决在分布网络环境中用户访问网络资源时的安全问题,虽然还没有被广泛应用,但是DEC\HP\IBM等计算机厂商及有关计算机安全的厂商都在使其产品Kerberos化,使用的范围也越来越广泛,且技术不断成熟。在实现网络密钥分配中心时,也可考虑将这种成熟的认证服务引入密钥分配和管理中去,当然要结合密钥管理中心的具体体系结构和密钥管理协议等一起考虑。
3 PKI系统
PKI(Public Key Infrastructure,公共密钥基础设施)是CA安全认证体系的基础,为安全认证体系进行密钥管理提供了一个平台,它是一种新的网路安全技术和安全规范。它能够为所有网路应用透明地提供采用加密和数字签名等密码服务所必需的密钥和证书管理。从加密算法上来讲,其验证是建立在非对称加密的基础上的。为解决Internet的安全问题,而形成的一套完整的Internet安全解决方案: 采用证书管理公钥,通过第三方的可信任机构–认证中心CA(Certificate Authority),把用户的公钥和用户的其他标识信息(如名称、e-mail、身份证号等)捆绑在一起,在Internet网上验证用户的身份。我们称这套系统为PKI系统。也就是所谓"公开密钥体系"。
3.1 PKI主要组成部分及认证过程
完整的PKI系统应具有最基本的五部分:1.权威认证机构CA(Certificate Authority)是PKI的核心,负责所有数字证书的签发和注销;2.证书注册系统RA(Registration Authority)作用是接受用户的证书申请或证书注销、恢复等申请,并对其进行审核;3.密钥管理中心KMC(Key Manage Center)负责加密密钥的产生、存贮、管理、备份以及恢复;4证书发布查询系统;5备份恢复系统。PKI认证的流程如图:
3.2 PKI认证系统的特点
在公钥体制中,密钥成对生成,每对密钥由一个公钥和一个私钥组成,公钥公布于众,私钥为所用者私有。发送者利用接收者的公钥发送信息,称为数字加密,接收者利用自己的私钥解密;发送者利用自己的私钥发送信息,称为数字签名,接收者利用发送者的公钥解密。PKI通过使用数字加密和数字签名技术,保证了数据在传输过程中的机密性(不被非法授权者偷看)、完整性(不能被非法篡改)和有效性(数据不能被签发者否认)。
数字证书有时被称为数字身份证,数字证书是一段包含用户身份信息、用户公钥信息以及身份验证机构数字签名的数据。身份验证机构的数字签名可以确保证书信息的真实性。
证书发布查询系统通常采用OCSP(Online Certificate Status Protocol,在线证书状态协议)协议提供查询用户证书的服务,用来验证用户签名的合法性;备份恢复系统负责数字证书、密钥和系统数据的备份与恢复。
3.3 PKI认证系统的问题
PKI体系已经在世界范围内广泛使用,经过长期的实际验证,证明了其安全性。但是我们仍然经常能够看到一些用户的银行帐号被窃取,导致经济损失等等的报道,经过分析,绝大部分都是因为没有能够满足使用PKI体系的一个先决条件造成的。回顾一下前面所说的,要把保证PKI体系的安全,一个先决条件是:私钥只能够自己持有,绝对不能够泄漏。但是在实施PKI体系时,一般都是将自己的私钥保存到本地硬盘或者软盘中,当需要进行数字签名时,私钥会被读取到计算机内存中进行签名运算。即使私钥是被加密存放在本地计算机中,当要进行签名运算时,也会被解密为明文.然后才能够运算。因此PKI系统的核心问题就是私钥的保护。只要我们能够保证私钥不会泄漏,就能够很好的利用PKI体系的优点,完全解除安全的后顾之忧。要想防止泄漏,私钥必然不允许被保存在计算机本机上,只能保存到特别的外置设备中。而且,为了防止病毒,木马程序从计算机内存中截取私钥,绝不能够将私钥读取到计算机的内存中,所以保存私钥的设备还必须能够完成数字签名的工作。
USB Key就是这样的一种设备,能够保存私钥,能够完成数字签名。
引入USB Key来配合PKI体系,就能够很好的解决上述问题,打造一个完美的解决方案。USB Key内置智能卡芯片,能够存储私钥和其他私密数据,并可以内置密钥算法,在智能卡内部完成数字签名所需的工作。当需要进行数字签名时,计算机给USB Key发送签名的命令,USB Key内部进行签名,然后将签名结果返回给计算机,私钥永远不会暴露在USB Key外部,网络小偷也永远不可能得到用户的私钥,更无法假冒用户的身份。特别的,在使用USB Key之前,还必须输入正确的USB Key的个人识别码,这样,即使USB Key丢失了,也不会被非法使用。可以这样认为:USB Key就是一个可以随身携带的超微型安全计算机,一个受保护的私人电子印章。
4 身份认证的其他应用
"加密锁"也称加密狗,是一种插在计算机并行口上的软硬件结合的加密产品(新型加密锁也有USB开发者可以通过接口函数和加密锁进行数据交换(即对加密锁进行读写),来检查加密锁是否插在接口上;或者直接用加密锁附带的工具加密自己EXE文件(俗称"包壳")。这样,软件开发者可以在软件中设置多处软件锁,利用加密锁做为钥匙来打开这些锁;如果没插加密锁或加密锁不对应,软件将不能正常执行。而这个过程也是一个对使用者的身份认证过程,也包含了身份认证的技术。
加密锁通过在软件执行过程中和加密锁交换数据来实现加密的。加密锁内置单片机电路(也称CPU),使得加密锁具有判断、分析的处理能力,增强了主动的反解密能力。这种加密产品称它为"智能型"加密锁。加密锁内置的单片机里包含有专用于加密的算法软件,该软件被写入单片机后,就不能再被读出。这样,就保证了加密锁硬件不能被复制。同时,加密算法是不可预知、不可逆的。
飞天诚信的ROCKEY软件加密锁系列就是智能型的软件保护工具,它包含一个安装在计算机并行口或USB口上的硬件,及一套适用于各种语言的接口软件和工具软件。加密锁基于硬件保护技术,其目的是通过对软件与数据的保护防止知识产权被非法使用。加密锁通过在软件执行过程中和加密锁中的交换数据来实现加密的。加密狗内置单片机电路(也称CPU),使得加密锁具有判断、分析的处理能力,增强了主动的反解密能力。这种加密产品称它为"智能型"加密锁,加密锁内置的单片机里包含有专用于加密的算法软件,该软件被写入单片机后,就不能再被读出。这样,就保证了加密锁硬件不能被复制。同时,加密算法是不可预知、不可逆的。
1) 全称:Remote Authentication Dial In User Service远程用户认证拨服务