基于扩展接口的网银盾调用方法及装置与流程

文档序号:33383722发布日期:2023-03-08 07:07阅读:47来源:国知局
1.本技术涉及金融信息服务
技术领域
:,具体涉及一种基于扩展接口的网银盾调用方法及装置。
背景技术
::2.npapi(netscapepluginapplicationprogramminginterface)为一套跨平台的浏览器的插件应用程序编程接口,实现在浏览器页面上运行应用程序的功能。因此传统的基于npapi接口库的浏览器插件,能够实现浏览器与硬件网银盾之间通讯,通过npapi插件,将网银盾动态链接库提供的功能应用到网上银行页面中,包括网银盾签名、网银盾管理、证书更新等功能。3.随着浏览器技术的发展,插件功能逐步被edge、chrome等主流浏览器所禁止使用,新技术形态下的主流浏览器,基于插件技术架构的浏览器调用网银盾签名模式已经逐渐被淘汰,网上银行业务的安全工具网银盾无法兼容基于chromium内核的edge、chrome等主流浏览器。基于插件形态的方法,通过运行浏览器以外的独立软件代码进行相应功能的实现,浏览器在插件本地运行时的权限管控方面存在黑盒,导致插件运行时存在一些安全问题或者安全漏洞。技术实现要素:4.为了解决现有技术中存在的问题,第一方面,本技术提供一种基于扩展接口的网银盾调用方法,包括:5.获取用户在网银页面发起的网银盾数据的调用请求,所述调用请求包括扩展接口函数名;6.判断所述扩展接口函数名对应的扩展接口是否具备调用操作系统的本地程序的权限;所述本地程序用于通过第一种类型的程序调用与第一种类型不同的第二种类型的程序的方法;7.若是,则建立所述扩展接口与所述本地程序之间的连接,并将所述调用请求对应的辅助函数通过所述扩展接口和所述本地程序发送至网银盾动态链接库,以使网银盾动态链接库基于所述辅助函数获取并返回调用结果;其中,所述辅助函数是预设的与所述本地程序的程序类型相同的网银盾数据调用函数。8.在一实施例中,所述判断所述扩展接口函数名对应的扩展接口是否具备调用本地程序的权限,包括:9.获取所述扩展接口对应的应用程序清单;10.根据所述应用程序清单中的权限定义文件获取本地程序对应的权限字段值;11.判断所述权限字段值是否为预设值;12.若是,则扩展接口具备调用本地程序的权限;若否,则扩展接口不具备调用本地程序的权限。13.在一实施例中,所述建立所述扩展接口与所述本地程序之间的连接,包括:14.获取所述扩展接口对应的系统注册表;15.在所述系统注册表中查找所述扩展接口注册的本地程序文件路径;16.根据所述本地程序文件路径的路径配置找到对应的本地程序并启动,以建立所述扩展接口与所述本地程序之间的连接。17.在一实施例中,所述辅助函数包括获取序列号函数、设置随机号函数、签名函数、获取证书dn函数。18.第二方面,本技术提供一种基于扩展接口的网银盾调用装置,包括:19.调用请求接收模块,用于获取用户在网银页面发起的网银盾数据的调用请求,所述调用请求包括扩展接口函数名;20.权限判断模块,用于判断所述扩展接口函数名对应的扩展接口是否具备调用操作系统的本地程序的权限;所述本地程序用于通过第一种类型的程序调用与第一种类型不同的第二种类型的程序的方法;21.通讯连接模块,用于当扩展接口具备调用本地程序的权限时,建立所述扩展接口与所述本地程序之间的连接,并将所述调用请求对应的辅助函数通过所述扩展接口和所述本地程序发送至网银盾动态链接库,以使网银盾动态链接库基于所述辅助函数获取并返回调用结果;其中,所述辅助函数是预设的与所述本地程序的程序类型相同的网银盾数据调用函数。22.在一实施例中,所述权限判断模块包括:23.应用程序清单获取单元,用于获取所述扩展接口对应的应用程序清单;24.权限字段值获取多单元,用于根据所述应用程序清单中的权限定义文件获取本地程序对应的权限字段值;25.权限判定单元,用于判断所述权限字段值是否为预设值;以及若所述权限字段值为预设值,则确定扩展接口具备调用本地程序的权限;若所述权限字段值不是预设值,则确定扩展接口不具备调用本地程序的权限。26.在一实施例中,所述通讯连接模块包括:27.系统注册表获取单元,用于获取所述扩展接口对应的系统注册表;28.文件路径获取单元,用于在所述系统注册表中查找所述扩展接口注册的本地程序文件路径;29.通讯连接建立单元,用于根据所述本地程序文件路径的路径配置找到对应的本地程序并启动,以建立所述扩展接口与所述本地程序之间的连接。30.在一实施例中,所述辅助函数包括获取序列号函数、设置随机号函数、签名函数、获取证书dn函数。31.第三方面,本技术提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本技术提供的任一基于扩展接口的网银盾调用方法。32.第四方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本技术提供的任一基于扩展接口的网银盾调用方法。33.第五方面,本技术提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现本技术提供的任一基于扩展接口的网银盾调用方法。34.本技术的基于扩展接口的网银盾调用方法及装置,通过扩展接口的形式,实现浏览器与网银盾硬件之间的通讯,完成网上银行网银盾的业务签名功能。本技术基于扩展形式实现的网银盾签名,满足了目前浏览器与ukey通讯的技术架构要求,扩展应用通常以javascript形式进行编写,基于浏览器的javascript引擎运行,运行在浏览器层面,对浏览器而言,在安全性管控层面相较于插件方式有较大的提高。附图说明35.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:36.图1为本技术提供的基于扩展接口的网银盾调用方法的一种示意图。37.图2为本技术提供的基于扩展接口的网银盾调用方法的另一种示意图。38.图3为本技术提供的基于扩展接口的网银盾调用方法的另一种示意图。39.图4为本技术提供的基于扩展接口的网银盾调用装置的一种示意图。40.图5为本技术提供的基于扩展接口的网银盾调用装置的另一种示意图。41.图6为本技术提供的基于扩展接口的网银盾调用装置的另一种示意图。42.图7为本技术提供的一种计算机设备的示意图。具体实施方式43.为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。44.需要说明的是,本技术的基于扩展接口的网银盾调用方法及装置可用于金融信息服务
技术领域
:,也可用于除金融信息服务
技术领域
:之外的任意领域,本技术对基于扩展接口的网银盾调用方法及装置的应用领域不做限定。45.本技术中技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。46.为了解决现有技术中存在的问题,第一方面,本技术提供一种基于扩展接口的网银盾调用方法,如图1所示,该方法包括以下步骤:47.步骤s101,获取用户在网银页面发起的网银盾数据的调用请求,所述调用请求包括扩展接口函数名。48.具体地,本技术主要是在用户通过浏览器页面(网银页面)发起网银盾数据的调用请求的应用场景下执行的,与现有技术不同,本技术不使用浏览器插件获取网银盾数据,而是通过定义扩展接口实现扩展接口与本地程序之间的连接,然后通过本地程序实现网银盾数据的获取。这里的扩展接口是基于浏览器定义规范开发的开放的api,用于增加浏览器的扩展功能,类似于普通的web应用,扩展控件需要获得浏览器的授权才能调用本地程序,具体将在后续进行说明。本步骤的扩展接口函数名即用户发起的调用请求中包含的调用网银盾数据所需的扩展接口的名称,是由浏览器同一颁发的,作为扩展接口的唯一标识。49.步骤s102,判断所述扩展接口函数名对应的扩展接口是否具备调用本地程序的权限;若是,则执行步骤s103,若否,则执行步骤s104。50.具体地,本地程序指操作系统本地的用于通过第一种类型的程序调用与第一种类型不同的第二种类型的程序的方法,例如native方法,native方法是一个通过java程序调用非java程序的方法,在本方案中作为扩展控件调用网银盾动态链接库之间的桥梁作用。当扩展控件与本地程序建立连接后,即可实现网银页面与网银盾动态链接库之间的交互,网银盾动态链接库中包含有实现网银盾签名、获取序列号、获取证书号等一系列驱动方法的dll动态库文件,这些文件均为已有的。51.本步骤用于判断调用请求所需的扩展接口是否具有调用本地程序的权限,只有当扩展接口具备调用本地程序的权限时,才能启动本地程序,建立与网银盾动态链接库的连接,实现网银盾数据的调用。52.步骤s103,建立所述扩展接口与所述本地程序之间的连接,并将所述调用请求对应的辅助函数通过所述扩展接口和所述本地程序发送至网银盾动态链接库,以使网银盾动态链接库基于所述辅助函数获取并返回调用结果;其中,所述辅助函数是预设的与所述本地程序的程序类型相同的网银盾数据调用函数。53.本步骤是在确定扩展接口具备调用本地程序的权限时执行的,此时,扩展接口可以与本地native程序建立连接,相当于建立了网银页面与网银盾动态链接库之间的通道,进而通过与调用请求对应的辅助函数实现网银盾动态链接库中的数据获取。54.其中,辅助函数包括一系列接口函数供扩展调用方(例如企业网银页面)交易时进行调用,其形式例如为javascript脚本形式。本技术中,辅助函数包含获取序列号函数getmediaid、设置随机号函数setukeyidrandom、签名函数cryptsign、获取证书dn函数getparam等,分别与客户的调用请求对应。由于网银页面未设置有相关插件,故辅助函数无法直接与网银盾动态链接库连接,调用网银盾数据,而是需要通过本地程序实现“转接”。因此本技术的辅助函数是与本地程序的程序类型相同的网银盾数据调用函数,可以直接与本地程序建立连接,由本地程序将辅助函数“翻译”为网银盾动态链接库可以识别的调用函数。55.例如,当客户的调用请求为请求网银盾签名时,则需要通过扩展接口将具体的调用请求信息传递给本地程序,传递时采用扩展接口中定义的透传功能函数sendmsgtohost函数即可实现。本地程序将与辅助函数建立连接,并启动加载网银盾动态链接库和消息监控循环,以接受网银页面的调用请求对应的辅助函数(本例中为与网银盾签名请求对应的签名函数cryptsign);本地native通过解析功能函数对签名函数cryptsign进行解析,并调用网银盾动态链接库中相应的方法,以获取网银盾签名,即调用结果。56.由此可见,在本技术中,网银盾动态链接库实际是基于辅助函数的调用获取目标数据的,只是调用过程需要扩展接口和本地程序作为建立网银页面和网银盾动态链接库的桥梁。网银盾动态链接库获取到调用结果后,将调用结果返回至本地程序;本地程序通过透传函数sendmsgtohost将解析功能函数的返回值(调用结果)返回至扩展接口;扩展接口通过浏览器的通讯api函数connecthost将本地程序返回的调用结果返回至网银页面。其中,调用浏览器的通讯api函数connecthost以及调用本地程序的消息透传函数sendmsgtohost是在扩展接口的background.js文件中定义的。57.步骤s104,返回信息提示用户调用失败或无法调用。58.当扩展接口不具备调用本地程序的权限时,相当于网银页面无法与网银盾动态链接库建立连接,无法实现网银盾数据调用,此时向客户返回相关信息进行提示即可。59.在一实施例中,如图2所示,步骤s102,判断所述扩展接口函数名对应的扩展接口是否具备调用本地程序的权限,包括:60.步骤s1021,获取所述扩展接口对应的应用程序清单。61.扩展接口的主要构成为功能实现函数的background.js文件,以及包含应用程序清单的manifest.json文件。也即,manifest.json文件是在定义扩展接口时预先配置的,应用程序清单可从manifest.json文件中直接获取到。62.步骤s1022,根据所述应用程序清单中的权限定义文件获取本地程序对应的权限字段值。63.具体地,本技术中,包含应用程序清单的manifest.json文件对功能实现函数的background.js文件中需要获取的具体权限进行了描述定义,其中permissions字段定义了需要调用的具体本地权限;content_scripts字段的matches和externally_connectable字段的matches定义了需要使用扩展的具体域名,只有在content_scripts字段的matches和externally_connectable字段的matches中定义的域名才能获得通过扩展接口调用本地native方法的权限。扩展接口可通过background.js中的connecthost函数定义,为content_scripts字段的matches和externally_connectable字段的matches所定义的域名系统(例:*://*.ccb.com.cn/*),申请获得调用本地native方法的权限,该权限由浏览器授予的。64.本步骤中的权限字段值是基于permissions字段中定义的内容确定的。具体地,网银页面可通过辅助函数中定义的函数checkready=function()检测扩展接口是否安装开启本地程序的接口,即permissions字段中是否定义了本地程序。函数会基于permissions字段中的定义返回一结果,即权限字段值。65.步骤s1023,判断所述权限字段值是否为预设值;若是,则执行步骤s1024;若否,则执行步骤s1025;66.步骤s1024,扩展接口具备调用本地程序的权限;67.步骤s1025,扩展接口不具备调用本地程序的权限。68.具体地,若函数checkready=function()返回值为“0”,则说明扩展接口已经安装开启本地程序,即扩展接口具备调用本地程序的权限;若函数checkready=function()返回值为“1”,则说明扩展接口未安装开启本地程序,即扩展接口不具备调用本地程序的权限。69.在一实施例中,如图3所示,步骤s103中的建立所述扩展接口与所述本地程序之间的连接,包括:70.步骤s1031,获取所述扩展接口对应的系统注册表。具体地,扩展接口通过浏览器访问查询系统注册表。71.步骤s1032,在所述系统注册表中查找所述扩展接口注册的本地程序文件路径,具体为扩展接口在系统注册表中查找扩展接口注册的ccbnativehost.json文件路径。72.步骤s1033,根据所述本地程序文件路径的路径配置找到对应的本地程序并启动,以建立所述扩展接口与所述本地程序之间的连接。73.具体为扩展接口根据ccbnativehost.json文件路径中的路径配置找到对应的本地程序并启动,即可建立所述扩展接口与所述本地程序之间的连接。74.本技术通过定义网银盾扩展接口(extensionsoradd-one),封装扩展应用,将网银盾库提供的功能应用到网上银行页面中,无需控件即可实现在网银页面调用网银盾动态链接库,调用流程为与网银盾数据的调用请求对应的辅助函数调用扩展接口,扩展接口再通过本地的native程序调用第三方提供的网银盾动态链接库,实现浏览器与网银盾之间的通讯。75.在此,本技术提供一个完整的示例进一步说明本技术的基于扩展接口的网银盾调用方法的流程,该流程以调用网银盾签名为例:76.1)网银用户发起网银盾签名数据的调用请求。77.2)网银页面调用辅助函数检测扩展是否安装开启接口checkready=function(),获得函数返回扩展已经安装开启的目标值“0”,建立与扩展接口的连接。78.3)扩展接口通过浏览器访问查询系统注册表,在注册表中查找扩展注册的ccbnativehost.json文件路径,根据json文件中的路径配置找到对应的本地程序路径并启动native程序,建立与native程序的连接。79.4)网银页面调用辅助函数设置随机数函数setukeyidrandom=function(random),得到随机数。80.5)辅助函数获取密文序列号函数getukeyid=function(rtn),通过扩展接口的透传功能函数将请求网银盾序列号的信息传递给本地程序。81.6)本地程序通过功能解析接口调用网银盾动态链接库获取密文序列号函数getmediaid(char*mediaid),返回密文序列号。82.7)本地程序将密文序列号数据返回给扩展接口,扩展接口通过透传函数功能将密文序列号数据透传给辅助函数,辅助技术返回函数结果给网银页面。83.8)网银页面调用辅助函数中的签名函数cryptsign(rtn,签名原文,…),基于密文序列号、签名原文、证书类型及哈希算法等数据,从网银盾动态链接库对应签名函数中获得签名结果。84.本技术的基于扩展接口的网银盾调用方法,通过扩展接口的形式,实现浏览器与网银盾硬件之间的通讯,完成网上银行网银盾的业务签名功能。本技术基于扩展形式实现的网银盾签名,满足了目前浏览器与ukey通讯的技术架构要求,扩展应用通常以javascript形式进行编写,基于浏览器的javascript引擎运行,运行在浏览器层面,对浏览器而言,在安全性管控层面相较于插件方式有较大的提高。85.基于同一发明构思,本技术实施例还提供了基于扩展接口的网银盾调用装置,可以用于实现上述实施例所描述的方法,如下面的实施例所述。由于基于扩展接口的网银盾调用装置解决问题的原理与基于扩展接口的网银盾调用方法相似,因此基于扩展接口的网银盾调用装置的实施可以参见基于扩展接口的网银盾调用方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。86.第二方面,本技术提供一种基于扩展接口的网银盾调用装置,如图4所示,该装置包括:87.调用请求接收模块201,用于获取用户在网银页面发起的网银盾数据的调用请求,所述调用请求包括扩展接口函数名;88.权限判断模块202,用于判断所述扩展接口函数名对应的扩展接口是否具备调用操作系统的本地程序的权限;所述本地程序用于通过第一种类型的程序调用与第一种类型不同的第二种类型的程序的方法;89.通讯连接模块203,用于当扩展接口具备调用本地程序的权限时,建立所述扩展接口与所述本地程序之间的连接,并将所述调用请求对应的辅助函数通过所述扩展接口和所述本地程序发送至网银盾动态链接库,以使网银盾动态链接库基于所述辅助函数获取并返回调用结果;其中,所述辅助函数是预设的与所述本地程序的程序类型相同的网银盾数据调用函数。90.在一实施例中,如图5所示,所述权限判断模块202包括:91.应用程序清单获取单元2021,用于获取所述扩展接口对应的应用程序清单;92.权限字段值获取多单元2022,用于根据所述应用程序清单中的权限定义文件获取本地程序对应的权限字段值;93.权限判定单元2023,用于判断所述权限字段值是否为预设值;以及若所述权限字段值为预设值,则确定扩展接口具备调用本地程序的权限;若所述权限字段值不是预设值,则确定扩展接口不具备调用本地程序的权限。94.在一实施例中,如图6所示,所述通讯连接模块203包括:95.系统注册表获取单元2031,用于获取所述扩展接口对应的系统注册表;96.文件路径获取单元2032,用于在所述系统注册表中查找所述扩展接口注册的本地程序文件路径;97.通讯连接建立单元2033,用于根据所述本地程序文件路径的路径配置找到对应的本地程序并启动,以建立所述扩展接口与所述本地程序之间的连接。98.在一实施例中,所述辅助函数包括获取序列号函数、设置随机号函数、签名函数、获取证书dn函数。99.本技术的基于扩展接口的网银盾调用装置,通过扩展接口的形式,实现浏览器与网银盾硬件之间的通讯,完成网上银行网银盾的业务签名功能。本技术基于扩展形式实现的网银盾签名,满足了目前浏览器与ukey通讯的技术架构要求,扩展应用通常以javascript形式进行编写,基于浏览器的javascript引擎运行,运行在浏览器层面,对浏览器而言,在安全性管控层面相较于插件方式有较大的提高。100.在一实施例中,本技术还提供一种计算机设备,参见图7,所述电子设备100具体包括:101.中央处理器(processor)110、存储器(memory)120、通信模块(communications)130、输入单元140、输出单元150以及电源160。102.其中,所述存储器(memory)120、通信模块(communications)130、输入单元140、输出单元150以及电源160分别与所述中央处理器(processor)110相连接。所述存储器120中存储有计算机程序,所述中央处理器110可调用所述计算机程序,所述中央处理器110执行所述计算机程序时实现上述实施例中的基于扩展接口的网银盾调用方法中的全部步骤。103.在一实施例中,本技术的实施例还提供一种计算机可读存储介质,用于存储计算机程序,所述计算机程序可被处理器执行。所述计算机程序被处理器执行时实现本发明所提供的任一基于扩展接口的网银盾调用方法。104.在一实施例中,本发明的实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述实施例提供的任一基于扩展接口的网银盾调用方法。105.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。106.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。107.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。108.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。109.以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1