CN116383841A - 支持国密算法的操作系统、国密证书验证方法及电子设备 - Google Patents
支持国密算法的操作系统、国密证书验证方法及电子设备 Download PDFInfo
- Publication number
- CN116383841A CN116383841A CN202310272403.0A CN202310272403A CN116383841A CN 116383841 A CN116383841 A CN 116383841A CN 202310272403 A CN202310272403 A CN 202310272403A CN 116383841 A CN116383841 A CN 116383841A
- Authority
- CN
- China
- Prior art keywords
- national
- module
- algorithm
- interface
- security
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000012795 verification Methods 0.000 title claims abstract description 19
- 230000006854 communication Effects 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 5
- 230000009466 transformation Effects 0.000 abstract description 7
- 230000006870 function Effects 0.000 description 61
- 230000004044 response Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S40/00—Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
- Y04S40/20—Information technology specific aspects, e.g. CAD, simulation, modelling, system security
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本披露公开了一种支持国密算法的操作系统、国密证书验证方法及电子设备。该操作系统包括:视窗下一代加密模块,其用于提供视窗下一代加密接口和系统安全接口;国密安全模块,其内部集成有国密算法实现,通过系统安全接口与视窗下一代加密模块通信,并配置成:接收视窗下一代加密模块发出的模块调用请求;响应于模块调用请求,执行相应的国密算法实现,以向操作系统提供国密算法服务。上述操作系统能在不改动第三方应用程序和/或系统应用程序的前提下,支持国密算法,从而降低了适配国密算法所需的改造成本。
Description
技术领域
本披露一般涉及通信安全技术领域。更具体地,本披露涉及一种支持国密算法的操作系统、国密证书验证方法及电子设备。
背景技术
信息安全在国家安全中具有重要地位,其中,数据安全作为信息安全的重要组成部分,如何保障数据的传输安全成为了信息安全课题中的一个重要研究方向,而加密算法则是数据传输安全与否的核心关键。
以往使用的国际通用加密算法受制于国外单位制定的标准,难以应用到涉及机密数据的相关领域,且越来越多的国际通用算法被攻破,存在较高安全风险。为了提升加密算法的自主性和安全性,国家密码局制定了自主可控的国产算法,即商用密码,其包括了对称加密算法,椭圆曲线非对称加密算法,杂凑算法等等。
但由于Windows系统自身并不支持国产商用密码算法,导致Windows系统中的应用程序中无法通过Windows系统安全接口使用国密算法及国密算法类型证书,导致国密算法在Windows系统中的发展受限。
而当前windows系统中支持国密算法的产品均为定制产品,例如支持国密算法的CSP产品或PCIE安全设备产品,其不仅需要用户持有或安装特定设备,还需要开发相应的定制应用程序,导致产品适配国密算法的改造成本较高,且该种改造无法适用于Windows系统应用程序。
有鉴于此,亟需提供一种支持国密算法的操作系统相关方案,以便无论是第三方应用程序还是Windows系统应用程序都不需要改动即可支持国密算法,降低适配国密算法所需的改造成本。
发明内容
为了至少解决如上所提到的一个或多个技术问题,本披露在多个方面中提出了支持国密算法的操作系统相关方案。
在第一方面中,本披露提供一种支持国密算法的操作系统包括:视窗下一代加密模块,其用于提供视窗下一代加密接口和系统安全接口;国密安全模块,其内部集成有国密算法实现,通过系统安全接口与视窗下一代加密模块通信,并配置成:接收视窗下一代加密模块发出的模块调用请求;响应于模块调用请求,执行相应的国密算法实现,以向操作系统提供国密算法服务。
在一些实施例中,国密安全模块内集成有多个国密算法实现子模块;多个国密算法实现子模块对应多种国密算法类型;国密安全模块还配置成:在操作系统中注册多个国密算法实现子模块的模块信息;视窗下一代加密模块配置成:根据所需的国密算法类型查找对应的模块信息,以获取对应国密算法实现子模块提供的国密算法服务。
在一些实施例中,国密算法实现子模块的模块信息包括:模块名称、国密算法名称和国密算法类型;国密安全模块还配置成:在操作系统中将国密算法ID与国密算法名称关联。
在一些实施例中,支持国密算法的操作系统还包括:应用程序,其通过视窗下一代加密接口与视窗下一代加密模块通信,并配置成:向视窗下一代加密模块发出安全服务请求,以指示视窗下一代加密模块向国密安全模块发出模块调用请求。
在一些实施例中,视窗下一代加密模块配置成:根据安全服务请求,查找对应的国密安全模块,向对应的国密安全模块发出模块调用请求;国密安全模块配置成:响应于模块调用请求,执行对应的国密算法运算后,将运算结果通过系统安全接口返回至视窗下一代加密模块,以供应用程序进行使用。
在一些实施例中,安全服务请求包括:安全模块查找指令和函数调用指令;模块调用请求包括:接口地址获取指令和接口调用指令;在获取国密算法服务中,视窗下一代加密模块配置成:响应于应用程序发出的安全模块查找指令,向国密安全模块发出接口地址获取指令;接收国密安全模块返回的接口信息;响应于应用程序发出的函数调用指令,向国密安全模块发出对应的接口调用指令;接收国密安全模块返回的句柄信息,并将其返回至应用程序。
在一些实施例中,国密安全模块配置成依据以下步骤提供国密算法服务,包括:响应于视窗下一代加密模块发出的接口地址获取指令,向视窗下一代加密模块返回接口信息;响应于视窗下一代加密模块发出的接口调用指令,向视窗下一代加密模块返回对应的句柄信息。
在一些实施例中,接口信息包括:国密算法安全接口、算法属性获取安全接口和算法属性设置安全接口;函数调用指令有多种;接口调用指令有多种,接口调用指令包括:用于指示调用国密算法安全接口的指令,用于指示调用算法属性获取安全接口的指令,以及用于指示调用算法属性设置安全接口的指令。
在第二方面中,本披露提供一种国密证书验证方法,其应用于如第一方面任一项所提及的操作系统,该方法包括:对国密证书和证书签发机构的证书进行解析,得到国密证书进行签名验证时所使用的算法信息、国密证书的签名值和签发机构证书公钥信息;根据算法信息,调用对应的国密安全模块进行国密算法运算,得到运算值;基于签名值和运算值完成国密证书验证。
在第三方面中,本披露提供一种电子设备,其上搭载有如第一方面中任一项所提及的操作系统。
通过如上所提供的支持国密算法的操作系统,本披露实施例通过视窗下一代加密模块提供的系统安全接口,实现视窗下一代加密模块和国密安全模块的通信;而通过视窗下一代加密接口,视窗下一代加密模块能够与应用程序进行通信。由于视窗下一代加密接口具有灵活的扩展性,其允许第三方根据自身需求按照下一代加密接口要求实现自己的密码库,打破了Windows操作系统中不能动态调用第三方CSP或第三方定制安全接口的机制限制。而本披露实施例中的国密安全模块按照视窗下一代加密接口实现国密算法,因此,Windows操作系统可以根据所需查找支持对应国密算法的国密安全模块,接着通过调用该模块来获取国密算法的安全服务,而可以不要求使用定制化的应用程序,降低了在Windows操作系统中,令应用程序适配国密算法所需的改造成本。
附图说明
通过参考附图阅读下文的详细描述,本披露示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本披露的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
图1示出了本披露一些实施例的支持国密算法的操作系统的示例性结构框图;
图2示出了本披露另一些实施例的支持国密算法的操作系统的示例性结构框图;
图3示出了本披露一些实施例的国密算法服务获取方法的示例性流程图;
图4示出了本披露一些实施例的国密算法服务提供方法的示例性流程图;
图5示出了本披露一些实施例的国密证书验证方法的示例性流程图;
图6示出了本披露实施例的电子设备的示例性结构框图。
具体实施方式
下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
应当理解,本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
下面结合附图来详细描述本披露的具体实施方式。
示例性应用场景
Windows系统是当前常用的操作系统,其市场占有率高,应用范围广。国密算法是国家密码局制定的自主可控的国产加密算法。但由于Windows系统自身并不支持国密算法,导致Windows系统中的应用程序中无法通过Windows系统安全接口使用国密算法及国密算法类型证书,导致了国密算法在Windows系统中发展受限。
为了实现国密算法在windows系统中的应用,当前windows系统支持国密算法的产品均为定制产品,例如支持国密算法的CSP产品或PCIE安全设备产品,其不仅需要用户持有或安装特定设备,还需要开发相应的定制应用程序,导致产品适配国密算法的改造成本较高,且该种改造无法适用于Windows系统应用程序。
示例性方案
有鉴于此,本披露实施例提供了一种支持国密算法的操作系统相关方案,其通过系统安全接口,实现视窗下一代加密模块和国密安全模块的通信,打破了Windows操作系统不能动态调用第三方CSP或第三方定制安全接口的机制限制,基于此,可以不使用定制化的应用程序,也可以令Windows操作系统获得国密算法服务。
图1示出了本披露一些实施例的支持国密算法的操作系统的示例性结构框图。
如图1所示,本披露实施例提供的支持国密算法的操作系统包括:视窗下一代加密模块101和国密安全模块102。
在本披露实施例中,视窗下一代加密模块也可被称为Windows CNG模块,CNG的全称为Cryptography Next Generation,即下一代加密技术。CNG提供了大量的以开发人员为目标对象的功能,其中包括有更方便的算法发现和替换、可替换的随机数生成器和一个内核模式加密应用程序编程接口。
基于上述内容,可以明确,在本披露实施例中,Windows CNG模块用于提供视窗下一代加密接口1011,即Windows CNG接口,该接口实质上即为Windows操作系统中的一类应用程序编程接口(API,Application Programming Interface)。另外,Windows CNG模块还提供系统安全接口1012,用于与国密安全模块进行通信。
在本披露实施例中,国密安全模块内部集成有国密算法实现,其中,国密算法包括但不限于:椭圆曲线非对称加密算法SM2,杂凑算法SM3和对称加密算法SM4等。
国密安全模块通过上述系统安全接口与Windows CNG模块进行通信,在该通信过程中,国密安全模块配置成:接收Windows CNG模块发出的模块调用请求,响应于该模块调用请求,执行相应的国密算法实现,以向Windows操作系统提供国密算法服务。
Windows CNG接口具备灵活的配置模型,支持更多的密钥存储配置、算法配置和随机数发生器等,因此,Windows CNG模块允许第三方根据自身需求按照下一代加密接口要求实现自己的密码库,其打破了Windows操作系统中不能动态调用第三方CSP或第三方定制安全接口的机制限制。Windows操作系统中的应用程序103通过该Windows CNG接口与WindowsCNG模块通信,并向该模块请求国密算法服务,而Windows CNG模块通过模块内特定函数表中的函数与国密安全模块通信后,Windows操作系统可以根据所需国密算法查找对应的国密安全模块,接着通过该系统安全接口调用该国密安全模块来获取国密算法服务,而可以不要求使用定制化的应用程序。与现有的定制产品相比,该种方式的改造成本大幅降低。
进一步地,上述国密安全模块也可以通过系统安全接口完成模块信息的注册,模块信息注册是为了令Windows操作系统中存储有支持国密算法的模块名称、支持的接口信息以及支持的算法强度等信息。
更进一步地,图2示出了本披露另一些实施例的支持国密算法的操作系统的示例性结构框图。
如图2所示,上述国密安全模块102内可以集成有多个国密算法实现子模块1021,不同的国密算法实现子模块对应不同的国密算法类型,用于提供不同的加密算法,例如:SM2、SM3和SM4等。国密安全模块的模块信息注册过程则可以理解为上述多个国密算法实现子模块的模块信息注册过程。
通过系统安全接口,在Windows操作系统中注册上述多个国密算法实现子模块的模块信息后,Windows操作系统中则存储有上述多个国密算法实现子模块的模块名称、接口信息以及算法强度等信息,Windows CNG模块能够根据所需的国密算法类型查找对应的模块信息,以获取对应国密算法实现子模块提供的国密算法服务,例如,Windows操作系统产生使用SM2的需求时,Windows CNG模块可以查找到支持SM2这一国密算法的国密算法实现子模块,向该国密算法实现子模块发出模块调用请求,从而获得SM2这一类型的国密算法服务。
为了便于Windows CNG模块执行模块查找,在一些实施例中,国密安全模块还可以通过系统安全接口完成国密算法信息注册,在Windows操作系统中完成国密算法信息注册后,Windows操作系统可以通过国密算法名称来识别国密算法类型。
在国密算法信息注册过程中,国密安全模块配置成:通过系统安全接口,在Windows操作系统中将国密算法ID与国密算法名称关联。
为了便于理解,下面提供一些实际应用中的关联关系作为示例,例如,国密安全模块可以通过Windows CNG接口将国密算法ID“1.2.156.10197.1.301”与国密算法名称“SM2”相关联,将国密算法ID“1.2.156.10197.1.401”与国密算法名称“SM3”相关联,将国密算法ID“1.2.156.10197.1.501”与国密算法名称“SM3SM2”相关联,将国密算法ID“1.2.156.10197.1.104”与国密算法名称“SM4”相关联。
经过上述关联操作后,Windows操作系统中的应用程序可以显示国密证书中的算法名称。
需要说明的是,由于不同的国密算法实现子模块所支持的国密算法类型可以不同,因此,为了区别各国密算法实现子模块所支持的国密算法类型,国密算法实现子模块的模块信息中可以包括上述国密算法名称,进一步地,还可以包括模块名称和国密算法类型。
进一步需要说明的是,上述模块信息和国密算法信息可以预先注册在Windows操作系统中。当Windows操作系统产生国密算法需求时,由于Windows操作系统中已经预先存有相应的模块信息和算法信息,因此Windows CNG模块可以直接调用相应的国密算法实现子模块,以获取相应类型的国密算法服务。
前文所提及的应用程序103可以包括系统应用程序1031和/或第三方程序1032,应用程序是安装在操作系统里、通过系统调用来和操作系统配合完成某项功能的软件类型。
在本实施例中,应用程序103通过Windows CNG接口与Windows CNG模块通信,在该通信过程中,应用程序配置成:向Windows CNG模块发出安全服务请求,以指示Windows CNG模块向国密安全模块发出模块调用请求。
基于前文提供的应用程序、Windows CNG模块和国密安全模块,本实施例中的操作系统获取国密算法服务的过程如下:
应用程序根据自身需求,通过Windows CNG接口向Windows CNG模块发出对应类型的安全服务请求;Windows CNG模块接收到安全服务请求后,根据该安全服务请求查找对应的国密安全模块,并通过系统安全接口向该国密安全模块发出模块调用请求;国密安全模块响应于该模块调用请求,执行对应的国密算法运算后,将运算结果通过系统安全接口返回至Windows CNG模块,以供应用程序使用。
在上述应用程序获取国密算法服务的过程中,应用程序可以不进行底层代码的改造,也可以不接入特定硬件设备(例如PCIE安全卡)实现,降低了在Windows操作系统中,令应用程序适配国密算法所需的改造成本。
为了便于本领域技术人员进一步理解上述操作系统获取国密算法服务的过程,下面结合图3和图4对国密算法服务的方法进行说明。
图3示出了本披露一些实施例的国密算法服务获取方法的示例性流程图。
需要说明的是,前文所述的Windows CNG模块可以配置成:通过如下图3示出的方法来获取国密算法服务,其中,Windows CNG模块所发出的模块调用请求包括:接口地址获取指令和接口调用指令,Windows CNG模块所接收的安全服务请求包括:安全模块查找指令和函数调用指令。
如图3所示,在步骤S301中,响应于应用程序发出的安全模块查找指令,向国密安全模块发出接口地址获取指令。
在一些实施例中,安全模块查找指令可以包括国密算法名称,Windows CNG模块基于该安全模块查找指令与国密算法实现子模块的模块信息,进行国密算法名称的匹配,从而找到符合应用程序需求的国密算法实现子模块。确定国密算法实现子模块后,WindowsCNG模块向该确定的国密算法实现子模块发出接口地址获取指令,其中,接口地址获取指令用于指示国密安全模块返回接口信息。
在步骤S302中,接收国密安全模块返回的接口信息。
在本实施例中,接口信息可以理解为调用国密安全模块的接口地址,进一步地,接口信息可以包括:国密算法安全接口、算法属性获取安全接口和算法属性设置安全接口。
在步骤S303中,响应于应用程序发出的函数调用指令,向国密安全模块发出对应的接口调用指令。
在本实施例中,上述函数调用指令有多种;接口调用指令也存在有多种,其中包括:用于指示调用国密算法安全接口的指令,用于指示调用算法属性获取安全接口的指令,以及用于指示调用算法属性设置安全接口的指令。
为了便于理解,下面对步骤S303的具体执行过程进行介绍。
在本实施例中,步骤S303可以示例性包括以下响应过程,具体包括:
响应于应用程序传入的国密算法名称和第一类函数调用指令,向国密安全模块发出第一接口调用指令;
响应于第二类函数调用指令,向国密安全模块发出第二接口调用指令;或响应于第三类函数调用指令,向国密安全模块发出第三接口调用指令;
响应于应用程序传入的国密算法句柄和第四类函数调用指令,向国密安全模块发出第四接口调用指令;
响应于应用程序传入的国密算法运算句柄、运算参数和第五类函数调用指令,向国密安全模块发出第五接口调用指令。
其中,第一接口调用指令用于指示根据国密算法名称调用国密算法安全接口。
第二接口调用指令用于指示调用算法属性获取安全接口。
第三接口调用指令用于指示调用算法属性设置安全接口。
第四接口调用指令用于指示根据国密算法句柄调用国密算法安全接口。
第五接口调用指令用于指示根据国密算法运算句柄调用国密算法安全接口;运算参数由应用程序基于国密算法属性生成。
需要说明的是,上述运算参数为调用算法属性获取安全接口,或调用算法属性设置安全接口时所得到的数据。
进一步地,在实际应用过程中,第一类函数包括:BCryptOpenAlgorithmProvider函数;第二类函数包括:BCryptGetProperty函数;
第三类函数包括:BCryptSetProperty函数;第四类函数包括:BCryptCreateHash函数、BCryptImportKeyPair函数和BCryptGenerateSymmetricKey函数;第五类函数包括:BCryptHashData函数、BCryptFinishHash函数、BCryptSignHash函数、BCryptVerifySignature函数、BCryptEncrypt函数和BCryptDecrypt函数。
上述函数均为Windows CNG接口所提供的可调用函数,其中,BCryptOpenAlgorithmProvider函数用于加载并初始化CNG提供程序;BCryptGetProperty函数用于检索CNG对象的特定属性值,如算法强度等;BCryptSetProperty函数用于设置CNG对象的属性的值;BCryptCreateHash函数用于创建对象的哈希或消息身份验证代码;BCryptImportKeyPair函数用于从密钥BLOB导入公钥/私钥对;BCryptGenerateSymmetricKey函数创建一个密钥对象,用于提供的密钥中的对称密钥加密算法;BCryptHashData函数用于对数据缓冲区执行单向哈希或消息身份验证代码;BCryptFinishHash函数用于获取哈希值或消息认证码;BCryptSignHash函数用于创建哈希值的签名;BCryptVerifySignature函数用于验证指定的签名是否与指定的哈希匹配;BCryptEncrypt函数用于对数据块进行加密;BCryptDecrypt函数用于解密数据块。
可以理解的是,应用程序通过调用Windows CNG接口中提供的函数,实现对Windows CNG模块的调用,指示Windows CNG模块向国密安全模块发出接口调用指令,从而间接实现对国密安全模块的调用。
在步骤S304中,接收国密安全模块返回的句柄信息,并将其返回至应用程序。
步骤S304中,国密安全模块返回的句柄信息与Windows CNG模块发出的接口调用指令之间的对应关系如下:
若Windows CNG模块发出第一接口调用指令,则对应接收国密安全模块返回的国密算法句柄;
若Windows CNG模块发出第二接口调用指令或第三接口调用指令,则对应接收国密安全模块返回的国密算法属性;
若Windows CNG模块发出第四接口调用指令,则对应接收国密安全模块返回的国密算法运算句柄;
若Windows CNG模块发出第五接口调用指令,则对应接收国密安全模块返回的运算结果。
为了便于区别国密算法句柄和国密算法运算句柄,可以将国密算法句柄视作指示国密算法类型的句柄信息,即国密安全模块根据国密算法句柄能够识别出应用程序所需的国密算法类型,继而返回对应类型的国密算法运算句柄,而国密算法运算句柄则直接对应相应的国密算法实现。
在本实施例中,上述国密算法包括但不限于以下几种:SM2、SM3和SM4。下面以上述提及的三种国密算法为例,对国密算法运算结果的生成过程进行示例性说明。
以SM3为例,系统应用程序或第三方应用程序基于数据摘要运算场景,调用Windows CNG接口中的BCryptHashData函数和BCryptFinishHash函数,并传入SM3数据摘要运算句柄和SM3原文及大小等运算参数,Windows CNG模块将根据获取到的SM3数据摘要句柄调用国密安全模块对应的国密运算安全接口,国密安全模块完成SM3数据摘要运算后,将SM3运算结果经由Windows CNG模块反馈给系统应用程序或第三方应用程序。
再以SM2为例,系统应用程序或第三方应用程序基于非对称密钥运算场景,调用Windows CNG接口中的BCryptSignHash函数或BCryptVerifySignature函数,并传入SM2密钥运算句柄和SM3数字摘要等运算参数,Windows CNG模块将根据获取到的SM2密钥运算句柄调用国密安全模块对应的国密运算安全接口,国密安全模块完成SM2非对称密钥运算,并将SM2运算结果经由Windows CNG模块反馈给系统应用程序或第三方应用程序。
又以SM4为例,系统应用程序或第三方应用程序根据对称密钥运算场景,调用Windows CNG接口中的BCryptEncrypt函数或BCryptDecrypt函数,并传入SM4密钥运算句柄和数据原文、密文等运算参数,Windows CNG模块将根据获取到的SM4密钥运算句柄调用国密安全模块对应的国密运算安全接口,国密安全模块完成SM4对称密钥运算,并将SM4运算结果经由Windows CNG模块反馈给系统应用程序或第三方应用程序。
图4示出了本披露一些实施例的国密算法服务提供方法的示例性流程图。
需要说明的是,前文所述的国密安全模块可以配置成:通过如下图4示出的方法来提供国密算法服务,参照图3所示方法对应的实施例,本实施例中的模块调用请求可以包括:接口地址获取指令和接口调用指令;安全服务请求可以包括:安全模块查找指令和函数调用指令。
如图4所示,在步骤S401中,响应于Windows CNG模块发出的接口地址获取指令,向Windows CNG模块返回接口信息。
示例性地,Windows CNG模块发出接口地址获取指令,国密安全模块向WindowsCNG模块返回国密算法安全接口、算法属性获取安全接口和算法属性设置安全接口。
在步骤S402中,响应于Windows CNG模块发出的接口调用指令,向Windows CNG模块返回对应的句柄信息。
在本实施例中,接口调用指令与句柄信息的对应关系可以参照图3所示方法对应的实施例,此处不再展开赘述。
其中,第一接口调用指令为Windows CNG接口中的第一类函数被调用时所生成的指令,用于指示根据国密算法名称调用国密算法安全接口。
第二接口调用指令为Windows CNG接口中的第二类函数被调用时所生成的指令,用于指示调用算法属性获取安全接口。
第三接口调用指令为Windows CNG接口中的第三类函数被调用时所生成的指令,用于指示调用算法属性设置安全接口。
第四接口调用指令为Windows CNG接口中的第四类函数被调用时所生成的指令,用于指示根据国密算法句柄调用国密算法安全接口。
第五接口调用指令为Windows CNG接口中的第五类函数被调用时所生成的指令,用于指示根据国密算法运算句柄调用国密算法安全接口。
前文实施例中,图3所示方法已经对上述函数进行了详细说明,此处不再展开赘述。
国密算法的应用领域非常广泛,可以用于加密保护敏感的内部信息、行政事务信息和经济信息等。例如国密算法可用于企业出入管理以及企业内各种敏感信息的传输加密和存储加密。又例如国密算法可以用于防止非法第三方获取信息内容的各种证书认证和数字签名认证等。
利用前文任一实施例提供的操作系统,可以实现一种国密证书验证方法。
图5示出了本披露一些实施例的国密证书验证方法的示例性流程图。
如图5所示,在步骤S501中,对国密证书和证书签发机构的证书进行解析,得到国密证书进行签名验证时所使用的算法信息、国密证书的签名值和签发机构证书公钥信息。
在本实施例中,算法信息可以指示采用的国密算法的类型,例如SM2和SM3等。
应用程序解析国密证书和证书签发机构的证书,获取数字证书签发机构对该证书进行签名验证时使用的密钥信息、算法信息及签名值,以供后续步骤S502执行相应的验签运算,得到一个运算值。
在步骤S502中,根据算法信息,调用对应的国密安全模块进行国密算法运算,得到运算值。
以SM3为例,应用程序解析证书并确定证书中数字摘要算法为SM3后,将根据前文实施例中的国密算法服务获取方法或提供方法计算SM3数字摘要,此时计算得到的SM3数字摘要为一个运算值。
再以SM2为例,应用程序解析证书获取到证书中签名算法为SM2后,将根据前文实施例中的国密算法服务过程获取一个运算值。
在步骤S503中,基于签名值和运算值完成国密证书验证。
将步骤S502计算得到的运算值与解析证书得到的签名值进行比对验证,从而确定证书验证结果是否通过。
需要说明的是,上述国密证书验证方法可以拓展出一种国密证书链验证方法。其中,证书链由多个证书组成,例如包括用户证书、中级证书及根证书,用户证书通过中级证书签发,中级证书由根证书签发。证书链验证方法中,首先验证用户证书,再验证中级证书,最后验证根证书。而其中每个证书都可以通过上述国密证书验证方法进行验证。
综上,本披露所提供的支持国密算法的操作系统能够通过视窗下一代加密接口,完成国密安全模块的调用,继而从集成的国密算法实现中,获取所需类型的国密算法服务,且可以不对操作系统中的应用程序进行改造,使得操作系统不只是从应用层支持国密算法,而是从系统层上支持国密算法。
基于前文实施例提供的国密算法服务获取方法或国密算法服务提供方法,Windows操作系统可以根据所需查找支持对应国密算法的国密安全模块,接着通过调用该模块来获取国密算法的安全服务,而可以不要求使用定制化的应用程序,降低了Windows操作系统适配国密算法所需的改造成本。
基于本披露所提供的支持国密算法的操作系统,还可以实现一种国密证书验证方法和国密证书链验证方法,用于实现多种行业领域中的信息管理,保障信息安全。
与前述功能性实施例相对应地,本发明实施例中还提供了一种如图6所示的电子设备。图6示出了本披露实施例的电子设备的示例性结构框图。
图6所示的电子设备600上搭载有如前文所述的任一项操作系统601,所述操作系统601能够实现如前文所述的任一项方法。
在图6的电子设备600中,仅示出了与本实施例有关的组成元素。因此,对于本领域普通技术人员而言显而易见的是:电子设备600还可以包括与图6中所示的组成元素不同的常见组成元素。
综上,本说明书实施方式提供的电子设备600的操作系统601实现的具体功能,可以与本说明书中的前述实施方式相对照解释,并能够达到前述实施方式的技术效果,这里便不再赘述。
进一步地,电子设备600可以包括:处理器和存储器,存储器中存储有指令集,上文所述的操作系统是基于该指令集编译完成的机器语言级程序,其可以响应应用程序所产生的需求指令并将其传递给处理器进行处理,触发并运行操作系统中的对应功能,进行计算机资源分配。
或者,本披露还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有计算机程序指令(或计算机程序、或计算机指令代码),当所述计算机程序指令(或计算机程序、或计算机指令代码)被电子设备(或电子设备、服务器等)的处理器执行时,使所述处理器执行根据本披露的上述方法的各个步骤的部分或全部。
虽然本文已经示出和描述了本披露的多个实施例,但对于本领域技术人员显而易见的是,这样的实施例只是以示例的方式来提供。本领域技术人员可以在不偏离本披露思想和精神的情况下想到许多更改、改变和替代的方式。应当理解的是在实践本披露的过程中,可以采用对本文所描述的本披露实施例的各种替代方案。所附权利要求书旨在限定本披露的保护范围,并因此覆盖这些权利要求范围内的等同或替代方案。
Claims (10)
1.一种支持国密算法的操作系统,其特征在于,包括:
视窗下一代加密模块,其用于提供视窗下一代加密接口和系统安全接口;
国密安全模块,其内部集成有国密算法实现,通过系统安全接口与所述视窗下一代加密模块通信,并配置成:
接收所述视窗下一代加密模块发出的模块调用请求;
响应于所述模块调用请求,执行相应的国密算法实现,以向所述操作系统提供国密算法服务。
2.根据权利要求1所述的支持国密算法的操作系统,其特征在于,
所述国密安全模块内集成有多个国密算法实现子模块;
所述多个国密算法实现子模块对应多种国密算法类型;
所述国密安全模块还配置成:
在所述操作系统中注册所述多个国密算法实现子模块的模块信息;
所述视窗下一代加密模块配置成:根据所需的国密算法类型查找对应的模块信息,以获取对应国密算法实现子模块提供的国密算法服务。
3.根据权利要求2所述的支持国密算法的操作系统,其特征在于,
所述国密算法实现子模块的模块信息包括:模块名称、国密算法名称和国密算法类型;
所述国密安全模块还配置成:
在所述操作系统中将国密算法ID与所述国密算法名称关联。
4.根据权利要求1所述的支持国密算法的操作系统,其特征在于,还包括:
应用程序,其通过所述视窗下一代加密接口与所述视窗下一代加密模块通信,并配置成:
向所述视窗下一代加密模块发出安全服务请求,以指示所述视窗下一代加密模块向所述国密安全模块发出所述模块调用请求。
5.根据权利要求4所述的支持国密算法的操作系统,其特征在于,
所述视窗下一代加密模块配置成:
根据所述安全服务请求,查找对应的国密安全模块,向所述对应的国密安全模块发出所述模块调用请求;
所述国密安全模块配置成:
响应于所述模块调用请求,执行对应的国密算法运算后,将运算结果通过所述系统安全接口返回至所述视窗下一代加密模块,以供所述应用程序进行使用。
6.根据权利要求5所述的支持国密算法的操作系统,其特征在于,
所述安全服务请求包括:安全模块查找指令和函数调用指令;
所述模块调用请求包括:接口地址获取指令和接口调用指令;
在获取国密算法服务中,所述视窗下一代加密模块配置成:
响应于所述应用程序发出的安全模块查找指令,向所述国密安全模块发出所述接口地址获取指令;
接收所述国密安全模块返回的接口信息;
响应于所述应用程序发出的函数调用指令,向所述国密安全模块发出对应的接口调用指令;
接收所述国密安全模块返回的句柄信息,并将其返回至所述应用程序。
7.根据权利要求6所述的支持国密算法的操作系统,其特征在于,
所述国密安全模块配置成依据以下步骤提供国密算法服务,包括:
响应于所述视窗下一代加密模块发出的接口地址获取指令,向所述视窗下一代加密模块返回所述接口信息;
响应于所述视窗下一代加密模块发出的接口调用指令,向所述视窗下一代加密模块返回对应的句柄信息。
8.根据权利要求6或7所述的支持国密算法的操作系统,其特征在于,
所述接口信息包括:国密算法安全接口、算法属性获取安全接口和算法属性设置安全接口;
所述函数调用指令有多种;
所述接口调用指令有多种,包括:用于指示调用所述国密算法安全接口的指令,用于指示调用所述算法属性获取安全接口的指令,以及用于指示调用所述算法属性设置安全接口的指令。
9.一种国密证书验证方法,其特征在于,应用于如权利要求1-8中任一项所述的操作系统,包括:
对国密证书和证书签发机构的证书进行解析,得到所述国密证书进行签名验证时所使用的算法信息、所述国密证书的签名值和签发机构证书公钥信息;
根据所述算法信息,调用对应的国密安全模块进行国密算法运算,得到运算值;
基于所述签名值和所述运算值完成国密证书验证。
10.一种电子设备,其特征在于,其上搭载有如权利要求1-8中任一项所述的操作系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310272403.0A CN116383841A (zh) | 2023-03-17 | 2023-03-17 | 支持国密算法的操作系统、国密证书验证方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310272403.0A CN116383841A (zh) | 2023-03-17 | 2023-03-17 | 支持国密算法的操作系统、国密证书验证方法及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116383841A true CN116383841A (zh) | 2023-07-04 |
Family
ID=86976132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310272403.0A Pending CN116383841A (zh) | 2023-03-17 | 2023-03-17 | 支持国密算法的操作系统、国密证书验证方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116383841A (zh) |
-
2023
- 2023-03-17 CN CN202310272403.0A patent/CN116383841A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10595201B2 (en) | Secure short message service (SMS) communications | |
US8285647B2 (en) | Maintaining privacy for transactions performable by a user device having a security module | |
US20050188219A1 (en) | Method and a system for communication between a terminal and at least one communication equipment | |
EP2095288B1 (en) | Method for the secure storing of program state data in an electronic device | |
US11025415B2 (en) | Cryptographic operation method, method for creating working key, cryptographic service platform, and cryptographic service device | |
US8904195B1 (en) | Methods and systems for secure communications between client applications and secure elements in mobile devices | |
JP2007506392A (ja) | データ通信機密保護の仕組みおよび方法 | |
KR20080041220A (ko) | 분산된 단일 서명 서비스 방법 | |
CN103095457A (zh) | 一种应用程序的登录、验证方法 | |
CN102271124A (zh) | 数据处理设备和数据处理方法 | |
CN109981665B (zh) | 资源提供方法及装置、资源访问方法及装置和系统 | |
CN108769029B (zh) | 一种对应用系统鉴权认证装置、方法及系统 | |
CN109684129B (zh) | 数据备份恢复方法、存储介质、加密机、客户端和服务器 | |
CN114448648B (zh) | 基于rpa的敏感凭据管理方法及系统 | |
US20110154436A1 (en) | Provider Management Methods and Systems for a Portable Device Running Android Platform | |
RU2363985C2 (ru) | Аутентификация на основе вызова, не требующая знания секретных аутентификационных данных | |
CN113094190B (zh) | 微服务调用方法、调用装置、电子设备和存储介质 | |
JP2003208409A (ja) | 認証システム及び認証方法 | |
CN111597586B (zh) | 一种区块链隐私保护方法、系统及装置 | |
CN111901287B (zh) | 一种为轻应用提供加密信息的方法、装置和智能设备 | |
CN115473655B (zh) | 接入网络的终端认证方法、装置及存储介质 | |
CN116599719A (zh) | 一种用户登录认证方法、装置、设备、存储介质 | |
US8261088B2 (en) | Secret authentication system | |
CN116232599A (zh) | 一种物联网身份认证方法、物联网终端及服务器 | |
CN114172923B (zh) | 数据传输方法、通信系统及通信装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |