CN111756698B - 一种消息传递方法、装置、设备和计算机可读存储介质 - Google Patents
一种消息传递方法、装置、设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN111756698B CN111756698B CN202010463046.2A CN202010463046A CN111756698B CN 111756698 B CN111756698 B CN 111756698B CN 202010463046 A CN202010463046 A CN 202010463046A CN 111756698 B CN111756698 B CN 111756698B
- Authority
- CN
- China
- Prior art keywords
- application program
- message
- key
- receiver
- public key
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例公开了一种消息传递方法、装置、设备和介质,接收到进程间通信的应用程序标识组时,生成相应的公钥和私钥。将进程间通信的应用程序标识组以及私钥保存至内核内存。将公钥保存至指定的密钥文件中,密钥文件属性设置为隐藏。文件系统过滤驱动对获取的密文消息进行合法性校验,并将通过合法性校验的密文消息缓存至内核内存;依据密文消息中携带的接收方应用程序标识,向对应的接收方传输读取通知。通过在应用程序所在操作系统的内核层增加实现消息缓存的文件系统过滤驱动,使得进程间通信消息在被接收方取走之前一直保留在内核内存中不会丢失,保证了消息安全的传递到所有接收方,极大的增强了进程间通信消息传递的机密性和可用性。
Description
技术领域
本发明涉及数据安全技术领域,特别是涉及一种消息传递方法、装置、设备和计算机可读存储介质。
背景技术
随着云计算、大数据等新型技术的发展,业务系统越来越复杂,一个功能往往需要多个进程协作才能完成。虽然进程间通信使用越来越多,但进程间通信消息传递的安全性却一直不受重视。
通信消息多通过命名管道、共享内存、窗口消息和套接字Socket等进程间通信的方式来交换,但是这类方式并不能保证发送方发送的消息,接收方一定能收到。例如:群发给多个接收端的消息,多采用基于UDP协议的套接字Socket的方式进行发送,UDP协议不能保证接收方正确的接收了通信消息。即使采用基于连接的TCP协议的套接字Socket,如果某个接收方应用程序恰巧不在运行,也无法把发送方应用程序发送的消息正确送达。
并且进程间消息传递大多采用明文的方式,容易被恶意程序通过挂钩子和使用监控软件的方式获取。即使当前的进程间通信方式采用了加密机制,由于缺乏合适的密钥管理机制,攻击者可以轻松获得密钥,继而方便的获得明文消息。例如:在发布订阅类应用中,通常会有多个订阅方应用程序,而且订阅方应用程序也会动态增加,在这种场景下还没有一种健全的密钥管理和交换机制。攻击者只要获得了密钥,就可以轻松获得进程间传递的明文消息。目前不安全的进程间消息传递方式影响了接收方对于消息的机密性和可用性。
可见,如何提升进程间消息传递的机密性和可用性,是本领域技术人员需要解决的问题。
发明内容
本发明实施例的目的是提供一种消息传递方法、装置、设备和计算机可读存储介质,可以提升进程间消息传递的机密性和可用性。
为解决上述技术问题,本发明实施例提供一种消息传递方法,包括:
接收到进程间通信的应用程序标识组时,生成相应的公钥和私钥;
将所述进程间通信的应用程序标识组以及所述私钥保存至内核内存,将所述公钥保存至指定的密钥文件中;其中,所述密钥文件属性设置为隐藏;
对获取的密文消息进行合法性校验,并将通过合法性校验的密文消息缓存至内核内存;
依据所述密文消息中携带的接收方应用程序标识,向对应的接收方传输读取通知。
可选地,所述对获取的密文消息进行合法性校验,并将通过合法性校验的密文消息缓存至内核内存包括:
判断所述密文消息中携带的发送方应用程序标识和接收方应用程序标识是否均在所述内核内存中保存的应用程序标识组中存在;
若是,则判断所述密文消息中携带的发送方公钥是否与所述密钥文件中存储的公钥匹配;
若是,则将通过合法性校验的密文消息缓存至内核内存。
可选地,所述接收到进程间通信的应用程序标识组时,生成相应的公钥和私钥包括:
接收进程间通信的应用程序标识组;
判断所述应用程序标识组中携带的校验符是否满足预设条件;
若是,则生成与所述应用程序标识组相应的公钥和私钥。
可选地,在所述依据所述密文消息中携带的接收方应用程序标识,向对应的接收方传输读取通知之后还包括:
接收所述接收方发送的读取请求;
判断所述读取请求中携带的接收方应用程序标识是否在所述内核内存中保存的应用程序标识组中存在;
若是,则判断所述读取请求中携带的接收方公钥是否与所述密钥文件中存储的公钥匹配;
若是,则从所述内核内存中读取与所述接收方公钥相匹配的私钥;利用所述私钥对所述密文消息进行解密,以得到明文消息;将所述明文消息传输至所述接收方。
可选地,在所述依据所述密文消息中携带的接收方应用程序标识,向对应的接收方传输读取通知之后还包括:
判断预设时间内所述密文消息是否被读取;
若否,则向所述接收方重新传输读取通知;
若是,则将所述密文消息从所述内核内存中删除。
可选地,在所述将所述进程间通信的应用程序标识组以及所述私钥保存至内核内存,将所述公钥保存至指定的密钥文件中之后还包括:
拦截文件访问请求;
当所述文件访问请求用于访问密钥文件时,判断发送所述文件访问请求的发送方是否与所述内核内存中保存的应用程序标识组匹配;
若是,则向所述发送方反馈密钥文件。
本发明实施例还提供了一种消息传递装置,包括生成单元、存储单元、校验单元和传输单元;
所述生成单元,用于接收到进程间通信的应用程序标识组时,生成相应的公钥和私钥;
所述存储单元,用于将所述进程间通信的应用程序标识组以及所述私钥保存至内核内存,将所述公钥保存至指定的密钥文件中;其中,所述密钥文件属性设置为隐藏;
所述校验单元,用于对获取的密文消息进行合法性校验,并将通过合法性校验的密文消息缓存至内核内存;
所述传输单元,用于依据所述密文消息中携带的接收方应用程序标识,向对应的接收方传输读取通知。
可选地,所述校验单元包括第一判断子单元、第二判断子单元和缓存子单元;
所述第一判断子单元,用于判断所述密文消息中携带的发送方应用程序标识和接收方应用程序标识是否均在所述内核内存中保存的应用程序标识组中存在;若是,则触发所述第二判断子单元;
所述第二判断子单元,用于判断所述密文消息中携带的发送方公钥是否与所述密钥文件中存储的公钥匹配;若是,则触发所述缓存子单元;
所述缓存子单元将通过合法性校验的密文消息缓存至内核内存。
可选地,所述生成单元具体用于接收进程间通信的应用程序标识组;判断所述应用程序标识组中携带的校验符是否满足预设条件;若是,则生成与所述应用程序标识组相应的公钥和私钥。
可选地,还包括获取单元、第一判断单元、第二判断单元、读取单元和解密单元;
所述获取单元,用于获取所述接收方发送的读取请求;
所述第一判断单元,用于判断所述读取请求中携带的接收方应用程序标识是否在所述内核内存中保存的应用程序标识组中存在;若是,则触发所述第二判断单元;
所述第二判断单元,用于判断所述读取请求中携带的接收方公钥是否与所述密钥文件中存储的公钥匹配;若是,则触发所述读取单元;
所述读取单元,用于从所述内核内存中读取与所述接收方公钥相匹配的私钥;
所述解密单元,用于利用所述私钥对所述密文消息进行解密,以得到明文消息;
所述传输单元还用于将所述明文消息传输至所述接收方。
可选地,还包括第三判断单元、重传单元和删除单元;
所述第三判断单元,用于判断预设时间内所述密文消息是否被读取;若否,则触发所述重传单元;若是,则触发所述删除单元;
所述重传单元,用于向所述接收方重新传输读取通知;
所述删除单元,用于将所述密文消息从所述内核内存中删除。
可选地,还包括拦截单元、第四判断单元和发送单元;
所述拦截单元,用于拦截文件访问请求;
所述第四判断单元,用于当所述文件访问请求用于访问密钥文件时,判断发送所述文件访问请求的发送方是否与所述内核内存中保存的应用程序标识组匹配;若是,则触发所述发送单元;
所述发送单元,用于向所述发送方反馈密钥文件。
本发明实施例还提供了一种消息传递方法,包括:
从密钥文件中读取出与自身的应用程序标识相对应的公钥;
利用所述公钥对待发送数据进行加密处理,得到密文数据;
基于系统安全通信方式,将所述公钥、自身的应用程序标识、接收方应用程序标识以及所述密文数据作为密文消息传输至文件系统过滤驱动。
可选地,还包括:
当接收到读取通知时,从密钥文件中读取出与自身的应用程序标识相对应的公钥;
将所述公钥传输至文件系统过滤驱动;
获取所述文件系统过滤驱动反馈的明文数据。
本发明实施例还提供了一种消息传递装置,包括读取单元、加密单元和传输单元;
所述读取单元,用于从密钥文件中读取出与自身的应用程序标识相对应的公钥;
所述加密单元,用于利用所述公钥对待发送数据进行加密处理,得到密文数据;
所述传输单元,用于基于系统安全通信方式,将所述公钥、自身的应用程序标识、接收方应用程序标识以及所述密文数据作为密文消息传输至文件系统过滤驱动。
可选地,还包括获取单元;
所述读取单元还用于当接收到读取通知时,从密钥文件中读取出与自身的应用程序标识相对应的公钥;
所述传输单元还用于将所述公钥传输至文件系统过滤驱动;
所述获取单元,用于获取所述文件系统过滤驱动反馈的明文数据。
本发明实施例还提供了一种消息传递设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如上述任意一项所述消息传递方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意一项所述消息传递方法的步骤。
由上述技术方案可以看出,接收到进程间通信的应用程序标识组时,生成相应的公钥和私钥。每个应用程序标识组记载了需要进行信息交互的应用程序的标识,每个应用程序标识组有其对应的公钥和私钥。将进程间通信的应用程序标识组以及私钥保存至内核内存,受操作系统内存管理的限制,任何应用程序无法访问保存私钥数据的内核内存,保证了应用程序标识组以及私钥的安全性。将公钥保存至指定的密钥文件中,密钥文件属性设置为隐藏,只有发送方应用程序和接收方应用程序才能访问保存公钥的密钥文件。发送方应用程序可以依据获取的公钥对待发送数据进行加密处理,得到密文数据;基于系统安全通信方式,将公钥、自身的应用程序标识、接收方应用程序标识以及密文数据作为密文消息传输至文件系统过滤驱动,文件系统过滤驱动对获取的密文消息进行合法性校验,并将通过合法性校验的密文消息缓存至内核内存;依据密文消息中携带的接收方应用程序标识,向对应的接收方传输读取通知。在该技术方案中,通过在应用程序所在操作系统的内核层增加实现消息缓存的文件系统过滤驱动,利用文件系统过滤驱动进行进程间消息的发送和接收,使得进程间通信消息在被接收方取走之前一直保留在内核内存中不会丢失,保证了消息安全的传递到所有接收方,极大的增强了进程间通信消息传递的机密性和可用性。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种适用于文件系统过滤驱动的消息传递方法的流程图;
图2为本发明实施例提供的另一种适用于文件系统过滤驱动的消息传递方法的流程图;
图3为本发明实施例提供的一种适用于应用程序的消息传递方法的流程图;
图4为本发明实施例提供的一种适用于文件系统过滤驱动的消息传递装置的结构示意图;
图5为本发明实施例提供的一种适用于应用程序的消息传递装置的结构示意图;
图6为本发明实施例提供的一种消息传递设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
传统方式中,发送方应用程序和接收方应用程序基于通用的进程间通信方式实现消息的传递,其可用性不高。本发明实施例提供了一种消息传递方法,应用于进程间的通信,通过在应用程序所在操作系统的内核层增加实现消息缓存的文件系统过滤驱动,利用文件系统过滤驱动进行进程间消息的发送和接收,使得进程间通信消息在被接收方取走之前一直保留在内核内存中不会丢失,保证了消息安全的传递到所有接收方,极大的增强了进程间通信消息传递的机密性和可用性。文件系统过滤驱动作为内核驱动模块,随操作系统自动启动,文件系统过滤驱动在启动时将自身从内核模块链表中摘除,这样上层程序将不知道这个内核驱动模块的存在。
接下来,详细介绍本发明实施例所提供的一种消息传递方法。图1为本发明实施例提供的一种消息传递方法的流程图,适用于文件系统过滤驱动,该方法包括:
S101:接收到进程间通信的应用程序标识组时,生成相应的公钥和私钥。
操作系统中涉及多个进程,为了便于区分不同的进程,针对于每个进程会设置对应的应用程序标识。
在本发明实施例中,可以将需要进行通信的进程的应用程序标识作为一组信息进行记录。例如,进程A需要和进程B进行通信,则可以进程A的应用程序标识和进程B的应用程序标识作为一个应用程序标识组。
每个应用程序标识组中记录了需要进行通信的各进程的应用程序标识,在本发明实施例中针对于每个应用程序标识组可以生成一对公私钥,即生成一个公钥和一个私钥。每个应用程序标识组的处理方式类似,在本发明实施例中均以一个应用程序标识组所涉及的进程为例展开介绍。
在具体实现中,可以在操作系统中设置专门用于统计进程间通信的应用程序标识组的初始化应用程序。操作系统启动时,初始化应用程序可以将进程间通信的应用程序标识组使用系统安全通信方式传递给文件系统过滤驱动。文件系统过滤驱动收到初始化应用程序发送的应用程序标识组后,可以针对每个应用程序标识组产生一对加密使用的公私钥。
S102:将进程间通信的应用程序标识组以及私钥保存至内核内存,将公钥保存至指定的密钥文件中。
文件系统过滤驱动针对于每个应用程序标识组生成相应的公钥和私钥之后,可以将进程间通信的应用程序标识组以及私钥保存至内核内存。受操作系统内存管理的限制,任何应用程序无法访问保存私钥数据的内核内存,保证了应用程序标识组以及私钥的安全性。
考虑到进程间通信的应用程序标识组可能有多个,在实际应用中,文件系统过滤驱动可以将应用程序标识组以链表的形式存储在内核内存中。
文件系统过滤驱动可以将公钥保存至指定的密钥文件,以便于发送方应用程序和接收方应用程序可以访问密钥文件获取其对应的公钥。为了保护密钥文件不被非法访问,可以将密钥文件的属性设置为隐藏。
S103:对获取的密文消息进行合法性校验,并将通过合法性校验的密文消息缓存至内核内存。
发送方应用程序需要向接收方应用程序传递消息时,为保证消息传递的安全性,发送方进程可以将加密后的密文消息传输至文件系统过滤驱动,其具体实现过程可以参见图3,在此不再赘述。
发送方应用程序在发送密文消息时除了包括密文数据之外,还携带有公钥、自身的应用程序标识以及接收方应用程序标识。自身的应用程序标识即为发送方应用程序标识。
为了防止除发送方应用程序和接收方应用程序之外的其它应用程序对密钥文件的非法访问,文件系统过滤驱动可以拦截所有的文件访问请求。当文件访问请求用于访问密钥文件时,判断发送文件访问请求的发送方是否与内核内存中保存的应用程序标识组匹配。
发送方应用程序向文件系统过滤驱动发送文件访问请求时会携带自身的应用程序标识,当文件访问请求中携带的应用程序标识与内核内存中保存的应用程序标识组匹配时,则说明发送方具有访问密钥文件的权限,此时文件系统过滤驱动可以向发送方反馈密钥文件。
文件系统过滤驱动通过拦截所有的文件访问请求,可以有效的保证除发送方应用程序和接收方应用程序外,其它进程无法访问密钥文件。
文件系统过滤驱动接收到密文消息时,可以对密文消息进行合法性校验。考虑到文件系统过滤驱动保存了应用程序标识组以及相应的公私钥,因此,文件系统过滤驱动可以对密文消息中携带的公钥和应用程序标识进行校验,以判断密文消息的合法性。
具体的,文件系统过滤驱动可以判断密文消息中携带的发送方应用程序标识和接收方应用程序标识是否均在内核内存中保存的应用程序标识组中存在。
当密文消息中携带的发送方应用程序标识不在内核内存中保存的应用程序标识组中存在时,或者接收方应用程序标识不在内核内存中保存的应用程序标识组中存在时,则说明发送发或接收方的身份不合法,此时可以直接丢弃密文消息。
当密文消息中携带的发送方应用程序标识和接收方应用程序标识均在内核内存中保存的应用程序标识组中存在时,则说明发送发和接收方的身份合法,此时可以进一步判断密文消息中携带的发送方公钥是否与密钥文件中存储的公钥匹配。
当密文消息中携带的发送方公钥与密钥文件中存储的公钥匹配,则可以将通过合法性校验的密文消息缓存至内核内存。
S104:依据密文消息中携带的接收方应用程序标识,向对应的接收方传输读取通知。
密文消息中携带的接收方应用程序标识可以有多个,文件系统过滤驱动可以依据接收方应用程序标识依次向相应的接收方传输读取通知,以便于接收方可以及时读取发送方传输的消息。
需要说明的是,S101和S102在操作系统启动时执行即可,在发送方每次向文件系统过滤驱动传输密文消息时,文件系统过滤驱动执行S103和S104的操作即可,无需再执行S101和S102的操作。
由上述技术方案可以看出,接收到进程间通信的应用程序标识组时,生成相应的公钥和私钥。每个应用程序标识组记载了需要进行信息交互的应用程序的标识,每个应用程序标识组有其对应的公钥和私钥。将进程间通信的应用程序标识组以及私钥保存至内核内存,受操作系统内存管理的限制,任何应用程序无法访问保存私钥数据的内核内存,保证了应用程序标识组以及私钥的安全性。将公钥保存至指定的密钥文件中,密钥文件属性设置为隐藏,只有发送方应用程序和接收方应用程序才能访问保存公钥的密钥文件。文件系统过滤驱动对获取的密文消息进行合法性校验,并将通过合法性校验的密文消息缓存至内核内存;依据密文消息中携带的接收方应用程序标识,向对应的接收方传输读取通知。在该技术方案中,通过在应用程序所在操作系统的内核层增加实现消息缓存的文件系统过滤驱动,利用文件系统过滤驱动进行进程间消息的发送和接收,使得进程间通信消息在被接收方取走之前一直保留在内核内存中不会丢失,保证了消息安全的传递到所有接收方,极大的增强了进程间通信消息传递的机密性和可用性。
为了保证接收的应用程序标识组的可靠性,文件系统过滤驱动在接收进程间通信的应用程序标识组时,可以判断应用程序标识组中携带的校验符是否满足预设条件。当应用程序标识组中携带的校验符满足预设条件时,则生成与应用程序标识组相应的公钥和私钥。
在本发明实施例中,可以预先设定好初始化应用程序和文件系统过滤驱动的校验方式,例如,可以预先设定初始化应用程序向文件系统过滤驱动传输应用程序标识组时所需携带的特定字符串,当初始化应用程序发送的应用程序标识组中携带有该特定字符串时,则说明应用程序标识组满足预设条件。
文件系统过滤驱动的校验逻辑可以采用代码混淆,以确保检验逻辑的安全性。例如,采用花指令的方式,实现对初始化应用程序的合法性校验。
通过对初始化应用程序进行合法性校验,可以有效的降低文件系统过滤驱动接收到其它应用程序发送的错误的应用程序标识组,保证了后续进程间通信的顺利执行。
上述介绍中是以文件系统过滤驱动接收密文消息为例展开的介绍,接下来将对文件系统过滤驱动向接收方传输解密后的明文消息的实现过程展开介绍,如图2所示为本发明实施例提供的一种消息传递方法的流程示意图,适用于文件系统过滤驱动,方法包括:
S201:获取接收方发送的读取请求。
接收方在获取到文件系统过滤驱动传输的读取通知之后,可以向文件系统过滤驱动发送读取请求。
为了便于文件系统过滤驱动对接收方身份进行校验,在读取请求中可以携带接收方应用程序标识和接收方公钥。
S202:判断读取请求中携带的接收方应用程序标识是否在内核内存中保存的应用程序标识组中存在。
当读取请求中携带的接收方应用程序标识不在内核内存中保存的应用程序标识组中存在时,则说明接收方属于不合法的应用程序,此时文件系统过滤驱动可以不对该读取请求进行处理,直接结束操作。
当读取请求中携带的接收方应用程序标识在内核内存中保存的应用程序标识组中存在时,则说明接收方身份可靠,此时可以执行S203。
S203:判断读取请求中携带的接收方公钥是否与密钥文件中存储的公钥匹配。
当读取请求中携带的接收方公钥与密钥文件中存储的公钥匹配时,则说明接收方公钥合法,不存在伪造公钥的情况,此时可以执行S204。
当读取请求中携带的接收方公钥与密钥文件中存储的公钥不匹配时,则说明接收方公钥不合法,此时可以不对该读取请求进行处理,直接结束操作。
S204:从内核内存中读取与接收方公钥相匹配的私钥,利用私钥对密文消息进行解密,以得到明文消息,并将明文消息传输至接收方。
在本发明实施例中,采用非对称加密的方式对数据进行加密,即使恶意人员/程序通过非正常渠道获取到了加密公钥,也无法对密文消息进行解密。
在内核内存中保存有与公钥相匹配的私钥,当接收方通过S202和S203的合法性验证时,文件系统过滤驱动可以从内核内存中读取与接收方公钥相匹配的私钥,利用该私钥对内核内存中保存的密文消息进行解密,从而将解密得到的明文消息传输至接收方。
通过对接收方发送的读取请求进行合法性校验,可以有效的避免非法用户冒充接收方获取明文消息。进程间通信消息以密文形式保存,即使恶意人员/程序通过分析操作系统内存的方式,也无法分析出消息内容。并且进程间通信消息采用非对称的方式进行加密,即使恶意人员/程序通过非正常渠道获取到了加密公钥,也无法对密文消息进行解密,极大的提升了进程间通信的安全性。
在本发明实施例中,可以将发送方应用程序需要向接收方应用程序传输的消息称作进程间通信消息。考虑到实际应用中,接收方应用程序可能会发生意外,例如:异常终止、程序故障等,导致接收方应用程序无法及时获取进程间通信消息。
因此,在本发明实施例中,文件系统过滤驱动在依据密文消息中携带的接收方应用程序标识,向对应的接收方传输读取通知之后,判断预设时间内密文消息是否被读取。
其中,预设时间的取值可以根据实际需求设置,在此不做限定。
当预设时间内密文消息未被读取时,则说明接收方仍未获取到进程间通信消息,此时文件系统过滤驱动可以向接收方重新传输读取通知。
当预设时间内密文消息已经被读取时,则说明接收方已经获取到进程间通信消息,为了减低对内核内存的占用,此时可以将密文消息从内核内存中删除。
进程间通信消息在操作系统运行期间一直保存在内核内存中,即使接收方应用程序发生意外,例如:异常终止、程序故障等,进程间通信消息也不会丢失。待接收方应用程序运行正常后,文件系统过滤驱动会通知接收方应用程序再次获取进程间通信消息。
图3为本发明实施例提供的一种消息传递方法的流程图,适用于应用程序,该方法包括:
S301:从密钥文件中读取出与自身的应用程序标识相对应的公钥。
对于一个进程即应用程序而言,其既可以是发送方,也可以作为接收方。例如,进程A需要向进程B发送消息,此时进程A作为发送方,进程B作为接收方。当进程A需要接收进程B发送的消息时,此时进程A作为接收方发,进程B作为发送方。
以进程作为发送方为例,为了保证数据的安全性,发送方可以利用公钥对待发送数据进行加密处理。发送方可以向文件系统过滤驱动发送文件访问请求的方式获取公钥。
S302:利用公钥对待发送数据进行加密处理,得到密文数据。
S303:基于系统安全通信方式,将公钥、自身的应用程序标识、接收方应用程序标识以及密文数据作为密文消息传输至文件系统过滤驱动。
应用程序在Linux操作系统下可以通过ioctl方式,在Windows操作系统下可以通过DeviceIoControl方式或专有API函数与文件系统过滤驱动进行通信方式,从而将密文消息传输至文件系统过滤驱动。
其中,ioctl指的是Linux操作系统下设备驱动程序中对设备的I/O通道进行管理的函数。DeviceIoControl指的是Windows操作系统下直接发送控制代码到指定的设备驱动程序,使相应的移动设备以执行相应的操作的函数。
以进程作为接收方为例,当接收到读取通知时,可以从密钥文件中读取出与自身的应用程序标识相对应的公钥;将公钥传输至文件系统过滤驱动;获取文件系统过滤驱动反馈的明文数据。
由上述技术方案可以看出,发送方应用程序可以依据获取的公钥对待发送数据进行加密处理,得到密文数据;基于系统安全通信方式,将公钥、自身的应用程序标识、接收方应用程序标识以及密文数据作为密文消息传输至文件系统过滤驱动,以便于文件系统过滤驱动对获取的密文消息进行合法性校验,并将通过合法性校验的密文消息缓存至内核内存;依据密文消息中携带的接收方应用程序标识,向对应的接收方传输读取通知。在该技术方案中,通过在应用程序所在操作系统的内核层增加实现消息缓存的文件系统过滤驱动,利用文件系统过滤驱动进行进程间消息的发送和接收,使得进程间通信消息在被接收方取走之前一直保留在内核内存中不会丢失,保证了消息安全的传递到所有接收方,极大的增强了进程间通信消息传递的机密性和安全性。
图4为本发明实施例提供的一种消息传递装置的结构示意图,适用于文件系统过滤驱动,包括生成单元41、存储单元42、校验单元43和传输单元44;
生成单元41,用于接收到进程间通信的应用程序标识组时,生成相应的公钥和私钥;
存储单元42,用于将进程间通信的应用程序标识组以及私钥保存至内核内存,将公钥保存至指定的密钥文件中;其中,密钥文件属性设置为隐藏;
校验单元43,用于对获取的密文消息进行合法性校验,并将通过合法性校验的密文消息缓存至内核内存;
传输单元44,用于依据密文消息中携带的接收方应用程序标识,向对应的接收方传输读取通知。
可选地,校验单元包括第一判断子单元、第二判断子单元和缓存子单元;
第一判断子单元,用于判断密文消息中携带的发送方应用程序标识和接收方应用程序标识是否均在内核内存中保存的应用程序标识组中存在;若是,则触发第二判断子单元;
第二判断子单元,用于判断密文消息中携带的发送方公钥是否与密钥文件中存储的公钥匹配;若是,则触发缓存子单元;
缓存子单元将通过合法性校验的密文消息缓存至内核内存。
可选地,生成单元具体用于接收进程间通信的应用程序标识组;判断应用程序标识组中携带的校验符是否满足预设条件;若是,则生成与应用程序标识组相应的公钥和私钥。
可选地,还包括获取单元、第一判断单元、第二判断单元、读取单元和解密单元;
获取单元,用于获取接收方发送的读取请求;
第一判断单元,用于判断读取请求中携带的接收方应用程序标识是否在内核内存中保存的应用程序标识组中存在;若是,则触发第二判断单元;
第二判断单元,用于判断读取请求中携带的接收方公钥是否与密钥文件中存储的公钥匹配;若是,则触发读取单元;
读取单元,用于从内核内存中读取与接收方公钥相匹配的私钥;
解密单元,用于利用私钥对密文消息进行解密,以得到明文消息;
传输单元还用于将明文消息传输至接收方。
可选地,还包括第三判断单元、重传单元和删除单元;
第三判断单元,用于判断预设时间内密文消息是否被读取;若否,则触发重传单元;若是,则触发删除单元;
重传单元,用于向接收方重新传输读取通知;
删除单元,用于将密文消息从内核内存中删除。
可选地,还包括拦截单元、第四判断单元和发送单元;
拦截单元,用于拦截文件访问请求;
第四判断单元,用于当文件访问请求用于访问密钥文件时,判断发送文件访问请求的发送方是否与内核内存中保存的应用程序标识组匹配;若是,则触发发送单元;
发送单元,用于向发送方反馈密钥文件。
图4所对应实施例中特征的说明可以参见图1和图2所对应实施例的相关说明,这里不再一一赘述。
由上述技术方案可以看出,接收到进程间通信的应用程序标识组时,生成相应的公钥和私钥。每个应用程序标识组记载了需要进行信息交互的应用程序的标识,每个应用程序标识组有其对应的公钥和私钥。将进程间通信的应用程序标识组以及私钥保存至内核内存,受操作系统内存管理的限制,任何应用程序无法访问保存私钥数据的内核内存,保证了应用程序标识组以及私钥的安全性。将公钥保存至指定的密钥文件中,密钥文件属性设置为隐藏,只有发送方应用程序和接收方应用程序才能访问保存公钥的密钥文件。文件系统过滤驱动对获取的密文消息进行合法性校验,并将通过合法性校验的密文消息缓存至内核内存;依据密文消息中携带的接收方应用程序标识,向对应的接收方传输读取通知。在该技术方案中,通过在应用程序所在操作系统的内核层增加实现消息缓存的文件系统过滤驱动,利用文件系统过滤驱动进行进程间消息的发送和接收,使得进程间通信消息在被接收方取走之前一直保留在内核内存中不会丢失,保证了消息安全的传递到所有接收方,极大的增强了进程间通信消息传递的机密性和可用性。
图5为本发明实施例提供的一种消息传递装置的结构示意图,适用于应用程序,包括读取单元51、加密单元52和传输单元53;
读取单元51,用于从密钥文件中读取出与自身的应用程序标识相对应的公钥;
加密单元52,用于利用公钥对待发送数据进行加密处理,得到密文数据;
传输单元53,用于基于系统安全通信方式,将公钥、自身的应用程序标识、接收方应用程序标识以及密文数据作为密文消息传输至文件系统过滤驱动。
可选地,还包括获取单元;
读取单元还用于当接收到读取通知时,从密钥文件中读取出与自身的应用程序标识相对应的公钥;
传输单元还用于将公钥传输至文件系统过滤驱动;
获取单元,用于获取文件系统过滤驱动反馈的明文数据。
图5所对应实施例中特征的说明可以参见图3所对应实施例的相关说明,这里不再一一赘述。
由上述技术方案可以看出,发送方应用程序可以依据获取的公钥对待发送数据进行加密处理,得到密文数据;基于系统安全通信方式,将公钥、自身的应用程序标识、接收方应用程序标识以及密文数据作为密文消息传输至文件系统过滤驱动,以便于文件系统过滤驱动对获取的密文消息进行合法性校验,并将通过合法性校验的密文消息缓存至内核内存;依据密文消息中携带的接收方应用程序标识,向对应的接收方传输读取通知。在该技术方案中,通过在应用程序所在操作系统的内核层增加实现消息缓存的文件系统过滤驱动,利用文件系统过滤驱动进行进程间消息的发送和接收,使得进程间通信消息在被接收方取走之前一直保留在内核内存中不会丢失,保证了消息安全的传递到所有接收方,极大的增强了进程间通信消息传递的机密性和可用性。
图6为本发明实施例提供的一种消息传递设备6的结构示意图,其特征在于,包括:
存储器61,用于存储计算机程序;
处理器62,用于执行计算机程序以实现如上述任意实施例所述的消息传递方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述任意实施例所述的消息传递方法的步骤。
以上对本发明实施例所提供的一种消息传递方法、装置、设备和计算机可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
Claims (6)
1.一种消息传递方法,其特征在于,包括:
接收到进程间通信的应用程序标识组时,生成相应的公钥和私钥;
将所述进程间通信的应用程序标识组以及所述私钥保存至内核内存,将所述公钥保存至指定的密钥文件中;其中,所述密钥文件属性设置为隐藏;
拦截文件访问请求;
当所述文件访问请求用于访问密钥文件时,判断发送所述文件访问请求的发送方是否与所述内核内存中保存的应用程序标识组匹配;
若是,则向所述发送方反馈密钥文件;
对获取的密文消息进行合法性校验,并将通过合法性校验的密文消息缓存至内核内存;
对获取的密文消息进行合法性校验,并将通过合法性校验的密文消息缓存至内核内存包括:判断所述密文消息中携带的发送方应用程序标识和接收方应用程序标识是否均在所述内核内存中保存的应用程序标识组中存在;若是,则判断所述密文消息中携带的发送方公钥是否与所述密钥文件中存储的公钥匹配;若是,则将通过合法性校验的密文消息缓存至内核内存;
依据所述密文消息中携带的接收方应用程序标识,向对应的接收方传输读取通知;
接收所述接收方发送的读取请求;
判断所述读取请求中携带的接收方应用程序标识是否在所述内核内存中保存的应用程序标识组中存在;
若是,则判断所述读取请求中携带的接收方公钥是否与所述密钥文件中存储的公钥匹配;
若是,则从所述内核内存中读取与所述接收方公钥相匹配的私钥;利用所述私钥对所述密文消息进行解密,以得到明文消息;将所述明文消息传输至所述接收方。
2.根据权利要求1所述的方法,其特征在于,所述接收到进程间通信的应用程序标识组时,生成相应的公钥和私钥包括:
接收进程间通信的应用程序标识组;
判断所述应用程序标识组中携带的校验符是否满足预设条件;
若是,则生成与所述应用程序标识组相应的公钥和私钥。
3.根据权利要求1-2任意一项所述的方法,其特征在于,在所述依据所述密文消息中携带的接收方应用程序标识,向对应的接收方传输读取通知之后还包括:
判断预设时间内所述密文消息是否被读取;
若否,则向所述接收方重新传输读取通知;
若是,则将所述密文消息从所述内核内存中删除。
4.一种消息传递装置,其特征在于,包括生成单元、存储单元、校验单元和传输单元;
所述生成单元,用于接收到进程间通信的应用程序标识组时,生成相应的公钥和私钥;
所述存储单元,用于将所述进程间通信的应用程序标识组以及所述私钥保存至内核内存,将所述公钥保存至指定的密钥文件中;其中,所述密钥文件属性设置为隐藏;
所述拦截单元,用于拦截文件访问请求;
所述第一判断单元,用于当所述文件访问请求用于访问密钥文件时,判断发送所述文件访问请求的发送方是否与所述内核内存中保存的应用程序标识组匹配;若是,则触发所述发送单元;
所述发送单元,用于向所述发送方反馈密钥文件;
所述校验单元,用于对获取的密文消息进行合法性校验,并将通过合法性校验的密文消息缓存至内核内存;
所述校验单元,具体用于判断所述密文消息中携带的发送方应用程序标识和接收方应用程序标识是否均在所述内核内存中保存的应用程序标识组中存在;若是,则判断所述密文消息中携带的发送方公钥是否与所述密钥文件中存储的公钥匹配;若是,则将通过合法性校验的密文消息缓存至内核内存;
所述传输单元,用于依据所述密文消息中携带的接收方应用程序标识,向对应的接收方传输读取通知;
所述接收单元,用于接收所述接收方发送的读取请求;
所述第二判断单元,用于判断所述读取请求中携带的接收方应用程序标识是否在所述内核内存中保存的应用程序标识组中存在;若是,则判断所述读取请求中携带的接收方公钥是否与所述密钥文件中存储的公钥匹配;若是,则从所述内核内存中读取与所述接收方公钥相匹配的私钥;利用所述私钥对所述密文消息进行解密,以得到明文消息;将所述明文消息传输至所述接收方。
5.一种消息传递设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求1至3任意一项所述消息传递方法的步骤。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至3任意一项所述消息传递方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010463046.2A CN111756698B (zh) | 2020-05-27 | 2020-05-27 | 一种消息传递方法、装置、设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010463046.2A CN111756698B (zh) | 2020-05-27 | 2020-05-27 | 一种消息传递方法、装置、设备和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111756698A CN111756698A (zh) | 2020-10-09 |
CN111756698B true CN111756698B (zh) | 2022-11-18 |
Family
ID=72674109
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010463046.2A Active CN111756698B (zh) | 2020-05-27 | 2020-05-27 | 一种消息传递方法、装置、设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111756698B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113221171A (zh) * | 2021-05-21 | 2021-08-06 | 杭州弗兰科信息安全科技有限公司 | 一种加密文件读写方法、装置、电子设备和存储介质 |
CN114091027B (zh) * | 2021-12-01 | 2023-08-29 | 海光信息技术股份有限公司 | 信息配置方法、数据访问方法及相关装置、设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101816004A (zh) * | 2007-10-02 | 2010-08-25 | 国际商业机器公司 | 通过安全内核设计划分的安全策略 |
CN105740699A (zh) * | 2016-03-04 | 2016-07-06 | 浙江大华技术股份有限公司 | 一种可执行程序的保护方法及装置 |
CN108512653A (zh) * | 2018-04-18 | 2018-09-07 | 成都零光量子科技有限公司 | 一种基于区块链的电子证据采集和服务方法 |
CN108959943A (zh) * | 2018-06-29 | 2018-12-07 | 北京百度网讯科技有限公司 | 用于管理加密密钥的方法、装置、设备、存储介质以及相应车辆 |
CN109923548A (zh) * | 2016-10-11 | 2019-06-21 | 佰倬信息科技有限责任公司 | 通过监管进程访问加密数据实现数据保护的方法、系统及计算机程序产品 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10050946B2 (en) * | 2016-06-17 | 2018-08-14 | The Boeing Company | Secured data transmission using identity-based cryptography |
-
2020
- 2020-05-27 CN CN202010463046.2A patent/CN111756698B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101816004A (zh) * | 2007-10-02 | 2010-08-25 | 国际商业机器公司 | 通过安全内核设计划分的安全策略 |
CN105740699A (zh) * | 2016-03-04 | 2016-07-06 | 浙江大华技术股份有限公司 | 一种可执行程序的保护方法及装置 |
CN109923548A (zh) * | 2016-10-11 | 2019-06-21 | 佰倬信息科技有限责任公司 | 通过监管进程访问加密数据实现数据保护的方法、系统及计算机程序产品 |
CN108512653A (zh) * | 2018-04-18 | 2018-09-07 | 成都零光量子科技有限公司 | 一种基于区块链的电子证据采集和服务方法 |
CN108959943A (zh) * | 2018-06-29 | 2018-12-07 | 北京百度网讯科技有限公司 | 用于管理加密密钥的方法、装置、设备、存储介质以及相应车辆 |
Also Published As
Publication number | Publication date |
---|---|
CN111756698A (zh) | 2020-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2577504C (en) | Secure method of termination of service notification | |
CN103166958B (zh) | 一种文件的保护方法及系统 | |
WO2022022009A1 (zh) | 消息处理方法、装置、设备及存储介质 | |
CN111740942B (zh) | 一种登录/注册方法、装置、系统、电子设备及存储介质 | |
CN110505055B (zh) | 基于非对称密钥池对和密钥卡的外网接入身份认证方法和系统 | |
CN111756698B (zh) | 一种消息传递方法、装置、设备和计算机可读存储介质 | |
US20180083935A1 (en) | Method and system for secure sms communications | |
CN113225351B (zh) | 一种请求处理方法、装置、存储介质及电子设备 | |
CN110971616B (zh) | 基于安全传输层协议的连接建立方法、客户端和服务器 | |
US9160739B2 (en) | Secure data transmission system | |
CN113572788A (zh) | BACnet/IP协议设备认证安全方法 | |
CN114938312A (zh) | 一种数据传输方法和装置 | |
CN115473655B (zh) | 接入网络的终端认证方法、装置及存储介质 | |
CN108737087B (zh) | 邮箱账号密码的保护方法及计算机可读存储介质 | |
CN115834210A (zh) | 一种量子安全网络数据的发送、接收方法及通信系统 | |
CN106972928B (zh) | 一种堡垒机私钥管理方法、装置及系统 | |
WO2011030352A2 (en) | System and method for mobile phone resident digital signing and encryption/decryption of sms | |
CN115225389A (zh) | 通信加密的方法、装置、设备及存储介质 | |
CN115150076A (zh) | 一种基于量子随机数的加密系统及方法 | |
CN114650181A (zh) | 电子邮件加解密方法、系统、设备及计算机可读存储介质 | |
CN110535834B (zh) | 一种网络安全IPsec的加速处理方法及系统 | |
CN105978798A (zh) | 报文加密传输方法、终端和服务器 | |
CN110855628A (zh) | 一种数据传输方法及系统 | |
CN108809888B (zh) | 一种基于安全模块的安全网络构建方法和系统 | |
WO2018094594A1 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |