CN115643017A - 一种基于混合编码模型的软件标识有效性校验方法 - Google Patents

一种基于混合编码模型的软件标识有效性校验方法 Download PDF

Info

Publication number
CN115643017A
CN115643017A CN202211659779.9A CN202211659779A CN115643017A CN 115643017 A CN115643017 A CN 115643017A CN 202211659779 A CN202211659779 A CN 202211659779A CN 115643017 A CN115643017 A CN 115643017A
Authority
CN
China
Prior art keywords
data
intermediate server
spdx
document
sender
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.)
Granted
Application number
CN202211659779.9A
Other languages
English (en)
Other versions
CN115643017B (zh
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.)
Cloud Acceleration Beijing Technology Co ltd
Original Assignee
Cloud Acceleration Beijing 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 Cloud Acceleration Beijing Technology Co ltd filed Critical Cloud Acceleration Beijing Technology Co ltd
Priority to CN202211659779.9A priority Critical patent/CN115643017B/zh
Publication of CN115643017A publication Critical patent/CN115643017A/zh
Application granted granted Critical
Publication of CN115643017B publication Critical patent/CN115643017B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明属于数据处理技术领域,具体涉及一种基于混合编码模型的软件标识有效性校验方法,方法包括:发送方向中间服务器发送建立通信联系的请求信息;中间服务器验证发送方的唯一识别符是否被自身存储,若被自身存储,则根据请求信息向相应的通信地址的接收方转发请求信息;相应的通信地址的接收方接收来自中间服务器的请求信息,同时判断是否与相应的发送方建立通信联系以生成确认信息并且发送给中间服务器;当确认信息为允许和相应的发送方建立通信联系时,中间服务器生成秘密数据;相应的发送方加密处理将要发送的数据,相应的接收方对于加密处理的结果数据进行解密处理和加密存储,本发明避免数据被非法获取、篡改、读取。

Description

