CN111914291A - 消息处理方法、装置、设备及存储介质 - Google Patents

消息处理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN111914291A
CN111914291A CN202010737744.7A CN202010737744A CN111914291A CN 111914291 A CN111914291 A CN 111914291A CN 202010737744 A CN202010737744 A CN 202010737744A CN 111914291 A CN111914291 A CN 111914291A
Authority
CN
China
Prior art keywords
information
sender
message
random number
server
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
CN202010737744.7A
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.)
Guangzhou Baiguoyuan Information Technology Co Ltd
Original Assignee
Guangzhou Baiguoyuan Information Technology 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 Guangzhou Baiguoyuan Information Technology Co Ltd filed Critical Guangzhou Baiguoyuan Information Technology Co Ltd
Priority to CN202010737744.7A priority Critical patent/CN111914291A/zh
Publication of CN111914291A publication Critical patent/CN111914291A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Abstract

本发明实施例公开了消息处理方法、装置、设备及存储介质。其中,一种消息处理方法包括:利用预设加密算法对发送方标识进行加密,得到第一信息,向服务端发送包含第一信息和第一消息内容的第一消息,用于指示服务端保存第一信息和第一消息内容,并在满足预设发送条件时,将第一信息和第一消息内容发送至第一消息对应的接收方,供接收方根据第一信息进行发送方标识的解密。本发明实施例提供的技术方案,第一消息内容在服务端进行存储时,对应的发送方的身份是被加密的,只有真正的消息接收方能够进行解密,因此,能够在保证双方正常的消息通信的同时,保证消息的通信双方关系链被保密,防止暴露给恶意第三方。

Description

