一种面向Web浏览器的本地API调用方法

文档序号:6549851阅读:2911来源:国知局
一种面向Web浏览器的本地API调用方法
【专利摘要】本发明涉及一种面向Web浏览器的本地API调用方法,其特征是:在用户使用浏览器访问Web信息系统过程中,若浏览器在显示和处理Web信息系统的返回结果时需要调用用户计算设备的本地API,则浏览器通过网络通信方式将调用请求提交到浏览器所在用户计算设备的一个代理程序,由代理程序调用本地API,代理程序将调用本地API的结果返回到浏览器;若被调用的本地API涉及敏感资源或功能的使用,则代理程序在调用本地API前通过提示用户的方式或者在代理程序与Web信息系统之间建立安全会话的方式保护敏感资源或功能的使用;所述安全会话方式包括使用会话标识、数据加密和HMAC签名。
【专利说明】—种面向Web浏览器的本地API调用方法

【技术领域】
[0001]本发明属于Web信息【技术领域】,特别是一种面向Web浏览器的本地API调用方法。

【背景技术】
[0002]当用户使用浏览器访问Web信息系统(或应用系统)的过程中,常常需要调用用户计算设备本地的API,如动态库、COM组件、系统API等。但是,出于安全考虑,各种浏览器都禁止直接本地API。为了解决这一问题,有些浏览器允许通过安全插件或控件(经数字签名的插件或控件,如Mozilla Plug-1n、IE ActiveX)调用用户计算设备本地的API。插件或控件的问题在于:(I)不是所有的浏览器或者运行在所有用户平台的浏览器都支持插件或控件;(2)Web信息系统开发者需要针对不同的浏览器或用户平台开发相应的插件或控件(因为不同浏览器或运行在不同用户平台上的浏览器的插件或控件的机制和代码会不同)。这使得Web信息系统要同时支持多种不同的浏览器变得非常困难。除了插件或控件,有的浏览器厂家还提出了其他技术,如Google的Native Client (NaCI)沙袋技术。但Native Client技术的问题在于:(I)仅适合于Google浏览器;(2)调用的本地API的执行是受限的。


【发明内容】

[0003]本发明的目的是提出一种适合不同浏览器的面向Web浏览器的本地API调用方法,以克服现有技术的不足。
[0004]为了实现上述目的,本发明所采用的技术方案是:
[0005]一种面向Web浏览器的本地API调用方法,其特征是:
[0006]在用户使用浏览器访问Web信息系统(或应用系统)的过程中,若浏览器在显示和处理Web信息系统的返回结果时需要调用用户计算设备本地的API (本地API),则浏览器通过网络通信方式(如HTTP)将调用请求提交到用户计算设备的一个代理程序,由代理程序调用本地API,并由代理程序将调用本地API的结果返回到浏览器;若被调用的本地API涉及敏感资源或功能的使用,则代理程序在调用本地API前先通过提示用户的方式或者通过在代理程序与Web信息系统之间建立安全会话的方式保护敏感资源或功能的使用;代理程序与Web信息系统之间建立安全会话的操作由Web信息系统在浏览器向代理程序提交本地API调用请求前发起(Web信息系统发起),或者由代理程序在接收到本地API调用请求后执行本地API调用前发起(代理程序发起)。
[0007]若被调用的本地API涉及敏感资源或功能的使用,则代理程序在调用本地API前先弹出一个人机交互界面,提示用户当前浏览器正在使用敏感资源或功能,询问用户是否继续,若用户选择继续则调用本地API ;否则中止本地API的调用。
[0008]或者,若被调用的本地API涉及敏感资源或功能的使用且浏览器提交给代理程序的本地API调用请求中包含有Web信息系统的安全身份令牌(由一个可信的系统或机构签发),则代理程序在调用本地API前先验证安全身份令牌的有效性(安全身份令牌可通过数字签名技术保证其有效性),验证通过后弹出一个人机交互界面,向用户显示浏览器正在访问的Web信息系统并提示用户Web信息系统正在使用敏感资源或功能,然后询问用户是否继续,若用户选择继续,则调用本地API ;否则,中止本地API的调用。
[0009]或者,若被调用的本地API涉及敏感资源或功能且浏览器提交给代理程序的本地API调用请求中包含有Web信息系统对请求数据的数字签名,则代理程序在调用本地API前先验证请求数据的数字签名的有效性,验证通过后弹出一个人机交互界面,向用户显示浏览器正在访问的Web信息系统(通过数字签名获知Web系信息系统名称或标识)并提示用户Web信息系统正在使用敏感资源或功能,然后询问用户是否继续,若用户选择继续,则调用本地API ;否则,中止本地API的调用。
[0010]若被调用的本地API涉及敏感资源或功能,则代理程序在允许浏览器调用本地API前,在代理程序与Web信息系统之间建立安全会话的具体方式如下:
[0011]代理程序通过浏览器向Web应用程序返回一个随机字串(随机生成的字串);Web应用程序接收到随机字串后使用自己的私钥对随机字串签名,然后通过浏览器将签名的随机字串返回给代理程序;代理程序对接收到的签名的随机字串的签名有效性进行验证,验证通过后通过浏览器向Web应用程序返回一个会话标识(Sess1n ID);之后Web应用程序通过浏览器向代理程序提交的调用本地API的请求数据中包含有会话标识;当代理程序接收到Web信息系统通过浏览器提交的调用本地API的请求后,先检查调用数据中是否有代理程序之前返回给Web信息系统的会话标识,若有,则继续调用操作;否则,中止调用操作。
[0012]或者,若被调用的本地API涉及敏感资源或功能,则代理程序在允许浏览器调用本地API前,在代理程序与Web信息系统之间建立安全会话的具体方式如下:
[0013]代理程序通过浏览器获取Web信息系统的公钥,之后用Web信息系统的公钥加密一个在代理程序本地产生的会话标识,然后通过浏览器将加密后的会话标识返回到Web信息系统;
[0014]Web信息系统接收到加密的会话标识后,利用自己的私钥解密加密的会话标识从而获得会话标识,之后在Web信息系统通过浏览器提交到代理程序的调用本地API的请求数据中包含会话标识;
[0015]当代理程序接收到Web信息系统通过浏览器提交的调用本地API的请求后,先检查调用数据中是否有代理程序之前返回给Web信息系统的会话标识,若有,则继续调用操作;否则,中止调用操作;
[0016]其中,代理程序通过浏览器从Web信息系统获取的Web信息系统公钥包括公钥数字证书或IBC公钥(IBC, Identity-Based Cryptography)或其他安全发布的公钥;所述IBC公钥是Web信息系统的一个标识(Web信息系统的网络域名);
[0017]若Web信息系统的公钥是IBC公钥,则代理程序在使用公钥对会话标识加密前不验证公钥的有效性(若Web信息系统不可信,则无法从IBC密钥服务系统获得IBC私钥);否则,代理程序在使用公钥对会话标识加密前先验证公钥的有效性,验证通过后再进行加密处理,验证不通过则中止建立安全会话并报告错误。
[0018]代理程序与Web信息系统通过如下方式进一步提高安全会话的安全性:
[0019]代理程序在使用Web信息系统的公钥对会话标识加密的同时对一个随机对称密钥(随机生成的对称密钥)加密,然后将加密的会话标识和随机对称密钥通过浏览器返回给Web信息系统;
[0020]Web信息系统接收到加密的会话标识和随机对称密钥后,利用自己的私钥解密加密的会话标识和随机对称密钥从而获得会话标识和随机对称密钥,之后Web信息系统通过浏览器向代理程序提交的调用本地API的请求数据中不但包含有会话标识,而且请求数据采用随机对称密钥加密;
[0021]代理程序接收到Web信息系统通过浏览器提交的调用本地API的请求后,利用会话标识对应的(保存在本地的)随机对称密钥解密被加密的请求数据,解密成功后调用本地API,若解密失败则中止调用。
[0022]或者,代理程序与Web信息系统通过如下方式进一步提高安全会话的安全性:
[0023]代理程序在使用Web信息系统的公钥对会话标识加密的同时对一个随机字串加密,然后将加密的会话标识和随机字串通过浏览器返回给Web信息系统;
[0024]Web信息系统接收到加密的会话标识和随机字串后,利用自己的私钥解密加密的会话标识和随机字串从而获得会话标识和随机字串,之后Web信息系统通过浏览器向代理程序提交的调用本地API的请求数据中不但包含会话标识,而且请求数据用随机字串进行HMAC (Hashed Message Authenticat1n Code)签名;
[0025]代理程序接收到Web信息系统通过浏览器提交的调用本地API的请求后,利用会话标识对应的(保存在本地的)随机字串对请求数据的HMAC签名进行验证,验证成功后调用本地API,若验证失败则中止调用。
[0026]基于以上
【发明内容】
可看到,基于本发明的方法,浏览器并不直接调用本地API,而是通过一个本地的代理程序来调用,浏览器同代理程序之间通过网络通信方式(如HTTP)进行数据交互,并通过多种方案(具体实施时可根据需要只实施其中一种方案)来保证调用本地API的安全,即保证只有可信的Web信息系统才能通过代理程序调用本地API。相对通常的针对浏览器的本地API调用方案,本发明优点包括:1)无需开发插件和控件;2)不受浏览器和浏览器运行平台的限制;3)适合于各种不同的本地API。

