CN117335991A - 可执行程序的无证书认证 - Google Patents

可执行程序的无证书认证 Download PDF

Info

Publication number
CN117335991A
CN117335991A CN202310800075.7A CN202310800075A CN117335991A CN 117335991 A CN117335991 A CN 117335991A CN 202310800075 A CN202310800075 A CN 202310800075A CN 117335991 A CN117335991 A CN 117335991A
Authority
CN
China
Prior art keywords
digest
chf
program
cla
executable
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
CN202310800075.7A
Other languages
English (en)
Inventor
B·帕德
A·马图
H·B·钱达克
C·S·约克
R·L·沃尔夫
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.)
Cummins Inc
Original Assignee
Cummins Inc
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 Cummins Inc filed Critical Cummins Inc
Publication of CN117335991A publication Critical patent/CN117335991A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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
    • 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/321Cryptographic 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 a third party or a trusted authority
    • H04L9/3213Cryptographic 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 a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • 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/3236Cryptographic 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 using cryptographic hash functions
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Abstract

一种过程提供可执行程序的无证书安全认证。所述过程包括:启动可执行程序,所述可执行程序包括安全程序组件;响应于启动后认证触发器,使用所述安全组件计算所述可执行程序的至少一部分的加密哈希函数(CHF)摘要;使用所述安全组件访问所述可执行程序的所述至少一部分的包含在所述可执行程序的白盒数据结构中的先前计算的CHF摘要;使用所述安全组件将所述CHF摘要与所述先前计算的CHF摘要进行比较;以及响应于所述比较指示所述CHF摘要与所述先前计算的CHF摘要的相等性,授权所述可执行程序的操作。

Description