消息处理方法、装置、设备及存储介质
技术领域
本发明实施例涉及通信技术领域,尤其涉及消息处理方法、装置、设备及存储介质。
背景技术
随着通信技术及互联网技术的快速发展,人与人之间的基于网络的信息交互越来越频繁,交互场景也越来越丰富。交互系统的基础功能是将消息从一个用户发送给另一个用户,大多交互系统基本能够保证高效稳定地进行消息的发送,但在安全性和保护用户隐私的方案,目前的交互系统仍不够完善,需要改进。
发明内容
本发明实施例提供了消息处理方法、装置、设备及存储介质,可以优化现有的消息处理方案。
第一方面,本发明实施例提供了一种消息处理方法,应用于消息的发送方,包括:
利用预设加密算法对发送方标识进行加密,得到第一信息;
向服务端发送包含所述第一信息和第一消息内容的第一消息,用于指示所述服务端保存所述第一信息和所述第一消息内容,并在满足预设发送条件时,将所述第一信息和所述第一消息内容发送至所述第一消息对应的接收方,供所述接收方根据所述第一信息进行发送方标识的解密。
第二方面,本发明实施例提供了一种消息处理方法,应用于服务端,包括:
接收发送方发送的包含第一信息和第一消息内容的第一消息,其中,所述第一信息由所述发送方利用预设加密算法对发送方标识进行加密得到;
保存所述第一信息和所述第一消息内容;
在满足预设发送条件时,将所述第一信息和所述第一消息内容发送至所述第一消息对应的接收方,用于指示所述接收方根据所述第一信息进行发送方标识的解密。
第三方面,本发明实施例提供了一种消息处理方法,应用于消息的接收方,包括:
接收服务端发送的第一信息和第一消息内容,其中,所述第一信息和所述第一消息内容包含于发送方发送给所述服务端的第一消息中,所述第一信息由所述发送方利用预设加密算法对发送方标识进行加密得到;
根据所述第一信息进行发送方标识的解密。
第四方面,本发明实施例提供了一种消息处理装置,配置于消息的发送方,包括:
发送方标识加密模块,用于利用预设加密算法对发送方标识进行加密,得到第一信息;
第一消息发送模块,用于向服务端发送包含所述第一信息和第一消息内容的第一消息,用于指示所述服务端保存所述第一信息和所述第一消息内容,并在满足预设发送条件时,将所述第一信息和所述第一消息内容发送至所述第一消息对应的接收方,供所述接收方根据所述第一信息进行发送方标识的解密。
第五方面,本发明实施例提供了一种消息处理装置,配置于服务端,包括:
第一消息接收模块,用于接收发送方发送的包含第一信息和第一消息内容的第一消息,其中,所述第一信息由所述发送方利用预设加密算法对发送方标识进行加密得到;
保存模块,用于保存所述第一信息和所述第一消息内容;
第二消息发送模块,用于在满足预设发送条件时,将所述第一信息和所述第一消息内容发送至所述第一消息对应的接收方,用于指示所述接收方根据所述第一信息进行发送方标识的解密。
第六方面,本发明实施例提供了一种消息处理装置,配置于消息的接收方,包括:
第一消息接收模块,用于接收服务端发送的第一信息和第一消息内容,其中,所述第一信息和所述第一消息内容包含于发送方发送给所述服务端的第一消息中,所述第一信息由所述发送方利用预设加密算法对发送方标识进行加密得到;
发送方标识解密模块,用于根据所述第一信息进行发送方标识的解密。
第七方面,本发明实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明实施例提供的消息处理方法。
第八方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例提供的消息处理方法。
本发明实施例中提供的消息处理方案,消息的发送方在向服务端发送消息之前,先利用预设加密算法对发送方标识进行加密,得到第一信息,再向服务端发送包含第一信息和第一消息内容的第一消息,服务端保存第一信息和第一消息内容,并在满足预设发送条件时,将第一信息和第一消息内容发送至第一消息对应的接收方,接收方根据第一信息进行发送方标识的解密,进而获知第一消息的发送方的身份。通过采用上述技术方案,第一消息内容在服务端进行存储时,对应的发送方的身份是被加密的,只有真正的消息接收方能够进行解密,因此,能够在保证双方正常的消息通信的同时,保证消息的通信双方关系链被保密,防止暴露给恶意第三方。
附图说明
图1为本发明实施例提供的一种消息处理方法所适用的应用场景的场景架构图;
图2为本发明实施例提供的一种消息处理方法的流程示意图;
图3为本发明实施例提供的一种消息处理方法的流程示意图;
图4为本发明实施例提供的一种消息交互示意图;
图5为本发明实施例提供的一种消息处理方法的流程示意图;
图6为本发明实施例提供的一种消息处理方法的流程示意图;
图7为本发明实施例提供的一种消息处理方法的流程示意图;
图8为本发明实施例提供的一种一对一消息交互示意图;
图9为本发明实施例提供的一种群组消息交互示意图;
图10为本发明实施例提供的一种消息处理装置的结构框图;
图11为本发明实施例提供的一种消息处理装置的结构框图;
图12为本发明实施例提供的一种消息处理装置的结构框图;
图13为本发明实施例提供的一种计算机设备的结构框图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
图1为本发明实施例提供的一种消息处理方法所适用的应用场景的场景架构图。具体的,参考图1,该应用场景中可以包括发送方101、服务端102和接收方103,发送方101在需要向接收方103发送消息时,先将消息发送给服务端102,再由服务端102将消息发送给接收方103。具体的应用场景类型不做限定,例如可以是即时消息通讯(Instant messaging,IM)场景、邮件收发场景、区块链中比特币账号的转账场景以及支付类应用程序(Application,APP)中的支付或转账场景等等。发送方101、服务端102和接收方103分别对应的实体设备也不做限定,例如可以是手机、平板电脑、台式机或服务器等等。
下面以IM场景进行示意性说明,目前很多应用程序中都包含有IM功能,如社交类即时通信APP以及直播类APP等等,所传递的消息可以是普通用户之间的及时通讯消息,也可以业务逻辑的信令等。IM系统的基础功能是将消息从一个用户高效稳定地发送给另外一个用户,但在很多情况下,消息接收方并无法及时收到消息,例如通过移动网络进行通讯的移动端可能处于离线或者遭遇网络不稳定的情况,这时,IM系统必须处理大量的离线消息,离线消息通常都存储于数据库中。现有技术中,为了便于在接收方适合接收消息时,及时转发消息,并让接收方成功获知消息发送方,数据库中会保存消息的发送方和接收方的对应关系(以下称为用户关系链),也即谁发送给谁、谁在和谁通讯的关系,从安全和隐私的角度考虑,用户关系链应该不是公开的,或者至少在某种授权的前提下才可以披露给第三方。但在遭遇拖库(一般指黑客窃取数据库内容的行为)的时候,存储于数据库中的用户关系链很容易暴露给未经授权的第三方或不法分子,存在很大的安全隐患。
本发明实施例中,消息的发送方在向服务端发送消息之前,先利用预设加密算法对发送方标识进行加密,第一消息内容在服务端进行存储时,对应的发送方的身份是被加密的,因此,能够保证消息的用户关系链处于保密状态,防止暴露给恶意第三方。
图2为本发明实施例提供的一种消息处理方法的流程示意图,该方法可以由消息处理装置执行,其中该装置可由软件和/或硬件实现,一般可集成在计算机设备中,该计算机设备具备消息发送功能。如图2所示,该方法包括:
步骤201、利用预设加密算法对发送方标识进行加密,得到第一信息。
示例性的,预设加密算法可以是预设对称加密算法。对称加密算法又称为共享密钥加密算法或单密钥加密算法。在对称加密算法中,使用的密钥只有一个,发送和接收双方都使用这个密钥对数据进行加密和解密。一般的,数据加密过程可以是,在对称加密算法中,数据发送方将明文(原始数据,在本发明实施例中可以是发送方标识)和加密密钥一起经过特殊加密处理,生成复杂的加密密文(在本发明实施例中可以是第一信息)进行发送;数据解密过程可以是,数据接收方收到密文后,若想读取原始数据,则需要使用加密使用的密钥及相同算法的逆算法对加密的密文进行解密,使其恢复成可读明文。预设对称加密算法的具体类型不做限定,例如可以是高级加密标准(Advanced Encryption Standard,AES)算法、数据加密标准(Data Encryption Standard,DES)或三重数据加密算法(Triple DataEncryption Algorithm,TDEA)等,加密算法的具体位数不做限定,例如可以是128位、256位或512位等等,可根据实际需求进行设置。可选的,预设加密算法为AES256。
示例性的,发送方标识(Identification,ID)可以理解为用于表示发送方唯一身份的标识,具体表现形式不做限定,可以是发送方账号名称或发送方代号等。
步骤202、向服务端发送包含所述第一信息和第一消息内容的第一消息,用于指示所述服务端保存所述第一信息和所述第一消息内容,并在满足预设发送条件时,将所述第一信息和所述第一消息内容发送至所述第一消息对应的接收方,供所述接收方根据所述第一信息进行发送方标识的解密。
本发明实施例中,发送方与服务端之间采用的通信协议具体不做限定,例如可以是超文本传输安全协议(Hyper Text Transfer Protocol over SecureSocket Layer,HTTPS)或其他协议。对第一消息的具体结构不做限定,可以根据所采用的通信协议进行设置,对于同一个通信协议也可进行不同的设置。在现有技术中,发送方发送给服务端的消息中并不包含第一信息,可将现有技术中的消息称为原始消息,原始消息中可以包括消息内容以及协议头等其他相关内容,具体可以由所采用的通信协议确定,本发明实施例中,可以在原始消息基础上添加第一信息,第一信息的具体添加位置不做限定,可以添加到原始消息内部,如消息体中,也可添加到原始消息外部,添加完成后,得到本发明实施例中的第一消息。该第一消息可以是发送方发送给接收方的任意一条消息,具体内容不做限定。接收方的数量不做限定,可以是一个或多个。
可选的,对于第一消息内容,也可采用一定的加密算法进行加密,以保证消息内容的安全性。
示例性的,第一消息中还可以包含接收方标识,便于服务端根据接收方标识确定第一消息对应的接收方。此外,第一消息对应的接收方标识也可独立于第一消息进行发送,可将第一消息与接收方的对应关系发送给服务端,例如发送第一消息的消息ID与接收方ID的对应关系。
示例性的,服务端在将第一信息和第一消息内容成功发送给第一消息对应的接收方之前,可一直存储第一信息和第一消息内容。现有技术中服务端的数据库中会保存接收方标识、消息内容和发送方标识,并将消息内容和发送方标识一起发送给接收方,以便接收方获知消息内容的来源。而本发明实施例中,不会保存发送方标识,可以在原来保存发送方标识的位置保存第一信息,也可额外增设字段用于保存第一信息。在服务端未将第一信息和第一消息内容删除之前,若发生拖库情况,由于实施拖库操作的第三方无法得知接收方持有的用于解密发送方标识的密钥,因此,无法得知第一消息内容是谁发送的,也即无法解密存储于数据库中的用户关系链(由于处于被加密状态,为便于与现有技术中用户关系链进行区分,这里也可称为密文关系链),可有效保护消息交互系统的安全性,提升产品的隐私保护能力。
示例性的,预设发送条件可以根据实际需求进行设置,例如,可以是在接收到第一消息后立即发送,可以是在接收到第一消息后先进行相关验证再进行发送,还可以是在接收到第一消息后先判断接收方是否在线或接收方的网络状况是否合适再确定是否发送等。需要说明的是,第一信息和第一消息内容的保存步骤和发送步骤的执行顺序不做限定,可以根据实际情况进行设置。
示例性的,服务端在向接收方发送第一信息和第一消息内容时,还可同时发送其他内容,具体不做限定。例如,可根据第一信息和第一消息内容生成第二消息,并将第二消息发送至接收方。
示例性的,接收方在接收到服务端转发的第一信息和第一消息内容后,可利用预设加密算法对应的逆算法和对应的密钥对第一信息进行解密,若解密成功,则可得到第一消息对应的发送方标识,也即获知第一消息的发送方身份。可选的,消息收发双方可以提前协商好共享的密钥,也可在第一信息中包含解密信息,解密信息可以帮助接收方根据自己已知的信息确定出用于解密第一信息的密钥。可选的,若解密失败,则可执行报错等操作,具体不做限定。接收方在接收到第一消息内容后,若第一消息内容被加密,则可针对第一消息内容进行解密,若解密成功,则可得到发送方真正想要发送的消息内容。若第一消息内容未被加密,则可根据发送方标识和第一消息内容进行后续流程。
本发明实施例中提供的消息处理方法,消息的发送方在向服务端发送消息之前,先利用预设加密算法对发送方标识进行加密,得到第一信息,再向服务端发送包含第一信息和第一消息内容的第一消息,指示服务端保存第一信息和第一消息内容,并在满足预设发送条件时,将第一信息和第一消息内容发送至第一消息对应的接收方,供接收方根据第一信息进行发送方标识的解密,进而获知第一消息的发送方的身份。通过采用上述技术方案,第一消息内容在服务端进行存储时,对应的发送方的身份是被加密的,只有真正的消息接收方能够进行解密,因此,能够在保证双方正常的消息通信的同时,保证消息的通信双方关系链被保密,防止暴露给恶意第三方。
在一些实施例中,所述利用预设加密算法对发送方标识进行加密,得到第一信息之后,还包括:采用所述发送方的私钥对所述第一信息进行签名,得到第二信息;根据所述第一信息和所述第二信息确定第一属性信息。相应的,所述向服务端发送包含所述第一信息和第一消息内容的第一消息,包括:向服务端发送包含所述第一属性信息和第一消息内容的第一消息;所述用于指示所述服务端保存所述第一信息和所述第一消息内容,并在满足预设发送条件时,将所述第一信息和所述第一消息内容发送至所述第一消息对应的接收方,供所述接收方根据所述第一信息进行发送方标识的解密,包括:用于指示所述服务端根据所述发送方的公钥对所述第二信息进行验签,在验签成功后保存所述第一属性信息和所述第一消息内容,并在满足预设发送条件时,将所述第一属性信息和所述第一消息内容发送至所述第一消息对应的接收方,供所述接收方根据所述第一信息进行发送方标识的解密以及在解密成功后根据解密得到的发送方的公钥对所述第二信息进行验签。这样设置的好处在于,能够支持服务端验证第一消息的发送方是否被篡改,进一步保证消息通信的准确性和安全性。
示例性的,发送方在得到第一信息后,采用自己的私钥对第一信息进行签名,得到第二信息,并将第一信息和第二信息一起作为第一属性信息发送给服务端,服务端可以从第一消息中(如第一消息的协议头中可以包含发送方ID)得知发送方身份,进而查询到对应的发送方的公钥,使用该公钥验签第二信息,若能够成功验签出第一信息,则可说明第一消息确实是发送方发送的,若验签后得到的信息与第一信息不一致,则可说明可能有人冒充发送方来发送第一消息,进而达到有效识别攻击行为的效果。
在一些实施例中,所述接收方为单一用户,所述利用预设加密算法对发送方标识进行加密,得到第一信息,包括:生成第一随机数和第一随机密钥对;利用预设密钥协商协议基于所述第一随机密钥对中的第一私钥和所述接收方的公钥生成第一公共密钥;利用第一预设加密算法对所述第一随机数、所述第一公共密钥和发送方标识进行加密,得到加密发送方信息;根据所述第一随机数、所述第一随机密钥对中的第一公钥和所述加密发送方信息,确定第一信息。这样设置的好处在于,对于一对一的消息通信场景,可借助于预设密钥协商协议,产生发送方和接收方可以推演出的公共密钥,进一步提升第一信息的加密程度,从而进一步保证发送方标识的安全性。
其中,第一随机数的位数可自由设置,例如16字节。第一随机密钥对随机产生,可以仅针对本次发送的消息,进一步保证安全性。预设密钥协商协议例如可以是椭圆曲线赫尔曼(elliptic curves diffie-hellman,ECDH)协议,可以利用ECDH协议中的异步公共密钥协商算法基于第一私钥和接收方的公钥生成第一公共密钥。接收方在接收到包含第一随机数、第一公钥和加密发送方信息的第一信息后,同样可以利用异步公共密钥协商算法基于第一公钥和自己的私钥生成第二公共密钥,若中间过程未出现异常,则第二公共密钥应该与第一公共密钥相同,那么接收方即可继续根据第一随机数和第二公共密钥针对加密发送方信息进行解密,进而得到发送方标识。
在一些实施例中,所述利用第一预设加密算法对所述第一随机数、所述第一公共密钥和发送方标识进行加密,得到加密发送方信息,利用预设哈希算法计算所述第一公共密钥对应的第一哈希值;利用第一预设加密算法对所述第一随机数、所述第一哈希值和发送方标识进行加密,得到加密发送方信息。这样设置的好处在于,第一公共密钥的数据长度可能是不固定的,也即发送两条消息时,分别计算出来的第一公共密钥的长度可能是不一致的,通过采用预设哈希算法计算对应的哈希值,可以将第一公共密钥的长度固定下来,降低后续运算的复杂度。预设哈希算法具体类型不做限定,例如可以是安全哈希算法(SecureHash Algorithm,SHA),又称安全散列算法,具体可以是SHA256等。
在一些实施例中,所述接收方为群组用户,所述利用预设加密算法对发送方标识进行加密,得到第一信息,包括:生成第二随机数;利用第二预设加密算法对所述第二随机数、所述群组用户对应的群密码和发送方标识进行加密,得到加密发送方信息;根据所述第二随机数和所述加密发送方信息,确定第一信息。这样设置的好处在于,对于群组消息通信场景,可利用群密码作为公共密钥,在保证安全性的前提下简化加密流程。
其中,第二预设加密算法可以与第一预设加密算法相同,也可不同。本发明实施例中的群密码可以是入群密码,也可以是新增的专用于群消息发送的加密密码,对于一个群组来说,群组内的成员均知道这个密码,而群组外的其他人并不知道群密码,因此,可将该密码作为公共密钥进行加密和解密。群密码一般情况下可以是固定的,但在一些情况下也可以变更,如成员发生变化时(如新增成员或存在退群的成员),或为了避免被破解,可定期变更等。群密码变更后,可通知到群组内当前的所有成员。
在一些实施例中,在所述确定第一信息之后,还包括:生成第三随机数;采用所述发送方的私钥对所述第三随机数进行签名,得到第二属性信息。相应的,所述向服务端发送包含所述第一属性信息和第一消息内容的第一消息,包括:向服务端发送包含所述第一属性信息、所述第二属性信息和第一消息内容的第一消息。这样设置的好处在于,对于群组通信场景来说,可能存在撤回消息的情况,而在服务端,由于存储的发送方都是加密的,服务端无法验证撤回操作的发起方所针对的要撤回的消息是否本来由该发起方发送,也即为了避免有人冒充消息发送方来撤回消息,增设了第二属性信息,便于服务端对撤回消息的发起者进行验证,防止冒名撤回其他成员消息的情况发生。
在一些实施例中,在所述向服务端发送包含所述第一属性信息、所述第二属性信息和第一消息内容的第一消息之后,还包括:在检测到针对所述第一消息的撤回事件被触发时,生成第四随机数;利用所述第二预设加密算法对所述第四随机数、所述群密码和所述发送方标识进行加密,得到新的加密发送方信息;根据所述第四随机数和所述新的加密发送方信息,确定第三信息;采用所述发送方的私钥对所述第三信息进行签名,得到第四信息;根据所述第三信息和所述第四信息确定第三属性信息;向所述服务端发送包含所述第三属性信息和所述第三随机数的针对所述第一消息的第一撤回消息,用于指示所述服务端根据所述发送方的公钥对所述第四信息进行验签,并在验签成功后对所述第二属性信息进行验签,若验签结果与所述第一撤回消息携带的随机数一致,则将包含所述第三属性信息的针对所述第一消息的第二撤回消息发送至所述第一消息对应的接收方,供所述接收方执行相应的消息撤回操作。这样设置的好处在于,可以使群消息在保证合法性的情况下被撤回。
其中,服务端根据发送方的公钥对第三属性信息进行验签,可以验证撤回消息的发起者是否确实为当前的发送方,若验签失败,说明可能存在攻击行为,若验签成功,则可继续验证当前所要撤回的消息的原发送者是否为撤回消息的发起者,若验证成功,则可继续后续的消息撤回相关流程,若验证失败,说明可能存在冒名恶意撤回的情况,可以不进入后续的消息撤回流程。
图3为本发明实施例提供的一种消息处理方法的流程示意图,该方法可应用于IM系统中一对一消息通讯场景中的消息发送方。图4为本发明实施例提供的一种消息交互示意图,图中包含用户A和用户C,用户A的私钥和公钥对可记为(ca,Ca),发送方A通过网络和一个或者多个IM Server(服务端)连接,IM Server可以负责对消息进行持久化写入数据库,用户C的私钥和公钥对可记为(cc,Cc)。下图以用户A向用户C发送消息为例,说明如何在数据库被拖库的情况下,依然不会泄漏“A在和C通讯”这个用户关系链。
示例性的,如图3所示,该方法可包括:
步骤301、生成第一随机数和第一随机密钥对。
示例性的,第一随机数可以是16字节长度的随机数,可记为IV;第一随机密钥对可认为是针对本次消息发送操作的临时密钥对(key pair),可记为(r,R),其中,r为第一私钥,R为第一公钥。
步骤302、利用预设密钥协商协议基于第一随机密钥对中的第一私钥和接收方的公钥生成第一公共密钥。
示例性的,预设密钥协商协议可以是ECDH协议,通过以下方式得到第一公共密钥:
ECDH:(r,Cc)→P
其中,P为第一公共密钥。
步骤303、利用预设哈希算法计算第一公共密钥对应的第一哈希值。
示例性的,预设哈希算法为SHA256,通过以下方式得到第一公共密钥对应的第一哈希值:
H=SHA256(P)
其中,H为第一哈希值。
步骤304、利用第一预设对称加密算法对第一随机数、第一哈希值和发送方标识进行加密,得到加密发送方信息。
示例性的,第一预设对称加密算法为AES256,通过以下方式得到加密发送方信息:
source′=AES256(IV,H,source)
其中,source用于表示发送方标识(如用户A的ID),source′用于表示加密发送方信息。
步骤305、根据第一随机数、第一随机密钥对中的第一公钥和加密发送方信息,确定第一信息。
示例性的,可将第一信息记为payload(有效负载)。payload可表示为:
payload=IV+R+source′
需要说明的是,本发明实施例中的“+”并非表示运算符号中的加法,而是用于表示项目的并列关系,如payload中包含IV、R和source′这几个并列的项目。
可选的,在考虑发送方和接收方的版本兼容问题时,第一信息中还可包含发送方的版本信息,如可记为version,即payload=IV+R+source′+version。
步骤306、采用发送方的私钥对第一信息进行签名,得到第二信息。
示例性的,采用ca签名payload,得到第二信息,第二信息可记为S。
步骤307、根据第一信息和第二信息确定第一属性信息。
示例性的,可将第一属性信息记为extra,extra=payload+S。
步骤308、向服务端发送包含第一信息和第一消息内容的第一消息,用于指示服务端根据发送方的公钥对第二信息进行验签,在验签成功后保存第一属性信息和第一消息内容,并在满足预设发送条件时,将第一属性信息和第一消息内容发送至第一消息对应的接收方,供接收方根据第一信息进行发送方标识的解密以及在解密成功后根据解密得到的发送方的公钥对所述第二信息进行验签。
关于服务端和接收方的相关细节可参考本文其他相关内容,此处不再赘述。
本发明实施例提供的消息处理方法,对于一对一通信场景,消息的发送方在向服务端发送消息之前,先利用预设密钥协商协议生成公共密钥,并计算公共密钥的哈希值,利用预设加密算法对随机数、哈希值和发送方标识进行加密,得到加密发送方信息,然后根据随机数、随机密钥对中的公钥和加密发送方信息确定第一信息,采用自己的私钥对第一信息进行签名,得到第二信息,再向服务端发送包含第一信息、第二信息和第一消息内容的第一消息,服务端在接收到第一消息后,可以先对发送方身份进行验签,成功后保存第一信息、第二信息和第一消息内容,并在满足预设发送条件时,将保存的内容发送至第一消息对应的接收方,接收方根据第一信息和第二信息分别进行发送方标识的解密以及发送方身份的验签。通过采用上述技术方案,第一消息内容在服务端进行存储时,可保证消息的通信双方关系链被保密,防止暴露给恶意第三方,且能够保证通信过程中及时发现发送方被篡改的情况,进一步保证通信安全。
图5为本发明实施例提供的一种消息处理方法的流程示意图,如图5所示,该方法可应用于IM系统中群组消息通讯场景中的消息发送方。同样以图4为例,假设用户A是通信群组中的一个用户,用户C是通信群组中除用户A以外的一个用户,通信群组中还可包括其他用户,如用户B,用户D等,图中未示出,当用户A在通信群组内发送消息时,通信群组中的其他用户均为接收方,下面以用户C为例进行说明。
示例性的,该方法可包括:
步骤501、生成第二随机数。
示例性的,第二随机数可以是16字节长度的随机数,也可记为IV。
步骤502、利用第二预设对称加密算法对第二随机数、群组用户对应的群密码和发送方标识进行加密,得到加密发送方信息。
示例性的,第二预设对称加密算法为AES256,通过以下方式得到加密发送方信息:
source′=AES256(IV,群密码,source)
其中,source用于表示发送方标识(如用户A的ID),source′用于表示加密发送方信息。
步骤503、根据第二随机数和加密发送方信息,确定第一信息。
示例性的,可将第一信息记为payload(有效负载)。payload可表示为:
payload=IV+source′
可选的,在考虑发送方和接收方的版本兼容问题时,第一信息中还可包含发送方的版本信息,如可记为version,即payload=IV+source′+version。
步骤504、采用发送方的私钥对第一信息进行签名,得到第二信息。
示例性的,采用ca签名payload,得到第二信息,第二信息可记为S。
步骤505、根据第一信息和第二信息确定第一属性信息。
示例性的,可将第一属性信息记为extra,extra=payload+S。
步骤506、生成第三随机数。
示例性的,第三随机数可以是16字节长度的随机数,可记为IIV。生成第三随机数后,客户端需要进行保存,应用于后续的消息召回流程。
步骤507、采用发送方的私钥对第三随机数进行签名,得到第二属性信息。
示例性的,采用ca签名IIV,得到第二属性信息,第二属性信息可记为v。
步骤508、向服务端发送包含第一属性信息、第二属性信息和第一消息内容的第一消息。
示例性的,用于指示服务端根据发送方的公钥对第二信息进行验签,在验签成功后保存第一属性信息、第一消息内容和第二属性信息,并在满足预设发送条件时,将第一属性信息和第一消息内容发送至第一消息对应的接收方,供接收方根据第一信息进行发送方标识的解密以及在解密成功后根据解密得到的发送方的公钥对所述第二信息进行验签。
步骤509、在检测到针对第一消息的撤回事件被触发时,生成第四随机数。
示例性的,第四随机数可以是16字节长度的随机数,也可记为IV。当用户A发现自己发送过的第一消息因内容不合适等原因希望撤回时,可以发起撤回事件,例如可以触发第一消息对应的撤回按钮,客户端检测到该撤回按钮被触发后,确定针对第一消息的撤回事件被触发,生成第四随机数。
步骤510、利用第二预设对称加密算法对第四随机数、群密码和发送方标识进行加密,得到新的加密发送方信息。
source′=AES256(IV,群密码,source)
步骤511、根据第四随机数和所述新的加密发送方信息,确定第三信息。
payload=IV+source′
步骤512、采用发送方的私钥对第三信息进行签名,得到第四信息。
示例性的,采用ca签名payload,得到第三信息,第二信息可记为S。
步骤513、根据第三信息和第四信息确定第三属性信息。
步骤514、向服务端发送包含第三属性信息和第三随机数的针对第一消息的第一撤回消息。
示例性的,用于指示服务端根据发送方的公钥对第四信息进行验签,并在验签成功后对第二属性信息进行验签,若验签结果与第一撤回消息携带的随机数一致,则将包含第三属性信息的针对第一消息的第二撤回消息发送至第一消息对应的接收方,供接收方执行相应的消息撤回操作。
其中,可在撤回消息中包含群ID(gid)和消息ID(mid),用于表明针对哪个群组里的哪一条消息进行撤回。例如,第一撤回消息里面包含发送方所在的通信群组的gid,以及第一消息的mid。
关于服务端和接收方的相关细节可参考本文其他相关内容,此处不再赘述。
本发明实施例提供的消息处理方法,对于群组通信场景,消息的发送方在向服务端发送消息之前,将群密码作为公共密钥,利用预设对称加密算法对随机数、群密码和发送方标识进行加密,得到加密发送方信息,然后根据随机数和加密发送方信息确定第一信息,采用自己的私钥对第一信息进行签名,得到第二信息,将第一信息和第二信息确定为第一属性信息,然后对随机数进行签名,得到第二属性信息,用于后续的消息撤回验证。向服务端发送包含第一属性信息、第二属性信息和第一消息内容的第一消息,服务端在接收到第一消息后,可以先对发送方身份进行验签,成功后保存第一属性信息、第二属性信息和第一消息内容,并在满足预设发送条件时,将第一属性信息和第一消息内容发送至群组内其他成员,其他成员可以根据第一信息和第二信息分别进行发送方标识的解密以及发送方身份的验签。在发送方发起消息撤回流程时,重新生成新的加密发送发信息,并确定第三信息,对第三信息进行签名后,得到第四信息,将第三信息和第四信息作为第三属性信息与之前发送第一消息时保存的第三随机数发送至服务端,服务端通过验签第四信息可以得知撤回操作的发起方是否被冒充,若未被冒充,可以进一步验证第三随机数的签名是否为之前保存的第三属性信息,进而验证出发起消息撤回的是否为消息的原发送方。通过采用上述技术方案,第一消息内容在服务端进行存储时,可保证消息的发送方处于保密状态,进而保证消息的通信双方关系链被保密,防止暴露给恶意第三方,且能够保证通信过程中及时发现发送方被篡改的情况,避免已发出的消息被第三方恶意撤回,进一步保证消息通信的准确性和安全性。
图6为本发明实施例提供的一种消息处理方法的流程示意图,该方法可以由消息处理装置执行,其中该装置可由软件和/或硬件实现,一般可集成在服务器等计算机设备中。如图6所示,该方法包括:
步骤601、接收发送方发送的包含第一信息和第一消息内容的第一消息,其中,所述第一信息由所述发送方利用预设加密算法对发送方标识进行加密得到。
其中,以服务端和发送方的通信协议为HTTPS协议为例,服务端可以从httpsheader(协议头)中得到发送方标识(uid),进而得知发送方的身份,但本发明实施例中,服务端并不会对发送方标识进行保存。
步骤602、保存所述第一信息和所述第一消息内容。
本发明实施例中,服务端不会对发送方的身份信息进行保存,而是仅保存经过加密的发送方标识以及发送方想要发送的消息内容。
步骤603、在满足预设发送条件时,将所述第一信息和所述第一消息内容发送至所述第一消息对应的接收方,用于指示所述接收方根据所述第一信息进行发送方标识的解密。
本发明实施例提供的消息处理方法,服务端接收消息发送方发送的第一消息,第一消息中包含了第一信息和第一消息内容,第一信息由发送方利用预设加密算法对发送标识进行加密,只有真正的消息接收方能够进行解密,因此,第一信息在服务端保存期间,不会被其他人破解,能够在保证双方正常的消息通信的同时,保证消息的通信双方关系链被保密,防止暴露给恶意第三方。
在一些实施例中,所述接收发送方发送的包含第一信息和第一消息内容的第一消息,接收发送方发送的包含第一属性信息和第一消息内容的第一消息,其中,所述第一属性信息由所述发送方根据所述第一信息和第二信息确定,所述第二信息由所述发送方采用所述发送方的私钥对所述第一信息进行签名得到;相应的,所述保存所述第一信息和所述第一消息内容,包括:根据所述发送方的公钥对所述第二信息进行验签,并在验签成功后,保存所述第一属性信息和所述第一消息内容;所述将所述第一信息和所述第一消息内容发送至所述第一消息对应的接收方,用于指示所述接收方根据所述第一信息进行发送方标识的解密,包括:将所述第一属性信息和所述第一消息内容发送至所述第一消息对应的接收方,用于指示所述接收方根据所述第一信息进行发送方标识的解密以及在解密成功后根据解密得到的发送方的公钥对所述第二信息进行验签。这样设置的好处在于,服务端能够验证第一消息的发送方是否被篡改,进一步保证消息通信的准确性和安全性。
在一些实施例中,所述接收方为群组用户,所述接收发送方发送的包含第一属性信息和第一消息内容的第一消息,包括:接收发送方发送的包含第一属性信息、第二属性信息和第一消息内容的第一消息,其中,所述第二属性信息由所述发送方采用所述发送方的私钥对第三随机数进行签名得到,所述第三随机数由所述发送方生成。所述方法还包括:保存所述第二属性信息。这样设置的好处在于,便于服务端利用所保存的第二属性信息在后续可能发生的消息撤回流程中,对撤回消息的发起者进行验证,防止冒名撤回其他成员消息的情况发生。
示例性的,可以在服务端的数据库中增设两个字段,分别用于存储第一属性信息和第二属性信息。如前文举例,第一属性信息可记为extra,第二属性信息可记为v,可在数据库中增设“密文source”字段用于存储extra,该字段也可取名为extra,增设“verifySig”字段用于存储v。上述命名仅为举例说明,具体可根据实际情况进行设置。其中,取名为extra和verifySig可进一步提升安全和隐私保护性,避免轻易暴露这个密文数据的用途。
在一些实施例中,在所述保存所述第二属性信息之后,还包括:接收所述发送方发送的包含第三属性信息和所述第三随机数的针对所述第一消息的第一撤回消息,其中,所述第三属性信息由第三信息和第四信息确定,所述第三信息由所述发送方根据第四随机数和新的加密发送方信息确定,所述第四随机数由所述发送方生成,所述新的加密发送方信息由所述发送方利用所述第二预设加密算法对所述第四随机数、所述群密码和发送方标识进行加密得到,所述第四信息由所述发送方采用所述发送方的私钥对所述第三信息进行签名得到;根据所述发送方的公钥对所述第四信息进行验签,并在验签成功后对所述第二属性信息进行验签,若验签结果与所述第一撤回消息携带的随机数一致,则将包含所述第三属性信息的针对所述第一消息的第二撤回消息发送至所述第一消息对应的接收方,用于指示所述接收方执行相应的消息撤回操作。这样设置的好处在于,可以使群消息在保证合法性的情况下被撤回。
图7为本发明实施例提供的一种消息处理方法的流程示意图,该方法可以由消息处理装置执行,其中该装置可由软件和/或硬件实现,一般可集成在计算机设备中,该计算机设备具备消息接收功能。如图7所示,该方法包括:
步骤701、接收服务端发送的第一信息和第一消息内容,其中,所述第一信息和所述第一消息内容包含于发送方发送给所述服务端的第一消息中,所述第一信息由所述发送方利用预设加密算法对发送方标识进行加密得到。
步骤702、根据所述第一信息进行发送方标识的解密。
本发明实施例提供的消息处理方法,接收方接收服务端转发的消息发送方发送的第一信息和第一消息内容,第一信息由发送方利用预设加密算法对发送标识进行加密,只有真正的消息接收方能够进行解密,因此,第一信息在服务端保存期间,不会被其他人破解,保证消息的通信双方关系链被保密,防止暴露给恶意第三方,接收方对第一信息进行解密后,可以得到准确的消息发送方,再根据消息发送方和第一消息内容进行后续操作,保证双方通信的准确性和安全性。
在一些实施例中,所述接收服务端发送的第一信息和第一消息内容,包括:接收服务端发送的第一属性信息和第一消息内容,其中,所述第一属性信息包含于所述第一消息中,并由所述发送方根据所述第一信息和第二信息确定,所述第二信息由所述发送方采用所述发送方的私钥对所述第一信息进行签名得到。在所述根据所述第一信息进行发送方标识的解密之后,还包括:若解密成功,则根据解密得到的发送方标识获取对应的发送方的公钥;根据所获取的公钥对所述第二信息进行验签。这样设置的好处在于,接收方在解密得到发送方标识后,可继续验证第一消息的发送方是否被篡改,进一步保证消息通信的准确性和安全性。
在一些实施例中,所述接收方为单一用户,所述第一信息中包含第一随机数、第一随机密钥对中的第一公钥和加密发送方信息,所述第一随机数和所述第一随机密钥对由所述发送方生成,所述加密发送方信息由所述发送方利用第一预设加密算法对所述第一随机数、第一公共密钥和发送方标识进行加密得到,所述第一公共密钥由所述发送方利用预设密钥协商协议基于所述第一随机密钥对中的第一私钥和所述接收方的公钥生成。所述根据所述第一信息进行发送方标识的解密,包括:利用所述预设密钥协商协议基于所述接收方的私钥和所述第一随机密钥对中的第一公钥生成第二公共密钥;根据所述第二公共密钥和所述第一随机数针对所述加密发送方信息进行发送方标识的解密。这样设置的好处在于,对于一对一的消息通信场景,接收方可以根据所接收的信息和仅有自己知道的私钥推演出公共密钥,进一步提升第一信息的加密程度,从而进一步保证发送方标识的安全性。
在一些实施例中,所述加密发送方信息由所述发送方利用第一预设加密算法对所述第一随机数、第一公共密钥对应的第一哈希值和发送方标识进行加密得到;所述根据所述第二公共密钥和所述第一随机数针对所述加密发送方信息进行发送方标识的解密,包括:利用预设哈希算法计算所述第二公共密钥对应的第二哈希值;根据所述第二哈希值和所述第一随机数针对所述加密发送方信息进行发送方标识的解密。这样设置的好处在于,与发送方的公共密钥计算方式匹配,经过哈希运算,可以将公共密钥长度固定,降低后续运算的复杂度。
示例性的,如上文举例,接收方C可以从第一属性信息中读取第一信息payload,获取其中的第一随机数IV和R,若payload中还包含version,则可先将接收方C自己的版本信息与获取的version进行比对,若不一致,则根据预设兼容策略执行相应的版本适配操作。随后,可利用ECDH基于cc和R计算第二公共密钥P,即ECDH:(cc,R)→P,若通信过程中未出现攻击行为等异常情况,则第二公共密钥和第一公共密钥相同,进而可计算第二公共密钥计算对应的哈希值,即H=SHA256(P),使用第一随机数IV和H针对source’进行解密,得到source。若解密失败可进行报错。若解密成功,可根据解密得到的source查询其对应的公钥Ca,使用Ca对第二信息S进行验签,若验签结果与第一信息payload一致,则可证明第一消息的真正发送方就是A,也即验签成功,可进入后续流程,若验签失败,可进行报错等操作。
在一些实施例中,所述接收方为群组用户,所述第一信息中包含第二随机数和加密发送方信息,所述第二随机数由所述发送方生成,所述加密发送方信息由所述发送方利用第二预设加密算法对所述第二随机数、所述群组用户对应的群密码和发送方标识进行加密得到;所述根据所述第一信息进行发送方标识的解密,包括:根据第二随机数和所述群密码针对所述加密发送方信息进行发送方标识的解密。这样设置的好处在于,对于群组消息通信场景,可利用群密码作为公共密钥,在保证安全性的前提下简化加密流程。
示例性的,如上文举例,接收方C可以从第一属性信息中读取第一信息payload,获取其中的第一随机数IV,若payload中还包含version,则可先将接收方C自己的版本信息与获取的version进行比对,若不一致,则根据预设兼容策略执行相应的版本适配操作。随后,使用第一随机数IV和群密码针对source’进行解密,得到source。若解密失败可进行报错。若解密成功,可根据解密得到的source查询其对应的公钥Ca,使用Ca对第二信息S进行验签,若验签结果与第一信息payload一致,则可证明第一消息的真正发送方就是A,也即验签成功,可进入后续流程,若验签失败,可进行报错等操作。可以理解的是,群组内的其他接收方可同样进行上述操作,此处不再赘述。
在一些实施例中,在所述根据第二随机数和所述群密码针对所述加密发送方信息进行发送方标识的解密之后,还包括:接收所述服务端发送的包含第三属性信息的针对所述第一消息的第二撤回消息,其中,所述第三属性信息包含于所述发送方向所述服务端发送的针对所述第一消息的第一撤回消息中,所述第三属性信息由第三信息和第四信息确定,所述第三信息由所述发送方根据第四随机数和新的加密发送方信息确定,所述第四随机数由所述发送方生成,所述新的加密发送方信息由所述发送方利用所述第二预设加密算法对所述第四随机数、所述群密码和发送方标识进行加密得到,所述第四信息由所述发送方采用所述发送方的私钥对所述第三信息进行签名得到;根据所述第四随机数和所述群密码针对所述新的加密发送方信息进行发送方标识的解密;若解密成功,则根据解密得到的发送方标识获取对应的发送方的公钥;根据所获取的公钥对所述第四信息进行验签,若验签成功,则针对所述第一消息进行相应的撤回操作。这样设置的好处在于,便于接收方验证消息撤回的发起者是否被篡改。
示例性的,如上文举例,接收方在接收到服务端发送的第二撤回消息后,读取其中第三属性信息extra,进而得到其中的第三信息payload,获取其中的第四随机数IV,采用第四随机数IV和群密码对新的新的加密发送方信息source’进行解密,若解密失败可报错,若解密成功则可得到发送方标识source,根据解密得到的发送方标识source获取对应的发送方的公钥Ca,根据所获取的公钥Ca对第四信息S进行验签,若验签成功,则可针对第一消息进行相应的撤回操作,如将第一消息从群组会话界面中删除。
图8为本发明实施例提供的一种一对一消息交互示意图,如图8所示,交互流程可包括:
步骤801、发送方利用预设加密算法对发送方标识进行加密,得到第一信息。
步骤802、发送方采用发送方的私钥对第一信息进行签名,得到第二信息,根据第一信息和第二信息确定第一属性信息。
步骤803、发送方向服务端发送包含第一属性信息和第一消息内容的第一消息。
步骤804、服务端根据发送方的公钥对第二信息进行验签,在验签成功后保存第一属性信息和第一消息内容。
步骤805、服务端在满足预设发送条件时,向接收方发送第一属性信息和第一消息内容。
步骤806、接收方根据第一信息进行发送方标识的解密,若解密成功,则根据解密得到的发送方标识获取对应的发送方的公钥,根据所获取的公钥对第二信息进行验签。
图9为本发明实施例提供的一种群组消息交互示意图,如图9所示,交互流程可包括:
步骤901、发送方利用预设加密算法对发送方标识进行加密,得到第一信息。
步骤902、发送方采用发送方的私钥对第一信息进行签名,得到第二信息,根据第一信息和第二信息确定第一属性信息。
步骤903、发送方采用发送方的私钥对第三随机数进行签名,得到第二属性信息,保存第三随机数。
步骤904、发送方向服务端发送包含第一属性信息、第二属性信息和第一消息内容的第一消息。
步骤905、服务端根据发送方的公钥对第二信息进行验签,在验签成功后保存第一属性信息、第二属性信息和第一消息内容。
步骤906、服务端在满足预设发送条件时,向接收方发送第一属性信息和第一消息内容。
步骤907、接收方根据第一信息进行发送方标识的解密,若解密成功,则根据解密得到的发送方标识获取对应的发送方的公钥,根据所获取的公钥对第二信息进行验签。
步骤908、发送方在检测到针对第一消息的撤回事件被触发时,利用预设加密算法对发送方标识进行加密,得到第三信息。
步骤909、发送方采用发送方的私钥对第三信息进行签名,得到第四信息,并根据第三信息和第四信息确定第三属性信息。
步骤910、发送方向服务端发送包含第三属性信息和第三随机数的针对第一消息的第一撤回消息。
步骤911、服务端根据发送方的公钥对第四信息进行验签,并在验签成功后对第二属性信息进行验签。
步骤912、服务端确定验签结果与第一撤回消息携带的随机数一致,则将包含第三属性信息的针对第一消息的第二撤回消息发送至接收方。
步骤913、接收方根据第三信息进行发送方标识的解密,若解密成功,则根据解密得到的发送方标识获取对应的发送方的公钥,根据所获取的公钥对第四信息进行验签,若验签成功,则针对第一消息进行相应的撤回操作。
图10为本发明实施例提供的一种消息处理装置的结构框图,该装置可由软件和/或硬件实现,一般可集成在作为消息发送方的计算机设备中,可通过执行消息处理方法来进行消息的发送处理。如图10所示,该装置包括:
发送方标识加密模块1001,用于利用预设加密算法对发送方标识进行加密,得到第一信息;
第一消息发送模块1002,用于向服务端发送包含所述第一信息和第一消息内容的第一消息,用于指示所述服务端保存所述第一信息和所述第一消息内容,并在满足预设发送条件时,将所述第一信息和所述第一消息内容发送至所述第一消息对应的接收方,供所述接收方根据所述第一信息进行发送方标识的解密。
本发明实施例提供的消息处理装置,消息的发送方在向服务端发送消息之前,先利用预设加密算法对发送方标识进行加密,得到第一信息,再向服务端发送包含第一信息和第一消息内容的第一消息,指示服务端保存第一信息和第一消息内容,并在满足预设发送条件时,将第一信息和第一消息内容发送至第一消息对应的接收方,供接收方根据第一信息进行发送方标识的解密,进而获知第一消息的发送方的身份。通过采用上述技术方案,第一消息内容在服务端进行存储时,对应的发送方的身份是被加密的,只有真正的消息接收方能够进行解密,因此,能够在保证双方正常的消息通信的同时,保证消息的通信双方关系链被保密,防止暴露给恶意第三方。
图11为本发明实施例提供的一种消息处理装置的结构框图,该装置可由软件和/或硬件实现,一般可集成在服务器等计算机设备中,可通过执行消息处理方法来进行消息的转发处理。如图11所示,该装置包括:
第一消息接收模块1101,用于接收发送方发送的包含第一信息和第一消息内容的第一消息,其中,所述第一信息由所述发送方利用预设加密算法对发送方标识进行加密得到;
保存模块1102,用于保存所述第一信息和所述第一消息内容;
第二消息发送模块1103,用于在满足预设发送条件时,将所述第一信息和所述第一消息内容发送至所述第一消息对应的接收方,用于指示所述接收方根据所述第一信息进行发送方标识的解密。
本发明实施例提供的消息处理装置,服务端接收消息发送方发送的第一消息,第一消息中包含了第一信息和第一消息内容,第一信息由发送方利用预设加密算法对发送标识进行加密,只有真正的消息接收方能够进行解密,因此,第一信息在服务端保存期间,不会被其他人破解,能够在保证双方正常的消息通信的同时,保证消息的通信双方关系链被保密,防止暴露给恶意第三方。
图12为本发明实施例提供的一种消息处理装置的结构框图,该装置可由软件和/或硬件实现,一般可集成在作为消息接收方的计算机设备中,可通过执行消息处理方法来进行消息的接收处理。如图12所示,该装置包括:
第二消息接收模块1201,用于接收服务端发送的第一信息和第一消息内容,其中,所述第一信息和所述第一消息内容包含于发送方发送给所述服务端的第一消息中,所述第一信息由所述发送方利用预设加密算法对发送方标识进行加密得到;
发送方标识解密模块1202,用于根据所述第一信息进行发送方标识的解密。
本发明实施例提供的消息处理装置,接收方接收服务端转发的消息发送方发送的第一信息和第一消息内容,第一信息由发送方利用预设加密算法对发送标识进行加密,只有真正的消息接收方能够进行解密,因此,第一信息在服务端保存期间,不会被其他人破解,保证消息的通信双方关系链被保密,防止暴露给恶意第三方,接收方对第一信息进行解密后,可以得到准确的消息发送方,再根据消息发送方和第一消息内容进行后续操作,保证双方通信的准确性和安全性。
本发明实施例提供了一种计算机设备,该计算机设备中可集成本发明实施例提供的消息处理装置。图13为本发明实施例提供的一种计算机设备的结构框图。计算机设备1300包括存储器1301、处理器1302及存储在存储器1301上并可在处理器1302上运行的计算机程序,所述处理器1302执行所述计算机程序时实现本发明实施例提供的消息处理方法。
本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行本发明实施例提供的消息处理方法。
上述实施例中提供的消息处理装置、设备以及存储介质可执行本发明任意实施例所提供的消息处理方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的消息处理方法。
注意,上述仅为本发明的较佳实施例。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由权利要求范围决定。

