CN104077179B - 一种面向Web浏览器的本地API调用方法 - Google Patents
一种面向Web浏览器的本地API调用方法 Download PDFInfo
- Publication number
- CN104077179B CN104077179B CN201410268827.0A CN201410268827A CN104077179B CN 104077179 B CN104077179 B CN 104077179B CN 201410268827 A CN201410268827 A CN 201410268827A CN 104077179 B CN104077179 B CN 104077179B
- Authority
- CN
- China
- Prior art keywords
- agent
- browser
- information system
- web information
- local api
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及一种面向Web浏览器的本地API调用方法,其特征是:在用户使用浏览器访问Web信息系统过程中,若浏览器在显示和处理Web信息系统的返回结果时需要调用用户计算设备的本地API,则浏览器通过网络通信方式将调用请求提交到浏览器所在用户计算设备的一个代理程序,由代理程序调用本地API,代理程序将调用本地API的结果返回到浏览器;若被调用的本地API涉及敏感资源或功能的使用,则代理程序在调用本地API前通过提示用户的方式或者在代理程序与Web信息系统之间建立安全会话的方式保护敏感资源或功能的使用;所述安全会话方式包括使用会话标识、数据加密和HMAC签名。
Description
技术领域
本发明属于Web信息技术领域,特别是一种面向Web浏览器的本地API调用方法。
背景技术
当用户使用浏览器访问Web信息系统(或应用系统)的过程中,常常需要调用用户计算设备本地的API,如动态库、COM组件、系统API等。但是,出于安全考虑,各种浏览器都禁止直接本地API。为了解决这一问题,有些浏览器允许通过安全插件或控件(经数字签名的插件或控件,如Mozilla Plug-in、IE ActiveX)调用用户计算设备本地的API。插件或控件的问题在于:(1)不是所有的浏览器或者运行在所有用户平台的浏览器都支持插件或控件;(2)Web信息系统开发者需要针对不同的浏览器或用户平台开发相应的插件或控件(因为不同浏览器或运行在不同用户平台上的浏览器的插件或控件的机制和代码会不同)。这使得Web信息系统要同时支持多种不同的浏览器变得非常困难。除了插件或控件,有的浏览器厂家还提出了其他技术,如Google的Native Client(NaCI)沙袋技术。但Native Client技术的问题在于:(1)仅适合于Google浏览器;(2)调用的本地API的执行是受限的。
发明内容
本发明的目的是提出一种适合不同浏览器的面向Web浏览器的本地API调用方法,以克服现有技术的不足。
为了实现上述目的,本发明所采用的技术方案是:
一种面向Web浏览器的本地API调用方法,其特征是:
在用户使用浏览器访问Web信息系统(或应用系统)的过程中,若浏览器在显示和处理Web信息系统的返回结果时需要调用用户计算设备本地的API(本地API),则浏览器通过网络通信方式(如HTTP)将调用请求提交到用户计算设备的一个代理程序,由代理程序调用本地API,并由代理程序将调用本地API的结果返回到浏览器;若被调用的本地API涉及敏感资源或功能的使用,则代理程序在调用本地API前先通过提示用户的方式或者通过在代理程序与Web信息系统之间建立安全会话的方式保护敏感资源或功能的使用;代理程序与Web信息系统之间建立安全会话的操作由Web信息系统在浏览器向代理程序提交本地API调用请求前发起(Web信息系统发起),或者由代理程序在接收到本地API调用请求后执行本地API调用前发起(代理程序发起)。
若被调用的本地API涉及敏感资源或功能的使用,则代理程序在调用本地API前先弹出一个人机交互界面,提示用户当前浏览器正在使用敏感资源或功能,询问用户是否继续,若用户选择继续则调用本地API;否则中止本地API的调用。
或者,若被调用的本地API涉及敏感资源或功能的使用且浏览器提交给代理程序的本地API调用请求中包含有Web信息系统的安全身份令牌(由一个可信的系统或机构签发),则代理程序在调用本地API前先验证安全身份令牌的有效性(安全身份令牌可通过数字签名技术保证其有效性),验证通过后弹出一个人机交互界面,向用户显示浏览器正在访问的Web信息系统并提示用户Web信息系统正在使用敏感资源或功能,然后询问用户是否继续,若用户选择继续,则调用本地API;否则,中止本地API的调用。
或者,若被调用的本地API涉及敏感资源或功能且浏览器提交给代理程序的本地API调用请求中包含有Web信息系统对请求数据的数字签名,则代理程序在调用本地API前先验证请求数据的数字签名的有效性,验证通过后弹出一个人机交互界面,向用户显示浏览器正在访问的Web信息系统(通过数字签名获知Web系信息系统名称或标识)并提示用户Web信息系统正在使用敏感资源或功能,然后询问用户是否继续,若用户选择继续,则调用本地API;否则,中止本地API的调用。
若被调用的本地API涉及敏感资源或功能,则代理程序在允许浏览器调用本地API前,在代理程序与Web信息系统之间建立安全会话的具体方式如下:
代理程序通过浏览器向Web应用程序返回一个随机字串(随机生成的字串);Web应用程序接收到随机字串后使用自己的私钥对随机字串签名,然后通过浏览器将签名的随机字串返回给代理程序;代理程序对接收到的签名的随机字串的签名有效性进行验证,验证通过后通过浏览器向Web应用程序返回一个会话标识(Session ID);之后Web应用程序通过浏览器向代理程序提交的调用本地API的请求数据中包含有会话标识;当代理程序接收到Web信息系统通过浏览器提交的调用本地API的请求后,先检查调用数据中是否有代理程序之前返回给Web信息系统的会话标识,若有,则继续调用操作;否则,中止调用操作。
或者,若被调用的本地API涉及敏感资源或功能,则代理程序在允许浏览器调用本地API前,在代理程序与Web信息系统之间建立安全会话的具体方式如下:
代理程序通过浏览器获取Web信息系统的公钥,之后用Web信息系统的公钥加密一个在代理程序本地产生的会话标识,然后通过浏览器将加密后的会话标识返回到Web信息系统;
Web信息系统接收到加密的会话标识后,利用自己的私钥解密加密的会话标识从而获得会话标识,之后在Web信息系统通过浏览器提交到代理程序的调用本地API的请求数据中包含会话标识;
当代理程序接收到Web信息系统通过浏览器提交的调用本地API的请求后,先检查调用数据中是否有代理程序之前返回给Web信息系统的会话标识,若有,则继续调用操作;否则,中止调用操作;
其中,代理程序通过浏览器从Web信息系统获取的Web信息系统公钥包括公钥数字证书或IBC公钥(IBC,Identity-Based Cryptography)或其他安全发布的公钥;所述IBC公钥是Web信息系统的一个标识(Web信息系统的网络域名);
若Web信息系统的公钥是IBC公钥,则代理程序在使用公钥对会话标识加密前不验证公钥的有效性(若Web信息系统不可信,则无法从IBC密钥服务系统获得IBC私钥);否则,代理程序在使用公钥对会话标识加密前先验证公钥的有效性,验证通过后再进行加密处理,验证不通过则中止建立安全会话并报告错误。
代理程序与Web信息系统通过如下方式进一步提高安全会话的安全性:
代理程序在使用Web信息系统的公钥对会话标识加密的同时对一个随机对称密钥(随机生成的对称密钥)加密,然后将加密的会话标识和随机对称密钥通过浏览器返回给Web信息系统;
Web信息系统接收到加密的会话标识和随机对称密钥后,利用自己的私钥解密加密的会话标识和随机对称密钥从而获得会话标识和随机对称密钥,之后Web信息系统通过浏览器向代理程序提交的调用本地API的请求数据中不但包含有会话标识,而且请求数据采用随机对称密钥加密;
代理程序接收到Web信息系统通过浏览器提交的调用本地API的请求后,利用会话标识对应的(保存在本地的)随机对称密钥解密被加密的请求数据,解密成功后调用本地API,若解密失败则中止调用。
或者,代理程序与Web信息系统通过如下方式进一步提高安全会话的安全性:
代理程序在使用Web信息系统的公钥对会话标识加密的同时对一个随机字串加密,然后将加密的会话标识和随机字串通过浏览器返回给Web信息系统;
Web信息系统接收到加密的会话标识和随机字串后,利用自己的私钥解密加密的会话标识和随机字串从而获得会话标识和随机字串,之后Web信息系统通过浏览器向代理程序提交的调用本地API的请求数据中不但包含会话标识,而且请求数据用随机字串进行HMAC(Hashed Message Authentication Code)签名;
代理程序接收到Web信息系统通过浏览器提交的调用本地API的请求后,利用会话标识对应的(保存在本地的)随机字串对请求数据的HMAC签名进行验证,验证成功后调用本地API,若验证失败则中止调用。
基于以上发明内容可看到,基于本发明的方法,浏览器并不直接调用本地API,而是通过一个本地的代理程序来调用,浏览器同代理程序之间通过网络通信方式(如HTTP)进行数据交互,并通过多种方案(具体实施时可根据需要只实施其中一种方案)来保证调用本地API的安全,即保证只有可信的Web信息系统才能通过代理程序调用本地API。相对通常的针对浏览器的本地API调用方案,本发明优点包括:1)无需开发插件和控件;2)不受浏览器和浏览器运行平台的限制;3)适合于各种不同的本地API。
附图说明
图1为本发明的方法的示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的描述。
代理程序的开发可以采用适合于用户计算设备并能够调用本地API的程序开发技术,比如,若用户计算设备的操作系统是Windows而本地API是Windows动态库、COM组件,则可以采用C/C++结合微软的程序开发工具如MFC、ATL等开发。浏览器与代理程序之间的网络通信方式可以采用HTTP。Web信息系统可采用HTML框架(FRAME)技术通过浏览器同代理程序进行交互,包括提交本地API调用请求并获得结果;同时,代理程序可利用自动HTTP POST或GET方式通过浏览器向Web信息系统返回结果或提交请求;或者,浏览器器可借助AJAX和JavaScript在Web信息系统和代理程序之间专递信息和数据。
本发明的公开密钥技术的实施方案,有多种方案可供选择,如公钥数字证书(RSA或ECC)或IBC密码技术,其中采用IBC方案最简单。若采用公钥数字证书,则已是非常成熟的技术,其中代理程序通过调用用户计算设备本地的密码模块,如Windows CSP或PKCS#11,完成各种密码运算。若采用IBC密码技术,则IBC技术的实施可参见IEEE国际标准IEEEStd1363.3-2013:IEEE Standard for Identity-Based Cryptographic Techniquesusing Pairings,22August2013。具体实施任务包括研究开发一个IBC密钥服务系统用于为Web信息系统生成IBC私钥,以及开发一个在用户计算设备进行IBC密码运算的密码模块。
其他未说明的具体技术实施,对于相关领域的技术人员而言是众所周知,不言自明的。
Claims (8)
1.一种面向Web浏览器的本地API调用方法,其特征是:
所述本地API调用方法无需浏览器插件或控件;
在用户使用浏览器访问Web信息系统的过程中,若浏览器在显示和处理Web信息系统的返回结果时需要调用用户计算设备本地的API,则浏览器通过网络通信方式将调用请求提交到用户计算设备的一个代理程序,由代理程序调用本地API,并由代理程序将调用本地API的结果返回到浏览器;所述网络通信方式包括HTTP通信方式;
若被调用的本地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信息系统的会话标识,若有,则继续调用操作;否则,中止调用操作;
其中,代理程序通过浏览器从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,若验证失败则中止调用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410268827.0A CN104077179B (zh) | 2014-06-16 | 2014-06-16 | 一种面向Web浏览器的本地API调用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410268827.0A CN104077179B (zh) | 2014-06-16 | 2014-06-16 | 一种面向Web浏览器的本地API调用方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104077179A CN104077179A (zh) | 2014-10-01 |
CN104077179B true CN104077179B (zh) | 2017-06-06 |
Family
ID=51598449
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410268827.0A Active CN104077179B (zh) | 2014-06-16 | 2014-06-16 | 一种面向Web浏览器的本地API调用方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104077179B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106897153B (zh) * | 2015-12-18 | 2021-07-30 | 阿里巴巴集团控股有限公司 | 调用应用编程接口的方法和系统 |
CN113360812B (zh) * | 2016-03-07 | 2024-02-06 | 创新先进技术有限公司 | 一种业务执行方法及装置 |
CN106599045B (zh) * | 2016-11-09 | 2020-09-29 | 上海艾融软件股份有限公司 | 一种请求发送方法及装置 |
CN109582655B (zh) * | 2018-11-08 | 2021-01-08 | 深圳市云智融科技有限公司 | 系统日志的定位方法及装置、计算机可读存储介质 |
CN112217711B (zh) * | 2020-09-14 | 2022-10-18 | 北京天威诚信电子商务服务有限公司 | 一种微信客户端调用本地功能的方法及系统 |
CN112613025A (zh) * | 2020-12-30 | 2021-04-06 | 宁波三星医疗电气股份有限公司 | 一种计算机上usb设备和浏览器的通信方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102638454A (zh) * | 2012-03-14 | 2012-08-15 | 武汉理工大学 | 一种面向http身份鉴别协议的插件式单点登录集成方法 |
CN102932149A (zh) * | 2012-10-30 | 2013-02-13 | 武汉理工大学 | 一种集成ibe数据加密系统 |
CN103177028A (zh) * | 2011-12-23 | 2013-06-26 | 腾讯科技(深圳)有限公司 | 一种信息交互的方法和系统 |
CN103825724A (zh) * | 2014-02-21 | 2014-05-28 | 武汉理工大学 | 一种自动更新和恢复私钥的标识型密码系统及方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8635701B2 (en) * | 2008-03-02 | 2014-01-21 | Yahoo! Inc. | Secure browser-based applications |
CN103514395B (zh) * | 2012-06-20 | 2016-09-28 | 阿里巴巴集团控股有限公司 | 插件权限控制方法及系统 |
-
2014
- 2014-06-16 CN CN201410268827.0A patent/CN104077179B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103177028A (zh) * | 2011-12-23 | 2013-06-26 | 腾讯科技(深圳)有限公司 | 一种信息交互的方法和系统 |
CN102638454A (zh) * | 2012-03-14 | 2012-08-15 | 武汉理工大学 | 一种面向http身份鉴别协议的插件式单点登录集成方法 |
CN102932149A (zh) * | 2012-10-30 | 2013-02-13 | 武汉理工大学 | 一种集成ibe数据加密系统 |
CN103825724A (zh) * | 2014-02-21 | 2014-05-28 | 武汉理工大学 | 一种自动更新和恢复私钥的标识型密码系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104077179A (zh) | 2014-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104077179B (zh) | 一种面向Web浏览器的本地API调用方法 | |
Lang et al. | Security keys: Practical cryptographic second factors for the modern web | |
CN107733852B (zh) | 一种身份验证方法及装置,电子设备 | |
US9838205B2 (en) | Network authentication method for secure electronic transactions | |
US9231925B1 (en) | Network authentication method for secure electronic transactions | |
US10574648B2 (en) | Methods and systems for user authentication | |
CN104468115B (zh) | 信息系统访问认证方法及装置 | |
US9064094B1 (en) | Protected resource access control utilizing intermediate values of a hash chain | |
CA2742705C (en) | Method and system protecting against identity theft or replication abuse | |
CN106304074B (zh) | 面向移动用户的身份验证方法和系统 | |
US8959335B2 (en) | Secure password-based authentication for cloud computing services | |
CN103795724B (zh) | 一种基于异步动态口令技术的保护账户安全的方法 | |
US10880276B1 (en) | System and method for allowing access to an application or features thereof on each of one or more user devices | |
US20140006781A1 (en) | Encapsulating the complexity of cryptographic authentication in black-boxes | |
CN106612180A (zh) | 实现会话标识同步的方法及装置 | |
CN108616352B (zh) | 基于安全元件的动态口令生成方法和系统 | |
CN101257489A (zh) | 一种保护账号安全的方法 | |
CN110659467A (zh) | 一种远程用户身份认证方法、装置、系统、终端及服务器 | |
JP2017529739A5 (zh) | ||
CN106452772A (zh) | 终端认证方法和装置 | |
US9654466B1 (en) | Methods and systems for electronic transactions using dynamic password authentication | |
CN105447715A (zh) | 用于与第三方合作的防盗刷电子优惠券的方法和装置 | |
CN110677376A (zh) | 认证方法、相关设备和系统及计算机可读存储介质 | |
CN104580256A (zh) | 通过用户设备登录和验证用户身份的方法及设备 | |
CN110830471A (zh) | Otp验证方法、服务器、客户端及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211103 Address after: Room 401a, building 4, yard 7, Shangdi 8th Street, Haidian District, Beijing 100085 Patentee after: ITRUSCHINA CO.,LTD. Address before: 430070 Hubei Province, Wuhan city Hongshan District Luoshi Road No. 122 Patentee before: WUHAN University OF TECHNOLOGY |
|
TR01 | Transfer of patent right |