一种基于混合编码模型的软件标识有效性校验方法
技术领域
本发明属于数据通信技术领域,具体涉及一种基于混合编码模型的软件标识有效性校验方法。
背景技术
SPDX文档定义了一个用于交流软件组件信息的开放标准,描述了产品的所有软件组件、开源许可证以及依赖项的清单,提供了对于软件供应链以及可能存在的安全性、可靠性和许可证合规性的可见性,有助于提高识别和修复漏洞的透明度和速度,可以帮助企业快速识别和补救潜在的安全漏洞,确保软件供应链的安全性,因此在交付软件产品时,还需要提供相应的SPDX文档,现有技术可以通过在网络上传输软件产品和SPDX文档来完成交付工作,然而,在网络上传输软件产品的方式,可能存在软件产品被非法第三方获取、以及被非法第三方篡改的风险,对于有较高保密性要求的软件产品来说,将造成严重的后果,针对上述技术问题急需一种解决方案。
发明内容
本发明通过中间服务器在发送方和接收方之间创建了可靠的通信联系,从而发送方可以通过这个可靠的通信联系将数据传输给接收方,接收方对于收到的数据进行解密处理后,还需要进一步验证数据的有效性,此外,在接收方加密存储数据之后,要想读取加密存储的数据,接收方必须要得到中间服务器发来的解密密码,本发明旨在避免数据在传输过程中被非法获取和被非法篡改,以及避免数据在接收之后被非法读取。
为了达到上述的发明目的,本发明给出如下所述的一种基于混合编码模型的软件标识有效性校验方法,主要包括以下的步骤:
发送方通过网络向中间服务器发送希望和接收方建立通信联系的请求信息,所述请求信息中包含所述发送方的唯一识别符,以及希望与之建立通信联系的所述接收方的唯一识别符;
所述中间服务器预先存储不同所述发送方的唯一识别符,同时还预先存储不同所述接收方的唯一识别符,以及不同所述接收方的通信地址,所述中间服务器接收来自所述发送方的所述请求信息,并且验证所述发送方的唯一识别符是否被自身存储,若未被自身存储,则结束全部步骤,若被自身存储,则根据所述请求信息通过网络向相应的通信地址的所述接收方转发所述请求信息;
相应的通信地址的所述接收方接收来自所述中间服务器的所述请求信息,并且获取希望和自身建立通信联系的相应的所述发送方的唯一识别符,同时判断是否与之建立通信联系以生成确认信息,还将所述确认信息发送给所述中间服务器;
所述中间服务器接收所述确认信息,当所述确认信息为不允许和相应的所述发送方建立通信联系时,结束全部步骤,当所述确认信息为允许和相应的所述发送方建立通信联系时,所述中间服务器生成秘密数据,并且把所述秘密数据和相应的所述接收方的通信地址发送给相应的发送方,同时把所述秘密数据发送给相应的所述接收方;
相应的所述发送方和相应的所述接收方分别基于接收到的所述秘密数据生成共有密钥,并且相应的所述发送方使用所述共有密钥加密处理将要发送的数据,从而将加密处理的结果数据按照通信地址发送给相应的接收方,相应的所述接收方使用所述共有密钥对于加密处理的结果数据进行解密处理和加密存储。
作为本发明的一种优选技术方案,相应的所述发送方将要发送的数据包括软件产品,以及相应的SPDX文档。
作为本发明的一种优选技术方案,相应的所述发送方在使用所述共有密钥加密处理将要发送的数据之前,还包括如下步骤:
基于软件产品的SPDX文档,分别读取<SPDXDocutment>类内的<DocumentName>数据项,<package>结构体内的<PackageName>数据项,以及<File Infomation>类内的<FileName>数据项,并且分别对于读取的数据项按照ISO/IEC-19770 Part 2 SoftwareIdentification Tag规范进行转换处理,还分别使用转换处理的结果数据对应替换原来的数据项,以得到新的SPDX文档;
在新的SPDX文档中继续读取<SPDXDocutment>类内的<SPDXVersion>数据项、<DataLicense>数据项、<DocumentName>数据项,<package>结构体内的<PackageName>数据项、<PackageLicenseInfoFromFiles>数据项、<PackageLicenseDeclared>数据项、<PackageCopyrightText>数据项,以及<File Infomation>类内的<FileName>数据项、<FileType>数据项、<FileChecksum>数据项、<LicenseConcluded>数据项、<LicenseInfoInFile>数据项、<FileCopyrightText>数据项,和<Relationships>列表内的<Relationship>数据项,还把读取的全部的数据项拼装成字符串;
针对拼装成的字符串使用SM3算法进行处理并且得到散列值,同时依次以4字节表示SPDX文档的正文长度,以8比特位表示SPDX文档的大小,以64字节表示所述散列值,以1字节表示SPDX文档的摘要数据的版本号,来生成SPDX文档的摘要数据;并且使用W3CDistributedidentity规则处理SPDX文档的摘要数据;还使用处理过的SPDX文档的摘要数据替换新的SPDX文档中的<SPDXDocutment>类内的<DocumentID>数据项。
作为本发明的一种优选技术方案,相应的所述接收方使用所述共有密钥对于加密处理的结果数据进行解密处理之后,还包括如下步骤:
根据解密处理得到的软件产品的物料清单生成SPDX文档,并且基于SPDX文档通过执行与相应的所述发送方在使用所述共有密钥加密处理将要发送的数据之前执行的步骤相同的步骤,得到处理过的SPDX文档的摘要数据;
基于解密处理得到的SPDX文档,读取SPDX文档中的<SPDXDocutment>类内的<DocumentID>数据项,并且将读取的<DocumentID>数据项与得到的处理过的SPDX文档的摘要数据进行一致性对比,当二者一致时,判定解密处理得到的软件产品是有效的,当二者不一致时,判定解密处理得到的软件产品是无效的。
作为本发明的一种优选技术方案,所述秘密数据包括所述中间服务器通过密钥生成算法得到的密钥数据,和所述中间服务器随机生成的第一数据、第二数据,以及所述中间服务器设定的常数。
作为本发明的一种优选技术方案,相应的所述发送方和相应的所述接收方分别基于接收到的所述秘密数据生成共有密钥,包括如下步骤:
将所述密钥数据与所述第一数据进行异或运算,得到所述密钥数据和所述第一数据的异或运算结果,并且在所述密钥数据和所述第一数据的异或运算结果之后连接所述常数以得到第一中间数据,还通过散列函数计算所述第一中间数据的第一散列值;
将所述密钥数据与所述第二数据进行异或运算,得到所述密钥数据和所述第二数据的异或运算结果,并且在所述密钥数据和所述第二数据的异或运算结果之后连接所述第一散列值以得到第二中间数据,还通过所述散列函数计算所述第二中间数据的第二散列值,同时将所述第二散列值作为所述共有密钥。
作为本发明的一种优选技术方案,相应的所述接收方使用所述共有密钥对于加密处理的结果数据进行解密处理和加密存储之后,还包括如下步骤:
在试图读取相应的所述接收方中加密存储的软件产品和SPDX文档的情况下,相应的所述接收方自动向所述中间服务器发送通知信息,通知信息包括相应的所述接收方的唯一识别符;
所述中间服务器预先存储相应的所述接收方的唯一识别符,以及与相应的所述接收方相对应的确认方的通信地址,所述中间服务器接收来自相应的所述接收方的通知信息,并且按照通信地址将通知信息转发给所述确认方;
所述确认方接收来自所述中间服务器的通知信息,同时所述确认方判定是否允许读取相应的所述接收方中加密存储的软件产品和SPDX文档,若允许读取,则将解密密码包含在判定信息中并且发送给所述中间服务器,若不允许读取,则向所述中间服务器发送不包含解密密码的判定信息;
所述中间服务器判断是否在预先设定的时间段内接收到来自所述确认方的判定信息,若未接收到判定信息,则向相应的所述接收方发送表明不允许读取的最后信息,若接收到判定信息,则向相应的所述接收方发送表明允许读取的最后信息,并且最后信息包含解密密码,相应的所述接收方使用解密密码解密处理加密存储的软件产品和SPDX文档。
作为本发明的一种优选技术方案,相应的所述接收方拒绝接收直接从所述确认方发来的判定信息,并且解密密码无法通过人工输入的方式获取。
与现有技术相比,本发明的有益效果至少如下所述:
1、在本发明中,首先,发送方向中间服务器发送建立通信联系的请求信息,接着,中间服务器验证发送方的唯一识别符是否被自身存储,若被自身存储,则根据请求信息向相应的通信地址的接收方转发请求信息;其次,相应的通信地址的接收方接收来自中间服务器的请求信息,同时判断是否与相应的发送方建立通信联系以生成确认信息并且发送给中间服务器;再次,当确认信息为允许和相应的发送方建立通信联系时,中间服务器生成秘密数据;最后,相应的发送方加密处理将要发送的数据,相应的接收方对于加密处理的结果数据进行解密处理和加密存储。
2、本发明解决了现有技术在网络上传输软件产品时,存在的软件产品可能被非法第三方获取,以及可能被非法第三方篡改的技术问题,本发明通过中间服务器在发送方和接收方之间创建了可靠的通信联系,从而发送方可以通过这个可靠的通信联系将数据传输给接收方,接收方对于收到的数据进行解密处理后,还进一步验证了数据的有效性,并且在接收方加密存储数据之后,接收方必须要得到确认方的允许才能读取加密存储的数据,本发明避免数据在传输过程中被非法获取和被非法篡改,以及避免数据在接收之后被非法读取。
附图说明
图1为本发明的一种基于混合编码模型的软件标识有效性校验方法的步骤流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但除非特别说明,这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一xx脚本称为第二xx脚本,且类似地,可将第二xx脚本称为第一xx脚本。
本发明提供了如图1所示的一种基于混合编码模型的软件标识有效性校验方法,主要通过执行如下的步骤过程来实现:
步骤一、发送方通过网络向中间服务器发送希望和接收方建立通信联系的请求信息,上述请求信息中包含上述发送方的唯一识别符,以及希望与之建立通信联系的上述接收方的唯一识别符;
步骤二、上述中间服务器预先存储不同上述发送方的唯一识别符,同时还预先存储不同上述接收方的唯一识别符,以及不同上述接收方的通信地址,不同上述接收方的通信地址会定期更新,上述中间服务器接收来自上述发送方的上述请求信息,并且验证上述发送方的唯一识别符是否被自身存储,若未被自身存储,则结束全部步骤,若被自身存储,则根据上述请求信息通过网络向相应的通信地址的上述接收方转发上述请求信息;
步骤三、相应的通信地址的上述接收方接收来自上述中间服务器的上述请求信息,并且获取希望和自身建立通信联系的相应的上述发送方的唯一识别符,同时判断是否与之建立通信联系以生成确认信息,还将上述确认信息发送给上述中间服务器;
步骤四、上述中间服务器接收上述确认信息,当上述确认信息为不允许和相应的上述发送方建立通信联系时,结束全部步骤,当上述确认信息为允许和相应的上述发送方建立通信联系时,上述中间服务器生成秘密数据,并且把上述秘密数据和相应的上述接收方的通信地址发送给相应的发送方,同时把上述秘密数据发送给相应的上述接收方;
步骤五、相应的上述发送方和相应的上述接收方分别基于接收到的上述秘密数据生成共有密钥,并且相应的上述发送方使用上述共有密钥加密处理将要发送的数据,从而将加密处理的结果数据按照通信地址发送给相应的接收方,相应的上述接收方使用上述共有密钥对于加密处理的结果数据进行解密处理和加密存储。
具体的,发明人考虑到现有技术在交付软件产品时,还需要提供相应的SPDX文档,可以通过在网络上传输软件产品和SPDX文档来完成交付工作,然而,在网络上传输软件产品可能存在软件产品被非法第三方获取、以及被非法第三方篡改的风险,对于有较高保密性要求的软件产品来说,将造成严重的后果,为了解决这个技术问题提出了上述步骤一到上述步骤五。
首先发送方向中间服务器发送请求信息,该请求信息表明其想要与接收方建立可靠的通信联系,该请求信息中包括发送方和接收方的唯一识别符,唯一识别符可以是他们的物理地址,接着中间服务器根据上述请求信息,判断接收方的唯一识别符是否被自己存储,如果是的话,那么说明接收方的身份是安全的,因此将上述请求信息转发给接收方,如果不是的话,那么说明接收方的身份是不安全的,应该结束全部的步骤,其次接收方在收到请求信息之后,根据发送方的唯一识别符决定是否与其建立通信联系,同时发送确认信息,再次当接收方允许和发送方建立通信联系时,中间服务器把秘密数据和接收方的通信地址发送给发送方,还把秘密数据也发送给接收方,当接收方不允许和发送方建立通信联系时,同样也结束全部的步骤,最后发送方和接收方能够使用秘密数据分别生成共有密钥,从而发送方使用共有密钥加密处理发送的数据,接收方使用共有密钥进行解密处理来得到发送的数据。上述步骤一到上述步骤五通过中间服务器认证发送方的身份,同时只有中间服务器才能保存接收方的通信地址,并且只有在接收方允许和发送方建立通信联系时,中间服务器才生成秘密数据,进而实现发送方和接收方之间的加密传输,能够避免发送方的数据被非法第三方获取。
进一步的,在上述步骤五中,相应的上述发送方将要发送的数据包括软件产品,以及相应的SPDX文档。
进一步的,在上述步骤五中,相应的上述发送方在使用上述共有密钥加密处理将要发送的数据之前,还包括如下步骤:
步骤一、基于软件产品的SPDX文档,分别读取<SPDXDocutment>类内的<DocumentName>数据项,<package>结构体内的<PackageName>数据项,以及<FileInfomation>类内的<FileName>数据项,并且分别对于读取的数据项按照ISO/IEC-19770Part 2 Software Identification Tag规范进行转换处理,还分别使用转换处理的结果数据对应替换原来的数据项,以得到新的SPDX文档;
步骤二、在新的SPDX文档中继续读取<SPDXDocutment>类内的<SPDXVersion>数据项、<DataLicense>数据项、<DocumentName>数据项,<package>结构体内的<PackageName>数据项、<PackageLicenseInfoFromFiles>数据项、<PackageLicenseDeclared>数据项、<PackageCopyrightText>数据项,以及<File Infomation>类内的<FileName>数据项、<FileType>数据项、<FileChecksum>数据项、<LicenseConcluded>数据项、<LicenseInfoInFile>数据项、<FileCopyrightText>数据项,和<Relationships>列表内的<Relationship>数据项,还把读取的全部的数据项拼装成字符串;
步骤三、针对拼装成的字符串使用SM3算法进行处理并且得到散列值,同时依次以4字节表示SPDX文档的正文长度,以8比特位表示SPDX文档的大小,以64字节表示上述散列值,以1字节表示SPDX文档的摘要数据的版本号,来生成SPDX文档的摘要数据;并且使用W3CDistributedidentity规则处理SPDX文档的摘要数据;还使用处理过的SPDX文档的摘要数据替换新的SPDX文档中的<SPDXDocutment>类内的<DocumentID>数据项。
具体的,发明人发现在现有技术中缺少根据由软件物料清单生成的SPDX文档生成SPDX文档中的<SPDXDocutment>类内的<DocumentID>数据项的技术问题,因此提出了上述步骤一到上述步骤三来解决这个技术问题,同时上述步骤一到上述步骤三也提供了一种软件标识的方法,除此之外,虽然借助中间服务器已经在发送方和接收方之间建立了可靠的通信联系,也即能够在发送方和接收方之间加密传输数据,但是为了进一步确保数据的安全性,接收方还应该对接收到的数据进行有效性检验,来判断发送的软件产品是否被篡改过,由此,接收方在发送数据前还执行了上述步骤一到上述步骤三。
进一步的,相应的所述接收方使用所述共有密钥对于加密处理的结果数据进行解密处理之后,还包括如下步骤:
步骤一、根据解密处理得到的软件产品的物料清单生成SPDX文档,并且基于SPDX文档通过执行与相应的所述发送方在使用所述共有密钥加密处理将要发送的数据之前执行的步骤相同的步骤,得到处理过的SPDX文档的摘要数据;
步骤二、基于解密处理得到的SPDX文档,读取SPDX文档中的<SPDXDocutment>类内的<DocumentID>数据项,并且将读取的<DocumentID>数据项与得到的处理过的SPDX文档的摘要数据进行一致性对比,当二者一致时,判定解密处理得到的软件产品是有效的,当二者不一致时,判定解密处理得到的软件产品是无效的。
具体的,接收方在进行解密处理得到软件产品之后,从软件产品中获取其物料清单,从而根据物料清单生成SPDX文档,针对该SPDX文档,又通过和发送方在使用共有密钥加密处理将要发送的数据之前执行的步骤一样的步骤,来得到处理过的该SPDX文档的摘要数据,并且接收方在进行解密处理得到SPDX文档之后,从这个SPDX文档读取<SPDXDocutment>类内的<DocumentID>数据项,接收方还将这个<DocumentID>数据项和处理过的上述SPDX文档的摘要数据进行比较,因为摘要数据能够代表SPDX文档中的主要内容,所以如果他们相同的话,就能够说明软件产品没有在发送的过程中被篡改,从而验证了软件产品的有效性,此外,接收方将这个<DocumentID>数据项和处理过的上述SPDX文档的摘要数据进行比较,同时也完成了对于软件标识的验证。
进一步的,在上述步骤四中,上述秘密数据包括上述中间服务器通过密钥生成算法得到的密钥数据,和上述中间服务器随机生成的第一数据、第二数据,以及上述中间服务器设定的常数。
进一步的,在上述步骤五中,相应的上述发送方和相应的上述接收方分别基于接收到的上述秘密数据生成共有密钥,包括如下步骤:
步骤一、将上述密钥数据与上述第一数据进行异或运算,得到上述密钥数据和上述第一数据的异或运算结果,并且在上述密钥数据和上述第一数据的异或运算结果之后连接上述常数以得到第一中间数据,还通过散列函数计算上述第一中间数据的第一散列值;
步骤二、将上述密钥数据与上述第二数据进行异或运算,得到上述密钥数据和上述第二数据的异或运算结果,并且在上述密钥数据和上述第二数据的异或运算结果之后连接上述第一散列值以得到第二中间数据,还通过上述散列函数计算上述第二中间数据的第二散列值,同时将上述第二散列值作为上述共有密钥。
具体的,通过上述步骤一和上述步骤二,发送方和接收方能够实现基于来自中间服务器的秘密数据分别生成共有密钥的目的,这样做的好处一方面在于无需在发送方和接收方之间传输共有密钥,避免共有密钥被泄露的风险,从而使发送方和接收方之间的通信联系变得可靠,这样做的好处另一方面在于中间服务器仅保存秘密数据,并且通过设置仅有发送方和接收方预先共享根据秘密数据生成共有密钥的方法,也即上述步骤一和上述步骤二,这样即使中间服务器受到了非法攻击,也不会泄露发送方和接收方的共有密钥,他们之间的通信联系也是可靠的,避免传输的数据被泄露。
进一步的,相应的上述接收方使用上述共有密钥对于加密处理的结果数据进行解密处理和加密存储之后,还包括如下步骤:
步骤一、在试图读取相应的上述接收方中加密存储的软件产品和SPDX文档的情况下,相应的上述接收方自动向上述中间服务器发送通知信息,通知信息包括相应的上述接收方的唯一识别符;
步骤二、上述中间服务器预先存储相应的上述接收方的唯一识别符,以及与相应的上述接收方相对应的确认方的通信地址,上述中间服务器接收来自相应的上述接收方的通知信息,并且按照通信地址将通知信息转发给上述确认方;
步骤三、上述确认方接收来自上述中间服务器的通知信息,同时上述确认方判定是否允许读取相应的上述接收方中加密存储的软件产品和SPDX文档,若允许读取,则将解密密码包含在判定信息中并且发送给上述中间服务器,若不允许读取,则向上述中间服务器发送不包含解密密码的判定信息;
步骤四、上述中间服务器判断是否在预先设定的时间段内接收到来自上述确认方的判定信息,若未接收到判定信息,则向相应的上述接收方发送表明不允许读取的最后信息,若接收到判定信息,则向相应的上述接收方发送表明允许读取的最后信息,并且最后信息包含上述解密密码,相应的上述接收方使用上述解密密码解密处理加密存储的软件产品和SPDX文档。
进一步的,相应的上述接收方拒绝接收直接从上述确认方发来的判定信息,并且上述解密密码无法通过人工输入的方式获取。
具体的,在发送方通过可靠的通信联系将数据传输给接收方,并且接收方验证过数据的有效性之后,发明人又考虑到加密存储在接收方的软件产品和SPDX文档不应该被任意的读取,避免软件产品和SPDX文档被泄露,因此又提出了上述步骤一到上述步骤四,首先当有人试图读取加密存储在接收方的软件产品和SPDX文档时,接收方会自动地向中间服务器发送通知信息,该接收方可以为个人计算机,其次中间服务器查找与发送方相对应的确认方,该确认方预先与接收方进行过绑定,该确认方也可以是个人计算机,并且中间服务器将通知信息转发给该确认方,再次确认方收到通知信息后,决定是否允许正在试图进行的对于加密存储的软件产品和SPDX文档的读取操作,如果允许的话,确认方将解密密码发送给中间服务器,否则的话,不发送解密密码给中间服务器,最后中间服务器在规定的时间段内没有接收到确认方发送的判定信息的话,那么就通知接收方正在试图进行的对于加密存储的软件产品和SPDX文档的读取操作不被允许,反之,中间服务器将解密密码发送给接收方,从而接收方能够解密处理加密存储的软件产品和SPDX文档,并且允许上述读取操作,需要注意的是,接收方对于软件产品和SPDX文档进行加密存储的加密密码,以及确认方存储的解密密码是相对应的,并且二者会定期进行同步更新,还需要注意的是,接收方不从确认方直接接收判定信息,这样做是为了在接收方和确认方同时丢失的情况下,避免加密存储的软件产品和SPDX文档被泄露,此外解密密码也只能从中间服务器获取,不能通过人工输入,这样做也是为了进一步确保加密存储的软件产品和SPDX文档的安全性。
进一步的,在上述步骤一到上述步骤四中,每次想要读取接收方加密存储的软件产品和SPDX文档时,都需要确认方判断是否允许读取操作,可能会使得接收方的等待时间较长,因此,针对这个技术问题,还提出了以下的解决步骤:
步骤一、确认方将包含允许读取接收方加密存储的软件产品和SPDX文档的时间段,以及解密密码的判定信息发送给中间服务器进行存储;
步骤二、中间服务器在时间段内,如果接收到了来自接收方的通知信息,表明有试图读取接收方加密存储的软件产品和SPDX文档的情况发生,中间服务器按照之前存储的判定信息,向接收方发送表明允许读取的最后信息,如果没有接收到来自接收方的通知信息,中间服务器处于待机状态;
步骤三、中间服务器在时间段之外接收到来自接收方的通知信息时,直接向接收方发送表明不允许读取的最后信息,并且确认方能够随时向中间服务器发送新的判定信息,来更改允许读取接收方加密存储的软件产品和SPDX文档的时间段,以及修改为不允许读取接收方加密存储的软件产品和SPDX文档。
应该理解的是,虽然本发明各实施例的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各实施例中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一个非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上上述的实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上上述的实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
以上上述的仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种基于混合编码模型的软件标识有效性校验方法,其特征在于,包括如下步骤:
发送方通过网络向中间服务器发送希望和接收方建立通信联系的请求信息,所述请求信息中包含所述发送方的唯一识别符,以及希望与之建立通信联系的所述接收方的唯一识别符;
所述中间服务器预先存储不同所述发送方的唯一识别符,同时还预先存储不同所述接收方的唯一识别符,以及不同所述接收方的通信地址,所述中间服务器接收来自所述发送方的所述请求信息,并且验证所述发送方的唯一识别符是否被自身存储,若未被自身存储,则结束全部步骤,若被自身存储,则根据所述请求信息通过网络向相应的通信地址的所述接收方转发所述请求信息;
相应的通信地址的所述接收方接收来自所述中间服务器的所述请求信息,并且获取希望和自身建立通信联系的相应的所述发送方的唯一识别符,同时判断是否与之建立通信联系以生成确认信息,还将所述确认信息发送给所述中间服务器;
所述中间服务器接收所述确认信息,当所述确认信息为不允许和相应的所述发送方建立通信联系时,结束全部步骤,当所述确认信息为允许和相应的所述发送方建立通信联系时,所述中间服务器生成秘密数据,并且把所述秘密数据和相应的所述接收方的通信地址发送给相应的发送方,同时把所述秘密数据发送给相应的所述接收方;
相应的所述发送方和相应的所述接收方分别基于接收到的所述秘密数据生成共有密钥,并且相应的所述发送方使用所述共有密钥加密处理将要发送的数据,从而将加密处理的结果数据按照通信地址发送给相应的接收方,相应的所述接收方使用所述共有密钥对于加密处理的结果数据进行解密处理和加密存储。
2.根据权利要求1所述的一种基于混合编码模型的软件标识有效性校验方法,其特征在于,相应的所述发送方将要发送的数据包括软件产品,以及相应的SPDX文档。
3.根据权利要求2所述的一种基于混合编码模型的软件标识有效性校验方法,其特征在于,相应的所述发送方在使用所述共有密钥加密处理将要发送的数据之前,还包括如下步骤:
基于软件产品的SPDX文档,分别读取<SPDXDocutment>类内的<DocumentName>数据项,<package>结构体内的<PackageName>数据项,以及<File Infomation>类内的<FileName>数据项,并且分别对于读取的数据项按照ISO/IEC-19770 Part 2 SoftwareIdentification Tag规范进行转换处理,还分别使用转换处理的结果数据对应替换原来的数据项,以得到新的SPDX文档;
在新的SPDX文档中继续读取<SPDXDocutment>类内的<SPDXVersion>数据项、<DataLicense>数据项、<DocumentName>数据项,<package>结构体内的<PackageName>数据项、<PackageLicenseInfoFromFiles>数据项、<PackageLicenseDeclared>数据项、<PackageCopyrightText>数据项,以及<File Infomation>类内的<FileName>数据项、<FileType>数据项、<FileChecksum>数据项、<LicenseConcluded>数据项、<LicenseInfoInFile>数据项、<FileCopyrightText>数据项,和<Relationships>列表内的<Relationship>数据项,还把读取的全部的数据项拼装成字符串;
针对拼装成的字符串使用SM3算法进行处理并且得到散列值,同时依次以4字节表示SPDX文档的正文长度,以8比特位表示SPDX文档的[c1] ,以64字节表示所述散列值,以1字节表示SPDX文档的摘要数据的版本号,来生成SPDX文档的摘要数据;并且使用W3CDistributedidentity规则[c2] SPDX文档的摘要数据;还使用处理过的SPDX文档的摘要数据替换新的SPDX文档中的<SPDXDocutment>类内的<DocumentID>数据项。
4.根据权利要求3所述的一种基于混合编码模型的软件标识有效性校验方法,其特征在于,相应的所述接收方使用所述共有密钥对于加密处理的结果数据进行解密处理之后,还包括如下步骤:
根据解密处理得到的软件产品的物料清单生成SPDX文档,并且基于SPDX文档通过执行与相应的所述发送方在使用所述共有密钥加密处理将要发送的数据之前执行的步骤相同的步骤,得到处理过的SPDX文档的摘要数据;
基于解密处理得到的SPDX文档,读取SPDX文档中的<SPDXDocutment>类内的<DocumentID>数据项,并且将读取的<DocumentID>数据项与得到的处理过的SPDX文档的摘要数据进行一致性对比,当二者一致时,判定解密处理得到的软件产品是有效的,当二者不一致时,判定解密处理得到的软件产品是无效的。
5.根据权利要求1所述的一种基于混合编码模型的软件标识有效性校验方法,其特征在于,所述秘密数据包括所述中间服务器通过密钥生成算法得到的密钥数据,和所述中间服务器随机生成的第一数据、第二数据,以及所述中间服务器设定的常数。
6.据权利要求5所述的一种基于混合编码模型的软件标识有效性校验方法,其特征在于,相应的所述发送方和相应的所述接收方分别基于接收到的所述秘密数据生成共有密钥,包括如下步骤:
将所述密钥数据与所述第一数据进行异或运算,得到所述密钥数据和所述第一数据的异或运算结果,并且在所述密钥数据和所述第一数据的异或运算结果之后连接所述常数以得到第一中间数据,还通过散列函数计算所述第一中间数据的第一散列值;
将所述密钥数据与所述第二数据进行异或运算,得到所述密钥数据和所述第二数据的异或运算结果,并且在所述密钥数据和所述第二数据的异或运算结果之后连接所述第一散列值以得到第二中间数据,还通过所述散列函数计算所述第二中间数据的第二散列值,同时将所述第二散列值作为所述共有密钥。
7.根据权利要求1所述的一种基于混合编码模型的软件标识有效性校验方法,其特征在于,相应的所述接收方使用所述共有密钥对于加密处理的结果数据进行解密处理和加密存储之后,还包括如下步骤:
在试图读取相应的所述接收方中加密存储的软件产品和SPDX文档的情况下,相应的所述接收方自动向所述中间服务器发送通知信息,通知信息包括相应的所述接收方的唯一识别符;
所述中间服务器预先存储相应的所述接收方的唯一识别符,以及与相应的所述接收方相对应的确认方的通信地址,所述中间服务器接收来自相应的所述接收方的通知信息,并且按照通信地址将通知信息转发给所述确认方;
所述确认方接收来自所述中间服务器的通知信息,同时所述确认方判定是否允许读取相应的所述接收方中加密存储的软件产品和SPDX文档,若允许读取,则将解密密码包含在判定信息中并且发送给所述中间服务器,若不允许读取,则向所述中间服务器发送不包含解密密码的判定信息;
所述中间服务器判断是否在预先设定的时间段内接收到来自所述确认方的判定信息,若未接收到判定信息,则向相应的所述接收方发送表明不允许读取的最后信息,若接收到判定信息,则向相应的所述接收方发送表明允许读取的最后信息,并且最后信息包含解密密码,相应的所述接收方使用解密密码解密处理加密存储的软件产品和SPDX文档。
8.根据权利要求7所述的一种基于混合编码模型的软件标识有效性校验方法,其特征在于,相应的所述接收方拒绝接收直接从所述确认方发来的判定信息,并且解密密码无法通过人工输入的方式获取。
CN202211659779.9A 2022-12-23 2022-12-23 一种基于混合编码模型的软件标识有效性校验方法 Active CN115643017B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211659779.9A CN115643017B (zh) 2022-12-23 2022-12-23 一种基于混合编码模型的软件标识有效性校验方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211659779.9A CN115643017B (zh) 2022-12-23 2022-12-23 一种基于混合编码模型的软件标识有效性校验方法