可执行程序的无证书认证
技术领域
本申请总体上涉及加密和计算机安全,并且更具体但不排他地涉及可执行程序的无证书认证。
背景技术
在各种计算上下文中对可执行程序的认证存在重要且不断增长的需求。已经为这种认证提出了许多建议;然而,现有技术存在多种缺点、缺陷和未解决的问题。一些提议依赖于基于证书的认证,其中数字证书用于认证装置、程序或代码。数字证书(也被称为公钥证书)是包含关于公钥/私钥对中的公钥的信息、关于证书所有者的身份的信息以及证书颁发者的数字签名(使用公钥/私钥对中的私钥和签名算法生成)的电子文档,所述证书颁发者可以是证书所有者或单独的证书机构。
已经提出了许多基于证书的方法。虽然有用,但是基于证书的方法带来许多问题。例如,可能需要证书所有者共享或放弃对其证书的控制及其对向第三方证书机构认证的使用。虽然所有者可以保留对其证书及其使用的唯一控制,但是第三方证书机构将无法获得其利益。另一个问题是证书机构可能会受到威胁,允许颁发恶意证书,所述证书看起来是有效的,但是可能用于伪造已被修改为包括恶意软件的软件的真实性。数字证书的过期和版本跟踪也带来了管理负担和潜在安全问题。对于由本公开提供的独特装置、过程和***,仍然存在大量的、未满足的和广泛的需求。
示例性实施方案公开
为了清楚、简洁和准确地描述本公开的示例性实施方案、制造和使用本公开的方式和程序以及为了使得能够实践、制造和使用本公开,现在将参考某些示例性实施方案,包括图中所示的那些实施方案,并且将使用特定语言来描述本公开。然而,应当理解,由此不产生对本发明的范围的任何限制,并且本发明包括并保护如本领域技术人员在受益于并洞察本公开的情况下将想到的示例性实施方案的此类改变、修改和进一步应用。
发明内容
示例性实施方案包括用于校准电子控制单元的独特设备、方法和***。根据以下描述和附图,其他实施方案、形式、目的、特征、优点、方面和益处将变得显而易见。
附图说明
图1是示出用于执行可执行程序的无证书安全认证的示例性过程的某些方面的流程图。
图2是示出用于执行可执行程序的无证书安全认证的示例性***的某些方面的示意图。
图3是示出用于创建可执行程序以允许对可执行程序进行无证书安全认证的示例性过程的某些方面的流程图。
图4是示出用于创建可执行程序以允许对可执行程序进行无证书安全认证的示例性***的某些方面的示意图。
具体实施方式
参考图1,示出了示出用于执行可执行程序的无证书认证的示例性过程100的某些方面的流程图。应当理解,无证书认证是指可以在不使用数字证书的情况下成功执行的基于计算机的密码认证。此外,无证书可认证包(CLA包)是指并包括由可执行程序组成、基本上由可执行程序组成或包括可执行程序的软件包,所述可执行程序的特性或与其他包组件的关联允许使用无证书认证对其进行认证。无证书认证和CLA包还可以与基于证书的认证结合执行或使用,前提是此类结合的认证的至少一个实例化不需要数字证书或其使用。
应当理解,用于描述无证书认证和CLA包的术语对本领域技术人员具有技术意义。例如,数字证书或证书是指包含公钥/私钥对中的公钥以及标识持有对应私钥的证书所有者的数据的文件、对象或代码单元,因此可以用于认证对象(例如,文件、消息或其他对象),所述对象的加密哈希函数(CHF)摘要已使用私钥通过以下步骤进行加密:将通过计算对象的加密哈希产生的摘要与通过对所述对象的加密CHF摘要进行解密产生的摘要进行比较。
可执行程序通常是指作为一个或多个文件、对象或其他代码单元提供或在其中提供的程序,其可以由计算机启动和执行,包括例如应用、应用程序、脚本或用于台式计算机、嵌入式计算机或控制器、膝上型计算机、移动装置、智能手机、平板计算机或其他类型的计算机和计算装置的其他可执行文件。可执行程序包是指包括至少一个可执行程序并潜在地包括相关联的软件组件的一组软件,所述软件组件例如档案及其组件、压缩/解压缩组件、文件夹及其组件、库组件、安装程序组件、链接组件、资源、服务和如本领域技术人员在受益于并洞察本公开的情况下将想到的其他软件组件。
过程100可以由开始操作102发起,例如通过用户选择或命令启动可执行程序或者通过另一个软件组件选择或命令此类启动。可执行程序可以包括许多类型的可执行程序中的任一者,包括例如用于移动装置、膝上型计算机、台式计算机、服务器或其他类型的计算机的应用程序或应用,以及如本领域技术人员在受益于并洞察本公开的情况下将想到的其他类型的可执行程序。
过程100从操作102前进到启动可执行程序的操作104。可执行程序优选地包括安全程序组件。在一些形式中,安全程序组件可以是或者可以具有结合图2或本文公开的其他安全组件示出和描述的安全组件230的一些或所有属性、特性和/或结构。在一些形式中,安全程序组件可以是或者可以具有如本领域技术人员在受益于并洞察本公开的情况下将想到的其他安全程序组件的一些或所有属性、特性和/或结构。
过程100从操作104前进到操作106,操作106使用安全程序组件发起或触发认证程式。操作106可以根据许多形式以许多方式操作。在一些形式中,操作106可以立即发起或触发认证程式作为可执行程序启动时的第一操作。在一些形式中,操作106可以立即并排他地发起或触发认证程式作为可执行程序启动时的第一操作,使得没有可执行程序的其他程式或过程可以通过认证程式来发起。在一些形式中,操作106可以立即并排他地发起或触发认证程式作为可执行程序启动时的第一操作,使得没有可执行程序的其他程式或过程可以被执行,直到认证程式完成为止。在一些形式中,操作106可以在可执行程序被启动并且一些其他启动程式或其他程序程式已经被发起和/或完成之后发起或触发认证程式,使得操作106并非立即或排他性地是可执行程序启动时的第一操作。在一些形式中,操作106可以在可执行程序被启动并且可执行程序的调用组件尝试访问或请求访问受限或安全资源之后发起或触发认证程式。应当理解,前述是响应于可执行程序的启动而执行的操作106的示例。同样应当理解,操作106之后的操作的执行也可以被认为是响应于可执行程序的启动而执行的。还应当理解,在前述和其他示例中,操作106可以用作或充当启动后认证触发器或认证发起者。
过程100从操作106前进到操作108,在操作108,安全程序组件计算可执行程序的加密哈希函数摘要。应当理解,术语摘要是指响应于提供给加密哈希函数(CHF)的输入而输出的数据,所述CHF将任意大小的输入以确定性方式映射到具有固定大小的输出(即,摘要,有时也被称为哈希或哈希值)。优选地,CHF还具有某些不可行性特性,这意味着就计算时间和能力而言(即使理论上可能)执行与CHF相关的某些操作是不可行的或被禁止的。例如,生成具有产生给定哈希值的CHF的消息优选地是不可行的(即,反转生成给定哈希值的过程)。当用CHF处理时,优选地也不可能找到产生相同摘要的两个不同输入。还优选的是,对CHF的输入的微小改变将如此广泛地改变所得摘要,以至于新的摘要看起来与先前的摘要不相关。
过程100从操作108前进到操作110,在操作110,安全程序组件访问包含在白盒数据结构中的可执行程序的先前计算的哈希函数摘要。应当理解,白盒数据结构是指并包括使用白盒密码(WBC)技术保护的许多数据结构(例如,数据存储区),因此还可以被称为受白盒保护的数据结构。通常,WBC技术结合加密和混淆以在可执行程序或程序包的代码中安全地嵌入或关联受保护对象(例如,摘要、私密密钥或其他对象)。WBC技术将代码和受保护对象结合在一起,使得攻击者无法区分这两者,并且受WBC保护的可执行程序或程序包可以在不安全环境中安全地执行。当可执行程序或包包括根据WBC技术保护的一个或多个对象时,可执行程序或包可以被称为受白盒保护。
示例性WBC实施方式可以例如通过将受保护对象硬编码到受随机化技术保护的一系列依赖于密钥的查找表中来将受保护对象和随机数据两者嵌入从中难以得出原始受保护对象的组成中。某些此类实施方式可以利用代换-置换网络(SPN)块密码,其(a)重组密码,使得代换盒操作与包括受保护对象的操作相邻,(b)将私密密钥硬编码到代换盒中,(c)将湮灭仿射变换操作注入仿射块密码层中,(d)将所有仿射操作分解为一系列查找表,以及(e)将随机湮灭编码注入查找表序列中。应当理解,还设想了多种其他WBC技术。
过程100从操作110前进到操作112,在操作112,安全程序组件将哈希函数摘要与先前计算的哈希函数摘要进行比较以评估哈希函数摘要和先前计算的哈希函数的相等性。比较可以包括许多操作。在一些形式中,比较可以利用等于或相等运算符来将哈希函数摘要与先前计算的哈希函数摘要进行比较。在一些形式中,比较可以从先前计算的哈希函数摘要中减去哈希函数摘要(或反之亦然)并将余数与零(0)进行比较。在一些形式中,比较可以执行其他类型的操作,包括例如将哈希函数摘要除以先前计算的哈希函数摘要(或反之亦然)并将商与一(1)进行比较,或通过执行其他数学比较运算来执行其他类型的操作,所述其他数学比较运算用于允许评估哈希函数摘要与先前计算的哈希函数摘要的相等性或等同性,如本领域技术人员在受益于并洞察本公开的情况下将想到的数学比较运算。
过程100从操作112前进到条件114,所述条件评估操作112的比较是否指示哈希函数摘要等于或等同于先前计算的哈希函数摘要。在一些形式中,操作112和条件114操作的功能性可以由单个运算符或条件组合或执行。
如果条件114评估为肯定,则过程100前进到操作116,操作116将可执行程序的状态设定为已认证。过程100从操作116前进到操作118,操作118响应于可执行程序的认证状态而授权一个或多个可执行程序操作。过程100从操作118前进到操作120,其中过程100可以结束或重复。
如果条件114评估为否定,则过程100前进到操作115,操作115将可执行程序的状态设定为未认证。过程100从操作115前进到操作117,操作117响应于可执行程序的未认证状态而禁止一个或多个可执行程序操作。过程100从操作118前进到操作120,其中过程100可以结束或重复。
许多类型的可执行程序操作可以结合操作118被授权或结合操作117被禁止。在一些形式中,一个或多个可执行程序操作可以包括可执行程序本身的操作(或延续操作),其可以被允许(允许可执行程序继续正常操作)或被禁止(导致可执行程序暂停或终止)。在一些形式中,一个或多个可执行程序操作可以包括可执行程序访问一个或多个软件组件,例如,一个或多个软件档案、库或包组件,或其组合,以及其他类型的软件组件。在一些形式中,一个或多个可执行程序操作可以包括如本领域技术人员在受益于并洞察本公开的情况下将想到的其他可执行程序操作。
参考图2,示出了描绘示例性可执行程序包200(本文也被称为包200)的某些方面的示意图,所述可执行程序包被配置用于并能够进行无证书认证,并且因此提供了根据本公开的CLA包的一个示例。包200包括可执行程序存储器210,所述可执行程序存储器进而包括***可访问或***可执行组件220(本文也被称为组件220)、安全程序组件230(本文也被称为组件230)和白盒数据结构240。如虚线框240a、240b和240c所指示,白盒数据结构240可以与如本文进一步描述的包200的所示组件具有许多关系中的任一者。应当理解,此类关系是可执行程序的白盒数据结构的示例,并且也可以被认为是根据本公开的程序包的白盒数据结构。
组件220可以包括可执行程序的核心组件,其可以由用户或在其上提供包200的***直接访问、调用、读取和/或查看。在所示实施方案中,组件220包括认证触发器222和调用组件224,并且还可以包括如本领域技术人员在受益于并洞察本公开的情况下将想到的其他组件226。
认证触发器222被配置为使用安全程序组件230发起认证程式。认证触发器222可以被配置为以许多方式发起认证程式,包括例如根据上文结合操作106描述的示例性操作或技术中的任一者以及如本领域技术人员在受益于并洞察本公开的情况下将想到的其他方式来发起认证程式。
调用组件224被配置为访问或请求访问一个或多个受限或安全资源,诸如安全组件230的受限资源238。对此类资源的访问可能以至少部分地在安全组件230中实例化并由其执行的认证程式为条件。如果并且当这种访问被授予时,诸如受限资源238的资源可以被调用组件224和/或其他组件226利用。
安全组件230包含摘要计算器232、密钥234、摘要比较器236和受限资源238,并且在一些形式中可以包括其他安全组件。安全组件230可以使用许多技术进行保护,所述技术包括例如可以在硬件层、固件层、软件层或其组合处加密的加密存储器中的存储以及其他形式的基于密码密钥的存储、受密码保护的存储、受证书保护的存储或如本领域技术人员在受益于并洞察本公开的情况下将想到的其他类型的受保护或安全存储。此类安全和保护属性和特征为安全组件230的组成组件(包括摘要计算器232、密钥234、摘要比较器236和受限资源238)提供保护和安全性。应当理解,虽然应用于安全组件230的保护和/或安全性特征和技术没有应用于组件220,但是组件220可以任选地以各种方式被单独地保护。
摘要计算器232被配置为计算包200或其组件或部分的CHF摘要,所述包或其组件或部分对应于从中计算白盒数据结构240的预计算摘要242并且使用用于计算预先计算的摘要242的相同CHF计算的包200的相同组件、部分或整体。在一些实施方案中,摘要计算器232可以被配置为考虑包200的组件、部分或整体中摘要信息的存在,否则会禁止无证书认证。
当包200被创建或被配置为CLA包时,例如,如结合图3和图4所描述的,最初对不包括白盒数据结构240的任何数据或信息的包200或其部分执行CHF计算。然而,包200或其部分在被创建或被配置为提供CLA时包括白盒数据结构240的数据和信息。因此,对包200的CLA形式或包的部分的CLA形式执行的后续CHF计算将产生与最初在CLA创建或配置过程中计算的摘要不同的摘要。因此,摘要计算器232可以被配置为忽略或省略包200的一些部分以避免计算不适合认证目的的摘要。因此,例如,如果白盒数据结构240以如虚线框240b或240c所指示的形式提供(如下文进一步描述),则摘要计算器232可以被配置为计算组件220的CHF摘要。在其他形式中,在以虚线框240a所指示的形式全部或部分提供白盒数据结构240的情况下(如下文进一步描述),摘要计算器232可以被配置为使用组件220的仅一部分来计算CHF,所述组件被定义为或已知不包括白盒数据结构240。
密钥234是密码密钥,其被安全组件230配置并使用以通过对数据进行解密并与所述数据不混淆来访问白盒数据结构240,所述数据与所述密钥根据一种或多种WBC技术(诸如本文所述的WBC技术或如本领域技术人员在受益于并洞察本公开的情况下将想到的其他WBC技术)进行组合、嵌入、集成和/或以其他方式加密关联。
摘要比较器236被安全组件230配置并使用以例如使用诸如结合操作112描述的技术或如本领域技术人员在受益于并洞察本公开的情况下将想到的其他比较技术将由摘要计算器232计算的CHF摘要与预先计算的摘要242白盒数据结构240进行比较。
资源238可以包括许多类型的受限资源中的任一者,例如凭据、密钥、库或库组件(例如,动态链接库(DLL)、其他类型的动态库和静态库)、共享对象,或原则上需要安全性或保护的任何代码、文件或资源。
白盒数据结构240包含预先计算的摘要242,并且任选地并且在一些形式中还可以包括其他组件244。预先计算的摘要242是在包200被创建或被配置为CLA包时计算的CHF摘要,例如,如结合图3和图4所述。白盒数据结构240是可以根据诸如本文公开的那些WBC技术来保护的受白盒保护数据结构的示例。WBC技术可以结合加密和混淆以将预先计算的摘要242与包200的其他代码安全地组合、嵌入、集成在所述其他代码中和/或以其他方式与所述其他代码加密关联。
白盒数据结构240可以与包200的所示组件相关,并且可以如通常由虚线框240a、240b和240c所指示的许多方式与此类组件组合、嵌入、集成在此类组件中和/或以其他方式与此类组件加密关联。例如,白盒数据结构240可以与以下各项组合、嵌入、集成或以其他方式加密关联:***组件220或可执行程序存储器210(如虚线框240a所指示)、可执行程序存储器210的其他组件或位置(如虚线框240b所指示),或其他包组件250,其可以全部或部分驻留在可执行程序存储器210之外或与可执行程序存储器分开(如虚线框240c所指示)。另外,白盒数据结构240可以与前述示例的组合(例如与由虚线框240a、240b、240c指示的两个或更多个组件和/或位置或与所有此类组件和/或位置)组合、嵌入、集成或以其他方式加密关联。此外,白盒数据结构240可以使用各种技术与一个或多个组件和/或位置组合、嵌入、集成或以其他方式加密关联,所述各种技术包括本文公开的WBC技术中的任一者以及如本领域技术人员在受益于并洞察本公开的情况下将想到的其他技术。
参考图3,示出了描绘用于创建可执行程序以允许进行可执行程序的无证书安全认证的示例性过程300的某些方面的流程图。过程300可以结合许多网络和***来执行,包括例如结合图4描述的***400以及如本领域技术人员在受益于并洞察本公开的情况下将想到的其他网络和***。
过程300可以由开始操作302发起,例如,通过开发者向安全开发平台(SDP)(诸如下面结合图4描述的SDP 410或其他合适的开发计算机、机器、***和/或如本领域技术人员在受益于并洞察本公开的情况下将想到的其他类型的平台)提供非CLA形式的软件包而发起。
过程300从操作302前进到操作304,在操作304,在SDP处接收非CLA形式的软件包。过程300可以从操作304前进到操作306,操作306向注册商(例如,第三方证书机构、发布者或CLA形式的软件包的分发者)注册软件包。在此类注册后,令牌或令牌声明可以由注册商生成并从注册商接收,并且一旦被接收到,就可以被存储在SDP上维护或由SDP维护的认证库中。应当理解,可以利用如本领域技术人员在受益于并洞察本公开的情况下将想到的各种注册和令牌化技术和操作。
过程300从操作306前进到操作308,操作308使用CHF来计算非CLA形式的软件包的摘要。操作308可以利用各种CHF组件、操作和技术,诸如本文公开的示例或如本领域技术人员在受益于并洞察本公开的情况下将想到的其他示例。
过程300从操作308前进到操作310,操作310将摘要和非CLA形式的软件包的一个或多个组件或其整体传输到白盒加密平台。过程300从操作310前进到操作312,在操作312,摘要和非CLA形式的软件包被白盒密码平台接收。摘要和非CLA形式的软件包的一个或多个组件或其整体可以在单个消息或多个消息中一起或单独传输和接收,这些消息可以进一步被打包和/或加密并且可以通过诸如虚拟专用网络(VPN)的安全网络传输。
过程300从操作312前进到操作314,操作314生成一个或多个受WBC保护的软件包组件(也被称为WBC包组件)。操作314可以使用诸如本文公开的那些WBC保护技术来生成一个或多个WBC包组件。一个或多个受WBC保护的包组件的生成可以包括将摘要与用于生成一个或多个WBC保护包组件的非CLA形式的软件包的一个或多个组件或其整体组合、嵌入、集成和/或以其他方式加密关联。
过程300从操作314前进到操作316,操作316将一个或多个WBC包组件传输到SDP。过程300从操作316前进到操作318,在操作318,在SDP处接收到一个或多个WBC包组件。一个或多个WBC包组件可以在单个消息或多个消息中一起或单独传输和接收,这些消息可以进一步被打包和/或加密并且可以通过诸如虚拟专用网络(VPN)的安全网络传输。
过程300从操作318前进到操作320,操作320生成包括一个或多个WBC包组件的CLA形式的软件包。操作320可以使用许多技术来生成CLA形式的软件包。在一些形式中,一个或多个WBC包组件可以包括CLA形式的软件包的所有或基本上所有组件,在这种情况下,不需要对CLA形式的软件包进行实质性改变,并且操作320可能仅限于存储、索引和/或注册CLA形式的软件包。在一些形式中,一个或多个WBC包组件可以仅包括CLA形式的软件包的一些组件,在这种情况下,操作320可以存档WBC包组件、将WBC包组件与其他软件包组件组合、集成、将WBC包组件放置在公共文件夹或目录中,或将WBC包组件与其他软件包组件以其他方式关联或链接,以创建或提供CLA形式的软件包。过程300从操作320前进到操作322,操作322将CLA形式的软件包传输或以其他方式提供到SDP外部的目的地。
参考图4,示出了描绘用于创建可执行程序以允许进行可执行程序的无证书安全认证的示例性***400的某些方面的示意图。***400可以被配置为执行许多过程以从非CLA形式的软件包(例如,非CLA包401)创建或配置CLA形式的软件包(例如,CLA包499),包括例如结合图3描述的过程300以及如本领域技术人员在受益于并洞察本公开的情况下将想到的其他过程。在所示实施方案中,***400以包括如下文进一步描述的多个***和组件的网络的形式提供。在其他形式中,***400可以作为单一***提供,例如作为数据中心、服务器或其他单一计算***提供。
***400包括安全开发平台(SDP)410和白盒加密(WBC)平台430,它们优选地被配置和被提供为安全平台,所述安全平台通过通常由虚线箭头402指示的一个或多个安全性特征与外部网络和***分开。在一些形式中,SDP 410和WBC平台430可以通过通常由虚线箭头403指示的一个或多个安全性特征彼此进一步分开。由虚线箭头402和403指示的安全性特征可以包括例如条件访问***、DMZ、防火墙、网关(入站和/或出站)、蜜罐(honeypot)、蜜网(honeynet)、分组过滤器,或如本领域技术人员在受益于并洞察本公开的情况下将想到的其他网络安全***。
SDP 410包括CLA包生成器412,其被配置为接收包括非CLA包401的输入并提供包括CLA包499的输出。CLA包生成器412。CLA包生成器412包括加密哈希函数(CHF)计算器422和包处理器424,并且在一些形式中可以包括如本领域技术人员在受益于并洞察本公开的情况下将想到的其他组件。
CHF计算器422被配置为利用加密哈希函数(CHF)来计算非CLA包401或其组件或部分的摘要413。CHF计算器422可以使用许多CHF技术(例如本文所述的那些技术或如本领域技术人员在受益于并洞察本公开的情况下将想到的其他技术)来执行此类计算。
包处理器424被配置为处理CLA包生成器412与其他***或组件(包括WBC平台430以及SPD 410的***和组件)之间的输入/输出和其他通信方面和操作。例如,包处理器424可以被配置为处理通信以向注册器440(例如,第三方证书机构、发布者或CLA形式的软件包的分发者)注册软件包并接收由注册器440生成的令牌或令牌声明并将其存储或维护在SDP的认证库中。在一些形式中,包处理器424还可以被配置为对软件包组件执行各种WBC前和WBC后处理操作或者执行与软件包组件有关的各种WBC前和WBC后处理操作,诸如本文描述的那些操作或如本领域技术人员在受益于并洞察本公开的情况下将想到的其他操作。
包处理器424被进一步配置为促进或参与摘要413(由CHF计算器422计算)和非WBC包组件414(包括非CLA包401的一个或多个组件或其整体)从CLA包生成器412和SDP 410到WBC平台430的通信。在所示实施方案中,此类通信包括通过虚拟专用网络(VPN)470进行的传输。在一些形式中,此类通信可以包括通过其他类型的安全网络进行的传输。在一些形式中,此类通信可以包括网络内传输,例如,其中SDP 410和WBC平台430设置在公共网络上或公共计算***内,诸如公共数据中心(物理或虚拟)或一组一个或多个服务器或其他计算机内。
WBC平台430包括WBC生成器436、组件处理器438,并且在一些形式中可以包括如本领域技术人员在受益于并洞察本公开的情况下将想到的其他组件。WBC生成器436被配置为通过将摘要413与非WBC组件414组合、嵌入、集成或以其他方式加密关联来生成WBC包组件。WBC生成器436可以根据一种或多种WBC技术(诸如本文描述的WBC技术或如本领域技术人员在受益于并洞察本公开的情况下将想到的WBC技术)来生成WBC包组件434。
组件处理器438被配置为处理WBC平台430与其他***或组件SPD 410及其组件之间的输入/输出和其他通信方面和操作。例如,组件处理器438被配置为促进或参与WBC包组件434从WBC平台430到SDP 410的CLA包生成器412的通信。在所示实施方案中,此类通信包括通过虚拟专用网络(VPN)470进行的传输。在一些形式中,此类通信可以包括通过其他类型的安全网络进行的传输。在一些形式中,此类通信可以包括网络内传输,例如,其中SDP410和WBC平台430设置在公共网络上或公共计算***内,诸如公共数据中心(物理或虚拟)或一组一个或多个服务器或其他计算机内。
CLA包生成器412被进一步配置为响应于从WBC平台430接收的WBC包组件434而生成CLA包499(其是CLA形式的非CLA包401)。可以利用许多技术来生成CLA包499。在一些形式中,WBC包组件434可以包括CLA包499的所有或基本上所有组件,在这种情况下,尽管不需要实质性改变或进一步处理,但是可以执行诸如存储、索引和/或注册CLA包499的各种操作。在一些形式中,WBC包组件434可以仅包括CLA包499的一些组件,在这种情况下,WBC包组件434可以被存档、与其他包组件组合、集成、被放置在公共文件夹或目录中,或与其他包组件以其他方式关联或链接,以创建或提供CLA包499。
尽管已经在附图和前面的描述中对本公开的示例性实施方案进行了详细示出和描述,但是这在本质上被认为是说明性的而不是限制性的,应当理解,仅仅示出和描述了某些实施方案,并且属于所要求保护的发明的精神内的所有改变和修改都受到保护。应当理解,尽管在上面的描述中利用的诸如优选的、优选地、优选或更优选的之类的词语的使用指示这样描述的特征可能是更期望的,然而其可能不是必需的,并且可以设想缺少所述特征的实施方案在本发明的范围内,所述范围由所附权利要求限定。在阅读权利要求时,意图是除非在权利要求中明确有相反的说明,否则当使用诸如“一个”、“一种”、“至少一个/种”或“至少一部分”之类的词语时,无意将权利要求限制为仅一个项目。当使用语言“至少一部分”和/或“一部分”时,除非明确有相反的说明,否则项目可以包括一部分和/或整个项目。

