[go: up one dir, main page]

CN106888094B - 一种签名方法及服务器 - Google Patents

一种签名方法及服务器 Download PDF

Info

Publication number
CN106888094B
CN106888094B CN201710084356.1A CN201710084356A CN106888094B CN 106888094 B CN106888094 B CN 106888094B CN 201710084356 A CN201710084356 A CN 201710084356A CN 106888094 B CN106888094 B CN 106888094B
Authority
CN
China
Prior art keywords
signature
countersignature
data packet
information
file
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
Application number
CN201710084356.1A
Other languages
English (en)
Other versions
CN106888094A (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.)
China Mobile Communications Group Co Ltd
Original Assignee
China Mobile Communications Group 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 Mobile Communications Group Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN201710084356.1A priority Critical patent/CN106888094B/zh
Publication of CN106888094A publication Critical patent/CN106888094A/zh
Application granted granted Critical
Publication of CN106888094B publication Critical patent/CN106888094B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种签名方法及服务器,该方法可以包括:接收用户的签名操作请求,并根据签名操作请求获取第一数据包;对第一数据包进行预处理,得到第一签名原文;当允许进行副署签名操作时,响应签名操作请求,通过签名工具对第一签名原文进行副署签名操作,得到第一副署签名信息;将第一副署签名信息添加到第一数据包中,得到第二数据包。

Description

一种签名方法及服务器
技术领域
本发明涉及移动互联网领域的信息安全技术,尤其涉及一种签名方法及服务器。
背景技术
随着移动终端的普及、移动互联网业务的蓬勃发展,信息安全从互联网转移到了移动互联网,移动终端引发的颠覆性变革揭开了移动互联网产业发展的序幕,移动终端也极大的影响着用户的生活方式,但是在移动终端向智能化、开放化发展的同时,也面临越来越多的安全威胁。谷歌的安卓操作系统是一个开放平台,因此,成为了移动终端恶意软件主要感染的平台,但是无法对安卓手机恶意软件的开发者身份进行有效的溯源进而追究其法律责任,导致恶意软件开发者违法成本低,是造成安卓平台移动终端恶意软件泛滥的主要原因之一。
现有技术中,通过可信代码签名技术来确保应用安全,并对开发者的身份进行追溯,具体的,要求开发者使用第三方合法代码签名(CA,Code Signing)机构颁发的代码签名数字证书来完成代码签名操作,开发者的身份有第三方CA机构严格审查并核实,确保开发者身份真实可信,在必要时,可通过读取应用程序中的数字签名信息,来确认应用程序开发者的身份,对其进行责任追溯。
然而,现有的安卓可信代码签名技术方案,会导致存量应用签名后不能正常平滑升级,也不能进行多方可信签名的问题。
发明内容
为解决上述技术问题,本发明实施例期望提供一种签名方法及服务器,能够使存量应用签名后能够平滑升级、并进行多方可信签名。
本发明实施例提供一种签名方法,其特征在于,所述方法包括:
接收用户的签名操作请求,并根据所述签名操作请求获取第一数据包;
对所述第一数据包进行预处理,得到第一签名原文;
当允许进行副署签名操作时,响应所述签名操作请求,通过签名工具对所述第一签名原文进行副署签名操作,得到第一副署签名信息;
将所述第一副署签名信息添加到所述第一数据包中,得到第二数据包。
在上述方法中,所述对所述第一数据包进行预处理,得到第一签名原文,包括:
解析所述第一数据包,并获得所述第一数据包对应的第一应用程序文件;
对所述第一应用程序文件进行哈希计算,得到所述第一签名原文。
在上述方法中,所述得到第一签名原文之后,所述响应所述签名操作请求之前,所述方法还包括:
解析所述第一数据包,并获得所述第一数据包对应的第一原签名文件;
对所述第一原签名文件进行解析,得到第一原生签名信息;
通过根据所述第一签名原文和所述第一原生签名信息进行第一原生签名验证,来判断是否允许进行所述副署签名操作;
当所述第一原生签名验证成功时,表征允许进行所述副署签名操作;
当所述第一原生签名验证失败时,表征不允许进行所述副署签名操作。
在上述方法中,所述得到第二数据包之后,所述方法还包括:
接收用户的副署签名验证请求,并根据所述副署签名验证请求获取所述第二数据包;
解析所述第二数据包,并获得所述第二数据包对应的第二应用程序文件和第二原签名文件;
对所述第二应用程序文件进行哈希计算,得到第二签名原文;
对所述第二原签名文件进行解析,得到第二原生签名信息;
根据所述第二签名原文和所述第二原生签名信息进行第二原生签名验证;
当所述第二原生签名验证成功时,响应所述副署签名验证请求,提取所述第二数据包中的第二副署签名信息,并对所述第二副署签名信息进行验证,生成验证结果。
在上述方法中,所述将所述第一副署签名信息添加到所述第一数据包中,得到第二数据包,包括:
将所述第一副署签名信息添加到所述第一原签名文件的非认证属性集合中,生成包含第一副署签名信息的第三原签名文件,所述非认证属性集合是所有所述第一副署签名信息的集合;
将所述第三原签名文件进行打包,生成所述第二数据包。
本发明实施例提供一种签名服务器,其特征在于,所述服务器包括:
待签名程序获取模块,用于接收用户的签名操作请求,并根据所述签名操作请求获取第一数据包;
签名原文生成模块,用于对所述第一数据包进行预处理,得到第一签名原文;
副署签名处理模块,用于当允许进行副署签名操作时,响应所述签名操作请求,通过签名工具对所述第一签名原文进行副署签名操作,得到第一副署签名信息;
数据包生成模块,用于将所述第一副署签名信息添加到所述第一数据包中,得到第二数据包。
在上述签名服务器中,所述签名服务器还包括:数据包处理模块和签名原文计算模块;
所述数据包处理模块,用于解析所述第一数据包,并获得所述第一数据包对应的应用程序文件和第一原签名文件;
所述签名原文计算模块,用于对所述应用程序文件进行哈希计算,得到所述第一签名原文。
在上述签名服务器中,所述签名服务器还包括:加密消息的语法标准(PKCS#7)文件处理模块;
所述PKCS#7文件处理模块,用于对所述第一原签名文件进行解析,得到原生签名信息;
所述PKCS#7文件处理模块,还用于通过根据所述第一签名原文和所述原生签名信息进行第一原生签名验证,来判断是否允许进行副署签名操作;当所述第一原生签名验证成功时,表征允许进行副署签名操作;当所述第一原生签名验证失败时,表征不允许进行副署签名操作。
在上述签名服务器中,所述待签名程序获取模块,还用于接收用户的副署签名验证请求,并根据所述副署签名验证请求获取所述第二数据包;
所述数据包处理模块,还用于解析所述第二数据包,并获得所述第二数据包对应的第二应用程序文件和第二原签名文件;
所述签名原文计算模块,还用于对所述第二应用程序文件进行哈希计算,得到第二签名原文;
所述PKCS#7文件处理模块,还用于对所述第一原签名文件进行解析,得到第二原生签名信息;根据所述第二签名原文和所述第二原生签名信息进行第二所述原生签名验证;
所述副署签名处理模块,还用于当所述第二原生签名验证成功时,响应所述副署签名验证请求,提取所述第二数据包中的所述第一副署签名信息,并对所述第一副署签名信息进行验证,生成验证结果。
在上述签名服务器中,所述PKSC#7文件处理模块,还用于将所述第一副署签名信息添加到所述第一原签名文件的非认证属性集合中,生成包含第一副署签名信息的第三原签名文件,所述非认证属性集合是所有所述第一副署签名信息的集合;
所述数据包处理模块,还用于将封装的所述第三原签名文件进行打包,生成所述第二数据包。
本发明实施例提供了一种签名方法及服务器,该方法可以包括:接收用户的签名操作请求,并根据签名操作请求获取第一数据包;对第一数据包进行预处理,得到第一签名原文;当允许进行副署签名操作时,响应签名操作请求,通过签名工具对第一签名原文进行副署签名操作,得到第一副署签名信息;将第一副署签名信息添加到第一数据包中,得到第二数据包。采用上述技术实现方案,由于本方案可以在不影响原生签名信息的前提下,附加一个或者多个副署签名信息,并将第一副署签名信息存储至认证属性集合并列的非认证属性中,不影响原有应用程序的打包签名流程,因此,本方案能够使存量应用签名后能够平滑升级、并进行多方可信签名。
附图说明
图1为本发明实施例提供的一种签名方法的流程图一;
图2为本发明实施例提供的一种签名方法的流程图二;
图3为本发明实施例提供的一种示例性的副署签名信息的存储示意图;
图4为本发明实施例提供的一种示例性的副署签名的流程图;
图5为本发明实施例提供的一种签名方法的流程图三;
图6为本发明实施例提供的一种示例性的副署签名验证及提取的流程图;
图7为本发明实施例提供的一种签名服务器的结构示意图一;
图8为本发明实施例提供的一种签名服务器的结构示意图二;
图9为本发明实施例提供的一种签名服务器的结构示意图三。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
实施例一
本发明实施例提供一种签名方法,如图1所示,该方法可以包括:
S101、接收用户的签名操作请求,并根据签名操作请求获取第一数据包。
本发明实施例提供的一种签名方法适用于对已经进行了数字签名的应用程序再次进行签名操作的场景下。
本发明实施例中,当用户需要对已经进行了数字签名的应用程序再次进行签名操作时,用户向签名服务器发送签名操作请求,来请求签名服务器对该应用程序进行副署签名操作,此时,签名服务器根据该签名操作请求来获取包含第一签名原文和第一原签名文件的第一数据包。
本发明实施例中,在应用程序生命周期的各个环节中,包含开发、检测和发布等环节,都需要进行数字签名,而在应用程序的第一个环节进行了原生签名操作之后,用户请求的每一次数字签名都是请求的副署签名。
示例性的,当用户对开发完成的APK应用检测完成时,用户需要进行数字签名来认证检测该APK应用的责任人,此时,用户向签名服务器发送签名操作请求。
S102、对第一数据包进行预处理,得到第一签名原文。
当签名服务器获取到待签名的第一数据包之后,签名服务器从第一数据包中提取待签名的第一签名原文。
本发明实施例中,签名服务器解析获取到的第一数据包,得到第一数据包对应的第一应用程序文件,然后对第一应用程序文件进行哈希计算,得到待签名的第一签名原文。
S103、当允许进行副署签名操作时,响应签名操作请求,通过签名工具对第一签名原文进行副署签名操作,得到第一副署签名信息。
当签名服务器获取到第一签名原文之后,签名服务器首先判断是否允许进行副署签名操作,当判断为允许进行副署签名操作时,签名服务器使用签名工具对第一签名原文进行副署签名操作,并得到第一副署签名信息。
本发明实施例中,签名服务器解析获取到的第一数据包,得到第一数据包对应的第一原签名文件,并对第一原签名文件进行解析,得到第一原生签名信息,然后将第一原生签名信息与步骤S102中得到的第一签名原文进行第一原生签名验证,当第一原生签名验证成功时,表征第一应用程序文件没有被恶意篡改,此时,允许进行副署签名操作;当第一原生签名验证失败时,表征待签名的应用程序已经被进行了恶意篡改,此时,不允许进行副署签名操作。
本发明实施例中,当签名服务器判断允许进行副署签名操作时,签名服务器响应用户的签名操作请求,使用签名工具对第一签名原文进行副署签名操作。
可选的,本发明实施例中的签名工具可以为第三方CA机构签发的代码签名证书等可以进行副署签名操作的签名工具,具体的根据实际情况进行选择,本发明实施例不做具体限定。
S104、将第一副署签名信息添加到第一数据包中,得到第二数据包。
当签名服务器得到第一副署签名信息之后,签名服务器将第一副署签名信息添加到第一数据包中,得到包含第一副署签名信息的第二数据包。
本发明实施例中,签名服务器将第一副署签名信息添加到第一原签名文件的非认证属性集合中,生成包含第一副署签名信息的第三原签名文件,然后将第二原签名文件进行打包,生成第二数据包。
本发明实施例中,用户可以对同一待签名应用程序进行多次副署签名操作,得到多个副署签名信息,对于副署签名信息的个数根据实际情况来决定,本发明实施例不做具体限定。
可以理解的是,本发明实施例中在待签名应用程序中,可在不影响原生签名信息的前提下,附加一个或者多个副署签名信息,能够进行多方可信签名;且签名服务器将第一副署签名信息存储至与认证属性集合并列的非认证属性中,不影响原有应用程序的打包签名流程,能够在进行重签名之后能够平滑升级。
实施例二
本发明实施例提供一种签名方法,如图2所示,该方法可以包括:
S201、签名服务器接收用户的签名操作请求,并根据签名操作请求获取第一数据包。
本发明实施例提供的一种签名方法适用于对已经进行了数字签名的应用程序再次进行签名操作的场景下。
本发明实施例中,当用户需要对已经进行了数字签名的应用程序再次进行签名操作时,用户向签名服务器发送签名操作请求,来请求签名服务器对该应用程序进行副署签名操作,此时,签名服务器的待签名程序获取模块根据该签名操作请求来获取包含第一签名原文和第一原签名文件的第一数据包。
本发明实施例中,在应用程序生命周期的各个环节中,包含开发、检测和发布等环节,都需要进行数字签名,而在应用程序的第一个环节进行了原生签名操作之后,用户请求的每一次数字签名都是请求的副署签名。
示例性的,当用户对开发完成的APK应用检测完成时,用户需要进行数字签名来认证检测该APK应用的责任人,此时,用户向签名服务器发送签名操作请求。
S202、签名服务器解析第一数据包,并获得第一数据包对应的第一应用程序文件。
当签名服务器获取到第一数据包之后,签名服务器的数据包处理模块就要对第一数据包对应的第一应用程序文件进行副署签名操作了,具体的,首先数据包处理模块先通过解析第一数据包来获取第一数据包对应得到第一应用程序文件。
本发明实施例中,签名服务器的数据包处理模块通过解析第一数据包获得第一数据包对应的第一应用程序文件,该第一应用程序文件中包含有待签名的第一签名原文。
S203、签名服务器对第一应用程序文件进行哈希计算,得到第一签名原文。
当签名服务器获取到第一数据包对应的第一应用程序文件之后,就要获取第一应用程序文件中的第一签名原文了。
本发明实施例中,签名服务器的签名原文计算模块通过对第一应用程序文件进行哈希计算来获取第一应用程序文件对应的第一签名原文。
进一步地,本发明实施例不限定必须使用哈希算法来获取第一应用程序文件对应的第一签名原文,具体的根据实际情况进行选择,本发明实施例不做具体限定。
S204、签名服务器解析第一数据包,并获得第一数据包对应的第一原签名文件。
当签名服务器获取到第一签名原文之后,签名服务器就要对第一签名原文的合法性进行判断,具体的,签名服务器首先获得第一数据包对应的第一原签名文件。
本发明实施例中,签名服务器的加密消息的语法标准(PKCS#7)文件处理模块通过解析第一数据包来获得第一数据包对应的第一原签名文件,该第一原签名文件中包含有第一原生签名信息。
S205、签名服务器对第一原签名文件进行解析,得到第一原生签名信息。
当签名服务器获得第一原签名文件之后,PKCS#7文件处理模块对第一原签名文件进行解析,得到第一原生签名信息。
本发明实施例中,PKCS#7文件处理模块通过解析第一原签名文件来获得第一原生签名信息,以供签名服务器判断第一应用程序文件的合法性。
S206、签名服务器通过根据第一签名原文和第一原生签名信息进行第一原生签名验证,来判断是否允许进行所述副署签名操作。
签名服务器通过根据获得的第一签名原文和第一原生签名信息来判断第一应用程序文件的合法性。
本发明实施例中,PKCS#7文件处理模块根据第一签名原文和第一原生签名信息第一原生签名验证,当第一原生签名验证成功时,表征第一应用程序文件没有被恶意篡改,此时判断第一应用程序文件合法;当第一原生签名验证失败时,表征第一应用程序文件已经被恶意篡改,此时判断第一应用程序文件不合法,而只有在第一应用程序文件合法的情况下,对第一应用程序文件进行副署签名操作才是有意义的。
S207、当第一原生签名验证成功时,表征签名服务器允许进行副署签名操作。
当第一原生签名验证成功时,表征允许进行副署签名操作。
本发明实施例中,当第一应用程序文件没有被恶意篡改时,表征允许进行副署签名操作。
S208、当允许进行副署签名操作时,签名服务器响应签名操作请求,该签名服务器通过签名工具对第一签名原文进行副署签名操作,得到第一副署签名信息。
当签名服务器判断允许进行副署签名操作时,签名服务器的副署签名模块对第一签名原文进行副署签名操作,得到第一副署签名信息。
本发明实施例中,当签名服务器判断允许进行副署签名操作时,签名服务器响应用户的签名操作请求,使用签名工具对第一签名原文进行副署签名操作。
可选的,本发明实施例中的签名工具可以为第三方CA机构签发的代码签名证书等可以进行副署签名操作的签名工具,具体的根据实际情况进行选择,本发明实施例不做具体限定。
S209、签名服务器将第一副署签名信息添加到第一原签名文件的非认证属性集合中,生成包含第一副署签名信息的第三原签名文件,非认证属性集合是所有第一副署签名信息的集合。
签名服务器获取到第一副署签名信息之后,将第一副署签名信息添加到第一原签名文件的非认证属性集合中。
本发明实施例中,签名服务器的PKCS#7文件处理模块将第一副署签名信息添加到第一原签名文件的非认证属性集合中,生成包含第一副署签名信息的第三原签名文件。
S210、签名服务器将第三原签名文件进行打包,生成第二数据包。
当签名服务器对获取到第三原签名文件之后,将第三原签名文件打包至第一数据包中,生成第二数据包。
本发明实施例中,签名服务器的数据包处理模块将第三原签名文件添加至第一数据包中,得到第二数据包,此时,完成了对待签名的第一数据包进行副署签名的过程。
本发明实施例中,用户可以对同一待签名应用程序进行多次副署签名操作,得到多个副署签名信息,对于副署签名信息的个数根据实际情况来决定,本发明实施例不做具体限定。
S211、当第一原生签名验证失败时,表征签名服务器不允许进行副署签名操作。
当第一原生签名验证失败时,表征第一应用程序文件已经被恶意篡改,此时,不允许进行副署签名操作。
示例性的,如图3所示,对应用程序进行的签名操作遵循PKCS#7标准签名结构,一共包括目录信息、数字证书和签名者所有信息这三个部分,其中开发者的签名证书存放在数字证书中,本发明实施例中的副署签名者证书和开发者的签名证书一起存放至数字证书中,开发者的签名信息存放在签名者所有信息的签名者信息中,在签名者信息下添加了非认证属性集合,本发明实施例中的副署签名信息存储在非认证属性集合下,这样就实现了本发明实施例的副署签名相关信息的存储方式。
示例性的,如图4所示,签名服务器进行副署签名的过程如下:
1、待签名程序获取模块接收用户发送的对APK包进行副署签名的请求,并获取待进行副署签名的APK包。
2、数据包处理模块解析APK包,得到APK包中的应用程序文件。
3、签名原文计算模块对应用程序文件进行哈希计算,得到签名原文。
4、PKCS#7文件处理模块解析签名文件,获取原生签名信息。
5、PKCS#7文件处理模块根据签名原文和原生签名信息进行来验证原生签名信息的合法性。
6、当原生签名信息合法时,副署签名处理模块使用第三方CA机构颁发的代码签名证书对签名原文进行副署签名操作,并返回签名值。
7、PKCS#7文件处理模块对签名值进行封装,生成包含副署签名信息的签名文件。
8、数据包处理模块对签名文件进行打包,形成新的APK包,完成副署签名操作。
9、当原生签名信息不合法时,PKCS#7文件处理模块返回副署签名失败信息至数据包处理模块。
可以理解的是,本发明实施例中在待签名应用程序中,可在不影响原生签名信息的前提下,附加一个或者多个副署签名信息,能够进行多方可信签名;且签名服务器将第一副署签名信息存储至与认证属性集合并列的非认证属性中,不影响原有应用程序的打包签名流程,能够在进行重签名之后能够平滑升级。
进一步地,在步骤S211之后,本发明实施例还包括副署签名信息的验证提取方法,如图5所示,该方法可以包括:
S212、签名服务器接收用户的副署签名验证请求,并根据副署签名验证请求获取第二数据包。
当签名服务器获取到包含副署签名信息的第二数据包之后,签名服务器可以进行副署签名信息的验证和提取,首先,签名服务器接收用户的副署签名验证请求,并根据副署签名验证请求获取第二数据包。
本发明实施例中,用户需要确认应用程序的每个环节的签名者信息时,用户向签名服务器发送副署签名验证请求,签名服务器待签名程序获取模块接收到用户发送的副署签名验证请求之后,获取第二数据包。
S213、签名服务器解析第二数据包,并获得第二数据包对应的第二应用程序文件和第二原签名文件。
当签名服务器获取到第二数据包之后,签名服务器需要判断第一应用程序文件的合法性,首先,签名服务器获取第二数据包对应的第二应用程序文件和第二原签名文件。
本发明实施例中,签名服务器的数据包处理模块通过解析第二数据包来获取第二数据包对应的第二应用程序文件和第二原签名文件。
本发明实施例中,第二应用程序文件可以和第一应用程序文件相同,第二原签名文件可以和第一原签名文件相同,具体的根据实际情况进行判断,本发明实施例不做具体限定。
S214、签名服务器对第二应用程序文件进行哈希计算,得到第二签名原文。
当签名服务器获取到第二应用程序文件之后,签名服务器的签名原文计算模块对第二应用程序文件进行哈希计算,得到第二签名原文。
可选的,本发明实施例不限定必须使用哈希算法来得到第二签名原文,具体的根据实际情况来进行选择,本发明实施例不做具体限定。
S215、签名服务器对第二原签名文件进行解析,得到第二原生签名信息。
当签名服务器获取到第二原签名文件之后,签名服务器的PKCS#7文件处理模块对第二原签名文件进行解析,得到第二原生签名信息。
S216、签名服务器根据第二签名原文和第二原生签名信息进行第二原生签名验证。
签名服务器根据获取到的第二签名原文和第二原生签名信息进行第二原生签名验证,来判断第二应用程序文件的合法性。
本发明实施例中,签名服务器的PKCS#7文件处理模块根据第二签名原文和第二原生签名信息进行第二原生签名验证,当第二原生签名验证成功时,表征第二应用程序文件没有被恶意篡改,此时,PKCS#7文件处理模块允许进行副署签名的验证和提取;当第二原生签名验证失败时,表征第二应用程序文件被恶意篡改,此时,PKCS#7文件处理模块不允许进行副署签名的验证和提取操作。
S217、当第二原生签名验证成功时,签名服务器响应副署签名验证请求,签名服务器提取第二数据包中的第二副署签名信息,并对第二副署签名信息进行验证,生成验证结果。
当第二原生签名验证成功时,签名服务器响应签名验证请求,完成副署签名的验证和提取操作。
本发明实施例中,签名服务器的副署签名模块可以从第二副署签名信息中提取指定的副署签名信息,也可以提取全部的第二副署签名信息,具体的根据实际情况进行选择,本发明实施例不做具体的限定。
本发明实施例中,当第二原生签名验证成功时,签名服务器的副署签名模块从第三原签名文件中提取第二副署签名信息,并且对第二副署签名信息进行验证,最后向用户返回副署签名的验证结果及签名者信息。
示例性的,如图6所示,签名服务器进行副署签名信息的验证和提取的过程如下:
1、待签名程序获取模块接收用户发送的对APK包进行副署签名验证及签名者信息提取的请求,并获取待进行副署签名验证及提取的APK包。
2、数据包处理模块解析APK包,得到应用程序文件。
3、签名原文计算模块对应用程序文件进行哈希计算,得到签名原文。
4、PKCS#7文件处理模块解析签名文件,获取原生签名信息。
5、PKCS#7文件处理模块通过根据签名原文和原生签名信息来验证原生签名信息的合法性。
6、当原生签名信息合法时,副署签名处理模块提取副署签名信息,并对副署签名信息进行验证。
7、副署签名处理模块向用户返回副署签名验证结果及签名者信息,完成副署签名信息的提取和验证操作。
8、当原生签名信息不合法时,PKCS#7文件处理模块返回签名验证失败的指示。
可以理解的是,在验证了原生签名信息合法的情况下,对副署签名信息进行验证和提取,能够更精确的锁定应用程序中每个环节的责任人。
实施例三
本发明实施例提供一种签名服务器1,如图7所示,该签名服务器1可以包括:
待签名程序获取模块10,用于接收用户的签名操作请求,并根据所述签名操作请求获取第一数据包。
签名原文生成模块11,用于对所述第一数据包进行预处理,得到第一签名原文。
副署签名处理模块12,用于当允许进行副署签名操作时,响应所述签名操作请求,通过签名工具对所述第一签名原文进行副署签名操作,得到第一副署签名信息。
数据包生成模块13,用于将所述第一副署签名信息添加到所述第一数据包中,得到第二数据包。
可选的,基于图7如图8所示,所述签名服务器1还包括:数据包处理模块14和签名原文计算模块15。
所述数据包处理模块14,用于解析所述第一数据包,并获得所述第一数据包对应的应用程序文件和第一原签名文件。
所述签名原文计算模块15,用于对所述应用程序文件进行哈希计算,得到所述第一签名原文。
可选的,基于图8如图9所示,所述签名服务器1还包括:加密消息的语法标准(PKCS#7)文件处理模块16。
所述PKCS#7文件处理模块16,用于对所述第一原签名文件进行解析,得到原生签名信息。
所述PKCS#7文件处理模块16,还用于通过根据所述第一签名原文和所述原生签名信息进行第一原生签名验证,来判断是否允许进行副署签名操作;当所述第一原生签名验证成功时,表征允许进行副署签名操作;当所述第一原生签名验证失败时,表征不允许进行副署签名操作。
可选的,所述待签名程序获取模块10,还用于接收用户的副署签名验证请求,并根据所述副署签名验证请求获取所述第二数据包。
所述数据包处理模块14,还用于解析所述第二数据包,并获得所述第二数据包对应的第二应用程序文件和第二原签名文件。
所述签名原文计算模块15,还用于对所述第二应用程序文件进行哈希计算,得到第二签名原文。
所述PKCS#7文件处理模块16,还用于对所述第二原签名文件进行解析,得到第二原生签名信息;根据所述第二签名原文和所述第二原生签名信息进行第二原生签名验证。
所述副署签名处理模块12,还用于当所述第二原生签名验证成功时,响应所述副署签名验证请求,提取所述第二数据包中的第二副署签名信息,并对所述第一副署签名信息进行验证,生成验证结果。
可选的,所述PKSC#7文件处理模块16,还用于将所述第一副署签名信息添加到所述第一原签名文件的非认证属性集合中,生成包含第一副署签名信息的第三原签名文件,所述非认证属性集合是所有所述第一副署签名信息的集合。
所述数据包处理模块14,还用于将所述第三原签名文件进行打包,生成所述第二数据包。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (8)

1.一种签名方法,其特征在于,所述方法包括:
接收用户的签名操作请求,并根据所述签名操作请求获取第一数据包;
对所述第一数据包进行预处理,得到第一签名原文;
当允许进行副署签名操作时,响应所述签名操作请求,通过签名工具对所述第一签名原文进行副署签名操作,得到第一副署签名信息;
将所述第一副署签名信息添加到第一原签名文件的非认证属性集合中,生成包含第一副署签名信息的第三原签名文件,所述非认证属性集合是所有所述第一副署签名信息的集合;
将所述第三原签名文件进行打包,得到第二数据包。
2.根据权利要求1所述的方法,其特征在于,所述对所述第一数据包进行预处理,得到第一签名原文,包括:
解析所述第一数据包,并获得所述第一数据包对应的第一应用程序文件;
对所述第一应用程序文件进行哈希计算,得到所述第一签名原文。
3.根据权利要求2所述的方法,其特征在于,所述得到第一签名原文之后,所述响应所述签名操作请求之前,所述方法还包括:
解析所述第一数据包,并获得所述第一数据包对应的第一原签名文件;
对所述第一原签名文件进行解析,得到第一原生签名信息;
通过根据所述第一签名原文和所述第一原生签名信息进行第一原生签名验证,来判断是否允许进行所述副署签名操作;
当所述第一原生签名验证成功时,表征允许进行所述副署签名操作;
当所述第一原生签名验证失败时,表征不允许进行所述副署签名操作。
4.根据权利要求1所述的方法,其特征在于,所述得到第二数据包之后,所述方法还包括:
接收用户的副署签名验证请求,并根据所述副署签名验证请求获取所述第二数据包;
解析所述第二数据包,并获得所述第二数据包对应的第二应用程序文件和第二原签名文件;
对所述第二应用程序文件进行哈希计算,得到第二签名原文;
对所述第二原签名文件进行解析,得到第二原生签名信息;
根据所述第二签名原文和所述第二原生签名信息进行第二原生签名验证;
当所述第二原生签名验证成功时,响应所述副署签名验证请求,提取所述第二数据包中的第二副署签名信息,并对所述第二副署签名信息进行验证,生成验证结果。
5.一种签名服务器,其特征在于,所述服务器包括:
待签名程序获取模块,用于接收用户的签名操作请求,并根据所述签名操作请求获取第一数据包;
签名原文生成模块,用于对所述第一数据包进行预处理,得到第一签名原文;
副署签名处理模块,用于当允许进行副署签名操作时,响应所述签名操作请求,通过签名工具对所述第一签名原文进行副署签名操作,得到第一副署签名信息;
数据包生成模块,用于将所述第一副署签名信息添加到所述第一数据包中,得到第二数据包;
加密消息的语法标准PKCS#7文件处理模块,用于将所述第一副署签名信息添加到第一原签名文件的非认证属性集合中,生成包含第一副署签名信息的第三原签名文件,所述非认证属性集合是所有所述第一副署签名信息的集合;
数据包处理模块,用于将所述第三原签名文件进行打包,得到所述第二数据包。
6.一种签名服务器,其特征在于,所述签名服务器包括:
待签名程序获取模块,用于接收用户的签名操作请求,并根据所述签名操作请求获取第一数据包;
数据包处理模块,用于解析所述第一数据包,并获得所述第一数据包对应的应用程序文件和第一原签名文件;
签名原文计算模块,用于对所述应用程序文件进行哈希计算,得到第一签名原文;
副署签名处理模块,用于当允许进行副署签名操作时,响应所述签名操作请求,通过签名工具对所述第一签名原文进行副署签名操作,得到第一副署签名信息;
数据包生成模块,用于将所述第一副署签名信息添加到所述第一数据包中,得到第二数据包;
加密消息的语法标准PKCS#7文件处理模块,用于将所述第一副署签名信息添加到第一原签名文件的非认证属性集合中,生成包含第一副署签名信息的第三原签名文件,所述非认证属性集合是所有所述第一副署签名信息的集合;
所述数据包处理模块,还用于将所述第三原签名文件进行打包,得到所述第二数据包。
7.根据权利要求6所述的签名服务器,其特征在于,
所述PKCS#7文件处理模块,还用于对所述第一原签名文件进行解析,得到原生签名信息;
所述PKCS#7文件处理模块,还用于通过根据所述第一签名原文和所述原生签名信息进行第一原生签名验证,来判断是否允许进行副署签名操作;当所述第一原生签名验证成功时,表征允许进行副署签名操作;当所述第一原生签名验证失败时,表征不允许进行副署签名操作。
8.根据权利要求6所述的签名服务器,其特征在于,
所述待签名程序获取模块,还用于接收用户的副署签名验证请求,并根据所述副署签名验证请求获取所述第二数据包;
所述数据包处理模块,还用于解析所述第二数据包,并获得所述第二数据包对应的第二应用程序文件和第二原签名文件;
所述签名原文计算模块,还用于对所述第二应用程序文件进行哈希计算,得到第二签名原文;
所述PKCS#7文件处理模块,还用于对所述第二原签名文件进行解析,得到第二原生签名信息;根据所述第二签名原文和所述第二原生签名信息进行第二原生签名验证;
所述副署签名处理模块,还用于当所述第二原生签名验证成功时,响应所述副署签名验证请求,提取所述第二数据包中的第二副署签名信息,并对所述第一副署签名信息进行验证,生成验证结果。
CN201710084356.1A 2017-02-16 2017-02-16 一种签名方法及服务器 Active CN106888094B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710084356.1A CN106888094B (zh) 2017-02-16 2017-02-16 一种签名方法及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710084356.1A CN106888094B (zh) 2017-02-16 2017-02-16 一种签名方法及服务器

Publications (2)

Publication Number Publication Date
CN106888094A CN106888094A (zh) 2017-06-23
CN106888094B true CN106888094B (zh) 2019-06-14

Family

ID=59178782

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710084356.1A Active CN106888094B (zh) 2017-02-16 2017-02-16 一种签名方法及服务器

Country Status (1)

Country Link
CN (1) CN106888094B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107911222B (zh) * 2017-11-21 2020-08-28 沃通电子认证服务有限公司 数字签名生成、验证方法及其设备和存储介质
CN113094659B (zh) * 2021-03-17 2022-10-21 青岛海尔科技有限公司 用于应用文件发布的方法、装置、平台设备及系统
CN112989435A (zh) * 2021-03-26 2021-06-18 武汉深之度科技有限公司 一种数字签名方法及计算设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105320900A (zh) * 2014-07-24 2016-02-10 方正国际软件(北京)有限公司 Pdf数字签名方法和系统以及pdf数字签名验证方法和系统
CN105873030A (zh) * 2015-01-22 2016-08-17 卓望数码技术(深圳)有限公司 一种对终端应用进行副署签名的方法
CN106209379A (zh) * 2016-07-04 2016-12-07 江苏先安科技有限公司 一种Android APK副署签名验证方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105320900A (zh) * 2014-07-24 2016-02-10 方正国际软件(北京)有限公司 Pdf数字签名方法和系统以及pdf数字签名验证方法和系统
CN105873030A (zh) * 2015-01-22 2016-08-17 卓望数码技术(深圳)有限公司 一种对终端应用进行副署签名的方法
CN106209379A (zh) * 2016-07-04 2016-12-07 江苏先安科技有限公司 一种Android APK副署签名验证方法

Also Published As

Publication number Publication date
CN106888094A (zh) 2017-06-23

Similar Documents

Publication Publication Date Title
CN107463806B (zh) 一种Android应用程序安装包的签名和验签方法
CN104009977B (zh) 一种信息保护的方法和系统
CN104156638B (zh) 一种面向安卓系统软件的扩展签名的实现方法
CN105718807B (zh) 基于软tcm和可信软件栈的安卓系统及其可信认证系统与方法
CN113190834A (zh) 一种文件签名方法、计算设备及存储介质
CN111200589A (zh) 一种联盟链的数据保护方法及系统
CN111523147A (zh) 一种基于区块链的核身方法及相关硬件
CN104426658B (zh) 对移动终端上的应用进行身份验证的方法及装置
CN109634615B (zh) 应用安装包的发布方法、验证方法和装置
CN108259479B (zh) 业务数据处理方法、客户端与计算机可读存储介质
CN111222181B (zh) Ai模型的监管方法、系统、服务器及存储介质
CN109586920A (zh) 一种可信验证方法及装置
US10148440B2 (en) Binary code authentication
CN106709281B (zh) 补丁发放和获取方法、装置
EP4081925B1 (en) Verifying the trustworthiness of web applications
CN115952560A (zh) 基于原笔迹签名校验电子档案文件真实性的方法、系统、设备及介质
CN107896145A (zh) 一种接口调用防注入方法和系统
CN106888094B (zh) 一种签名方法及服务器
Ma et al. Finding flaws from password authentication code in android apps
CN105873044A (zh) 基于安卓平台的应用程序发布方法、开发者追溯方法和装置
CN109670289A (zh) 一种识别后台服务器合法性的方法及系统
CN114185702B (zh) 共享应用的跨平台调用方法、装置、设备及存储介质
CN116244756A (zh) 浏览器插件的校验方法以及装置与计算设备
CN111045722A (zh) 智能合约打包方法、装置、系统、计算机设备及存储介质
CN110602051B (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