1、基于USB KEY的身份认证技术的相关研究基于USB KEY的身份认证技术的相关研究摘 要:首先介绍了USB接口技术相关的内容,包括USB的概念、USB的基本结构、USB的通信模型,为USBKey身份认证的实现提供了理论基础和技术支持。而后着重分析了身份认证的相关内容,包括身份认证的概念、已有的身份认证方法和身份认证协议。 关键词:USBkey;身份认证;USBkey身份认证 1 USB概述 1.1 什么是USB USB即通用串行总线(Universal Serial Bus),是一种支持即插即用的新型串行接口。USB要比标准串行口快得多,其数据传输率可达每秒4Mb12Mb (而老式的串行口最
2、多是每秒115Kb)。除了具有较高的传输率外,它还能给外围设备提供支持。 这不是一种新的总线标准,而是电脑系统连接外围设备(如键盘、鼠标、打印机等)的输入/输出接口标准。到现在为止,电脑系统连接外围设备的接口还无统一的标准,如键盘的插口是圆的、连接打印机要用9针或25针的并行接口、鼠标则要用9针或25针的串行接口。USB能把这些不同的接口统一起来,仅用一个4针插头作为标准插头。通过这个标准插头,就可以把所有的外设连接起来,并且不会损失带宽。USB正在取代当前PC上的串口和并口。 1.2 USB基本结构 整个USB总线可以分为3个部分进行描述,USB连接、USB设备、USB主机(如图1)。 1.
3、3 USB通信框架结构 USB设备被分为3个层次:功能层、USB逻辑设备和USB总线接口。它们分别和主机系统中的客户软件、USB系统软件以及USB主控制器进行了逻辑或物理的对应。其中,功能层和客户软件之间的逻辑对应提供了用户操作USB设备的能力。USB逻辑设备与USB系统软件的逻辑对应提供了通用的USB操作,主要包括USB系统软件对USB设备的配置和管理工作。而USB总线接口与USB主控制器通过USB电缆实现物理连接。主机与设备之间横向的联系辅以主机和设备各层次间纵向的通信,就构成了整个USB从逻辑到物理的分层的通信模型。1.4 主机的通信 主机的通信就是应用软件与设备驱动程序之间以及驱动程序
4、栈中各驱动程序之间的通信过程。它主要由3大部分构成: 1.4.1 USB客户驱动程序 根据具体应用,用户可以选定一种Windows提供的USB类驱动程序或写一个自定义驱动去构成USB客户驱动程序。注意,USB客户驱动程序为标准设备类或自定义硬件提供了一个用户接口,使得客户应用软件可以方便地操作USB设备,但它并不知道USB的串行传输机制。 1.4.2 USB总线驱动程序(USBD) USB总线驱动程序知道USB目标设备的特性,它管理总线电源、列举、USB事务以及根集线器驱动和主控制器驱动之间的通信。USB特性由USB总线驱动程序检测,这是在设备配置过程中通过分析设备描述符得到的。例如,某些设备
5、要求在每一帧(Frame)中都有一个确定的信息吞吐量,而另一些设备可能只需要每隔一定的时间才进行一次周期性的读写工作。 1.4.3 USB主控制器驱动程序 主控制器驱动程序(HcD)知道如何与连接总线的主控制器硬件通信。Win98支持两类主机控制器,每一种都有它自己的驱动。主控制器驱动程序安排事务列表中的事务在USB 上广播。事务列表描述了那些需要在总线上运行,当前仍未完成的总线事务集。应用程序通过使用API函数对设备I/O进行Win32调用,这个调用由I/O系统服务接收。I/O管理器从这个请求构造一个合适的I/O请求包(II ),并通过IRP将请求发送给驱动程序。现在一个IRP由一个分层的设
6、备驱动程序栈处理是很常见的。每个驱动程序把该请求划分成更简单的请求。用户的工作集中在客户驱动层的实现上。 1.5 主机与设备的通信 主机与设备的通信也是建立在上述通信框架结构上的。要理解基于USB 的主机与设备的通信需要从两个方面加以考虑:一方面是从宏观和逻辑的角度看,需要理解设备端点(Endpoint)和管道(Pipe)的概念;另一方面是从微观和物理的角度看,需要理解包(Packet)和帧(Frame)的概念。以下分别加以讨论。 1.5.1 设备端点与管道 端点是一个USB设备中的唯一可寻址部分,是主机与设备之间通信流的起点或终点。端点是一个储存多个字节的缓冲区(buffer)。通常它是一块
7、数据储存区域或控制器的一个寄存器。储存在端点的数据可以是接收到的数据或等待发送的数据。每个端点都有自己所支持的传输类型,设备上的每个端点都有一个唯一的端点号。除了控制传输端点(端点0),其余每个端点只能是单向的。一个由相互独立的端点构成的端点集组成了前文提到的USB逻辑设备。在设备接入时,每一个逻辑设备都有一个由系统分配的唯一的地址。这一工作是由图3中与USB逻辑设备逻辑对应的USB系统软件完成的。根据设备地址、端点号和传输方向便可以寻址每一个端点。端点在未被配置之前处于一种不确定的状态。所以只有在对其进行了配置工作之后,主机才能访问某个端点。一个USB管道不是一个物理对象,它只是设备上的端点
8、和主机软件之间的联系。从逻辑上说,每次传输都是通过这种虚拟的通信管道在端点和主机缓冲区之间进行(图2)。 从图2可以看出,构成一个USB逻辑设备的端点集合又被进一步划分为不同的端点集去组成一个接口。一个功能设备有一个或多个接口。系统软件使用缺省管道(和端点0对应)来管理USB设备,而客户软件使用管道束(与一个端点集对应)去访问功能设备的接口。这种管道联系进一步反映了功能层和客户软件以及USB 逻辑设备和系统软件之间的逻辑对应。 1.5.2 包与帧 USB是基于这样一种方式通信的,它们以1ms(全速)或125ps(高速)的时间片为单位来进行数据传输。这样的时间片被称为帧(全速)或微帧(高速)。每
9、个USB设备在这些长度为1ms或1 251as的时间片内要求得到一部分USB带宽。带宽的分配依赖于设备请求的吞吐量和还没有被其它USB设备使用的带宽。 包是USB事务的基本构成单位。每一个传输包括一个或多个事务,每个事务一般分为3个阶段(图3):第1阶段发送令牌包(Token Packet),每个事务都从一个令牌阶段开始,它定义了事务的类型以及设备和端点的地址;第2阶段发送数据包(Data Packet),该阶段负责运送和传输相关数据; 第3阶段发送握手包(Handshake Packet),握手阶段对数据发送方提供了一个反馈信号,通知发送方数据是否已经被正确地收到了。 2 身份认证概述 2.
10、1 什么是身份认证 身份认证是系统审查用户身份的过程,实质上是查明用户是否具有他所出示的对某种资源的使用和访问权力。身份认证通过标识和鉴别用户的身份,提供了判明和确认通信双方真实身份的机制。身份认证采用各种先进技术,确认系统访问者的身份和权限,使计算机系统的访问控制策略能够可靠地执行,防止攻击者假冒合法用户获取访问权限,从而保证系统和数据的安全以及授权访问者的合法利益。 2.2 身份认证的方式 2.2.1 基于口令的认证方式 传统的认证技术主要采用基于口令的认证方法。这种认证方法很简单,系统事先保存每个用户的二元组信息(IDx,PWx)。进入系统时用户x输入IDx和PWx,系统根据保存的用户信
11、息和用户输入的信息相比较,从而判断用户身份的合法性。 这种认证方法的优点在于:一般的系统(如UNIX,WindowsNT等)都提供了对口令认证的支持,对于封闭的小型系统束兑不失为一种简单可行的方法。基于口令的认证方式是最常用的一种技术,但它存在严重的安全问题: (1)它是一种单因子的认证,安全性仅依赖于口令。 (2)用户往往选择简单、容易被猜测的口令,用户每次访问系统时都要以明文方式输入口令,这时很容易泄密。同时不能抵御口令猜测攻击。 (3)系统中所有用户的口令以文件形式存储在认证方,攻击者可以利用系统中存在的漏洞获取系统的口令文件。即使口令经过加密后存放在口令文件中,如果口令文件被窃取,那么
12、就可以进行离线的字典式攻击。这也是黑客最常用的手段之一。一旦攻击者能够访问口令表,整个系统的安全性就受到了威胁。 (4)用户在访问多个不同安全级别的系统时,都要求用户提供口令,用户为了记忆的方便,往往采用相同的口令。而低安全级别系统的口令更容易被攻击者获得,从而用来对高安全级别系统进行攻击。 (5)只能进行单向认证,即系统可以认证用户,而用户无法对系统进行认证。攻击者可能伪装成系统骗取用户的口令。 (6)口令方案对重放攻击也是毫无抵抗能力。 2.2.2 基于硬件令牌的认证方式 采用硬件令牌进行身份认证的技术是指通过用户随身携带身份认证令牌来进行身份认证的技术。主要的硬件设备有智能卡和目前流行的
13、USB Key等。智能卡内部包含有CPU和存储器,能够进行特定运算并且存储数据。智能卡是一种接触型的认证设备,需要与读卡设备进行对话,而不是由读卡设备直接将存储的数据读出。智能卡自身安全一般受PIN码保护,PIN码是由数字组成的口令,只有读卡机将PIN码输入智能卡后才能读出卡中保存的数据。智能卡对微电子技术的要求相当高,所以成本较高。 USB Key是由带有EPROM的CPU实现的芯片级操作系统,所有读写和加密运算都在芯片内部完成,具有很高的安全度。它自身所具备的存储器可以用来存储一些个人信息或证书,用来标识用户身份,内部密码算法可以为数据传输提供安全的传输信道。基于USBKey的硬件令牌身份
14、认证系统将是未来趋势。 基于硬件令牌的认证方式是一种双因子的认证方式(PIN+物理证件),即使PIN或硬件设备被窃取,用户仍不会被冒充。双因子认证比基于口令的认证方法增加了一个认证要素,攻击者仅仅获取了用户口令或者仅仅拿到了用户的硬件令牌,都无法通过系统的认证。因此,这种方法比基于口令的认证方法具有更好的安全性。 2.2.3 基于密码技术的认证方式 基于密码技术的认证是指通过采用密码技术设计安全的身份认证协议实现身份认证的技术。各种密码算法,如单钥密码算法、公钥密码算法和哈希函数算法都可以用来构造身份认证协议,各自具有不同的特点。基于密码技术的身份认证协议分为共享密钥认证、公钥认证等几类。 采
15、用密码技术进行身份认证,主要有两种应用模式:一是基于冲击/响应的认证模式;二是基于PKI体系的认证模式。 基于冲击/响应的认证模式通过在通信双方事先存储一个证明用户身份的密钥,当需要在网络上验证用户身份时先由客户端向服务器发出一个验证请求,服务器接到此请求后生成一个随机数并通过网络传输给客户端(此为冲击),客户端将收到的随机数与存储在其中的密钥进行带密钥的单向散列运算(HMACMD5)并得到一个结果作为认证证据传给服务器(此为响应)。与此同时,服务器也使用该随机数与存储在服务器数据库中的该客户密钥进行HMACMD5运算,如果服务器的运算结果与客户端传回的响应结果相同,则认为客户端是一个合法用户
16、。如图4所示: 图中“R”代表服务器提供的随机数,“Key”代表密钥,“x”代表随机数和密钥经过HMACMD5运算后的结果。通过网络传输的只有随机数“R”和运算结果“X”,用户密钥“Key”既不在网络上传输也不在客户端电脑内存中出现,网络上的黑客和客户端电脑中的木马程序都无法得到用户的密钥。由于每次认证过程使用的随机数“R”和运算结果“X”都不一样,即使在网络传输的过程中认证数据被黑客截获,也无法逆推获得密钥。这就从根本上保证了用户身份无法被仿冒。 冲击响应模式可以保证用户身份不被仿冒,却无法保护用户数据在网络传输过程中的安全传输,而基于PKI(Public Key Infrastructur
17、e,公钥基础设施)构架的数字证书认证方式由于可以有效保证用户的身份真实性,同时可以保证信息传输安全和交易的不可抵赖,因而具有更好的安全性。数字证书是由可信任的第三方认证机构颁发的一组包含用户身份信息(密钥)的数据结构,数字证书的发放和身份认证过程通过采用高强度的加密算法构建了一套完善的流程,保证数字证书持有人的身份安全。同时可以用于有效解决网络中的各类用户或设备、软件的身份认证,目前逐步得到广泛应用。 参考文献: 1 王志海,童新海,沈寒辉.OpenSSL与网络信息安全基础、结构和指令M.北京:清华大学出版社,2009. 2 徐远航.USB Key身份认证产品的产生与发展J.计算机安全,2004(8). 3 何丽,蔡小刚,周利华.基于USBKey的X_509身份认证J.计算机与现代化,2003(4). 4 张焕国,刘玉珍.密码学引论M.武汉:武汉大学出版社,2003. 5 卢加元,吴国兵.基于ATM应用的身份认证系统J.计算机工程与设计,2007(3). 6 王可一.USB Key身份认证技术J.中国高新技术企业,2007(10).
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1