Claims (17)

1.一种用于对可执行程序进行无证书安全认证的过程,所述过程包括:
启动可执行程序,所述可执行程序包括安全程序组件;
响应于启动后认证触发器,使用所述安全组件计算所述可执行程序的至少一部分的加密哈希函数(CHF)摘要;
使用所述安全组件访问所述可执行程序的所述至少一部分的包含在所述可执行程序的白盒数据结构中的先前计算的CHF摘要;
使用所述安全组件将所述CHF摘要与所述先前计算的CHF摘要进行比较;以及
响应于所述比较指示所述CHF摘要与所述先前计算的CHF摘要的相等性,授权所述可执行程序的操作。
2.根据权利要求1所述的过程,其中所述启动后认证触发器发起认证程式,所述认证程式包括所述计算作为立即启动后操作和立即排他性启动后操作中的一者。
3.根据权利要求1所述的过程,其中所述计算包括计算整个所述可执行程序的所述CHF摘要。
4.根据权利要求1所述的过程,其中所述访问包括使用密钥来访问包含在所述白盒数据结构中的所述先前计算的CHF摘要。
5.根据权利要求1所述的过程,其中所述授权包括以下各项中的至少一者:允许继续执行所述可执行程序,以及允许所述可执行程序进行访问和利用安全资源中的一者。
6.一种设备,其包括非暂时性存储器介质,所述非暂时性存储器介质被配置为存储程序,所述程序能够由一个或多个处理器执行以:
使用安全组件计算所述程序的至少一部分的加密哈希函数(CHF)摘要;
使用所述安全组件访问所述程序的所述至少一部分的包含在所述程序的白盒数据结构中的先前计算的CHF摘要;
使用所述安全组件将所述CHF摘要与所述先前计算的CHF摘要进行比较;以及
如果所述CHF摘要与所述先前计算的CHF摘要比较为相等,则授权所述可执行程序的操作。
7.根据权利要求6所述的设备,其中所述程序能够由一个或多个处理器执行以响应于所述程序被启动而计算所述CHF摘要。
8.根据权利要求6所述的设备,其中所述程序能够由一个或多个处理器执行以计算整个所述程序的所述CHF摘要。
9.根据权利要求8所述的设备,其中所述程序能够由一个或多个处理器执行以使用包含在所述安全组件中的密钥来访问所述先前计算的CHF摘要。
10.根据权利要求9所述的设备,其中所述程序能够由一个或多个处理器执行以授权包括以下各项中的至少一者:所述程序能够由一个或多个处理器执行以允许继续执行所述可执行程序,以及所述程序能够由一个或多个处理器执行以允许所述可执行程序进行访问和利用安全资源中的一者。
11.一种用于创建能够进行无证书认证的可执行程序包(CLA包)的过程,所述过程包括:
计算所述CLA包的至少一部分的加密哈希函数(CHF)摘要;
经由白盒加密技术创建白盒数据结构,所述白盒数据结构包括与所述CLA包的所述至少一部分加密关联的所述CHF摘要;以及
提供所述CLA包,所述CLA包包括与所述CLA包的所述至少一部分加密关联的所述CHF摘要。
12.根据权利要求11所述的过程,其中所述CLA包的所述至少一部分包括整个所述CLA包。
13.根据权利要求11所述的过程,其中所述计算是在安全开发平台上执行的,并且创建所述白盒数据结构是在与所述安全开发平台操作性地通信的白盒加密平台上执行的。
14.一种用于创建能够进行无证书认证的可执行程序包(CLA包)的***,所述***包括:
加密哈希函数(CHF)计算器,所述CHF计算器被配置为计算所述CLA包的至少一部分的CHF摘要;
白盒组件(WBC)生成器,所述WBC生成器被配置为使用白盒加密技术创建白盒数据结构,所述白盒数据结构包括与CLA包的所述至少一部分加密关联的所述CHF摘要;以及
CLA包生成器,所述CLA包生成器被配置为提供所述CLA包,所述CLA包包括与所述CLA包的所述至少一部分加密关联的所述CHF摘要。
15.根据权利要求14所述的***,其中所述CLA包的所述至少一部分包括整个所述CLA包。
16.根据权利要求14所述的***,其中所述加密哈希函数(CHF)计算器被提供作为所述CLA包生成器的组件。
17.根据权利要求14所述的***,其中所述CLA包生成器设置在安全开发平台上,并且所述WBC生成器设置在与所述安全开发平台操作性地通信的白盒加密平台上。
CN202310800075.7A 2022-06-30 2023-06-30 可执行程序的无证书认证 Pending CN117335991A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN202241037818 2022-06-30
IN202241037818 2022-06-30