Claims (22)

1.一种消息处理方法,其特征在于,应用于消息的发送方,包括:
利用预设加密算法对发送方标识进行加密,得到第一信息;
向服务端发送包含所述第一信息和第一消息内容的第一消息,用于指示所述服务端保存所述第一信息和所述第一消息内容,并在满足预设发送条件时,将所述第一信息和所述第一消息内容发送至所述第一消息对应的接收方,供所述接收方根据所述第一信息进行发送方标识的解密。
2.根据权利要求1所述的方法,其特征在于,所述利用预设加密算法对发送方标识进行加密,得到第一信息之后,还包括:
采用所述发送方的私钥对所述第一信息进行签名,得到第二信息;
根据所述第一信息和所述第二信息确定第一属性信息;
相应的,所述向服务端发送包含所述第一信息和第一消息内容的第一消息,包括:
向服务端发送包含所述第一属性信息和第一消息内容的第一消息;
所述用于指示所述服务端保存所述第一信息和所述第一消息内容,并在满足预设发送条件时,将所述第一信息和所述第一消息内容发送至所述第一消息对应的接收方,供所述接收方根据所述第一信息进行发送方标识的解密,包括:
用于指示所述服务端根据所述发送方的公钥对所述第二信息进行验签,在验签成功后保存所述第一属性信息和所述第一消息内容,并在满足预设发送条件时,将所述第一属性信息和所述第一消息内容发送至所述第一消息对应的接收方,供所述接收方根据所述第一信息进行发送方标识的解密以及在解密成功后根据解密得到的发送方的公钥对所述第二信息进行验签。
3.根据权利要求2所述的方法,其特征在于,所述接收方为单一用户,所述利用预设加密算法对发送方标识进行加密,得到第一信息,包括:
生成第一随机数和第一随机密钥对;
利用预设密钥协商协议基于所述第一随机密钥对中的第一私钥和所述接收方的公钥生成第一公共密钥;
利用第一预设加密算法对所述第一随机数、所述第一公共密钥和发送方标识进行加密,得到加密发送方信息;
根据所述第一随机数、所述第一随机密钥对中的第一公钥和所述加密发送方信息,确定第一信息。
4.根据权利要求3所述的方法,其特征在于,所述利用第一预设加密算法对所述第一随机数、所述第一公共密钥和发送方标识进行加密,得到加密发送方信息,包括:
利用预设哈希算法计算所述第一公共密钥对应的第一哈希值;
利用第一预设加密算法对所述第一随机数、所述第一哈希值和发送方标识进行加密,得到加密发送方信息。
5.根据权利要求2所述的方法,其特征在于,所述接收方为群组用户,所述利用预设加密算法对发送方标识进行加密,得到第一信息,包括:
生成第二随机数;
利用第二预设加密算法对所述第二随机数、所述群组用户对应的群密码和发送方标识进行加密,得到加密发送方信息;
根据所述第二随机数和所述加密发送方信息,确定第一信息。
6.根据权利要求5所述的方法,其特征在于,在所述确定第一信息之后,还包括:
生成第三随机数;
采用所述发送方的私钥对所述第三随机数进行签名,得到第二属性信息;
相应的,所述向服务端发送包含所述第一属性信息和第一消息内容的第一消息,包括:
向服务端发送包含所述第一属性信息、所述第二属性信息和第一消息内容的第一消息。
7.根据权利要求6所述的方法,其特征在于,在所述向服务端发送包含所述第一属性信息、所述第二属性信息和第一消息内容的第一消息之后,还包括:
在检测到针对所述第一消息的撤回事件被触发时,生成第四随机数;
利用所述第二预设加密算法对所述第四随机数、所述群密码和所述发送方标识进行加密,得到新的加密发送方信息;
根据所述第四随机数和所述新的加密发送方信息,确定第三信息;
采用所述发送方的私钥对所述第三信息进行签名,得到第四信息;
根据所述第三信息和所述第四信息确定第三属性信息;
向所述服务端发送包含所述第三属性信息和所述第三随机数的针对所述第一消息的第一撤回消息,用于指示所述服务端根据所述发送方的公钥对所述第四信息进行验签,并在验签成功后对所述第二属性信息进行验签,若验签结果与所述第一撤回消息携带的随机数一致,则将包含所述第三属性信息的针对所述第一消息的第二撤回消息发送至所述第一消息对应的接收方,供所述接收方执行相应的消息撤回操作。
8.一种消息处理方法,其特征在于,应用于服务端,包括:
接收发送方发送的包含第一信息和第一消息内容的第一消息,其中,所述第一信息由所述发送方利用预设加密算法对发送方标识进行加密得到;
保存所述第一信息和所述第一消息内容;
在满足预设发送条件时,将所述第一信息和所述第一消息内容发送至所述第一消息对应的接收方,用于指示所述接收方根据所述第一信息进行发送方标识的解密。
9.根据权利要求8所述的方法,其特征在于,所述接收发送方发送的包含第一信息和第一消息内容的第一消息,包括:
接收发送方发送的包含第一属性信息和第一消息内容的第一消息,其中,所述第一属性信息由所述发送方根据所述第一信息和第二信息确定,所述第二信息由所述发送方采用所述发送方的私钥对所述第一信息进行签名得到;
相应的,所述保存所述第一信息和所述第一消息内容,包括:
根据所述发送方的公钥对所述第二信息进行验签,并在验签成功后,保存所述第一属性信息和所述第一消息内容;
所述将所述第一信息和所述第一消息内容发送至所述第一消息对应的接收方,用于指示所述接收方根据所述第一信息进行发送方标识的解密,包括:
将所述第一属性信息和所述第一消息内容发送至所述第一消息对应的接收方,用于指示所述接收方根据所述第一信息进行发送方标识的解密以及在解密成功后根据解密得到的发送方的公钥对所述第二信息进行验签。
10.根据权利要求9所述的方法,其特征在于,所述接收方为群组用户,所述接收发送方发送的包含第一属性信息和第一消息内容的第一消息,包括:
接收发送方发送的包含第一属性信息、第二属性信息和第一消息内容的第一消息,其中,所述第二属性信息由所述发送方采用所述发送方的私钥对第三随机数进行签名得到,所述第三随机数由所述发送方生成;
所述方法还包括:
保存所述第二属性信息。
11.根据权利要求10所述的方法,其特征在于,在所述保存所述第二属性信息之后,还包括:
接收所述发送方发送的包含第三属性信息和所述第三随机数的针对所述第一消息的第一撤回消息,其中,所述第三属性信息由第三信息和第四信息确定,所述第三信息由所述发送方根据第四随机数和新的加密发送方信息确定,所述第四随机数由所述发送方生成,所述新的加密发送方信息由所述发送方利用所述第二预设加密算法对所述第四随机数、所述群密码和发送方标识进行加密得到,所述第四信息由所述发送方采用所述发送方的私钥对所述第三信息进行签名得到;
根据所述发送方的公钥对所述第四信息进行验签,并在验签成功后对所述第二属性信息进行验签,若验签结果与所述第一撤回消息携带的随机数一致,则将包含所述第三属性信息的针对所述第一消息的第二撤回消息发送至所述第一消息对应的接收方,用于指示所述接收方执行相应的消息撤回操作。
12.一种消息处理方法,其特征在于,应用于消息的接收方,包括:
接收服务端发送的第一信息和第一消息内容,其中,所述第一信息和所述第一消息内容包含于发送方发送给所述服务端的第一消息中,所述第一信息由所述发送方利用预设加密算法对发送方标识进行加密得到;
根据所述第一信息进行发送方标识的解密。
13.根据权利要求12所述的方法,其特征在于,
所述接收服务端发送的第一信息和第一消息内容,包括:
接收服务端发送的第一属性信息和第一消息内容,其中,所述第一属性信息包含于所述第一消息中,并由所述发送方根据所述第一信息和第二信息确定,所述第二信息由所述发送方采用所述发送方的私钥对所述第一信息进行签名得到;
在所述根据所述第一信息进行发送方标识的解密之后,还包括:
若解密成功,则根据解密得到的发送方标识获取对应的发送方的公钥;
根据所获取的公钥对所述第二信息进行验签。
14.根据权利要求13所述的方法,其特征在于,所述接收方为单一用户,所述第一信息中包含第一随机数、第一随机密钥对中的第一公钥和加密发送方信息,所述第一随机数和所述第一随机密钥对由所述发送方生成,所述加密发送方信息由所述发送方利用第一预设加密算法对所述第一随机数、第一公共密钥和发送方标识进行加密得到,所述第一公共密钥由所述发送方利用预设密钥协商协议基于所述第一随机密钥对中的第一私钥和所述接收方的公钥生成;
所述根据所述第一信息进行发送方标识的解密,包括:
利用所述预设密钥协商协议基于所述接收方的私钥和所述第一随机密钥对中的第一公钥生成第二公共密钥;
根据所述第二公共密钥和所述第一随机数针对所述加密发送方信息进行发送方标识的解密。
15.根据权利要求14所述的方法,其特征在于,所述加密发送方信息由所述发送方利用第一预设加密算法对所述第一随机数、第一公共密钥对应的第一哈希值和发送方标识进行加密得到;
所述根据所述第二公共密钥和所述第一随机数针对所述加密发送方信息进行发送方标识的解密,包括:
利用预设哈希算法计算所述第二公共密钥对应的第二哈希值;
根据所述第二哈希值和所述第一随机数针对所述加密发送方信息进行发送方标识的解密。
16.根据权利要求13所述的方法,其特征在于,所述接收方为群组用户,所述第一信息中包含第二随机数和加密发送方信息,所述第二随机数由所述发送方生成,所述加密发送方信息由所述发送方利用第二预设加密算法对所述第二随机数、所述群组用户对应的群密码和发送方标识进行加密得到;
所述根据所述第一信息进行发送方标识的解密,包括:
根据第二随机数和所述群密码针对所述加密发送方信息进行发送方标识的解密。
17.根据权利要求16所述的方法,其特征在于,在所述根据第二随机数和所述群密码针对所述加密发送方信息进行发送方标识的解密之后,还包括:
接收所述服务端发送的包含第三属性信息的针对所述第一消息的第二撤回消息,其中,所述第三属性信息包含于所述发送方向所述服务端发送的针对所述第一消息的第一撤回消息中,所述第三属性信息由第三信息和第四信息确定,所述第三信息由所述发送方根据第四随机数和新的加密发送方信息确定,所述第四随机数由所述发送方生成,所述新的加密发送方信息由所述发送方利用所述第二预设加密算法对所述第四随机数、所述群密码和发送方标识进行加密得到,所述第四信息由所述发送方采用所述发送方的私钥对所述第三信息进行签名得到;
根据所述第四随机数和所述群密码针对所述新的加密发送方信息进行发送方标识的解密;
若解密成功,则根据解密得到的发送方标识获取对应的发送方的公钥;
根据所获取的公钥对所述第四信息进行验签,若验签成功,则针对所述第一消息进行相应的撤回操作。
18.一种消息处理装置,其特征在于,配置于消息的发送方,包括:
发送方标识加密模块,用于利用预设加密算法对发送方标识进行加密,得到第一信息;
第一消息发送模块,用于向服务端发送包含所述第一信息和第一消息内容的第一消息,用于指示所述服务端保存所述第一信息和所述第一消息内容,并在满足预设发送条件时,将所述第一信息和所述第一消息内容发送至所述第一消息对应的接收方,供所述接收方根据所述第一信息进行发送方标识的解密。
19.一种消息处理装置,其特征在于,配置于服务端,包括:
第一消息接收模块,用于接收发送方发送的包含第一信息和第一消息内容的第一消息,其中,所述第一信息由所述发送方利用预设加密算法对发送方标识进行加密得到;
保存模块,用于保存所述第一信息和所述第一消息内容;
第二消息发送模块,用于在满足预设发送条件时,将所述第一信息和所述第一消息内容发送至所述第一消息对应的接收方,用于指示所述接收方根据所述第一信息进行发送方标识的解密。
20.一种消息处理装置,其特征在于,配置于消息的接收方,包括:
第二消息接收模块,用于接收服务端发送的第一信息和第一消息内容,其中,所述第一信息和所述第一消息内容包含于发送方发送给所述服务端的第一消息中,所述第一信息由所述发送方利用预设加密算法对发送方标识进行加密得到;
发送方标识解密模块,用于根据所述第一信息进行发送方标识的解密。
21.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-17任一项所述的方法。
22.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-17中任一所述的方法。
CN202010737744.7A 2020-07-28 2020-07-28 消息处理方法、装置、设备及存储介质 Pending CN111914291A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010737744.7A CN111914291A (zh) 2020-07-28 2020-07-28 消息处理方法、装置、设备及存储介质

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010737744.7A CN111914291A (zh) 2020-07-28 2020-07-28 消息处理方法、装置、设备及存储介质
PCT/CN2021/093918 WO2022022009A1 (zh) 2020-07-28 2021-05-14 消息处理方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN111914291A true CN111914291A (zh) 2020-11-10

