APP下载

基于密码服务平台的USB Key身份认证方案

2018-09-26史国振娄嘉鹏

计算机应用与软件 2018年9期
关键词:服务平台客户端密码

李 明 史国振 娄嘉鹏

1(西安电子科技大学通信工程学院 陕西 西安 710071)2(北京电子科技学院 北京 100070)

0 引 言

目前,身份认证技术是信息安全领域内的一个重要环节,该技术的解决方案将直接关系到计算机网络的安全性以及可靠性。密码服务平台作为一个服务于金融等行业的提供密码服务的安全系统,对外可以提供统一的密码服务接口,本身具有密码运算,真随机数生成等功能,但在向用户开放提供密码服务时,由于网络的复杂化、多用户、跨域共享等特点带来的内部攻击,外部攻击等风险从而无法保证双方认证的安全性。

传统的身份认证方式存在着口令易被遗忘,泄露丢失等一系列问题。随着USB Key设备的出现和快速发展,以其便捷、安全等特性被广泛采用。这是因为基于USB Key的身份认证技术可以很好地解决传统身份认证中所存在的安全性问题[8]。它采用PIN码和硬件相结合的强双因子认证模式,在提高身份认证安全性的同时也解决了易用性的问题。通过USB Key内置的安全密码芯片的运算来进行加解密,可以将密码运算与用户终端的复杂环境进行隔离,从而最大程度上保障了认证信息在运算过程中的安全性。用户如果不慎丢失USB Key,攻击者只要没有PIN码,只需要注销即可保证不被攻击;攻击者获取到PIN码没有得到USB Key设备也无法进行认证,且在超过规定尝试错次数将自动锁定并无法再次操作。该方式在登录计算机时本地身份认证,网上银行交易的身份认证等领域中广泛应用,已发展成为网络中不可或缺的一部分[7]。本文中选用USB Key作为终端向密码服务平台认证的工具,因为它具有内部数据不可复制不可篡改,硬件产生真随机数等特性,既能将用户的信息安全保存同时又能在密码运算的安全环境上与密码服务平台保持一致。

很多学者将USB Key身份认证与密码技术进行结合,并提出了一些新的身份认证方案。文献[1]的方案其安全性主要依靠密码表和口令的存储,虽然一定程度上能够抵抗重播攻击,但存在较大的被攻击者窃取和篡改的风险,且该方案需要大量的计算,并不适用于本系统的终端用户。2000年,文献[2]提出的方案主要基于离散对数,但是文献[3]通过分析指出文献[2]中口令的灵活性差无法更改,用户的身份ID和口令易被伪造,且存在内部攻击的漏洞也不适用于本系统。后来文献[4]采用长的随机数作为认证口令,但是随机数长度增加后,不仅不方便记忆,而且用户在更改时也存在困难。同时方案中还存在合法用户容易被假冒的情况,因此安全性不高也无法满足本系统的要求。2005年,文献[6]对文献[5]的方案做了一些改进,但是对该方案进行安全性分析后发现存在两个缺陷:一是由于该方案是单向身份认证,易遭受假冒服务器的攻击;二是该方案过程较简单安全性不高,且在用户丢失智能卡的情况下容易遭受字典攻击,因此也不适用于本系统。文献[9]方案需要借助于CA中心,增加了系统的复杂性。

针对上述方案的安全缺陷和USB Key身份认证在应用中存在的不足,本文针对密码服务平台与用户交互的特殊环境,给出了一种基于密码服务平台的新的USB Key身份认证方案,可以避免上述缺陷引起的攻击从而确保认证过程的安全性。本方案主要分两步进行:(1) 提出一种应用于密码服务平台用户远程身份认证系统的登录模型;(2) 提出一种安全的改进的双向认证协议来保证用户安全的获取加密卡的密码服务。

1 身份认证方案

1.1 登录模型

为了提高用户在密码服务平台进行身份认证时的安全性,本文提出了基于USB Key的密码服务平台登录模型,如图1所示。用户在获取密码服务平台中的密码卡的服务之前,首先要进行身份认证,认证通过后,密码服务平台将查询用户身份和授权等信息,对用户进行授权访问相应的资源或提供相应的密码服务,该模型的作用主要是为用户在进行远程登录时的各个环节提供实现和安全保障。

图1 基于USB Key的密码服务平台登录模型

用户在密码服务平台的登录认证过程为:当USB Key插入到用户终端的USB口后,用户终端首先对USB Key进行识别,识别通过后再向密码服务平台发送登录请求消息。密码服务平台响应用户终端的登录请求进行身份认证,并通过客户端的心跳发送子模块和密码服务平台的监听模块来保证时间的同步,具体过程见1.2节的认证方案。