Publications (1)

Publication Number Publication Date
CN117335991A true CN117335991A (zh) 2024-01-02

Family

ID=89167734

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310800075.7A Pending CN117335991A (zh) 2022-06-30 2023-06-30 可执行程序的无证书认证

Country Status (3)

Country Link
US (1) US20240004986A1 (zh)
CN (1) CN117335991A (zh)
DE (1) DE102023116901A1 (zh)

Also Published As

Publication number Publication date
US20240004986A1 (en) 2024-01-04
DE102023116901A1 (de) 2024-01-04

Similar Documents

Publication Publication Date Title
CN107743133B (zh) 移动终端及其基于可信安全环境的访问控制方法和***
WO2021013245A1 (zh) 一种数据密钥保护方法、***及电子设备和存储介质
JP7426475B2 (ja) 分散化されたデータ認証
US6105137A (en) Method and apparatus for integrity verification, authentication, and secure linkage of software modules
US8775794B2 (en) System and method for end to end encryption
EP3061027B1 (en) Verifying the security of a remote server
CN111563261A (zh) 一种基于可信执行环境的隐私保护多方计算方法和***
WO2022073264A1 (en) Systems and methods for secure and fast machine learning inference in trusted execution environment
JP2020528224A (ja) 信頼できる実行環境におけるスマート契約動作のセキュアな実行
US20170195121A1 (en) Token binding using trust module protected keys
KR20140099126A (ko) 소프트웨어를 보안하기 위하여 해시 함수를 이용한 소프트웨어 처리 방법, 그 장치 및 그 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체
TWI776404B (zh) 生物支付設備的認證方法、裝置、電腦設備和儲存媒體
CN111917535A (zh) 一种数据加密存储方法、装置及服务器
Hussein et al. A survey of cryptography cloud storage techniques
EP3885954B1 (en) Security reinforcement architecture, encryption and decryption method, car networking terminal, and vehicle
CN112926046A (zh) 用于保护设备标识信息的移动终端设备匿名标识信息认证的方法及其***
KR102157695B1 (ko) 익명 디지털 아이덴티티 수립 방법
CN111241492A (zh) 一种产品多租户安全授信方法、***及电子设备
CN108737383B (zh) 一种可混淆的匿名认证方法
CN117436043A (zh) 待执行文件的来源验证方法、设备以及可读存储介质
US20240113898A1 (en) Secure Module and Method for App-to-App Mutual Trust Through App-Based Identity
CN114553566B (zh) 数据加密方法、装置、设备及存储介质
CN115604034A (zh) 一种通信连接的加解密方法、***及电子设备
Kim et al. Secure user authentication based on the trusted platform for mobile devices
CN111046440B (zh) 一种安全区域内容的篡改验证方法及***

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication