CN106506672B - 浏览器智能密钥盘的无组件访问方法 - Google Patents
浏览器智能密钥盘的无组件访问方法 Download PDFInfo
- Publication number
- CN106506672B CN106506672B CN201611053427.3A CN201611053427A CN106506672B CN 106506672 B CN106506672 B CN 106506672B CN 201611053427 A CN201611053427 A CN 201611053427A CN 106506672 B CN106506672 B CN 106506672B
- Authority
- CN
- China
- Prior art keywords
- key disk
- component
- browser
- agreement
- jscom
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种浏览器智能密钥盘的无组件访问方法,将密钥盘访问功能封装在密钥盘组件中,浏览器通过JavaScript发送JSCOM协议的内容到基于HTTP协议的组件服务程序,基于HTTP协议的组件服务程序解析JSCOM协议且按照浏览器的要求访问密钥盘组件。采用JS+HTTP+本机应用程序的方式访问电子密钥组件,支持所有浏览器,无需为适配浏览器另行编写插件,可实现自定义JSCOM协议,JSCOM协议可灵活运用,并封装组件的创建、调用方法和属性,能适配于任何组件;其接口简单,易于集成到应用***,且协议可扩展到更多应用场景。
Description
技术领域
本发明属于信息安全技术,尤其涉及一种浏览器智能密钥盘的无组件访问方法。
背景技术
基于ActiveX技术的组件多年来一直是浏览器访问电子密钥盘的强大解决方案,浏览器或者浏览器通过浏览器插件创建密钥盘组件,再通过JavaScript使用密钥盘组件访问电子密钥盘。
但随着越来越多个性化浏览器的出现和流行,同时网页组件技术长期以来存在安全性的问题,使得越来越多的浏览器决定放弃直接加载网页组件,各浏览器的插件技术虽然可以提供强大的桌面应用程序功能,但对每种功能为每个浏览器都开发一个插件会导致大量冗余工作量。出于安全性考虑,越来越多浏览器将不再支持网页内的组件嵌入,这意味着大量传统网页中间件产品,包括电子密钥盘中间件,将不再被新版浏览器支持。
术语解释:
智能密钥盘:一种内置操作***可存放数据的安全硬件设备。
浏览器:显示网站服务器或文件***内的文件,并让用户与此文件交互的一种软件。
HTTP协议:超文本传输协议是互联网上应用最为广泛的一种网络传输协议。
发明内容
本发明的目的是提供一种统一的适配所有浏览器的多浏览器无组件***,具有强大桌面应用程序功能的解决方案,以代替密钥盘组件和浏览器插件技术,为浏览器与密钥盘组件之间搭起一座桥梁,使得浏览器无需加载密钥盘组件,即可通过JavaScript使用密钥盘组件(ActiveX)的功能。
本发明通过以下技术方案实现上述目的。浏览器智能密钥盘的无组件访问方法,将密钥盘访问功能封装在密钥盘组件中,浏览器通过JavaScript发送JSCOM协议的内容到基于HTTP协议的组件服务程序,基于HTTP协议的组件服务程序解析JSCOM协议且按照浏览器的要求访问密钥盘组件;所述密钥盘组件通过密钥盘驱动程序实现密钥盘存取功能,所述组件服务程序负责密钥盘组件;
所述组件服务程序的工作流程如下:
1)浏览器作为客户端发起GetSealInfo功能要求,浏览器通过JavaScript先把GetSealInfo功能要求按照JSCOM协议规范打包,再通过HTTP发送到组件服务程序;
2)组件服务程序解析收到的HTTP数据包;
3)根据解析的内容,创建密钥盘组件对象,如果对象已创建,则不再创建;
4)调用密钥盘组件对象的GetSealInfo方法获取***信息;
5)密钥盘组件对象通过密钥盘驱动程序找到密钥盘里的***信息;
6)把***信息返回回传给浏览器。
优选地,所述密钥盘组件封装为业务功能接口。
优选地,所述业务功能包括:制作***、删除***、查询***信息和***验证。
优选地,所述密钥盘组件包括创建组件对象、调用接口方法和调用接口属性。
本发明多浏览器无组件方式访问智能密钥盘是基于JavaScript和http网络通信技术,由于JavaScript和http网络通信被所有浏览器默认支持,所以它可以实现不论何种浏览器,不需要编写浏览器插件,不论浏览器是否支持网页组件,都可以使浏览器访问智能电子密钥盘组件。多浏览器无组件***由组件http服务器程序(Server)和前台浏览器应用程序(Browser)组成。Browser通过JavaScript请求Server服务,Server服务实质是执行相应的组件功能。
本发明采用JS+HTTP+本机应用程序的方式访问电子密钥组件,支持所有浏览器,无需为适配浏览器另行编写插件,可实现自定义JSCOM协议,JSCOM协议可灵活运用,并封装组件的创建、调用方法和属性,能适配于任何组件;其接口简单,易于集成到应用***,且协议可扩展到更多应用场景。
附图说明
图1是本发明的***结构框图;
图2是组件服务程序和密钥盘组件关系图;
图3是组件服务程序工作流程图。
具体实施方式
以下结合附图和实施例对本发明作进一步说明。参见图1至图3,浏览器智能密钥盘的无组件访问方法,将密钥盘4访问功能封装在密钥盘组件3中,浏览器1通过JavaScript发送JSCOM协议5的内容到基于HTTP协议的组件服务程序2,基于HTTP协议的组件服务程序2解析JSCOM协议5且按照浏览器1的要求访问密钥盘组件3;所述密钥盘组件3通过密钥盘驱动程序6实现密钥盘4存取功能,所述组件服务程序2负责密钥盘组件3;
所述组件服务程序2的工作流程如下:
1)浏览器1作为客户端发起GetSealInfo功能要求,浏览器1通过JavaScript先把GetSealInfo功能要求按照JSCOM协议5规范打包,再通过HTTP发送到组件服务程序2;
2)组件服务程序2解析收到的HTTP数据包;
3)根据解析的内容,创建密钥盘组件3对象,如果对象已创建,则不再创建;
4)调用密钥盘组件3对象的GetSealInfo方法获取***信息;
5)密钥盘组件3对象通过密钥盘驱动程序6找到密钥盘4里的***信息;
6)把***信息返回回传给浏览器1。
所述密钥盘组件3封装为业务功能接口。所述业务功能包括:制作***、删除***、查询***信息和***验证。所述密钥盘组件3包括创建组件对象31、调用接口方法32和调用接口属性33。
图1是本发明的***结构框图。在现有的浏览器+组件的技术基础上,本发明提出了浏览器+组件服务的另一种访问密钥盘4的方法。密钥盘组件3可保持与现有组件一致(如图1所示),组件服务程序2是本发明的技术核心,如图1所示,组件服务程序2是浏览器1和密钥盘组件3之间的桥梁,它的存在避免了浏览器1和密钥盘组件3直接连接存在的种种弊端。
组件服务程序2与密钥盘组件3的关系,及其工作流程如图2、图3所示。浏览器1通过JavaScript与组件服务程序2交互;浏览器1使用JavaScript代码把调用密钥盘组件3的意图用JSCOM协议5封装后通过HTTP协议发起获取***信息请求(GetSealInfo)301发送到组件服务程序2;组件服务程序2使用JSCOM协议解析器302解析出JSCOM协议5的内容的意图是调用密钥盘组件3的GetSealInfo方法,根据JSCOM协议5的内容,首先判断密钥盘组件是否已创建303:如果没有,则创建组件COM对象31,即把密钥盘组件加载进内存创建组件对象304;如果已创建,则根据JSCOM协议5内容的意图,调用密钥盘组件3的调用接口方法32或/和调用接口属性33,即调用密钥盘组件3的GetSealInfo方法305,最后返回结果306至浏览器发起获取***信息请求301。
JSCOM协议5是一个描述对密钥盘组件3发起一次命令或功能调用的协议。例如,可以描述要求使用智能密钥盘组件3的获取***信息(GetSealInfo)301功能。JSCOM协议5本质是JSON格式字符串,以下是JSCOM协议5详细说明:
(1)组件创建:
创建密钥盘组件3并获取某接口内存地址。特性:密钥盘组件3实际是由组件服务程序2创建,并驻留在组件服务程序2的进程里。JSCOM协议5的密钥盘组件3创建协议如下:
;
“GetInterface”51是协议关键字(后简称关键字),表示浏览器1要求得到密钥盘组件3的某接口;“progid”52、“interface”54是关键字,分别表示密钥盘组件3的CLASSID和接口的GUID在JSON格式中的名称,“B85036A9-DAAF-409B-822D-22B56CE32825” 53、“B4813745-79B9-4336-8D646F4099561ACC” 55分别是密钥盘组件3的CLASSID和接口GUID在JSON格式中的值对。
(2)组件方法调用:
调用密钥盘组件3的接口的方法。用HTTP GET方式调用接口地址为(示例中是12345678)的接口上的方法。特性:网页脚本发送命令给服务端程序,服务端程序代为调用密钥盘组件3的方法,并回传方法的返回值。JSCOM协议5的密钥盘组件3接口方法调用协议如下:
;
“MethodCall”60是关键字,表示浏览器要求调用密钥盘组件的某接口上的方法;“caller” 61是关键字,表示接口内存地址在JSON格式中的名称,62是接口内存地址在JSON格式中的值对;“function ”63是关键字,表示接口的方法名在JSON格式中的名称,“hello”64是接口的方法名在JSON格式中的值对;params 65是关键字,表示接口方法的参数在JSON格式中的名称,“type”66、“BSTR”67、“value”68、“this is a string”69是接口方法的参数(后简称参数)在JSON格式中的值对,其中“type”66是关键字,表示参数的类型在JSON格式中的名称,“BSTR”67表示参数类型在JSON格式中的值对,“value”68是关键字,表示参数值在JSON格式中的名称,“this is a string”69表示参数值在JSON格式中的值对;如果方法有多个参数,可以按照JSON格式规范,对“params”65的值对进行扩展。
(3)属性调用:
设置或读取密钥盘组件3的属性,用HTTP GET方式获取接口地址为(示例中是12345678)的接口上的属性值。特性:网页脚本发送命令给服务端程序,服务端程序代为设置或读取密钥盘组件3的属性。JSCOM协议5的密钥盘组件3接口属性调用协议如下:
;
“PropertyCall”71是关键字,表示浏览器1要求调用密钥盘组件3的某接口上的属性;“caller”72是关键字,表示接口内存地址在JSON格式中的名称,“12345678”73是接口内存地址在JSON格式中的值对;“property”74是关键字,表示接口的属性名在JSON格式中的名称,“PropName”75是接口的属性名在JSON格式中的值对。
(4)属性和方法的返回值:
调用密钥盘组件3的接口方法或属性后得到的返回值。特性:网页脚本发送命令给服务端程序,服务端程序调用接口的方法后或读取密钥盘组件3的属性后得到的返回值。JSCOM协议5的密钥盘组件3返回值协议如下:
;
“type”81是关键字,表示返回值类型在JSON格式中的名称,“LONG”82是返回值类型在JSON格式中的值对;“value”83是关键字,表示返回值的值在JSON格式中的名称,“100”84是返回值的值在JSON格式中的值对。
实施例:以下介绍本发明的一个较佳实施案例:
电子签章平台应用多浏览器无组件***。由于签章key的相关操作是硬件驱动层的功能,网页JavaScript无法单独完成,在没有多浏览器无组件***时,网页需要加载封装了驱动层功能的组件,这将造成部分浏览器的不支持。通过多浏览器无组件***访问***级程序, 网页可以不加载密钥盘组件3,从而消除了浏览器1和密钥盘组件3的相关性,实现了所有浏览器对***级程序的支持。
本发明的组件服务程序2,用于管理智能密钥盘组件3接口,制定前台浏览器1的JavaScript调用时的访问协议(JSCOM协议5),并依此协议提供密钥盘组件3的方法和属性访问;定义一套基本的接口方法、属性访问的协议;定义了密钥盘组件3的创建和接口查询的方式;定义了根据密钥盘组件3某接口的内存地址调用接口方法;定义了根据密钥盘组件3某接口的内存地址设置和获取接口属性值;定义了调用接口方法和属性获得的返回值。浏览器1通过JavaScript于运行在本机的组件服务程序2通过HTTP协议通信,组件服务程序2是为HTTP服务端,本机域名固定为localhost或127.0.0.1;当浏览器1需要使用密钥设备的一些功能时,例如查询密钥设备里存储的***信息,浏览器1的JavaScript会向已在本机后台运行的组件服务程序2发送JSCOM协议5的创建密钥盘组件3指令,组件服务程序2收到指令后把密钥盘组件3加载进内存,并且把密钥盘组件3的接口地址以JSCOM返回值格式返回给浏览器1;浏览器1再给组件服务程序2发送调用接口方法即查询***信息的指令,组件服务程序2调用内存中的密钥盘组件3查询密钥设备中的***信息后以JSCOM返回值格式返回给浏览器1。
Claims (4)
1.浏览器智能密钥盘的无组件访问方法,其特征在于,将密钥盘访问功能封装在密钥盘组件中,浏览器通过JavaScript发送JSCOM协议的内容到基于HTTP协议的组件服务程序,基于HTTP协议的组件服务程序解析JSCOM协议且按照浏览器的要求访问密钥盘组件;所述密钥盘组件通过密钥盘驱动程序实现密钥盘存取功能,所述组件服务程序负责密钥盘组件;
所述组件服务程序的工作流程如下:
1)浏览器作为客户端发起GetSealInfo功能要求,浏览器通过JavaScript先把GetSealInfo功能要求按照JSCOM协议规范打包,再通过HTTP发送到组件服务程序;
2)组件服务程序解析收到的HTTP数据包;
3)根据解析的内容,创建密钥盘组件对象,如果对象已创建,则不再创建;
4)调用密钥盘组件对象的GetSealInfo方法获取***信息;
5)密钥盘组件对象通过密钥盘驱动程序找到密钥盘里的***信息;
6)把***信息返回回传给浏览器;
所述JSCOM协议是一个描述对密钥盘组件发起一次命令或功能调用的协议,描述要求使用智能密钥盘组件的获取***信息功能,JSCOM协议本质是JSON格式字符串,并封装组件的创建、调用方法和属性。
2.根据权利要求1所述的浏览器智能密钥盘的无组件访问方法,其特征在于,所述密钥盘组件封装为业务功能接口。
3.根据权利要求2所述的浏览器智能密钥盘的无组件访问方法,其特征在于,所述业务功能包括:制作***、删除***、查询***信息和***验证。
4.根据权利要求1所述的浏览器智能密钥盘的无组件访问方法,其特征在于,所述密钥盘组件包括创建组件对象、调用接口方法和调用接口属性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611053427.3A CN106506672B (zh) | 2016-11-25 | 2016-11-25 | 浏览器智能密钥盘的无组件访问方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611053427.3A CN106506672B (zh) | 2016-11-25 | 2016-11-25 | 浏览器智能密钥盘的无组件访问方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106506672A CN106506672A (zh) | 2017-03-15 |
CN106506672B true CN106506672B (zh) | 2019-10-08 |
Family
ID=58328849
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611053427.3A Active CN106506672B (zh) | 2016-11-25 | 2016-11-25 | 浏览器智能密钥盘的无组件访问方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106506672B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107317867B (zh) * | 2017-07-03 | 2021-04-06 | 飞天诚信科技股份有限公司 | 一种通过网页脚本访问智能密钥设备的方法及*** |
CN107729164A (zh) * | 2017-10-11 | 2018-02-23 | 江西金格科技股份有限公司 | 基于进程间通信技术访问智能密钥盘的方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6691176B1 (en) * | 1999-11-04 | 2004-02-10 | Microsoft Corporation | Method for managing client services across browser pages |
US8209408B1 (en) * | 2006-05-01 | 2012-06-26 | Vmware, Inc. | Multiple virtual machine consoles in a single interface |
CN101246565A (zh) * | 2007-07-31 | 2008-08-20 | 北京科翰软件有限公司 | 网页电子签章中间件*** |
CN101321209B (zh) * | 2008-06-19 | 2011-11-16 | 上海软中信息技术有限公司 | 基于pstn的安全通信分布式数据提取方法及实现*** |
US8938465B2 (en) * | 2008-09-10 | 2015-01-20 | Samsung Electronics Co., Ltd. | Method and system for utilizing packaged content sources to identify and provide information based on contextual information |
US9772831B2 (en) * | 2010-04-26 | 2017-09-26 | Pivotal Software, Inc. | Droplet execution engine for dynamic server application deployment |
CN105302564B (zh) * | 2015-11-09 | 2018-08-31 | 中国人民解放军91655部队 | 网络办公软件服务控件及实现方法 |
-
2016
- 2016-11-25 CN CN201611053427.3A patent/CN106506672B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106506672A (zh) | 2017-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2183721B1 (en) | Secure inter-module communication mechanism | |
US6757708B1 (en) | Caching dynamic content | |
US8073810B2 (en) | Shared view of customers across business support systems (BSS) and a service delivery platform (SDP) | |
US7571208B2 (en) | Creating proxies from service description metadata at runtime | |
US8423527B2 (en) | Enabling interactive integration of network-accessible applications in a content aggregation framework | |
US9684628B2 (en) | Mechanism for inserting trustworthy parameters into AJAX via server-side proxy | |
US9143378B2 (en) | Rendering components within different browser environments | |
US20080077851A1 (en) | Method and apparatus for inserting jsr 168 portlet content into a j2ee java server page | |
IL156525A (en) | Method and system for answering information queries from a network customer | |
CN101266623A (zh) | 一种页面跳转的方法和*** | |
US7783751B2 (en) | Communication system, proxy server, method of controlling same and control program therefor | |
CN102868719A (zh) | 一种基于缓存的网络访问方法和服务器 | |
WO2001077909A2 (en) | Web portholes: using web proxies to capture and enhance display real estate | |
CN106897336A (zh) | 网页文件发送方法、网页渲染方法及装置、网页渲染*** | |
CN104391868A (zh) | 动态页面静态化的装置和方法 | |
US20090198828A1 (en) | Web page data streaming | |
CN104572099B (zh) | 基于组件和中间件的低耦合框架数据处理方法及*** | |
US20140245124A1 (en) | System and method thereof for browser agnostic extension models | |
CN106506672B (zh) | 浏览器智能密钥盘的无组件访问方法 | |
CN104123143A (zh) | 用户控件加载***及方法 | |
US20100083078A1 (en) | Proxy server, and method and program for controlling same | |
US20070283281A1 (en) | Portlet Communication Arrangements, Portlet Containers, Methods of Communicating Between Portlets, and Methods of Managing Portlet Communication Arrangements Within a Portal | |
US7890487B1 (en) | Facilitating client-side data-management for web-based applications | |
CN102984179A (zh) | 一种面向云计算操作***进行Web服务跨域访问的方法 | |
US20060168102A1 (en) | Cooperation between web applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 330096 15th floor, lvyue science and technology building, 579 torch street, high tech Zone, Nanchang City, Jiangxi Province Patentee after: Jiangxi Jinge Technology Co.,Ltd. Address before: 330096 15th floor, lvyue science and technology building, 579 torch street, high tech Zone, Nanchang City, Jiangxi Province Patentee before: JIANGXI KINGGRID TECHNOLOGY CO.,LTD. |