Family

ID=73280204

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010737744.7A Pending CN111914291A (zh) 2020-07-28 2020-07-28 消息处理方法、装置、设备及存储介质

Country Status (2)

Country Link
CN (1) CN111914291A (zh)
WO (1) WO2022022009A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113204794A (zh) * 2021-07-02 2021-08-03 深圳市深圳通有限公司 交易记录安全存储方法、装置、设备及存储介质
WO2022022009A1 (zh) * 2020-07-28 2022-02-03 百果园技术(新加坡)有限公司 消息处理方法、装置、设备及存储介质
WO2022100666A1 (zh) * 2020-11-12 2022-05-19 华为技术有限公司 一种信息发送方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130219166A1 (en) * 2012-02-20 2013-08-22 Motorola Mobility, Inc. Hardware based identity manager
CN103916310A (zh) * 2014-03-28 2014-07-09 北京奇虎科技有限公司 发送即时通信消息的方法、即时通信客户端和服务器
CN108667718A (zh) * 2018-04-26 2018-10-16 济南浪潮高新科技投资发展有限公司 一种即时通信系统及其通信方法
CN108833373B (zh) * 2018-05-29 2021-03-16 东北大学 面向关系隐私保护社交网络的即时通信与匿名访问方法
CN111914291A (zh) * 2020-07-28 2020-11-10 广州市百果园信息技术有限公司 消息处理方法、装置、设备及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022022009A1 (zh) * 2020-07-28 2022-02-03 百果园技术(新加坡)有限公司 消息处理方法、装置、设备及存储介质
WO2022100666A1 (zh) * 2020-11-12 2022-05-19 华为技术有限公司 一种信息发送方法及装置
CN113204794A (zh) * 2021-07-02 2021-08-03 深圳市深圳通有限公司 交易记录安全存储方法、装置、设备及存储介质
CN113204794B (zh) * 2021-07-02 2021-10-15 深圳市深圳通有限公司 交易记录安全存储方法、装置、设备及存储介质