Publications (2)

Publication Number Publication Date
CN115643017A true CN115643017A (zh) 2023-01-24
CN115643017B CN115643017B (zh) 2023-03-31

Family

ID=84948959

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211659779.9A Active CN115643017B (zh) 2022-12-23 2022-12-23 一种基于混合编码模型的软件标识有效性校验方法

Country Status (1)

Country Link
CN (1) CN115643017B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115905895A (zh) * 2023-03-08 2023-04-04 云加速(北京)科技有限公司 一种基于区块链的sbom标识聚类模型实现方法

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5509074A (en) * 1994-01-27 1996-04-16 At&T Corp. Method of protecting electronically published materials using cryptographic protocols
US20020042884A1 (en) * 2000-10-11 2002-04-11 Wu Jian Kang Remote printing of secure and/or authenticated documents
US20030145237A1 (en) * 2002-01-31 2003-07-31 International Business Machines Corp. Multiple secure socket layer keyfiles for client login support
US20070130462A1 (en) * 2005-12-06 2007-06-07 Law Eric C W Asynchronous encryption for secured electronic communications
US8726009B1 (en) * 2010-01-26 2014-05-13 David P. Cook Secure messaging using a trusted third party
CN104980436A (zh) * 2015-06-11 2015-10-14 努比亚技术有限公司 一种加密传输系统、方法、终端以及中间服务器
CN105119900A (zh) * 2015-07-17 2015-12-02 北京奇虎科技有限公司 信息安全传输方法、联网接入方法及相应的终端
CN105981398A (zh) * 2013-12-03 2016-09-28 三星电子株式会社 用于提供内容安全功能的内容安全方法和电子设备
WO2019127397A1 (en) * 2017-12-29 2019-07-04 Intel Corporation Technologies for internet of things key management
CA3116067A1 (en) * 2018-11-30 2020-06-04 Paccar Inc. Techniques for improving security of encrypted vehicle software updates
CN113647051A (zh) * 2019-01-28 2021-11-12 康奈尔克有限公司 用于安全电子数据传输的系统和方法
CN114531266A (zh) * 2021-12-03 2022-05-24 国网浙江省电力有限公司嘉兴供电公司 一种基于中间数据库的配电网数据防护系统及其方法
CN114666073A (zh) * 2020-12-04 2022-06-24 四川大学 一种基于ssl协议完备通信的隐蔽信道传输方法

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5509074A (en) * 1994-01-27 1996-04-16 At&T Corp. Method of protecting electronically published materials using cryptographic protocols
US20020042884A1 (en) * 2000-10-11 2002-04-11 Wu Jian Kang Remote printing of secure and/or authenticated documents
US20030145237A1 (en) * 2002-01-31 2003-07-31 International Business Machines Corp. Multiple secure socket layer keyfiles for client login support
US20070130462A1 (en) * 2005-12-06 2007-06-07 Law Eric C W Asynchronous encryption for secured electronic communications
US8726009B1 (en) * 2010-01-26 2014-05-13 David P. Cook Secure messaging using a trusted third party
CN105981398A (zh) * 2013-12-03 2016-09-28 三星电子株式会社 用于提供内容安全功能的内容安全方法和电子设备
CN104980436A (zh) * 2015-06-11 2015-10-14 努比亚技术有限公司 一种加密传输系统、方法、终端以及中间服务器
CN105119900A (zh) * 2015-07-17 2015-12-02 北京奇虎科技有限公司 信息安全传输方法、联网接入方法及相应的终端
WO2019127397A1 (en) * 2017-12-29 2019-07-04 Intel Corporation Technologies for internet of things key management
CA3116067A1 (en) * 2018-11-30 2020-06-04 Paccar Inc. Techniques for improving security of encrypted vehicle software updates
CN113647051A (zh) * 2019-01-28 2021-11-12 康奈尔克有限公司 用于安全电子数据传输的系统和方法
CN114666073A (zh) * 2020-12-04 2022-06-24 四川大学 一种基于ssl协议完备通信的隐蔽信道传输方法
CN114531266A (zh) * 2021-12-03 2022-05-24 国网浙江省电力有限公司嘉兴供电公司 一种基于中间数据库的配电网数据防护系统及其方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115905895A (zh) * 2023-03-08 2023-04-04 云加速(北京)科技有限公司 一种基于区块链的sbom标识聚类模型实现方法

Also Published As

Publication number Publication date
CN115643017B (zh) 2023-03-31

Similar Documents

Publication Publication Date Title
CN108768664B (zh) 密钥管理方法、装置、系统、存储介质和计算机设备
US10742422B1 (en) Digital transaction signing for multiple client devices using secured encrypted private keys
CN111079128B (zh) 一种数据处理方法、装置、电子设备以及存储介质
US9847880B2 (en) Techniques for ensuring authentication and integrity of communications
CN109361669B (zh) 通信设备的身份认证方法、装置和设备
CN109756343A (zh) 数字签名的认证方法、装置、计算机设备和存储介质
CN111031047B (zh) 设备通信方法、装置、计算机设备及存储介质
CN105245337A (zh) 一种改良的文件加密解密方法
CN111294203B (zh) 信息传输方法
CN111970114B (zh) 文件加密方法、系统、服务器和存储介质
CN115643017B (zh) 一种基于混合编码模型的软件标识有效性校验方法
CN110941861B (zh) 文件防护方法、装置、计算机设备及介质
CN114172747B (zh) 一种基于数字证书的群成员获得认证证书的方法和系统
CN100499453C (zh) 一种客户端认证的方法
EP3455763B1 (en) Digital rights management for anonymous digital content sharing
CN114978751B (zh) 业务证书获取方法、装置和电子设备
CN112671782B (zh) 一种文件加密方法及终端
CN103179088A (zh) 通用网关接口业务的保护方法及系统
US20050108528A1 (en) Computer network and method for transmitting and authenticating data in the computer network
CN115933993B (zh) 一种岩溶裂隙网络型含水介质的防污功能评价系统及方法
JP2011114520A (ja) 暗号化データ配送のための送信装置、受信装置、及び管理サーバ、並びに暗号化データ配送のための送信プログラム、受信プログラム、及び管理プログラム、並びに暗号化データ配送システム、並びに暗号化データの配送方法
CN115694818A (zh) 数据一致性校验方法及装置
CN117436043A (zh) 待执行文件的来源验证方法、设备以及可读存储介质
CN112529578A (zh) 支付密码的管理方法、系统、计算机设备和存储介质
CN114567475A (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