一种实现ev代码签名的方法和装置的制造方法

文档序号:10697697阅读:207来源:国知局
一种实现ev代码签名的方法和装置的制造方法
【专利摘要】本发明公开了一种实现EV代码签名的方法和装置。其中所述方法包括:接收发送到指定主机的签名请求,并将该签名请求发送给该指定主机上的虚拟机;所述签名请求中包括:待签名文件;接收所述虚拟机返回的签名结果文件,其中,所述虚拟机利用插入所述指定主机的USB设备中的EV代码签名证书对待签名文件进行EV代码签名得到签名结果文件;将签名结果文件返回给签名请求发送方。该技术方案不需要用户手动进行EV代码签名,并且可以并发执行多个EV代码签名操作,因而提高了EV代码签名的效率。
【专利说明】
_种实现EV代码签名的方法和装置
技术领域
[0001]本发明涉及信息安全技术领域,具体涉及一种实现EV代码签名的方法和装置。
【背景技术】
[0002]代码签名证书为软件开发商提供了一个理想的解决方案,使得软件开发商能对其软件代码进行数字签名。通过对代码的数字签名来标识软件来源以及软件开发者的真实身份,保证代码在签名之后不被恶意篡改。使用户在下载已经签名的代码时,能够有效的验证该代码的可信度。
[0003]随着信息安全技术的发展,增强型(Extended Validat1n,EV)代码签名因其更高的安全性成为了微软等公司所推荐的代码签名方式,例如,微软公司目前最新的Windows10操作系统就强烈建议所有驱动软件都必须用EV代码签名证书进行内核签名才能顺畅运行。
[0004]然而,EV代码签名的高安全性体现在,EV代码签名证书密钥存储于硬件介质USBKey中,从而防止证书被非法盗用或受损,确保了签名证书的安全。这样,签名操作就只能在连接了该USB设备的主机完成,而且需要操作人员手动为每个待签名文件执行签名操作,如输入密钥,这样虽然安全性高,但是在需要对大量文件进行签名的时候耗时就很严重,也非常不便。

【发明内容】