Also Published As

Publication number Publication date
WO2022022009A1 (zh) 2022-02-03

Similar Documents

Publication Publication Date Title
US10785019B2 (en) Data transmission method and apparatus
US6535980B1 (en) Keyless encryption of messages using challenge response
CN107294937B (zh) 基于网络通信的数据传输方法、客户端及服务器
US8499156B2 (en) Method for implementing encryption and transmission of information and system thereof
CN106357690B (zh) 一种数据传输方法、数据发送装置及数据接收装置
US8433066B2 (en) Method for generating an encryption/decryption key
CN110535868A (zh) 基于混合加密算法的数据传输方法及系统
CN106788989B (zh) 一种建立安全加密信道的方法及设备
CN103338215A (zh) 基于国密算法建立tls通道的方法
CN111914291A (zh) 消息处理方法、装置、设备及存储介质
CN108173644A (zh) 数据传输加密方法、装置、存储介质、设备及服务器
US9130744B1 (en) Sending an encrypted key pair and a secret shared by two devices to a trusted intermediary
CN109684129B (zh) 数据备份恢复方法、存储介质、加密机、客户端和服务器
CN109800588B (zh) 条码动态加密方法及装置、条码动态解密方法及装置
US20180083935A1 (en) Method and system for secure sms communications
WO2020042023A1 (zh) 一种即时通信的数据加密方法及装置
CN111404664A (zh) 基于秘密共享和多个移动设备的量子保密通信身份认证系统和方法
WO2021196915A1 (zh) 基于加密、解密操作的数据传输方法、系统和计算机设备
US7971234B1 (en) Method and apparatus for offline cryptographic key establishment
US20050108528A1 (en) Computer network and method for transmitting and authenticating data in the computer network
CN112822015A (zh) 信息传输方法及相关装置
CN102014136B (zh) 基于随机握手的p2p网络安全通信方法
CN109962924B (zh) 群聊构建方法、群消息发送方法、群消息接收方法及系统
CN109951513B (zh) 基于量子密钥卡的抗量子计算智能家庭量子云存储方法和系统
CN108737087B (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