一种Web应用中基于移动终端的密码数据处理与交互方法
【技术领域】
[0001]本发明属于信息安全技术领域,特别是一种Web应用中基于移动终端的密码数据处理与交互方法。
【背景技术】
[0002]在使用密码技术的应用中经常遇到的一个问题是采用何种方案存储和使用用户密钥。目前用户密钥的存储和使用通常有如下两种方案。
[0003]一种最简单也是最常用的方案是将用户密钥存储在用户计算机中,并通过软件密码模块使用用户密钥对数据进行密码处理(包括加密、解密、签名、签名验证)。这种方案的问题在于:方案不适合于在公共计算机中采用;若用户在不同计算机使用自己的密钥,则需要在不同计算机之间复制密钥、存储密钥,这给用户带来了很大不便。
[0004]另一种方案是使用专门的密码硬件装置(如USB Key)存储用户密钥并在密码硬件装置中使用用户密钥对数据进行密码处理。这种方案的最大优点是安全,且用户可在不同计算机上使用自己的密钥对数据进行密码处理。这种方案的存在的问题是:使用密码硬件装置如USB Key会产生额外的费用;在网吧,许多计算机的USB接口被封存,无法使用密码硬件装置。
[0005]目前,几乎所有用户都拥有手机、平板电脑等移动终端(移动计算装置),这些手机、平板电脑可以用作密钥存储和进行数据密码处理的装置。这种采用移动终端的密钥存储和使用方案虽然没有采用专门的密码硬件装置的方案安全性高,但在通常的应用中这种方案的安全性已足够(比如在非涉及钱财的应用中,或者在仅涉及小额钱财的应用中这种方案的安全性已足够)。如果采用移动终端作为用户密钥的存储和使用装置,这就有两个问题需要解决:当用户在计算机上使用应用客户端与应用系统进行交互时,如何将需要进行密码处理的数据传送到移动终端?应用系统如何获得移动终端密码处理后的数据?
【发明内容】
[0006]本发明的目的是针对Web应用提出一种利用移动终端作为用户密钥存储和密码运算装置实现密码数据处理和交互的方法。
[0007]为了实现上述目的,本发明所采用的技术方案是:
[0008]一种Web应用中基于移动终端的密码数据处理与交互方法,其特点是,所述方法如下:
[0009]在用户的移动终端中安装一个密码处理程序,并将用户的密钥存放在移动终端中;所述用户密钥包括对称密钥和/或非对称密钥;所述移动终端是访问Web应用系统的用户所持有的移动计算设备(如移动通信终端和平板电脑);所述移动终端有摄像头和条码扫描程序(动态库、类库和独立运行的程序)用于条码扫描和条码数据读取;所述条码扫描程序被密码处理程序调用,用于获取以条码形式显示的数据;所述密码处理程序是一个运行在用户移动终端中的、对数据进行密码处理的程序(即APP);所述Web应用系统是一个通过网络向用户提供功能服务的系统,用户通过运行在计算机中的浏览器访问Web应用系统;对于浏览器与Web应用系统之间的会话连接,Web应用系统分配有一个会话标识符(Sess1n ID),Web应用系统同浏览器之间通过传递会话标识符来维护和识别会话连接;所述会话连接是浏览器和Web应用系统之间的逻辑连接;
[0010]当用户使用浏览器与Web应用系统进行交互的过程中需要使用存放在移动终端中的密钥对待提交到Web应用系统的数据或Web应用系统返回的数据进行密码处理时,用户、浏览器或浏览器调用的本地AP1、密码处理程序按如下方式对待密码处理的数据进行操作处理:
[0011]第一步:浏览器或浏览器调用的本地API将待密码处理的数据、数据提交地址、浏览器与Web应用系统之间会话连接的会话标识数据以及会话标识数据提交方式以条码的形式显示在浏览器上或浏览器调用的本地API的人机界面上,其中,数据提交地址是将密码处理后的数据提交到Web应用系统的地址,会话标识数据提交方式用于指明浏览器在提交HTTP请求时通过何种方式将包含会话标识符的会话标识数据提交或传递到Web应用系统;
[0012]第二步:用户使用运行有密码处理程序的移动终端对浏览器或浏览器调用的本地API显示的条码进行扫描;
[0013]第三步:密码处理程序从扫描的条码中获得待密码处理的数据、数据提交地址、会话标识数据以及会话标识数据提交方式;
[0014]第四步:用户通过密码处理程序(调用密码模块)使用存储在移动终端中的密钥对待密码处理的数据进行密码处理,形成密码处理后的数据;
[0015]第五步:密码处理程序根据数据提交地址通过HTTP协议将密码处理后的数据提交到Web应用系统,密码处理程序提交密码处理后的数据的同时,按会话标识数据提交方式指明的会话标识数据提交或传递方式将会话标识数据一并提交。
[0016]对数据的密码处理包括加密、解密、数字签名、签名验证;所述数字签名和签名验证包括对称密钥数字签名和签名验证,以及非对称密钥数字签名和签名验证;若对数据的密码处理是签名验证,则密码处理后的数据是签名验证的结果(如成功或失败)。
[0017]若浏览器需要获得密码处理程序进行密码处理后的数据,则浏览器从Web应用系统获取密码处理程序提交的密码处理后的数据。
[0018]若浏览器调用的本地API需要获得密码处理程序进行密码处理后的数据,则浏览器调用的本地API通过HTTP请求从Web应用系统获取密码处理程序提交的密码处理后的数据;浏览器调用的本地API提交HTTP请求,请求从Web应用系统获取密码处理后的数据时,按会话标识数据提交方式指明的会话标识数据提交或传递方式将会话标识数据同获取密码处理后的数据的HTTP请求一并提交。
[0019]通过以上描述可以看到,基于本发明的方法,用户可将移动终端作为随身携带的密钥存储和密码处理装置并通过移动终端将密码处理后的数据与Web应用系统和/或浏览器进行交互,用户无需使用专门的密码硬件装置,这对用户而言,既操作使用方便,又无需额外开销,而且可在没有USB接口的环境使用。
【附图说明】
[0020]图1为本发明方法的示意图。
【具体实施方式】
[0021]下面结合附图和实施例对本发明作进一步的描述。
[0022]实施本发明的一个关键部分是密码处理程序与Web应用系统之间如何传递会话标识数据。目前的Web应用系统传递会话标识数据的方式包括Cookie、URL编码、隐藏Form表单(Hidden Form)。所谓Cookie方式,即Web应用系统讲会话标识符以作为Cookie设置在用户端浏览器,当用户浏览器每次提交HTTP请求时会自动将作为Cookie的标识符一并提交。所谓URL编码方式,即Web应用系统在动态生成的页面时将会话标识别符编码在访问Web应用系统的URL链接中;而URL编码方式又分有两种方式:一是将会话标识符以虚拟路径的方式编码在URL的路径中,二是将会话标识符以Query String方式编码在URL中。所谓隐藏Form表单方式,即Web应用系统将会话标识符设置在页面的隐藏Form表单中,在用户通过浏览器提交访问请求时会话标识符会作为Form表单数据被提交到Web应用系统。
[0023]若会话标识数据提交方式是通过Cookie,即Web应用系统同浏览器之间通过Cookie传递会话标识符,则密码处理程序提交会话标识数据的实施方案如下:
[0024]浏览器或浏览器调用的本地API通过条码传递的会话标识数据是一个以名字=值(Name = Value)形式出现的数据,其中,名字是会话标识符采用Cookie传递时采用的Cookie名字,值是会话标识符存放在Cookie中的数据,而密码处理程序在将密码处理后的数据提交到Web应用系统的HTTP请求中,直接将名字=值出现的会话标识数据放在HTTP请求的Cookie头部中。
[0025]若会话标识数据提交方式是通过URL的虚拟路径,即Web应用系统同浏览器之间通过URL的虚拟路径传递会话标识符,则密码处理程序提交会话标识数据的实施方案如下:
[0026]浏览器或浏览器调用的本地API通过条码传递的会话标识数据是数据提交地址的一部分(即会话标识数据是数据提交地址的URL路径中的一部分),密码处理程序无需处理会话标识数据。
[0027]若会话标识数据提交方式是通过URL的Query String,即Web应用系统同浏览器之间通过URL的Query String传递会话标识符,则密码处理程序提交会话标识数据的实施方案如下:
[0028]浏览器或浏览器调用的本地API通过条码显示的会话标识数据以Query String的方式编码在数据提交地址中(即会话标识数据是数据提交地址的一部分),密码处理程序无需处理会话标识数据。
[0029]若会话标识数据提交方式是通过URL的隐藏Form表单,即Web应用系统同浏览器之间通过隐藏Form表单传递会话标识符,则密码处理程序提交会话标识数据的实施方案如下:
[0030]浏览器或浏览器调用的本地API通过条码传递的会话标识数据是一个以名字=值对形式出现的数据,其中,名字是会话标识符采用隐藏Form表单传递时的表单输入字段的名字(即input元素的name属性的值),值是会话标识符的存放到表单输入字段中的数据(即input元素的value属性的值),密码处理程序在将密码处理后的数据提交到Web应用系统的HTTP请求中,直接将名字=值出现的会话标识数据作为表单数据同密码处理后的数据一并提交到Web应用系统。
[0031]对于条码,可以采用二维码。二维码的生成目前已是成熟的技术。二维码图片既可以由服务器端Web应用系统生成,也可以由客户端的浏览器生成;若浏览器调用本地API对数据进行密码处理,则二维码还可以由浏览器调用的本地API生成。无论在何处生成,有许多工具包括免费工具可使用(可从网络获得)。
[0032]若浏览器需要从Web应用系统获得密码处理程序提交的密码处理后的数据,则浏览器可采用Ajax (Asynchronous JavaScript and XML)或其他异步传输方式从Web应用系统获得密码处理后的数据。
[0033]密码处理程序可使用适合于用户所用移动终端的开发技术开发,比如对安卓移动终端可使用J2ME开发;对1S终端可使用Objective-C开发。目前的移动终端(包括手机、平板电脑)都有摄像头。目前有很多适用于移动终端的条码扫描APP或动态库、类库,密码处理程序可直接利用这些条码扫描APP、动态库、类库(甚至自己开发)。
[0034]密码处理程序通常是通过密码模块来使用存储在移动终端中的用户密钥并进行数据的密码处理的,故在移动终端中需要实施一个密码模块,这个密码模块负责密钥管理,包括密钥生成、存储和删除,以及数据的密码处理,包括加密、解密,数字签名及签名验证。由于通过二维码表示的数据毕竟有限,因此,非对称密钥加密、解密的数据(待密码处理的数据)主要是随机对称密钥,而对称密钥加密、解密的数据主要是基于对称密钥的挑战-响应式身份鉴别中的挑战码;非对称密钥签名、签名验证的数据主要是消息的散列值(消息摘要)和针对散列值生成的签名的数据(私钥加密的数据),或者是基于非对称密钥的挑战-响应式身份鉴别中的挑战码以及挑战码签名数据;而对称密钥签名、签名验证的数据主要是消息的散列值(消息摘要)和针对散列值生成的HMAC签名数据(Key HMAC),或者是基于对称密钥的挑战-响应式身份鉴别中的挑战码以及挑战码签名数据。
[0035]其他未说明的具体技术实施,对于相关领域的技术人员而言是众所周知,不言自明的。
【主权项】
1.一种Web应用中基于移动终端的密码数据处理与交互方法,其特征是,所述方法如下: 在用户的移动终端中安装一个密码处理程序,并将用户的密钥存放在移动终端中;所述用户密钥包括对称密钥和/或非对称密钥;所述移动终端是访问Web应用系统的用户所持有的移动计算设备;所述移动终端有摄像头和条码扫描程序用于条码扫描和条码数据读取;所述条码扫描程序被密码处理程序调用,用于获取以条码形式显示的数据;所述密码处理程序是一个运行在用户移动终端中的、对数据进行密码处理的程序;所述Web应用系统是一个通过网络向用户提供功能服务的系统,用户通过运行在计算机中的浏览器访问Web应用系统;对于浏览器与Web应用系统之间的会话连接,Web应用系统分配有一个会话标识符,Web应用系统同浏览器之间通过传递会话标识符来维护和识别会话连接;所述会话连接是浏览器和Web应用系统之间的逻辑连接; 当用户使用浏览器与Web应用系统进行交互的过程中需要使用存放在移动终端中的密钥对待提交到Web应用系统的数据或Web应用系统返回的数据进行密码处理时,用户、浏览器或浏览器调用的本地AP1、密码处理程序按如下方式对待密码处理的数据进行操作处理: 第一步:浏览器或浏览器调用的本地API将待密码处理的数据、数据提交地址、浏览器与Web应用系统之间会话连接的会话标识数据以及会话标识数据提交方式以条码的形式显示在浏览器上或浏览器调用的本地API的人机界面上,其中,数据提交地址是将密码处理后的数据提交到Web应用系统的地址,会话标识数据提交方式用于指明浏览器在提交HTTP请求时通过何种方式将包含会话标识符的会话标识数据提交或传递到Web应用系统; 第二步:用户使用运行有密码处理程序的移动终端对浏览器或浏览器调用的本地API显示的条码进行扫描; 第三步:密码处理程序从扫描的条码中获得待密码处理的数据、数据提交地址、会话标识数据以及会话标识数据提交方式; 第四步:用户通过密码处理程序使用存储在移动终端中的密钥对待密码处理的数据进行密码处理,形成密码处理后的数据; 第五步:密码处理程序根据数据提交地址通过HTTP协议将密码处理后的数据提交到Web应用系统,密码处理程序提交密码处理后的数据的同时,按会话标识数据提交方式指明的会话标识数据提交或传递方式将会话标识数据一并提交。2.根据权利要求1所述的Web应用中基于移动终端的密码数据处理与交互方法,其特征是: 对数据的密码处理包括加密、解密、数字签名、签名验证;所述数字签名和签名验证包括对称密钥数字签名和签名验证,以及非对称密钥数字签名和签名验证;若对数据的密码处理是签名验证,则密码处理后的数据是签名验证的结果。3.根据权利要求1所述的Web应用中基于移动终端的密码数据处理与交互方法,其特征是: 若浏览器需要获得密码处理程序进行密码处理后的数据,则浏览器从Web应用系统获取密码处理程序提交的密码处理后的数据。4.根据权利要求1所述的Web应用中基于移动终端的密码数据处理与交互方法,其特征是: 若浏览器调用的本地API需要获得密码处理程序进行密码处理后的数据,则浏览器调用的本地API通过HTTP请求从Web应用系统获取密码处理程序提交的密码处理后的数据;浏览器调用的本地API提交HTTP请求,请求从Web应用系统获取密码处理后的数据时,按会话标识数据提交方式指明的会话标识数据提交或传递方式将会话标识数据同获取密码处理后的数据的HTTP请求一并提交。5.根据权利要求1所述的Web应用中基于移动终端的密码数据处理与交互方法,其特征是: 若会话标识数据提交方式是通过Cookie,则浏览器或浏览器调用的本地API通过条码传递的会话标识数据是一个以名字=值形式出现的数据,其中,名字,是会话标识符采用Cookie传递时采用的Cookie名字,值,是会话标识符存放在Cookie中的数据,而密码处理程序在将密码处理后的数据提交到Web应用系统的HTTP请求中,直接将名字=值出现的会话标识数据放在HTTP请求的Cookie头部中。6.根据权利要求1所述的Web应用中基于移动终端的密码数据处理与交互方法,其特征是: 若会话标识数据提交方式是通过URL的虚拟路径,则浏览器或浏览器调用的本地API通过条码传递的会话标识数据是数据提交地址的一部分,而密码处理程序不对会话标识数据作处理。7.根据权利要求1所述的Web应用中基于移动终端的密码数据处理与交互方法,其特征是: 若会话标识数据提交方式是通过URL的Query String,则浏览器或浏览器调用的本地API通过条码传递的会话标识数据以Query String的方式编码在数据提交地址中,而密码处理程序不对会话标识数据作处理。8.根据权利要求1所述的Web应用中基于移动终端的密码数据处理与交互方法,其特征是: 若会话标识数据提交方式是通过隐藏Form表单,则浏览器或浏览器调用的本地API通过条码传递的会话标识数据是一个以名字=值对形式出现的数据,其中,名字是会话标识符采用隐藏Form表单传递时的表单输入字段的名字,值是会话标识符存放到表单输入字段中的数据,而密码处理程序将名字=值对形式出现的会话标识数据作为Form表单数据同密码处理后的数据一并提交到Web应用系统。
【专利摘要】本发明涉及一种Web应用中基于移动终端的密码数据处理与交互方法,所述方法是:浏览器或浏览器调用的本地API将待密码处理的数据、数据提交地址、维护浏览器与Web应用系统之间会话连接的会话标识数据及会话标识数据提交方式以条码的形式显示;用户使用运行有密码处理程序的移动终端对显示的条码进行扫描并从扫描的条码中获得相应数据;用户通过密码处理程序使用存储在移动终端中的密钥对待密码处理的数据进行密码处理,形成密码处理后的数据;密码处理程序根据数据提交地址将密码处理后的数据提交到Web应用系统,提交密码处理后的数据的同时按会话标识数据提交方式将会话标识数据一并提交。所述方法使得移动终端可以作为密码装置用于数据的密码处理。
【IPC分类】H04L9/32, H04L29/06, H04L29/08
【公开号】CN104901951
【申请号】CN201510196956
【发明人】龙毅宏
【申请人】武汉理工大学
【公开日】2015年9月9日
【申请日】2015年4月23日