[0005]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的实现EV代码签名的方法和装置。
[0006]依据本发明的一个方面,提供了一种实现EV代码签名的方法,包括:
[0007]接收发送到指定主机的签名请求,并将该签名请求发送给该指定主机上的虚拟机;所述签名请求中包括:待签名文件;
[0008]接收所述虚拟机返回的签名结果文件,其中,所述虚拟机利用插入所述指定主机的USB设备中的EV代码签名证书对待签名文件进行EV代码签名得到签名结果文件;
[0009]将签名结果文件返回给签名请求发送方。
[0010]可选地,所述接收发送到指定主机的签名请求包括:
[0011 ]接收通过远程方式发送到指定主机的签名请求;
[0012]和/或,
[0013]接收在指定主机的本地生成的签名请求。
[0014]可选地,所述虚拟机利用插入所述指定主机的USB设备中的EV代码签名证书对待签名文件进行EV代码签名得到签名结果文件包括:
[0015]通过配置使得虚拟机识别插入所述指定主机的所述USB设备,并且在虚拟机中安装所述USB设备的驱动程序;
[0016]所述虚拟机接收到签名请求后,通过所述驱动程序弹出密码输入框;
[0017]所述虚拟机将预先配置的密码写入所述密码输入框后,从所述USB设备读取EV代码签名证书,并根据EV代码签名证书对待签名文件进行签名后得到签名结果文件。
[0018]可选地,所述虚拟机包括:文件传输服务、密码填写服务和签名执行服务;
[0019]文件传输服务接收发送给所述虚拟机的签名请求,并返回签名结果文件;
[0020]密码填写服务监测密码输入框的弹出并将预先配置的密码写入密码输入框;
[0021]签名执行服务从所述USB设备获得EV代码签名证书,并根据EV代码签名证书对待签名文件进行签名后得到签名结果文件。
[0022]可选地,所述签名请求中还包括:一个或多个签名配置文件;
[0023]所述虚拟机根据所述一个或多个签名配置文件中的要求对对待签名文件进行EV代码签名。
[0024]依据本发明的另一方面,提供了一种实现EV代码签名的装置,包括:位于指定主机上的收发单元和虚拟机单元;
[0025]所述收发单元,适于接收发送到指定主机的签名请求,并将该签名请求发送给该指定主机上的虚拟机单元;接收所述虚拟机单元返回的签名结果文件,将签名结果文件返回给签名请求发送方;所述签名请求中包括:待签名文件;
[0026]所述虚拟机单元,利用插入所述指定主机的USB设备中的EV代码签名证书对待签名文件进行EV代码签名得到签名结果文件。
[0027]可选地,所述收发单元,适于接收通过远程方式发送到指定主机的签名请求;和/或,接收在指定主机的本地生成的签名请求。
[0028]可选地,所述虚拟机单元,适于通过配置识别插入所述指定主机的所述USB设备,并且安装有所述USB设备的驱动程序;
[0029]所述虚拟机单元,适于接收到签名请求后,通过所述驱动程序弹出密码输入框,将预先配置的密码写入所述密码输入框后,从所述USB设备读取EV代码签名证书,并根据EV代码签名证书对待签名文件进行签名后得到签名结果文件。
[0030]可选地,所述虚拟机单元包括:文件传输子单元、密码填写子单元和签名执行子单元;
[0031]所述文件传输子单元,适于接收发送给所述虚拟机的签名请求,并返回签名结果文件;
[0032]所述密码填写子单元,适于监测密码输入框的弹出并将预先配置的密码写入密码输入框;
[0033]所述签名执行子单元,适于从所述USB设备读取EV代码签名证书,并根据EV代码签名证书对待签名文件进行签名后得到签名结果文件。
[0034]可选地,所述签名请求中还包括:一个或多个签名配置文件;
[0035]所述虚拟机单元,适于根据所述一个或多个签名配置文件中的要求对对待签名文件进行EV代码签名。
[0036]由上述可知,本发明的技术方案,在指定主机上部署虚拟机并插入包含EV代码签名证书的USB设备,当接收到发送到该主机的签名请求时,将该签名请求发送给该指定主机上的虚拟机,由虚拟机根据签名请求以及EV代码签名证书对其中包含的待签名文件进行EV代码签名,并将得到的签名结果文件返回给签名请求发送方。该技术方案不需要用户手动进行EV代码签名,并且可以并发执行多个EV代码签名操作,因而提高了EV代码签名的效率。
[0037]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【附图说明】
[0038]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0039]图1示出了根据本发明一个实施例的一种实现EV代码签名的方法的流程图;
[0040]图2示出了根据本发明一个实施例的一种实现EV代码签名的装置的结构示意图。
【具体实施方式】
[0041]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0042]图1示出了根据本发明一个实施例的一种实现EV代码签名的方法的流程图,如图1所示,该方法包括:
[0043]步骤S110,接收发送到指定主机的签名请求,并将该签名请求发送给该指定主机上的虚拟机;签名请求中包括:待签名文件。
[0044]步骤S120,接收虚拟机返回的签名结果文件,其中,虚拟机利用插入指定主机的USB设备中的EV代码签名证书对待签名文件进行EV代码签名得到签名结果文件。
[0045]步骤SI30,将签名结果文件返回给签名请求发送方。
[0046]可见,图1所示的方法,在指定主机上部署虚拟机并插入包含EV代码签名证书的USB设备,当接收到发送到该主机的签名请求时,将该签名请求发送给该指定主机上的虚拟机,由虚拟机根据签名请求以及EV代码签名证书对其中包含的待签名文件进行EV代码签名,并将得到的签名结果文件返回给签名请求发送方。该技术方案不需要用户手动进行EV代码签名,并且可以并发执行多个EV代码签名操作,因而提高了EV代码签名的效率。
[0047]在本发明的一个实施例中,图1所示的方法中,接收发送到指定主机的签名请求包括:接收通过远程方式发送到指定主机的签名请求;和/或,接收在指定主机的本地生成的签名请求。
[0048]在本实施例中,用户可以根据需求选择发送签名请求的方式,例如,在确保远程通信安全的前提下,通过远程方式将前面请求发送到指定主机,从而不需要人工携带待签名文件到指定主机处;或者,将多个待签名文件在指定主机上进行统一管理,在需要进行EV代码签名时,根据需求,生成与每个代签名文件对应的签名请求。
[0049]在本发明的一个实施例中,图1所示的方法中,虚拟机利用插入指定主机的USB设备中的EV代码签名证书对待签名文件进行EV代码签名得到签名结果文件包括:通过配置使得虚拟机识别插入指定主机的USB设备,并且在虚拟机中安装USB设备的驱动程序;虚拟机接收到签名请求后,通过驱动程序弹出密码输入框;虚拟机将预先配置的密码写入密码输入框后,从USB设备读取EV代码签名证书,并根据EV代码签名证书对待签名文件进行签名后得到签名结果文件。
[0050]现有技术中,用户在进行EV代码签名时,先将包含EV代码签名证书的USB设备插入计算设备中,由计算设备进行USB设备的驱动程序安装,当驱动程序安装成功,接收到签名请求后,在弹出的密码输入框中输入密码,读取EV代码签名证书,并使用该证书对待签名文件进行签名,上述操作需要人工执行,因此十分费时费力。如果仅将包含EV代码签名证书的USB设备插入计算机设备中,由计算机设备进行USB设备的驱动程序安装,当远程提交签名申请时,USB设备的驱动程序是无法弹出密码框的,这也是EV签名的安全策略所决定的。在本实施例中通过在指定主机上部署虚拟机,通过配置使得虚拟机可以识别插入指定主机的USB设备,进而在虚拟机中安装该USB设备的驱动程序,相当于虚拟机上接入了该USB设备,因此接收到签名请求后,通过驱动程序弹出密码输入框,可以不需要人工进行密码的输入,而是由虚拟机将预先配置的密码写入密码输入框,从而读取EV代码签名证书,从而可以根据EV代码签名证书对待签名文件进行签名,这样整个过程不再需要人工进行干预,并且在接收到多个签名请求时,可以并发执行整个过程,从而大大地提高了 EV代码签名的效率。
[0051]在本发明的一个实施例中,上述方法中,虚拟机包括:文件传输服务、密码填写服务和签名执行服务;文件传输服务接收发送给虚拟机的签名请求,并返回签名结果文件;密码填写服务监测密码输入框的弹出并将预先配置的密码写入密码输入框;签名执行服务从USB设备读取EV代码签名证书,并根据EV代码签名证书对待签名文件进行签名后得到签名结果文件。
[0052]在本实施例中,文件传输、密码填写和签名执行是由不同的服务执行的,因而多个并发的签名请求可以分别调用各项服务来执行相应的操作。
[0053]在本发明的一个实施例中,图1所示的方法中,签名请求中还包括:一个或多个签名配置文件;虚拟机根据一个或多个签名配置文件中的要求对对待签名文件进行EV代码签名。
[0054]例如,根据需求的不同,需要将待签名的文件使用英文进行EV代码签名,那么签名配置文件中包含以将待签名文件以特定语言进行代码签名的配置信息,等等。当虚拟机需要执行EV代码签名操作时,根据签名配置文件中的要求,对待签名文件进行EV代码签名。
[0055]图2示出了根据本发明一个实施例的一种实现EV代码签名的装置的结构示意图,如图2所示,实现EV代码签名的装置200包括:位于指定主机上的收发单元210和虚拟机单元220。
[0056]收发单元210,适于接收发送到指定主机的签名请求,并将该签名请求发送给该指定主机上的虚拟机单元220;接收虚拟机单元220返回的签名结果文件,将签名结果文件返回给签名请求发送方;签名请求中包括:待签名文件。
[0057]虚拟机单元220,利用插入指定主机的USB设备中的EV代码签名证书对待签名文件进行EV代码签名得到签名结果文件。
[0058]可见,图2所示的装置,通过各单元的相互配合,在指定主机上部署虚拟机并插入包含EV代码签名证书的USB设备,当接收到发送到该主机的签名请求时,将该签名请求发送给该指定主机上的虚拟机,由虚拟机根据签名请求以及EV代码签名证书对其中包含的待签名文件进行EV代码签名,并将得到的签名结果文件返回给签名请求发送方。该技术方案不需要用户手动进行EV代码签名,并且可以并发执行多个EV代码签名操作,因而提高了EV代码签名的效率。
[0059]在本发明的一个实施例中,图2所示的装置中,收发单元210,适于接收通过远程方式发送到指定主机的签名请求;和/或,接收在指定主机的本地生成的签名请求。
[0060]在本实施例中,用户可以根据需求选择发送签名请求的方式,例如,在确保远程通信安全的前提下,通过远程方式将前面请求发送到指定主机,从而不需要人工携带待签名文件到指定主机处;或者,将多个待签名文件在指定主机上进行统一管理,在需要进行EV代码签名时,根据需求,生成与每个代签名文件对应的签名请求。
[0061]在本发明的一个实施例中,图2所示的装置中,虚拟机单元220,适于通过配置识别插入指定主机的USB设备,并且安装有USB设备的驱动程序;虚拟机单元220,适于接收到签名请求后,通过驱动程序弹出密码输入框,将预先配置的密码写入密码输入框后,从USB设备读取EV代码签名证书,并根据EV代码签名证书对待签名文件进行签名后得到签名结果文件。
[0062]现有技术中,用户在进行EV代码签名时,先将包含EV代码签名证书的USB设备插入计算设备中,由计算设备进行USB设备的驱动程序安装,当驱动程序安装成功,接收到签名请求后,在弹出的密码输入框中输入密码,获得EV代码签名证书,并使用该证书对待签名文件进行签名,上述操作需要人工执行,因此十分费时费力。在本实施例中通过在指定主机上部署虚拟机,通过配置使得虚拟机可以识别插入指定主机的USB设备,进而在虚拟机中安装该USB设备的驱动程序,相当于虚拟机上接入了该USB设备,因此接收到签名请求后,通过驱动程序弹出密码输入框,可以不需要人工进行密码的输入,而是由虚拟机中密码填写服务监测密码输入框的弹出然后将预先配置的密码写入密码输入框,从而获得EV代码签名证书,从而可以根据EV代码签名证书对待签名文件进行签名,这样整个过程不再需要人工进行干预,并且在接收到多个签名请求时,可以并发执行整个过程,从而大大地提高了 EV代码签名的效率。
[0063]在本发明的一个实施例中,上述装置中,虚拟机单元220包括:文件传输子单元、密码填写子单元和签名执行子单元;文件传输子单元,适于接收发送给虚拟机的签名请求,并返回签名结果文件;密码填写子单元,适于将预先配置的密码写入密码输入框;签名执行子单元,适于从USB设备获得EV代码签名证书,并根据EV代码签名证书对待签名文件进行签名后得到签名结果文件。
[0064]在本实施例中,文件传输、密码填写和签名执行是由不同的服务执行的,因而多个并发的签名请求可以分别调用各项服务来执行相应的操作。
[0065]在本发明的一个实施例中,图2所示的装置中,签名请求中还包括:一个或多个签名配置文件;虚拟机单元220,适于根据一个或多个签名配置文件中的要求对对待签名文件进行EV代码签名。
[0066]例如,根据需求的不同,需要将待签名的文件使用英文进行EV代码签名,那么签名配置文件中包含以将待签名文件以特定语言进行代码签名的配置信息,等等。当虚拟机需要执行EV代码签名操作时,根据签名配置文件中的要求,对待签名文件进行EV代码签名。
[0067]综上所述,本发明的技术方案,在指定主机上部署虚拟机并插入包含EV代码签名证书的USB设备,当接收到通过远程方式发送到该主机和/或在该主机本地生成的签名请求时,将该签名请求发送给该指定主机上的虚拟机,由虚拟机根据签名请求以及EV代码签名证书对其中包含的待签名文件进行EV代码签名,并将得到的签名结果文件返回给签名请求发送方。其中签名请求中可以包括待签名文件和一个或多个签名配置文件。该技术方案不需要用户手动进行EV代码签名,并且可以并发执行多个EV代码签名操作,因而提高了EV代码签名的效率
[0068]需要说明的是:
[0069]在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0070]在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0071]类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循【具体实施方式】的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身都作为本发明的单独实施例。
[0072]本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0073]此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0074]本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的实现EV代码签名的装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0075]应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
【主权项】
1.一种实现EV代码签名的方法,其中,该方法包括: 接收发送到指定主机的签名请求,并将该签名请求发送给该指定主机上的虚拟机;所述签名请求中包括:待签名文件; 接收所述虚拟机返回的签名结果文件,其中,所述虚拟机利用插入所述指定主机的USB设备中的EV代码签名证书对待签名文件进行EV代码签名得到签名结果文件; 将签名结果文件返回给签名请求发送方。2.如权利要求1所述的方法,其中,所述接收发送到指定主机的签名请求包括: 接收通过远程方式发送到指定主机的签名请求; 和/或, 接收在指定主机的本地生成的签名请求。3.如权利要求1所述的方法,其中,所述虚拟机利用插入所述指定主机的USB设备中的EV代码签名证书对待签名文件进行EV代码签名得到签名结果文件包括: 通过配置使得虚拟机识别插入所述指定主机的所述USB设备,并且在虚拟机中安装所述USB设备的驱动程序; 所述虚拟机接收到签名请求后,通过所述驱动程序弹出密码输入框; 所述虚拟机将预先配置的密码写入所述密码输入框后,从所述USB设备读取EV代码签名证书,并根据EV代码签名证书对待签名文件进行签名后得到签名结果文件。4.如权利要求3所述的方法,其中, 所述虚拟机包括:文件传输服务、密码填写服务和签名执行服务; 文件传输服务接收发送给所述虚拟机的签名请求,并返回签名结果文件; 密码填写服务监测密码输入框的弹出并将预先配置的密码写入密码输入框; 签名执行服务从所述USB设备读取EV代码签名证书,并根据EV代码签名证书对待签名文件进行签名后得到签名结果文件。5.如权利要求1所述的方法,其中, 所述签名请求中还包括:一个或多个签名配置文件; 所述虚拟机根据所述一个或多个签名配置文件中的要求对对待签名文件进行EV代码签名。6.—种实现EV代码签名的装置,其中,该装置包括:位于指定主机上的收发单元和虚拟机单元; 所述收发单元,适于接收发送到指定主机的签名请求,并将该签名请求发送给该指定主机上的虚拟机单元;接收所述虚拟机单元返回的签名结果文件,将签名结果文件返回给签名请求发送方;所述签名请求中包括:待签名文件; 所述虚拟机单元,利用插入所述指定主机的USB设备中的EV代码签名证书对待签名文件进行EV代码签名得到签名结果文件。7.如权利要求6所述的装置,其中, 所述收发单元,适于接收通过远程方式发送到指定主机的签名请求;和/或,接收在指定主机的本地生成的签名请求。8.如权利要求6所述的装置,其中, 所述虚拟机单元,适于通过配置识别插入所述指定主机的所述USB设备,并且安装有所述USB设备的驱动程序; 所述虚拟机单元,适于接收到签名请求后,通过所述驱动程序弹出密码输入框,将预先配置的密码写入所述密码输入框后,从所述USB设备读取EV代码签名证书,并根据EV代码签名证书对待签名文件进行签名后得到签名结果文件。9.如权利要求8所述的装置,其中, 所述虚拟机单元包括:文件传输子单元、密码填写子单元和签名执行子单元; 所述文件传输子单元,适于接收发送给所述虚拟机的签名请求,并返回签名结果文件; 所述密码填写子单元,适于监测密码输入框的弹出并将预先配置的密码写入密码输入框; 所述签名执行子单元,适于从所述USB设备读取EV代码签名证书,并根据EV代码签名证书对待签名文件进行签名后得到签名结果文件。10.如权利要求6所述的装置,其中, 所述签名请求中还包括:一个或多个签名配置文件; 所述虚拟机单元,适于根据所述一个或多个签名配置文件中的要求对对待签名文件进行EV代码签名。
【文档编号】G06F21/12GK106066949SQ201610391192
【公开日】2016年11月2日
【申请日】2016年6月3日 公开号201610391192.2, CN 106066949 A, CN 106066949A, CN 201610391192, CN-A-106066949, CN106066949 A, CN106066949A, CN201610391192, CN201610391192.2
【发明人】张 杰, 杨银辉, 曹曙
【申请人】北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1