【专利附图】

【附图说明】
[0027]图1为本发明的方法的示意图。

【具体实施方式】
[0028]下面结合附图和实施例对本发明作进一步的描述。
[0029]代理程序的开发可以采用适合于用户计算设备并能够调用本地API的程序开发技术,比如,若用户计算设备的操作系统是Windows而本地API是Windows动态库、COM组件,则可以采用C/C++结合微软的程序开发工具如MFC、ATL等开发。浏览器与代理程序之间的网络通信方式可以采用HTTP。Web信息系统可采用HTML框架(FRAME)技术通过浏览器同代理程序进行交互,包括提交本地API调用请求并获得结果;同时,代理程序可利用自动HTTP POST或GET方式通过浏览器向Web信息系统返回结果或提交请求;或者,浏览器器可借助AJAX和JavaScript在Web信息系统和代理程序之间专递信息和数据。
[0030]本发明的公开密钥技术的实施方案,有多种方案可供选择,如公钥数字证书(RSA或ECC)或IBC密码技术,其中采用IBC方案最简单。若采用公钥数字证书,则已是非常成熟的技术,其中代理程序通过调用用户计算设备本地的密码模块,如Windows CSP或PKCS#11,完成各种密码运算。若采用IBC密码技术,则IBC技术的实施可参见IEEE国际标准 IEEE Stdl363.3-2013:1EEE Standard for Identity-Based CryptographicTechniques using Pairings, 22August2013。具体实施任务包括研究开发一个IBC密钥服务系统用于为Web信息系统生成IBC私钥,以及开发一个在用户计算设备进行IBC密码运算的密码模块。
[0031]其他未说明的具体技术实施,对于相关领域的技术人员而言是众所周知,不言自明的。
【权利要求】
1.一种面向Web浏览器的本地API调用方法,其特征是: 在用户使用浏览器访问Web信息系统的过程中,若浏览器在显示和处理Web信息系统的返回结果时需要调用用户计算设备本地的API,则浏览器通过网络通信方式将调用请求提交到用户计算设备的一个代理程序,由代理程序调用本地API,并由代理程序将调用本地API的结果返回到浏览器;若被调用的本地API涉及敏感资源或功能的使用,则代理程序在调用本地API前先通过提示用户的方式保护敏感资源或功能的使用,或者通过在代理程序与Web信息系统之间建立安全会话的方式保护敏感资源或功能的使用;所述建立安全会话的操作由Web信息系统在浏览器向代理程序提交本地API调用请求前发起,或者由代理程序在接收到本地API调用请求后执行本地API调用前发起。
2.根据权利要求1所述的面向Web浏览器的本地API调用方法,其特征是:若被调用的本地API涉及敏感资源或功能的使用,则代理程序在调用本地API前先弹出一个人机交互界面,提示用户当前浏览器正在使用敏感资源或功能,询问用户是否继续,若用户选择继续则调用本地API ;否则中止本地API的调用。
3.根据权利要求1所述的面向Web浏览器的本地API调用方法,其特征是:若被调用的本地API涉及敏感资源或功能的使用且浏览器提交给代理程序的本地API调用请求中包含有Web信息系统的安全身份令牌,则代理程序在调用本地API前先验证安全身份令牌的有效性,验证通过后弹出一个人机交互界面,向用户显示浏览器正在访问的Web信息系统并提示用户Web信息系统正在使用敏感资源或功能,然后询问用户是否继续,若用户选择继续,则调用本地API ;否则,中止本地API的调用。
4.根据权利要求1所述的面向Web浏览器的本地API调用方法,其特征是:若被调用的本地API涉及敏感资源或功能且浏览器提交给代理程序的本地API调用请求中包含有Web信息系统对请求数据的数字签名,则代理程序在调用本地API前先验证请求数据的数字签名的有效性,验证通过后弹出一个人机交互界面,向用户显示浏览器正在访问的Web信息系统并提示用户Web信息系统正在使用敏感资源或功能,然后询问用户是否继续,若用户选择继续,则调用本地API ;否则,中止本地API的调用。
5.根据权利要求1所述的面向Web浏览器的本地API调用方法,其特征是:若被调用的本地API涉及敏感资源或功能,则代理程序在允许浏览器调用本地API前,在代理程序与Web信息系统之间建立安全会话的具体方式如下: 代理程序通过浏览器向Web应用程序返回一个随机字串;Web应用程序接收到随机字串后使用自己的私钥对随机字串签名,然后通过浏览器将签名的随机字串返回给代理程序;代理程序对接收到的签名的随机字串的签名有效性进行验证,验证通过后通过浏览器向Web应用程序返回一个会话标识;之后Web应用程序通过浏览器向代理程序提交的调用本地API的请求数据中包含有会话标识;当代理程序接收到Web信息系统通过浏览器提交的调用本地API的请求后,先检查调用数据中是否有代理程序之前返回给Web信息系统的会话标识,若有,则继续调用操作;否则,中止调用操作。
6.根据权利要求1所述的面向Web浏览器的本地API调用方法,其特征是:若被调用的本地API涉及敏感资源或功能,则代理程序在允许浏览器调用本地API前,在代理程序与Web信息系统之间建立安全会话的具体方式如下: 代理程序通过浏览器获取Web信息系统的公钥,之后用Web信息系统的公钥加密一个在代理程序本地产生的会话标识,然后通过浏览器将加密后的会话标识返回到Web信息系统; Web信息系统接收到加密的会话标识后,利用自己的私钥解密加密的会话标识从而获得会话标识,之后在Web信息系统通过浏览器提交到代理程序的调用本地API的请求数据中包含会话标识; 当代理程序接收到Web信息系统通过浏览器提交的调用本地API的请求后,先检查调用数据中是否有代理程序之前返回给Web信息系统的会话标识,若有,则继续调用操作;否贝U,中止调用操作; 其中,代理程序通过浏览器从Web信息系统获取的Web信息系统公钥包括公钥数字证书或IBC公钥或其他安全发布的公钥;所述IBC公钥是Web信息系统的一个标识; 若Web信息系统的公钥是IBC公钥,则代理程序在使用公钥对会话标识加密前不验证公钥的有效性;否则,代理程序在使用公钥对会话标识加密前先验证公钥的有效性,验证通过后再进行加密处理,验证不通过则中止建立安全会话并报告错误。
7.根据权利要求6所述的面向Web浏览器的本地API调用方法,其特征是:代理程序与Web信息系统通过如下方式进一步提高安全会话的安全性: 代理程序在使用Web信息系统的公钥对会话标识加密的同时对一个随机对称密钥加密,然后将加密的会话标识和随机对称密钥通过浏览器返回给Web信息系统; Web信息系统接收到加密的会话标识和随机对称密钥后,利用自己的私钥解密加密的会话标识和随机对称密 钥从而获得会话标识和随机对称密钥,之后Web信息系统通过浏览器向代理程序提交的调用本地API的请求数据中不但包含有会话标识,而且请求数据采用随机对称密钥加密; 代理程序接收到Web信息系统通过浏览器提交的调用本地API的请求后,利用会话标识对应的随机对称密钥解密被加密的请求数据,解密成功后调用本地API,若解密失败则中止调用。
8.根据权利要求6所述的面向Web浏览器的本地API调用方法,其特征是:代理程序与Web信息系统通过如下方式进一步提高安全会话的安全性: 代理程序在使用Web信息系统的公钥对会话标识加密的同时对一个随机字串加密,然后将加密的会话标识和随机字串通过浏览器返回给Web信息系统; Web信息系统接收到加密的会话标识和随机字串后,利用自己的私钥解密加密的会话标识和随机字串从而获得会话标识和随机字串,之后Web信息系统通过浏览器向代理程序提交的调用本地API的请求数据中不但包含会话标识,而且请求数据用随机字串进行HMAC签名; 代理程序接收到Web信息系统通过浏览器提交的调用本地API的请求后,利用会话标识对应的随机字串对请求数据的HMAC签名进行验证,验证成功后调用本地API,若验证失败则中止调用。
【文档编号】G06F9/46GK104077179SQ201410268827
【公开日】2014年10月1日 申请日期:2014年6月16日 优先权日:2014年6月16日
【发明者】龙毅宏 申请人:武汉理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1