CN116383840A - 用于提供安全支持的装置及支持国密安全协议的操作*** - Google Patents

用于提供安全支持的装置及支持国密安全协议的操作*** Download PDF

Info

Publication number
CN116383840A
CN116383840A CN202310271374.6A CN202310271374A CN116383840A CN 116383840 A CN116383840 A CN 116383840A CN 202310271374 A CN202310271374 A CN 202310271374A CN 116383840 A CN116383840 A CN 116383840A
Authority
CN
China
Prior art keywords
security
protocol
national
operating system
providing
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
Application number
CN202310271374.6A
Other languages
English (en)
Inventor
马超
任新海
杨晓宇
颜海龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Financial Certification Authority Co ltd
Original Assignee
China Financial Certification Authority Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Financial Certification Authority Co ltd filed Critical China Financial Certification Authority Co ltd
Priority to CN202310271374.6A priority Critical patent/CN116383840A/zh
Publication of CN116383840A publication Critical patent/CN116383840A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Alarm Systems (AREA)

Abstract

本披露公开了一种用于提供安全支持的装置及支持国密安全协议的操作***。该装置包括:M个第一安全提供模块,用于提供国密安全协议服务,其通过操作***中的视窗安全支持提供程序接口,与操作***中的应用程序进行通信,并配置成:响应于操作***接收协议告警消息或国密协议号,在应用程序进行握手协商时,提供国密安全协议服务;以及N个第二安全提供模块,用于提供国际安全协议服务,其通过操作***中的视窗安全支持提供程序接口,与操作***中的应用程序进行通信。本披露实施例能够自适应切换国密安全协议服务,而可以不对应用程序进行改造,降低了操作***支持国密安全协议所需的改造成本。

Description

用于提供安全支持的装置及支持国密安全协议的操作***
技术领域
本披露一般涉及通信安全技术领域。更具体地,本披露涉及一种用于提供安全支持的装置及支持国密安全协议的操作***。
背景技术
安全套接字协议(SSL,Secure Socket Layer)是一种网络数据安全协议,被广泛用于Web浏览器或应用程序客户端与服务器之间的身份认证和加密数据传输。SSL安全协议位于TCP/IP协议与各种应用层协议之间,对网络数据进行加解密,为数据通讯提供安全支持。
目前,RSA、ECC等算法仍是SSL安全协议所采用的主流算法,但是此类算法经由国外单位开发。有鉴于此,我国开发了国密SSL安全协议,由于其采用了自主可控加密算法,安全等级更高,逐渐受到越来越多用户的信赖和认可。
但由于Windows***自身并不支持国密SSL安全协议,这就导致了基于Windows***进行支持国密SSL协议的安全通信时,***中的应用程序均需要进行适配改造,例如:通过将应用程序发送至软件或硬件安全代理,实现与国密SSL服务器进行安全通信。这种针对应用程序进行改造的成本较高,且需要单独定制并采购软件或硬件安全代理设备,导致了国密SSL安全协议在Windows***中的发展受限。
有鉴于此,亟需提供一种用于提供安全支持的装置及其相关方案,以便在不改造应用程序的前提下,通过第一安全提供模块实现国密SSL安全协议的适应性切换,使得Windows操作***支持国密SSL安全协议,降低改造成本。
发明内容
为了至少解决如上所提到的一个或多个技术问题,本披露在多个方面中提出了用于提供安全支持的装置及其相关方案。
在第一方面中,本披露提供一种用于提供安全支持的装置包括:M个第一安全提供模块,用于提供国密安全协议服务,其通过操作***中的视窗安全支持提供程序接口,与操作***中的应用程序进行通信,并配置成:响应于操作***接收协议告警消息或国密协议号,在应用程序进行握手协商时,提供国密安全协议服务;以及N个第二安全提供模块,用于提供国际安全协议服务,其通过操作***中的视窗安全支持提供程序接口,与操作***中的应用程序进行通信;其中,M为正整数,N为自然数。
在一些实施例中,协议告警消息满足以下任一条件:协议告警消息为以国密协议类型头部信息作为报文开头;以及协议告警消息以国际协议类型头部信息作为报文开头,且协议告警消息的告警编码为预设编码。
在一些实施例中,国密协议类型头部消息为第一预设字段;国际协议类型头部信息为第二预设字段;协议告警消息的告警编码位于报文的预设字节位置。
在第二方面中,本披露提供一种支持国密安全协议的操作***包括:视窗安全支持提供程序接口,应用程序,以及如第一方面中任一项用于提供安全支持的装置,该用于提供安全支持的装置配置成:通过视窗安全支持提供程序接口,向应用程序提供国密安全协议服务和/或国际安全协议服务。
在一些实施例中,第一安全提供模块配置成:将模块信息注册在操作***中,以令操作***将第一安全提供模块作为操作***默认的安全协议服务模块。
在一些实施例中,在获取国密安全协议服务中,操作***配置成:启动本地安全服务进程;通过本地安全服务进程加载第一安全提供模块;调用SpLsaModeInitialize接口,以获取第一安全提供模块的安全接口;调用GetInfo函数,以获取第一安全提供模块的模块名称和模块信息;响应于应用程序发出国密协议号或二次握手请求,调用第一安全提供模块的安全接口,以获取第一安全提供模块提供的国密安全协议服务;其中,二次握手请求为第一安全提供模块接收到协议告警消息后,应用程序再次发出的握手请求。
在一些实施例中,在提供国密安全协议服务中,第一安全提供模块配置成:响应于加载指令,将模块名称、模块信息和安全接口返回至操作***;响应于操作***接收国密协议号,生成握手消息并进行国密化封装,以形成国密SSL握手消息并将其返回至应用程序,以供应用程序进行握手协商。
在一些实施例中,在获取国密安全协议服务中,应用程序配置成:根据视窗安全支持提供程序接口的参数,设定国密协议号;将国密协议号发送至操作***,以获取第一安全提供模块提供的国密安全协议服务。
在一些实施例中,第一安全提供模块还配置成:响应于告警消息,解析告警消息;告警消息为响应于前次握手请求所产生的消息;前次握手请求为第一安全提供模块接收到协议告警消息之前,应用程序发出的握手请求;若告警消息为协议告警消息,则响应于应用程序发出的二次握手请求,对握手消息进行国密化封装,以形成国密SSL握手消息并将其返回至应用程序,以供应用程序进行握手协商。
在一些实施例中,在获取国密安全协议服务中,应用程序配置成:发出握手消息;接收第一安全提供模块反馈的协议切换错误码;协议切换错误码为告警消息为协议告警消息时,第一安全提供模块向应用程序反馈的报错信息;发出二次握手请求;接收第一安全提供模块返回的国密SSL握手消息;发出国密SSL握手消息。
通过如上所提供的用于提供安全支持的装置,本披露实施例能够利用操作***中的视窗安全支持提供程序接口,即Windows SSPI接口,实现第一安全提供模块与应用程序的通信。由于第一安全提供模块支持国密安全协议,因此,第一安全提供模块为操作***提供了调用国密安全协议服务的基础。并且,第一安全提供模块能够识别协议切换时机,即当操作***接收协议告警消息或国密协议号时,适配当前所需的协议模式,从而及时为应用程序提供国密安全协议服务,而可以不对应用程序进行更新或改造,降低了应用程序在操作***中支持国密安全协议所需的成本。
附图说明
通过参考附图阅读下文的详细描述,本披露示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本披露的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
图1示出了本披露一些实施例的操作***的示例性结构框图;
图2示出了本披露一些实施例的初始化方法的示例性流程图;
图3示出了本披露一些实施例的国密安全协议服务提供方法的示例性流程图;
图4示出了本披露一些实施例的国密安全协议服务获取方法的示例性流程图;
图5示出了本披露另一些实施例的国密安全协议服务提供方法的示例性流程图;
图6示出了本披露另一些实施例的国密安全协议服务获取方法的示例性流程图;
图7示出了本披露实施例的电子设备的示例性结构框图。
具体实施方式
下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
应当理解,本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
下面结合附图来详细描述本披露的具体实施方式。
示例性应用场景
为了实现安全通信协议的自主可控,我国开发了国密SSL安全协议,其采用了自主可控的国产加密算法,安全等级更高,更适用于我国各类重要领域的网站或信息管理***。
但由于Windows***自身并不支持国密SSL安全协议,导致基于Windows***进行支持国密SSL协议的安全通信时,***中的应用程序均需要进行适配改造,例如:通过将应用程序发送至软件或硬件安全代理,实现与国密SSL服务器进行安全通信。这种针对应用程序进行改造的成本较高,且需要单独定制并采购软件或硬件安全代理设备,导致了国密SSL安全协议在Windows***中的发展受限。
示例性方案
有鉴于此,本披露实施例提供了一种用于提供安全支持的装置及其相关方案,其通过视窗安全支持提供程序接口实现第一安全提供模块与应用程序的通信,第一安全提供模块能够识别协议切换时机,及时切换国密安全协议服务,而可以不对应用程序进行改造,降低了操作***支持国密安全协议所需的改造成本。
图1示出了本披露一些实施例的操作***的示例性结构框图。
在图1示出的操作***中,提供了一种用于提供安全支持的装置。该用于提供安全支持的装置101包括:M个第一安全提供模块1011和N个第二安全提供模块1012,其中,M为包括1和3在内的正整数,N为包括0在内的自然数。
可以确定的是,本披露实施例示出的用于提供安全支持的装置中包括至少一个第一安全提供模块。进一步地,用于提供安全支持的装置中可以仅由第一安全提供模块构成,即装置中第二安全提供模块的数量可以为0。
在本披露实施例中,第一安全提供模块用于提供国密安全协议服务,其通过操作***中的视窗安全支持提供程序接口,与操作***中的应用程序进行通信;第二安全提供模块用于提供国际安全协议服务,其通过操作***中的视窗安全支持提供程序接口,与操作***中的应用程序进行通信。
视窗安全支持提供程序接口,即Windows Security Support ProviderInterface,也被称为Windows SSPI接口102,为安全的分布式应用程序提供的通用行业标准接口。
本披露中的应用程序103可以包括***应用程序1031和第三方应用程序1032。
在实际应用过程中,安全提供模块为集成有安全提供程序(SSP,SecuritySupport Provider)的模块,SSP实施Microsoft统一协议提供程序安全包,将安全套接字协议(SSL,Secure Socket Layer)、专用通信技术(PCT,Private CommunicationTechnology)以及传输级别安全性(TLS,Transport Layer Security)统一到一个安全包中,因此,在本披露的上下文中,安全提供模块也可以称为SSP模块。
另外,在实际应用中,还可以将基于Windows SSPI接口提供安全服务的模块理解为上述SSP模块。
而本披露实施例中的第一安全提供模块则是指提供基于国密算法的SSL的SSP模块,在本披露的上下文中,亦可称为第一SSP模块;第二安全提供模块则是指提供基于国际算法的SSL的SSP模块,在本披露的上下文中,亦可称为第二SSP模块。第一SSP模块和第二SSP模块通过Windows SSPI接口接入操作***,分别为操作***提供了调用国密安全协议服务和国际安全协议服务的基础。
进一步地,在实际应用中,一个SSP模块也可以提供一个或多个安全服务。例如,本披露实施例的第一SSP模块可以同时提供基于国密算法的SSL安全协议服务和基于国际算法的国际安全协议服务。即,在一些实施例中,第一SSP模块也可以视作第二SSP模块进行使用。
在实际应用过程中,上述操作***搭载在客户端,当客户端与服务器进行通信时,响应于操作***中应用程序的请求,第一SSP模块和/或第二SSP模块被调用,以在客户端中的应用程序与服务器进行握手协商时,提供相应类型的安全协议服务。握手协商时,服务器将会响应应用程序发出的客户端握手消息,并反馈相应的服务器握手消息,若通信出错,则服务器响应客户端握手消息而发出告警信息。
在应用程序与服务器通信时,第一SSP模块配置成:响应于操作***接收协议告警消息或国密协议号,在应用程序与服务器进行握手协商时,提供国密安全协议服务。
需要说明的是,Windows SSPI接口中与握手相关的接口的参数,包括:输入参数和输出参数;其中,输入参数包括有服务器返回的服务器握手消息;输出参数包括有SSP模块产生的国际SSL握手消息或者国密SSL握手消息。
在完成国密SSL握手后,应用程序通过调用Windows SSPI接口传入应用数据原文,SSP模块使用国密算法或国际算法生成加密后的数据密文,而应用程序则将上述数据密文转发给服务器。
进一步地,上述提及的协议告警消息为满足以下任一条件的告警消息:
协议告警消息为以国密协议类型头部信息作为报文开头;
以及协议告警消息以国际协议类型头部信息作为报文开头,且协议告警消息的告警编码为预设编码。
其中,国密协议类型头部消息为第一预设字段;国际协议类型头部信息为第二预设字段;协议告警消息的告警编码位于报文的预设字节位置。
示例性地,关于前文涉及的第一预设字段、第二预设字段以及预设字节位置,可以参照RFC协议标准中的规定进行设置,例如,将第一预设字段设置为“15 01 01”,当协议告警消息的前三个报文字节为“15 01 01”时,说明服务器指向的协议类型为国密安全协议类型。又例如,将第二预设字段设置为“15 03 03”,当协议告警消息的前三个报文字节为“1503 03”时,说明服务器指向的协议类型为国际安全协议类型。又例如,参照RFC协议标准中的规定,判断位于报文第6字节位置和第7字节位置的字段值,即告警编码是否为“0x02”和“0x46”,这两个字段值在RFC协议标准中用于标识协议错误。
可以理解,当协议告警消息为以国密协议类型头部信息作为报文开头时,说明应用程序和服务端之间需要基于国密安全协议实现通信,则操作***需要调用支持国密安全协议服务的第一SSP模块,以提供相应的国密安全协议服务。而当协议告警消息为以国密协议类型头部信息作为报文开头时,说明报文开头指向的是国际协议,此时需要再根据告警编码部分的字段值,判断是否产生了协议错误,若是,则说明应用程序和服务端之间需要基于国密安全协议实现通信。
以上描述的是操作***在通信出错后,被动切换使用国密安全协议服务的情况。在实际应用过程中,操作***也可以主动适配客户端与服务器的通信协议需求,提供相应类型的安全协议服务。
在上述操作***主动适配通信协议需求中,应用程序可以依据该需求设定对应类型的协议号,例如国密协议号“0x01000000”、“0x00000008”和“0x00000020”中的一个,而操作***在获取到国密协议号后,则确定为客户端与服务器的通信过程提供国密安全协议服务。
需要说明的是,在操作***在获取到国密协议号后,操作***并不感知国密SSL安全协议或国际SSL安全协议,此处的国密协议号由应用程序设定,通过操作***中的Windows SSPI接口将该国密协议号透明转发给对应的第一SSP模块进行识别,第一SSP模块则根据该国密协议号生成握手消息并进行国密化封装。在实际应用中,国密协议号的具体字段值可以根据实际需求进行调整,此处不作唯一限定。
在一些实施例中,第一SSP模块可以为兼容国密SSL安全协议及国际SSL/TLS安全协议的SSP模块,例如,第一SSP模块默认提供国际安全协议服务,当服务器发出协议告警消息或客户端中的操作***接收国密协议号时,第一SSP模块则在内部实现协议类型的切换,切换为提供国密安全协议服务。
反之亦然,例如,第一SSP模块默认提供国密安全协议服务,当服务器发出指示国际协议的协议告警消息或客户端中的操作***接收国际协议号时,第一SSP模块则在内部实现协议类型的切换,切换为提供国际安全协议服务,关于指示国际协议的协议告警消息的具体说明可以参考前文实施例中关于协议告警消息的说明,此处不再展开赘述。
基于前文任一实施例所提供的用于提供安全支持的装置,本披露还提供了一种如图1所示的操作***,其包括:Windows SSPI接口,应用程序,以及前文任一实施例示出的用于提供安全支持的装置。
其中,用于提供安全支持的装置配置成:通过视窗安全支持提供程序接口,向应用程序提供国密安全协议服务和/或国际安全协议服务。
在一些实施例中,第一SSP模块可以通过***接口将其模块信息注册在操作***中,模块信息注册后,可以令操作***将第一SSP模块作为***默认的提供安全协议服务的SSP模块。
完成模块信息注册后,还需要对模块信息进行初始化设置,以便于应用程序需要进行SSL/TLS通信时,通过调用Windows SSPI接口,获取SSP模块提供的安全协议服务。以第一SSP模块的模块信息初始化过程为例,在获取国密安全协议服务中,操作***配置成:执行图2示出的初始化方法以调用第一SSP模块。
图2示出了本披露一些实施例的初始化方法的示例性流程图。
如图2所示,在步骤S201中,启动本地安全服务进程。
本地安全服务进程(lsass,Local Security Authority Service)是一个***进程,用于Windows操作***的安全机制,具体用于本地安全和登陆策略。lsass进程随着操作***启动而自动启动。
在步骤S202中,通过本地安全服务进程加载第一SSP模块。
在实际应用过程中,当操作***启动时,安全支持提供程序SSP会被加载到lsass进程中,由于lsass进程可通过注册表进行扩展,使得在操作***启动时,可以加载一个用户自定义的SSP,来实现想要执行的操作。
在步骤S203中,调用SpLsaModeInitialize接口,以获取第一SSP模块的安全接口。
在本实施例中,SpLsaModeInitialize接口的调用能够为本地安全机构(LSA,Local Security Authority)提供指向第一SSP模块中每个安全包实现的函数的指针,即第一SSP模块的安全接口。
在步骤S204中,调用GetInfo函数,以获取第一SSP模块的模块名称和模块信息。
需要说明的是,上述模块信息包括但不限于:模块能够提供的安全服务、版本以及描述信息。
在本实施例中,GetInfo函数是SECPKG_FUNCTION_TABLE函数表中的一种,其能够将第一SSP模块的模块名称以及模块信息返回给操作***,其中,第一SSP模块的模块信息包括:第一SSP模块能够为应用层提供的安全服务和版本等信息。
在步骤S205中,响应于应用程序发出国密协议号或二次握手请求,调用第一SSP模块的安全接口,以获取第一SSP模块提供的国密安全协议服务。
在本实施例中,第一SSP模块可以基于两种不同方式提供国密安全协议服务,其一为被动切换方式,其对应上述应用程序发出二次握手请求的情况;其二为主动适配方式,其对应上述应用程序发出国密协议号的情况。
下面对被动切换方式下的国密安全协议服务进行说明。
上述操作***所在的客户端与服务器进行通信时,应用程序向服务器发出ClientHello消息,在正常通信情况下,服务器会响应Client Hello消息而返回一个Server Hello消息,但在通信失败的情况下,服务器会返回一个告警消息,通过该告警消息可以识别出通信失败的原因。
若该告警消息为协议告警消息,则说明通信失败的原因是协议错误,那么,在下一次握手时,应用程序可以尝试使用国密安全协议。
需要说明的是,上述二次握手请求为第一SSP模块接收到协议告警消息后,应用程序再次发出的握手请求,也即是上文提及的下一次握手时发出的握手请求。
在前文实施例中已经对协议告警消息进行了详尽说明,因此,此处不再展开赘述。
结合以上描述的被动切换方式,本披露的一些实施例还提供了一种第一安全提供模块,其配置成:通过图3示出的方法提供国密安全协议服务。
图3示出了本披露一些实施例的国密安全协议服务提供方法的示例性流程图。
如图3所示,在步骤S301中,响应于服务器反馈的告警消息,解析告警消息。
在一些实施例中,第一SSP模块接收服务器反馈的告警消息并对其进行解析,得到报文开头的具体字段值,例如报文开头的三个字节位置的字段值,当该三个字节位置的字段值为第一预设字段时,则确定告警消息为协议告警消息。在另一些实施例中,还存在另一种情况,报文开头的具体字段值,例如报文开头的三个字节位置的字段值,其为第二预设字段,此时,可以继续解析报文内容,识别协议告警消息中的告警编码,该告警编码位于报文的预设字节位置,例如第6字节和第7字节,若告警编码为预设编码,则确定告警消息为协议告警消息。
在步骤S302中,若告警消息为协议告警消息,则响应于应用程序发出的二次握手请求,对握手消息进行国密化封装,以形成国密SSL握手消息。
当步骤S301确定告警消息为协议告警消息后,说明通信失败的原因是协议错误,那么在应用程序再次尝试握手协商时(此时应用程序发出二次握手请求),第一SSP模块可以提供国密安全协议服务,以解决协议不匹配的问题。
需要说明的是,在应用程序与服务器握手协商的过程中,应用程序仅执行消息收发的网络传输动作,即应用程序仅进行转发握手消息,包括:将SSP模块所产生的客户端握手消息转发给服务器,以及将服务器返回的服务器握手消息,通过Windows SSPI接口转发给操作***内中的SSP模块,而对于握手消息的处理,包括解析和加密,则是由SSP模块来执行的。因此,第一SSP模块基于应用程序发出的二次握手请求,对握手消息进行国密化封装,国密化封装的过程可以理解为使用国密SSL协议及国密算法封装SSL握手消息,完成国密SSL工作密钥的协商,并使用协商的工作密钥及国密对称加解密算法对应用数据进行加密和解密。
在步骤S303中,将国密SSL握手消息返回至应用程序。
完成握手消息的国密化封装后,将形成的国密SSL握手消息返回至应用程序,应用程序将进行国密SSL握手消息的转发。
结合以上描述的被动切换方式,本披露的一些实施例还提供了一种应用程序,其配置成:通过图4示出的方法获取国密安全协议服务。
图4示出了本披露一些实施例的国密安全协议服务获取方法的示例性流程图。
如图4所示,在步骤S401中,向服务器发出握手消息。
此处的握手消息可以理解为首次握手请求对应的握手消息,SSP模块响应于应用程序发起的首次握手请求,生成一个握手消息,并通过应用程序转发给服务器。
需要说明的是,上述首次握手请求是相对于二次握手请求而言的,并非指代客户端与服务器建立网络连接后,第一次发出的握手请求。即以协议切换作为界线,上述首次握手请求指的是协议切换前,应用程序最后发出的握手请求,而二次握手请求则是协议切换后,应用程序发出的第一个握手请求。
在步骤S402中,接收第一SSP模块反馈的协议切换错误码。
由于应用程序只负责消息收发,而不具备消息处理的职能,因此,客户端获取到服务器反馈的告警消息后,交由第一SSP模块进行解析,若解析结果对应协议错误,即告警消息为协议告警消息,则第一SSP模块会反馈一个协议切换错误码给应用程序,告知其当前通信回合出现了错误。
可以理解,上述协议切换错误码为告警消息为协议告警消息时,第一SSP模块向应用程序反馈的报错信息。
在步骤S403中,发出二次握手请求。
在应用程序与服务器因为协议不匹配而通信失败后,应用程序可以再次尝试进行通信,即应用程序发出二次握手请求,此时,应用程序只调用第一SSP模块的握手消息处理接口,而第一SSP模块已经完成操作***中的协议切换,提供国密安全协议服务。此时,第一SSP模块负责对握手消息进行国密化封装,以形成国密SSL握手消息。
在步骤S404中,接收第一SSP模块返回的国密SSL握手消息。
在步骤S405中,将国密SSL握手消息发送至服务器。
由于此时的握手消息是基于国密SSL安全协议进行处理的,因此,能够匹配服务器的协议要求,完成通信。
进一步地,在实际应用过程中,Windows操作***默认支持多个版本的国际安全协议,应用程序会默认按照安全协议版本由高到低的次序尝试进行握手协商,如果使用高版本国际安全协议握手失败,则将切换至下一级低版本国际安全协议,再次尝试SSL握手。
以上描述的依据由高到低的次序尝试国际安全协议的机制可以应用于本披露示出的第二SSP模块,此处不再展开赘述。
以上描述了被动切换方式下的国密安全协议服务过程,下面结合附图对自动适配方式下的国密安全协议服务过程进行说明。
在实际应用中,应用程序在通过Windows SSPI接口进行SSL/TLS握手时,需要通过Windows SSPI接口设置SSL/TLS协议号,用于告知提供SSL/TLS协议服务的SSP模块,上层应用需要使用哪种版本的SSL/TLS协议。
基于上述机制,操作***可以通过Windows SSPI接口设置的SSL/TLS协议号识别上层应用所需的协议类型,确定是否采用第一SSP模块来获取国密安全协议服务。
针对自动适配方式,本披露的一些实施例提供了一种第一SSP模块,其配置成:通过图5示出的方法提供国密安全协议服务。
图5示出了本披露另一些实施例的国密安全协议服务提供方法的示例性流程图。
如图5所示,在步骤S501中,响应于加载指令,将模块名称、模块信息和安全接口返回至操作***。
操作***启动时,本地安全服务进程随之启动,该本地安全服务进程将加载第一SSP模块,而通过调用GetInfo函数,操作***能够获取到第一SSP模块的模块名称和模块信息。
在步骤S502中,响应于操作***接收国密协议号,对握手消息进行国密化封装,形成国密SSL握手消息。
传统的Windows操作***中只有国际TLS协议号标识,而在本披露提供的操作***中,应用程序能够通过Windows SSPI接口参数设定协议号,例如国密协议号“0x01000000”、“0x00000008”或“0x00000020”,操作***接收该设定的协议号,通过Windows SSPI接口转发给SSP模块进行识别。由于应用程序通过GetInfo函数返回的信息中包含有模块名称,即应用程序明确指定了SSP模块的名称,从而完成了对指定SSP模块的调用,例如,应用程序通过模块名称指明第一SSP模块将为上层应用提供国密单向或双向SSL安全协议服务。
上述过程可以理解为,应用程序通过Windows SSPI接口参数设定协议号,并主动声明上层应用指定的协议类型,而不是通过服务器反馈的信息来确定是否需要进行协议切换。
前文实施例中已经对握手消息的国密化封装过程进行了说明,此处不再赘述。
在步骤S503中,将国密SSL握手消息返回至应用程序,以供应用程序与服务器进行握手协商。
在本实施例中,上述步骤S503的内容与前文实施例中的步骤S303一致,此处不再赘述。
针对自动适配方式,本披露的一些实施例还提供了一种应用程序,其配置成:通过图6示出的方法获取国密安全协议服务。
图6示出了本披露另一些实施例的国密安全协议服务获取方法的示例性流程图。
如图6所示,在步骤S601中,根据Windows SSPI接口参数,设定国密协议号。
示例性地,国密协议号可以为“0x01000000”、“0x00000008”和“0x00000020”中的一个。
需要说明的是,在实际应用中,国密协议号可以具有不同的字段值,即国密协议号的取值不构成对本披露的限定。
在步骤S602中,将国密协议号发送至操作***,以获取第一SSP模块提供的国密安全协议服务。
在本实施例中,对应于第一SSP模块为默认的安全协议服务模块,应用程序可以直接使用默认的安全协议服务模块;或者应用程序可以利用模块名称明确指定了第一安全通信模块提供安全协议服务。当使用第一SSP模块提供安全协议服务时,该第一SSP模块将会生成握手消息并进行国密化封装,以形成国密SSL握手消息,该国密SSL握手消息由应用程序转发至服务器。
综上,本披露提供了一种用于提供安全支持的装置,其中的第一安全提供模块能够为操作***提供支持国密安全协议服务的基础,并且提供了响应于协议告警消息或国密协议号的自适应切换机制,能够提升操作***切换国密安全协议的准确性。
本披露还提供了一种支持国密安全协议的操作***,其利用通过Windows SSPI接口引入的第一SSP模块,借助第一SSP模块的自适应切换机制,从***层支持国密安全协议,降低了应用程序在Windows操作***中支持国密安全协议的开发和维护成本。
与前述功能性实施例相对应地,本发明实施例中还提供了一种如图7所示的电子设备。图7示出了本披露实施例的电子设备的示例性结构框图。
图7所示的电子设备700搭载有前文任一项实施例所示的操作***701,使得电子设备700与服务器进行通信时,可以获取到国密安全协议服务。
进一步地,电子设备700可以包括:处理器和存储器,存储器中存储有指令集,上文所述的操作***是基于该指令集编译完成的机器语言级程序,其可以响应应用程序所产生的需求指令并将其传递给处理器进行处理,触发并运行操作***中的对应功能,进行计算机资源分配。
在图7的电子设备700中,仅示出了与本实施例有关的组成元素。因此,对于本领域普通技术人员而言显而易见的是:电子设备700还可以包括与图7中所示的组成元素不同的常见组成元素。
综上,本说明书实施方式提供的电子设备700的操作***701实现的具体功能,可以与本说明书中的前述实施方式相对照解释,并能够达到前述实施方式的技术效果,这里便不再赘述。
或者,本披露还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有计算机程序指令(或计算机程序、或计算机指令代码),当所述计算机程序指令(或计算机程序、或计算机指令代码)被电子设备(或电子设备、服务器等)的处理器执行时,使所述处理器执行根据本披露的上述方法的各个步骤的部分或全部。
虽然本文已经示出和描述了本披露的多个实施例,但对于本领域技术人员显而易见的是,这样的实施例只是以示例的方式来提供。本领域技术人员可以在不偏离本披露思想和精神的情况下想到许多更改、改变和替代的方式。应当理解的是在实践本披露的过程中,可以采用对本文所描述的本披露实施例的各种替代方案。所附权利要求书旨在限定本披露的保护范围,并因此覆盖这些权利要求范围内的等同或替代方案。

Claims (10)

1.一种用于提供安全支持的装置,其特征在于,包括:
M个第一安全提供模块,用于提供国密安全协议服务,其通过操作***中的视窗安全支持提供程序接口,与操作***中的应用程序进行通信,并配置成:
响应于所述操作***接收协议告警消息或国密协议号,在所述应用程序进行握手协商时,提供国密安全协议服务;
以及
N个第二安全提供模块,用于提供国际安全协议服务,其通过操作***中的视窗安全支持提供程序接口,与操作***中的应用程序进行通信;
其中,M为正整数,N为自然数。
2.根据权利要求1所述的用于提供安全支持的装置,其特征在于,所述协议告警消息满足以下任一条件:
所述协议告警消息为以国密协议类型头部信息作为报文开头;
以及
所述协议告警消息以国际协议类型头部信息作为报文开头,且所述协议告警消息的告警编码为预设编码。
3.根据权利要求2所述的用于提供安全支持的装置,其特征在于,
所述国密协议类型头部消息为第一预设字段;
所述国际协议类型头部信息为第二预设字段;
所述协议告警消息的告警编码位于报文的预设字节位置。
4.一种支持国密安全协议的操作***,其特征在于,包括:
视窗安全支持提供程序接口;
应用程序;
以及
如权利要求1-3中任一项所述的用于提供安全支持的装置,所述用于提供安全支持的装置配置成:
通过所述视窗安全支持提供程序接口,向所述应用程序提供国密安全协议服务和/或国际安全协议服务。
5.根据权利要求4所述的支持国密安全协议的操作***,其特征在于,
所述第一安全提供模块配置成:
将模块信息注册在所述操作***中,以令所述操作***将所述第一安全提供模块作为所述操作***默认的安全协议服务模块。
6.根据权利要求5所述的支持国密安全协议的操作***,其特征在于,其中在获取所述国密安全协议服务中,所述操作***配置成:
启动本地安全服务进程;
通过所述本地安全服务进程加载所述第一安全提供模块;
调用SpLsaModeInitialize接口,以获取所述第一安全提供模块的安全接口;
调用GetInfo函数,以获取所述第一安全提供模块的模块名称和模块信息;
响应于所述应用程序发出国密协议号或二次握手请求,调用所述第一安全提供模块的安全接口,以获取所述第一安全提供模块提供的国密安全协议服务;
其中,所述二次握手请求为所述第一安全提供模块接收到所述协议告警消息后,所述应用程序再次发出的握手请求。
7.根据权利要求6所述的支持国密安全协议的操作***,其特征在于,其中在提供所述国密安全协议服务中,所述第一安全提供模块配置成:
响应于加载指令,将所述模块名称、所述模块信息和所述安全接口返回至所述操作***;
响应于所述操作***接收国密协议号,生成握手消息并进行国密化封装,以形成国密SSL握手消息并将其返回至所述应用程序,以供所述应用程序进行握手协商。
8.根据权利要求7所述的支持国密安全协议的操作***,其特征在于,其中在获取所述国密安全协议服务中,所述应用程序配置成:
根据所述视窗安全支持提供程序接口的参数,设定国密协议号;
将所述国密协议号发送至所述操作***,以获取所述第一安全提供模块提供的国密安全协议服务。
9.根据权利要求6所述的支持国密安全协议的操作***,其特征在于,
所述第一安全提供模块还配置成:
响应于告警消息,解析所述告警消息;所述告警消息为响应于前次握手请求所产生的消息;所述前次握手请求为所述第一安全提供模块接收到所述协议告警消息之前,所述应用程序发出的握手请求;
若所述告警消息为协议告警消息,则响应于应用程序发出的二次握手请求,对握手消息进行国密化封装,以形成国密SSL握手消息并将其返回至所述应用程序,以供所述应用程序进行握手协商。
10.根据权利要求9所述的支持国密安全协议的操作***,其特征在于,其中在获取所述国密安全协议服务中,所述应用程序配置成:
发出握手消息;
接收所述第一安全提供模块反馈的协议切换错误码;所述协议切换错误码为所述告警消息为协议告警消息时,所述第一安全提供模块向所述应用程序反馈的报错信息;
发出二次握手请求;
接收所述第一安全提供模块返回的国密SSL握手消息;
发出所述国密SSL握手消息。
CN202310271374.6A 2023-03-17 2023-03-17 用于提供安全支持的装置及支持国密安全协议的操作*** Pending CN116383840A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310271374.6A CN116383840A (zh) 2023-03-17 2023-03-17 用于提供安全支持的装置及支持国密安全协议的操作***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310271374.6A CN116383840A (zh) 2023-03-17 2023-03-17 用于提供安全支持的装置及支持国密安全协议的操作***