1.1.1 客户端

用户终端在向密码服务平台发送登录请求前首先检测USB Key的插入情况,当USB Key插入到用户终端的USB接口后,用户终端将会对USB Key进行识别,识别通过后提示用户输入PIN码来获取USB Key的使用权限。之后将与服务器建立TCP/IP连接并通过心跳检测模块与服务器建立时间同步,为接下来的与密码服务平台的身份认证流程建立通道,流程如图2所示。

图2 客户端的请求认证流程

用户端主要由监控模块和加解密模块构成,其中监控模块包括心跳检测子模块和数据监控子模块两部分,具体功能分别为:

(1) 监控模块 它作为用户终端的核心,主要作用为监听和控制。监听USB Key的插拔状态和认证情况,接收密码服务平台发送信息、控制心跳发送等。其中数据处理子模块主要用来控制模块之间的信息流向,协调其他模块完成认证信息处理;心跳发送模块定期向密码服务平台发送在线状态来保证时间的同步,密码服务平台一旦检测到失去心跳连接则立即中断服务。

(2) 加解密模块 它是用户终端信息安全的重要保证,主要完成客户端在认证过程中对用户信息以及接收的密码服务平台的信息的加解密及哈希等运算,其主要通过用户端程序调用USB Key内部实现的密码算法接口来完成相应的功能。

1.1.2 密码服务平台

密码服务平台中的监听模块检测到用户终端的连接请求后,首先与终端建立TCP/IP连接并实现心跳同步,当接收到含有请求信息的数据包以后,根据数据位判断USB Key是否正常连接,如果是则将认证信息提取并下传到密码服务平台的连接请求认证模块;连接请求认证模块通过调用密码服务平台的密码服务模块按照1.2节的认证协议对认证消息消息进行处理,再构造数据包将消息返回到用户端。具体流程如图3所示。

图3 密码服务平台端的身份认证流程

每个模块的具体功能如下:

(1) 监听模块 该模块主要用来检测用户终端发送的登录请求,并将其传送给连接请求认证模块,同时负责检测客户端的心跳连接,如果检测到失去连接,则立即中断与客户端的通信。

(2) 连接请求认证模块 它作为密码服务平台认证系统的核心模块,主要负责响应用户请求,完成与用户的双向身份认证流程,其密码运算功能均通过调用密码卡中的硬件来实现。

(3) 密码服务模块 它是密码服务平台为用户提供密码服务的核心部分,同时给密码服务平台的连接请求认证模块提供密码运算接口。

1.2 认证方案

1.2.1 注 册

密码服务平台端将USB Key进行初始化注册,设置初始化PIN码,并生成一段随机数作为用户身份ID存储到USB Key的安全区域,使用SM3做哈希得到Hs(ID)并存储到数据库,为其制定相应的访问控制策略,最后将USB Key分发给合法用户。

1.2.2 认 证

(1) 密码服务平台接收到用户端的认证信号后,产生一个随机数R传到用户端,并使用SM3做哈希得到Hs(R)。

(2) 客户端收到C后,调用USB Key中的SM2算法,使用椭圆曲线函数ECC产生一对公私钥对,公钥UK1和私钥UK2,调用USB Key中的SM3算法对R做哈希得到Hu(R),生成一个时间戳t,发送{Hu(R),UK1,t}到密码服务平台,最后调用SM3计算Hu(UK1)。

(3) 服务器接收m,提取Hu(R)与Hs(R)对比,如果不相等则拒绝连接。

(4) 验证t′与t之间的有效性,如果(t′-t)≥Δt,密码服务平台将断开连接,否则接受。其中t′是密码服务平台的当前时间戳,Δt是期望的有效时间间隔。

(5) 密码服务平台在确认对方的身份后还要进一步确认对方的ID,使用SM3计算Hs(UK1),生成一时间戳T,调用SM2算法生成一对公私钥对,公钥SK1和私钥SK2,发送M={SK1,Hs(UK1),T}给用户端,用户端收到M后比较Hu(UK1)和Hs(UK1),如果不同则拒绝连接。

(6) 验证T′与T的差是否在合法范围内,如果(T′-T)≥ΔT,密码服务平台主动断开连接,否则接受。

(7) 用户端确认对方为合法的密码服务平台后,以SK1和UK2作为密钥,使用USB Key中SM2算法加密Hu(ID)和T,发送Z=ESK1(EUK2(Hu(ID)+T))给密码服务平台。

(8) 密码服务平台得到Z后,利用SK2和UK1进行解密,得到明文Z′=DSK2(DUK1(Z))=Hu(ID)+T,比对T是否一样,如果相同就将Hu(ID)与数据库中注册时已存储的Hs(ID)进行对比来确认用户的身份,进而赋予相应的权限;否则断开连接。算法过程如图4所示。

图4 认证算法流程

1.2.3 注销和更新

用户丢失USB Key或泄露PIN码须立即联系密码服务平台管理员进行修改PIN码或注销,发放USB Key的密码服务平台将定期通过与企业建立的安全信道更新USB Key中存储的用户ID。

2 安全性分析

密码服务平台在提供密码按需服务的同时,由于网络的复杂化、多用户、跨域共享等特点也给密码服务带来了极大的安全风险。密码服务所面临的安全风险主要有内部和外部攻击、选择密文攻击、密钥猜测攻击、重放攻击、中间人攻击等。而本文提出的登录模型和方案结合起来可有效地抵御以上几种风险。

(1) 内部攻击 它主要由密码服务平台中注册的合法用户的不合法操作所引起,即用户以合法身份登录到密码服务平台后攻击破坏其他用户信息。在用户身份验证通过后,根据该用户ID通过查找访问控制策略来赋予其相应的权限,此举可以对其他人的敏感信息及数据进行有效的隔离。因此本方案可以内部攻击风险。

(2) 外部攻击 通过外部攻击非法登录密码服务平台有:A——获得登录使用的USB Key设备,B——获取USB Key的PIN码,C——登录使用的用户ID。设事件D为非法登录密码服务平台。其中,事件A、B、C互为独立的事件,则非法登录密码服务平台的概率为P(D)=P(A)×P(B)×P(C)。显然,非法登录密码服务平台的概率要比普通的登录方式小很多。同时每一个USB Key都设有不同长短的PIN码来保护,且PIN码一旦输入错误次数超过设定的上限,USB Key将会自动锁死并限制其再次输入,必须由初始化的管理员才可以解锁。

(3) 重放攻击 终端与密码服务平台进行身份认证时,密码服务平台每次连接产生的数据包中包含随机数和时间戳。其中,客户端与密码服务平台的随机数均为物理噪声芯片产生的真随机数;且通过心跳机制实现了复杂的时间同步问题。所以,即使攻击者截获了同一终端用户一次或多次的认证消息,也无法在下一次进行重放攻击时使用,因此本方案可以很好地抵御重放攻击。

(4) 中间人攻击 SM2公钥加解密结合SM3算法对用户ID做哈希可以有效地防止中间人攻击和消息替换。椭圆曲线公钥算法的优势远超过其他的公钥系统:在椭圆曲线上计算点群离散数的指数级复杂度远高于RSA的亚指数级,并且计算量小和速度快的特点非常适合在USB Key这种小型设备中使用。

(5) 选择密文和密钥猜测攻击 USB Key和密码服务平台每次认证都会生成不同的密钥对来实现一次一密,从而可以有效地避免选择密文和密钥猜测攻击。

3 结 语

本文通过分析USB Key的使用现状,研究了之前学者身份认证方案,在客户端和密码服务平台具有相同安全强度的密码运算环境的基础上提出了适用于密码服务平台的登录模型和改进的USB Key身份认证方案。该方案相较于传统的PKI认证体系有较大的提升,实现了用户与密码服务平台的双向认证;使用国密SM2算法代替其他公钥算法,同时提高了认证的安全强度与效率;实现了一次一密;能够抵御内部和外部攻击、选择密文攻击、密钥猜测攻击、重放攻击和中间人攻击等。

该方案在天地一体化网络密码按需服务关键技术及系统实施方案项目中,应用到了服务器密码机的远程访问控制中,借助于服务器密码机上密码卡的密码运算能力,实现了远程身份认证,具有较高的安全性和实用性,能有效保障系统的安全。

猜你喜欢

服务平台客户端密码
你的手机安装了多少个客户端
“人民网+客户端”推出数据新闻
——稳就业、惠民生,“数”读十年成绩单
这才叫创业!90后水产追梦人打造一条龙式技术产品服务平台
密码里的爱
高校财务“一站式服务平台”建设探讨
福州首家“奶爸版”母婴服务平台上线
基于自媒体的编程服务平台研究综述
密码抗倭立奇功
密码藏在何处
媒体客户端的发展策略与推广模式