Publications (1)

Publication Number Publication Date
CN116383840A true CN116383840A (zh) 2023-07-04

Family

ID=86974210

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310271374.6A Pending CN116383840A (zh) 2023-03-17 2023-03-17 用于提供安全支持的装置及支持国密安全协议的操作***

Country Status (1)

Country Link
CN (1) CN116383840A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116846689A (zh) * 2023-09-01 2023-10-03 建信金融科技有限责任公司 金融业务数据传输方法、装置、计算机设备和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116846689A (zh) * 2023-09-01 2023-10-03 建信金融科技有限责任公司 金融业务数据传输方法、装置、计算机设备和存储介质
CN116846689B (zh) * 2023-09-01 2023-12-26 建信金融科技有限责任公司 金融业务数据传输方法、装置、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
US11164674B2 (en) Multimodal cryptographic data communications in a remote patient monitoring environment
CN111132138B (zh) 一种移动应用程序透明通信保护方法与装置
EP2406749B1 (en) Transfer device for sensitive material such as a cryptographic key
US8769127B2 (en) Cross-domain solution (CDS) collaborate-access-browse (CAB) and assured file transfer (AFT)
US6101543A (en) Pseudo network adapter for frame capture, encapsulation and encryption
CN107689868B (zh) 客户端应用与可信应用的通信方法、装置以及终端
US8095599B2 (en) Mail-based web application and document delivery
CN116383840A (zh) 用于提供安全支持的装置及支持国密安全协议的操作***
US6757734B1 (en) Method of communication
CN110741613A (zh) 一种加密数据流的识别方法、设备、存储介质及***
CN101167331B (zh) 传输网络事件日志协议报文的方法、***和装置
KR101554760B1 (ko) 네트워크 메시지 변환 디바이스 및 그 방법들
EP3414877B1 (en) Technique for transport protocol selection and setup of a connection between a client and a server
US20200236089A1 (en) Rdma-based data transmission method, network interface card, server and medium
CN112995120A (zh) 一种数据监测方法及装置
CN113098685B (zh) 一种基于云计算的安全验证方法、装置及电子设备
CN113014613B (zh) 一种基于tls1.3协议实现ssl卸载会话复用的数据传输***及方法
CN115967511A (zh) 加解密方法、装置及计算机可读存储介质
CN110636071A (zh) 一种接口对接方法
US20060026287A1 (en) Embedded processes as a network service
CN114422570B (zh) 一种跨平台的多模块通讯方法及***
CN111770099B (zh) 数据传输的方法和装置、电子设备、计算机可读介质
CN113765851B (zh) 一种数据处理方法及其设备
KR101594897B1 (ko) 사물 인터넷에서 경량 사물간 보안 통신 세션 개설 방법 및 보안 통신 시스템
CN115277846A (zh) 一种基于ice实现的动态数据分片发送***

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