CN117081729A - 交换和管理密钥的方法、构建方法和认证的方法 - Google Patents

交换和管理密钥的方法、构建方法和认证的方法 Download PDF

Info

Publication number
CN117081729A
CN117081729A CN202310559057.4A CN202310559057A CN117081729A CN 117081729 A CN117081729 A CN 117081729A CN 202310559057 A CN202310559057 A CN 202310559057A CN 117081729 A CN117081729 A CN 117081729A
Authority
CN
China
Prior art keywords
key
program
user
csd
encrypted
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
CN202310559057.4A
Other languages
English (en)
Inventor
洪一九
崔昌皓
M·N·I·汗
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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
Priority claimed from US17/879,502 external-priority patent/US20230379142A1/en
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN117081729A publication Critical patent/CN117081729A/zh
Pending legal-status Critical Current

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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements

Landscapes

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

Abstract

提供了一种交换和管理密钥的方法。该方法包括:在计算存储设备(CSD)处接收基于用户的公钥(PUuser)生成的用户证书(CAuser);在CSD处使用认证中心的公钥(PUca)提取PUuser;在CSD处生成加密程序密钥;在CSD处使用PUuser对加密程序密钥进行加密以生成加密的加密程序密钥;以及在CSD处存储所述加密的加密程序密钥。

Description

交换和管理密钥的方法、构建方法和认证的方法
对相关申请的交叉引用
本申请基于2022年5月17日提交的美国临时专利申请序列号63/342,856并要求其优先权,其全部内容通过引用并入本文。
技术领域
本公开总体上涉及用于可下载程序的计算存储(CS)安全性。
背景技术
CS设备是可以在数据被存储的地方直接处理数据的电子设备。该方法可以减少大量数据向外部处理的移动,并且提供包括减少的延迟和带宽使用以及节能的益处。
CS设备被设计为将主机CPU的计算开销分流(offload)到存储设备,这可以提高大数据集的处理效率。例如,一些系统可以被设计为通过非易失性快速存储器(NVME)设备提供CS服务,其专注于提供通用分流平台。然而,分流编程可能易受攻击。因此,需要提高CS安全性以降低攻击风险的解决方案。
发明内容
已经做出本公开以至少解决上述缺点并且至少提供下述优点。
根据本公开的一个方面,提供了一种生成和分发程序加密密钥的方法。该方法包括:在计算存储设备(CSD)处接收基于用户的公钥(PUuser)生成的用户证书(CAuser);在CSD处使用认证中心的公钥(PUca)提取PUuser;在CSD处生成加密程序密钥;在CSD处使用PUuser对加密程序密钥进行加密以生成加密的加密程序密钥;以及在CSD处存储加密的加密程序密钥。
根据本公开的另一方面,提供了一种用于构建存储在主机中的安全下载程序映像格式的方法。该方法包括使用加密程序密钥来加密明文二进制可下载程序以生成加密密码;以安全下载程序映像格式存储加密密码;对明文二进制可下载程序执行漏洞检查和缺陷检查中的至少一个;响应于成功地执行漏洞检查和缺陷检查中的至少一个,生成所述明文二进制可下载程序的散列值,并使用认证中心的私钥(PRca)加密散列值以生成加密的散列值;以及将加密的散列值存储为安全下载程序映像格式的数字签名。
根据本发明的另一方面,提供一种用于认证具有安全下载程序格式的下载程序的方法。该方法包括:使用PUca解密以安全下载程序格式存储的数字签名以获得第一散列值;使用加密程序密钥解密以安全下载程序格式存储的加密密码,以获得明文二进制可下载程序;生成明文二进制可下载程序的第二散列值;以及将第一散列值与所述第二散列值进行比较;响应于第一散列值等于第二散列值,认证所述下载程序。
附图说明
通过以下结合附图的详细描述,本公开的某些实施例的上述和其他方面、特征和优点将更加明显,其中:
图1示出根据实施例的计算存储架构;
图2示出根据实施例的用于可下载程序的可能的安全威胁模型;
图3A和图3B示出根据各种实施例的基于CA的用于CSD的密钥分发机制;
图4示出根据实施例的CSD内部的密钥分发功能;
图5示出根据实施例的安全CS下载程序映像格式和构建过程;
图6示出根据实施例的用于CSD中的CS下载程序的认证和数据完整性检查过程;
图7示出根据实施例的用于CS下载命令的整体认证架构;以及
图8示出根据实施例的网络环境中的电子设备。
具体实施方式
以下公开内容提供了一种构建安全下载程序映像的方法,其提高了在CS系统中下载程序的安全性。另外,本公开提供了用于CS下载程序的认证和数据完整性检查机制。此外,这里提供了用于CS下载程序的安全密钥(对称加密密钥)交换机制。如下面所讨论的,本公开提供了一种检测受影响的/被修改的(例如,受损的)数据的方式,从而保护CSD系统免受恶意下载程序的影响。
在下文中,参考附图详细描述本公开的实施例。应当注意,相同的元件将由相同的附图标记表示,尽管它们在不同的附图中示出。在以下描述中,仅提供诸如详细配置和组件的具体细节以帮助全面理解本公开的实施例。因此,对于本领域技术人员显而易见的是,在不脱离本公开的范围的情况下,可以对本文描述的实施例进行各种改变和修改。另外,为了清楚和简明,省略了对公知功能和结构的描述。下面描述的术语是考虑到本公开中的功能而定义的术语,并且可以根据用户、用户的意图或习俗而不同。因此,术语的定义应基于整个说明书中的内容来确定。
本公开可以具有各种修改和各种实施例,其中下面参考附图详细描述实施例。然而,应当理解,本公开不限于实施例,而是包括在本公开的范围内的所有修改、等同物和替代物。
尽管包括诸如第一、第二等的序数的术语可以用于描述各种元件,但是结构元件不受这些术语的限制。这些术语用于将一个元件与另一个元件区分开。例如,在不脱离本公开的范围的情况下,第一结构元件可以被称为第二结构元件。类似地,第二结构元件也可以被称为第一结构元件。如本文所使用的,术语“和/或”包括一个或多个相关联的项目的任何和所有组合。
本文使用的术语仅用于描述本公开的各种实施例,而不旨在限制本公开。除非上下文另有明确说明,否则单数形式旨在包括复数形式。在本公开中,应当理解,术语“包括”或“具有”指示存在特征、数字、步骤、操作、结构元件、部件或其组合,并且不排除存在一个或多个其他特征、数字、步骤、操作、结构元件、部件或其组合或添加一个或多个其他特征、数字、步骤、操作、结构元件、部件或其组合的可能性。
除非另有定义,否则本文使用的所有术语具有与本公开所属领域的技术人员所理解的含义相同的含义。除非在本公开中明确定义,否则诸如在通常使用的字典中定义的那些术语应被解释为具有与相关领域中的上下文含义相同的含义,并且不应被解释为具有理想或过度正式的含义。
根据一个实施例的电子设备可以是利用存储设备的各种类型的电子设备中的一种。电子设备可以包括例如便携式通信设备(例如,智能电话)、计算机、便携式多媒体设备、便携式医疗设备、相机、可穿戴设备或家用电器。根据本公开的一个实施例,电子设备不限于上述那些。
本公开中使用的术语不旨在限制本公开,而是旨在包括相应实施例的各种改变、等同物或替换。关于附图的描述,类似的附图标记可以用于指代类似或相关的元件。除非相关上下文另有明确说明,否则对应于项目的名词的单数形式可以包括一个或多个事物。如本文所使用的,诸如“A或B”、“A和B中的至少一个”、“A或B中的至少一个”、“A、B或C”、“A、B和C中的至少一个”和“A、B或C中的至少一个”之类的短语中的每一个可以包括在相应的一个短语中一起列举的项目的所有可能组合。如本文所使用的,诸如“第一”、“第二”、“第一”和“第二”之类的术语可以用于将相应的组件与另一组件区分开,但是并不旨在在其他方面(例如,重要性或顺序)中限制组件。意图是,如果元件(例如,第一元件)在有或没有术语“可操作地”或“通信地”的情况下被称为“与另一元件(例如,第二元件)耦合”、“耦合到另一元件”、“与另一元件连接”或“连接到另一元件”,则它指示该元件可以直接(例如,有线)、无线地或经由第三元件与另一元件耦合。
如本文所使用的,术语“模块”可以包括以硬件、软件、固件或其组合实现的单元,并且可以与其他术语(例如,“逻辑”、“逻辑块”、“部件”和“电路”)互换使用。模块可以是适于执行一个或多个功能的单个集成组件或其最小单元或部分。例如,根据一个实施例,模块可以以专用集成电路(ASIC)的形式实现。
本公开通过提供分流程序保护、CS可下载程序以及在CSD中执行认证和数据完整性检查的方式来提高CS安全性。如本文所公开的,某些元素使用下标(例如,CAuser、PUuser等)来缩写。为了便于描述,这些缩写元素可以使用或可以不一定使用下标来指代缩写元素(例如,“CAuser”可以等同于“CA user”,“PUuser”可以等同于“PU user”等)。
图1示出根据实施例的计算存储架构。
参考图1,CSD 101可以由至少一个程序槽(slot)或多达n个程序槽的多个程序槽组成。程序槽可以被定义为用于保持固定的或用户定义的下载程序的空间。此外,CSD可以包括至少一个计算引擎,或者多达M个计算引擎的多个计算引擎。计算引擎可以是处理程序的逻辑,并且可以使用存储区域(例如,由程序用作输入/输出的存储空间)来执行计算。
因此,图1所示的配置可以提供计算存储服务(CSS)。CSS可以提供对作用在CS驱动器上的算法和功能的访问,并且可以包括例如发现方法(例如,包括CS特征信息、状态信息和/或能力信息的报告)、程序注册方法(例如,可编程CSS)、计算资源(例如,存储器)分配/解除分配方法、计算资源(例如,存储器)和命名空间之间的数据移动方法、计算资源(例如,存储器)访问方法以及注册的程序执行方法。
由于用户可以通过CSD的下载程序接口注册用户定义的程序,因此这引入了CSD的新安全漏洞。
图2示出根据实施例的用于可下载程序的可能的安全威胁模型。
参考图2,识别到三个威胁漏洞位置。首先,下载程序可能通过用恶意二进制代码替换下载程序映像而受到攻击,或者通过在存储在主机上的在位置203的现有二进制代码中添加易受攻击的代码而被修改。表述“明文二进制(plain binary)”或“二进制代码”可以指易受攻击的下载程序,因为它未被加密。第二,当在位置204处将下载程序映像传送到CSD201时,下载程序可能被攻击者替换。第三,当恶意代码在CSD 201内部执行时,恶意代码可能攻击CSD 201系统,并影响位置204处的计算引擎202。
从上面讨论的威胁模型中,可以提取下面表1中所示的以下三个原理。
表1
安全地保持CS下载程序映像的一种方式可以是使CS下载程序映像位于只读介质或专用安全存储上,以防止来自未授权用户的修改。然而,这种配置对于现实世界工作负载环境可能不现实。
为了执行安全传送,大规模系统可以具有基于会话密钥的加密数据传送机制,但是这可能操作起来昂贵,并且可能需要第三方认证服务。
为了检测CSD中的认证攻击,用户可以向CSD安全地注册公钥,并且利用用户的私钥对CS下载程序映像进行加密。然后,CSD可以通过利用用户的公钥解密CS下载程序映像来认证CS下载程序映像。然而,可能需要保护用户私钥/公钥,并且CSD应该具有有效的用户公钥。
因此,可以实现以下三个原理,如表2所示。
表2
通过将CS下载程序映像修改为加密格式,可以实现用户和CSD之间的安全传送要求。
现在将描述安全密钥分发方法。
为了在用于下载具有加密(crypto)的CS程序映像的方法中实现认证,可能需要在用户和CSD之间安全地分发加密密钥。
例如,基于对称主密钥的密钥分发机制可以用于实现认证,并且可能需要第三方密钥分发中心(KDC)。可能需要初始时间来将两个条目(用户和CSD)的主设备注册到KDC。KDC可以生成密钥并构建可以由具有主密钥的条目提取的消息。
使用具有对称主密钥的密钥分发的CSD的一些缺点可能是主密钥可能需要在密钥分发之前向第三方注册,这可能需要附加的安全方法来注册CSD的主密钥。此外,KDC主密钥可能需要被安全地传送,这也可能需要附加的安全方法。此外,密钥生成可以由KDC完成,这可能不是安全的。另外,KDC中的密钥应该始终受到保护。
用于实现认证的另一种安全密钥分发方法可以是使用非对称密钥(私钥/公钥)的简单密钥分发方法。这种技术的一个缺点是它可能容易受到中间人攻击。使用避免中间人攻击的非对称密钥的密钥分发方法可能需要额外的步骤来提高安全性。例如,避免中间人攻击的一种方案可以是在密钥分发之前将公钥注册到另一个条目,这可能需要交换附加消息以安全地分发密钥。或者,另一种方案可以是在密钥分发期间使用证书来提高安全性。然而,在这种方案中,可能需要依赖于第三方认证中心(CA)(和CA的公钥)来使用证书。
下面在表3中示出的以下四个原理可以通过基于本文公开的具有CSD的CA的密钥分发机制来实现。
表3
如本文所述,证书可以被表示为““E(PR ca,[ID user|T|PU user]”。E表示加密,PR表示私钥,PU表示公钥,T表示时间戳,并且ID表示标识。
现在将描述CSS内的基于CA的安全密钥分发。
图3A和图3B示出根据各种实施例的基于CA的用于CSD的密钥分发机制。
参考图3A和图3B,示出了CA系统。CA可以在CSS内具有多个角色。例如,CA可以默认提供公钥基础设施(PKI)。通过为用户和CSD发布证书,CA可以为用户和CSD的公钥提供公证服务。CA的证书(CAcsd)可以被提供给用户,用户可以使用CSD来分流应用计算处理。CA的公钥可以通过可信计算组(TCG)opal存储安全子系统类(SSC)接口被注册在CSD上。
图3A示出根据实施例的默认密钥分发序列(例如,密钥分发流)。在步骤301中,CA的公钥(PUca)被注册到CSD。CSD可以创建用户已知的CAcsd。在步骤302中,用户的公钥(PUuser)被提供给CA,并且在步骤303中,用户接收基于用户的公钥生成的用户的证书(CAuser)以及加密消息(由“E(PR ca,[ID user||T||PU user])”表示,其中括号前面的“E”表示使用“PR ca”的加密消息,PR ca是CA的私钥。另外,“ID user”是用户的标识,“T”是时间戳,并且“PU user”是用户的公钥)。
密钥分发可以通过在步骤304中将CAuser发送到CSD来开始。在步骤305中,CSD通过用PUca解密CAuser来提取PUuser和用户的ID(IDuser)并安全地存储它。然后,在步骤306中,CSD使用密钥导出函数(KDF)生成用户的程序加密密钥(KEYuser)(例如,用户的对称程序加密密钥)并安全地存储它。IDuser、PUuser和KEYuser可以被安全地存储在CSD内的程序密钥表中。在此期间,可以以具有CSD的密钥加密密钥(KEK)的加密格式保存KEYuser
CSD内的程序密钥表可以包括ID字段、程序密钥(加密密钥)字段和公钥字段,如下表4所示:
表4
可以从CA提取ID和公钥字段。程序密钥字段可以由CSD生成并以安全加密格式保存。
返回参考图3A,在步骤307,CSD生成利用PUuser加密KEYuser的密钥消息,这保证用户能够通过用用户的私钥(PUuser)解密密钥消息来安全地提取KEYuser。在步骤308中,CSD可以在向用户发送密钥消息之前利用CSD的私钥(PRcsd)对密钥消息执行附加加密,这可以确保从CSD发送密钥消息(例如,消息能够利用PUcsd被解密)。在步骤309中,用户可以通过利用CSD的公钥(PUcsd)对消息进行解密来提取密钥消息(E(PUuser,Keyuser)),并且将密钥消息保持在安全位置(例如,存储利用PUuser加密的密钥消息)。密钥分发系统可以使用SSD的修改的TCG opal SSC接口。
图3B示出根据实施例的用于注册用户的服务水平协议(SLAuser)的密钥分发机制的扩展。为了便于描述,可以省略对与图3A的步骤类似的步骤的描述,然而本领域普通技术人员将认识到,与图3A的步骤有关的描述也可以适用于图3B。
程序槽(PS)是有限的资源,其可能需要基于SLA通过在密钥分发过程期间提供SLA值来限制。
参考图3B,在步骤351中,CA可以通过发布SLA消息来承担SLA发布者角色,这可以控制运行时PS分配。SLA消息可以被形成为E(PR ca,[ID user,SLA user])。因此,在步骤352中,用CA的私钥来加密SLAuser和IDuser。当CAuser被注册时SLA消息可以被发送。CSD可以在步骤353中提取SLAuser并将其保存在程序密钥表上。此外,SLAuser可以用于在处理CS下载程序请求时控制PS分配。例如,CSD可以在处理下载程序时检查SLA值,并基于SLA值控制PS分配。
图4示出根据实施例的CSD内部的密钥分发功能。
参照图4,给定CAuser和SLAuser消息,CSD在步骤401中提取PUuser、IDuser和SLAuser。对于给定的CA user,CSD可以通过用PUca解密CA来提取PUuser。对于给定的SLAuser消息,CSD可以通过用PUca解密SLAuser消息来提取SLAuser。然后,在步骤402中,CSD使用KDF(例如,基于PUuser)为用户生成程序密钥,并且在步骤403中用CSD的KEK对程序密钥进行加密并安全保存。在步骤404,CSD将IDuser、e(KEYuser)、PUuser和SLAuser存储在程序密钥表中。
为了向用户提供KEYuser,CSD可以通过用PUuser加密KEYuser来构建密钥消息,这保证用户可以通过在步骤405中用PRuser执行解密来提取KEYuser。在步骤406中,CSD利用PRcsd对密钥消息执行附加加密,这保证该消息是由CSD构建的。用户可以在步骤407中用PUcsd解密和提取密钥消息以验证发送该消息的CSD,并且在步骤408中将密钥消息存储在安全位置中。
因此,当用户需要加密程序时,可以基于以下原理提取KEYuser并将其用于程序加密,如下表5所示。
表5
现在将描述安全CS下载程序映像格式。
图5示出根据实施例的安全CS下载程序映像格式和构建过程。
如图5所示,安全可下载程序可以提高可下载程序的安全性。为了检测来自恶意攻击者的攻击,CSD可以为下载程序提供认证机制,并且程序可以利用程序密钥以加密格式被保存。
参照图5,在步骤501,用户利用KEYuser加密明文二进制(plain binary)消息。如前所述,密钥消息可以被形成为E(PUuser,Keyuser)。用户通过利用PRuser解密密钥消息来提取KEYuser。用户可以附加IDuser,其在步骤502中利用PUca从CA中提取。在步骤503中,对明文二进制(可下载程序)执行漏洞检查和/或缺陷检查。响应于在步骤503中成功执行漏洞检查和/或缺陷检查,CA可以通过在步骤504中使用单向散列函数提取散列值并在步骤505中用PRca加密散列值来提供数字签名。因此,CA可以充当并提供程序授权角色。用户可以通过向CA提供CS程序映像来询问或请求数字签名。CA可以执行附加检查,诸如针对给定CS下载程序映像的漏洞检查,并提供数字签名。
安全CS下载程序映像可以由加密密码(例如,利用KEYuser加密)、IDuser(从CAuser中提取)和数字签名(例如,由CA针对明文程序的散列值签名)组成,并且其可以被存储在主机系统中。
现在将描述CSD中的CS下载程序映像的认证。
图6示出根据实施例的用于CSD中的CS下载程序的认证和数据完整性检查过程。
参照图6,在步骤601,CSD用KEYuser解密加密的密码数据,并生成明文二进制消息。可以通过使用CSD的KEK进行解密来从e(KEYuser)中提取KEYuser。该过程可以确保程序可以由注册的有效用户发送。在步骤602中,CSD利用单向函数从明文二进制消息生成第一散列值,用于准备数据完整性和验证检查。接下来,在步骤603中,CSD通过利用PUca解密数字签名来从数字签名中提取第二散列值。然后,在步骤604中,CSD将该第二散列值与来自明文二进制消息的第一散列值进行比较。如果第一散列值与第二散列值不相同,则有人可能已经修改了主机中的安全CS下载程序映像或在安全CS下载程序映像被传送时已经修改了,或者如果CS下载程序映像未被CA签名,则CSD将检测出来并拒绝CS下载程序请求。否则,当第一散列值与第二散列值相同和/或CS下载程序映像由CA签名时,CSD可以授权CS下载程序请求。
现在将描述用于CSD中的CS下载程序的认证架构。
图7示出根据实施例的用于CS下载命令的整体认证架构。
参考图7,CSD提供TCG Opal SSC接口以注册CA的公钥(PUca)并为用户提供密钥分发。当系统被启动时,管理员(例如,密钥管理应用)可以在步骤701向CSD注册PUca。用户可以通过CA构建CAuser和SLAuser消息并安全地存储它。然后,用户可以通过经由TCG Opal SSC接口向CSD注册CAuser和SLAuser消息来获得KEYuser消息。CSD将在程序密钥表中保存(或存储)KEYuser、IDuser和SLAuser
为了执行密钥分发,CSD可以提供KDF、单向函数、加密/解密函数和安全存储的程序密钥表。为了构建安全CS下载程序映像,系统可能需要提供加密功能(其由CSD解密功能支持)。用户可能需要安全地存储key user消息(E(PUuser,KEYuser))和CAuser。另一方面,系统可以安全地存储key user消息(E(PU user,KEY user))和CAuser,并提供接口以在建立或生成安全CS下载映像时提取它。如上所述,CA可以在构建安全CS下载程序映像时执行程序授权角色。这可能需要系统在对程序签名之前检查程序和系统的漏洞以进行程序验证。
另外,用户可以调用CS下载程序应用程序接口(API)来注册程序。对于认证过程,CSD可以提供解密和单向函数。首先,CSD可以基于IDuser提取SLAuser和KEYuser,并且利用SLAuser检查程序槽(PS)配额以确定用户是否被注册以下载程序。如果用户被注册以下载程序,则CSD可以利用KEYuser来解密加密的程序映像,并用数字签名执行验证检查。在通过每个步骤之后,可以将提取的下载程序注册到PS。
图8示出根据实施例的网络环境中的电子设备。
参照图8,网络环境800中的电子设备801(例如,包括GPS功能的移动终端)可以经由第一网络898(例如,短距离无线通信网络)与电子设备802通信,或者经由第二网络899(例如,长距离无线通信网络)与电子设备804或服务器808通信。电子设备801可以经由服务器808与电子设备804通信。电子设备801可以包括处理器820、存储器830、输入设备850、声音输出设备855、显示设备860、音频模块870、传感器模块876、接口877、触觉模块879、相机模块880、电力管理模块888、电池889、通信模块890、用户识别模块(SIM)896或包括GNSS天线的天线模块897。在一个实施例中,可以从电子设备801中省略组件中的至少一个(例如,显示设备860或相机模块880),或者可以将一个或多个其他组件添加到电子设备801。在一个实施例中,一些组件可以被实现为单个集成电路(IC)。例如,传感器模块876(例如,指纹传感器、虹膜传感器或照度传感器)可以嵌入在显示设备860(例如,显示器)中。
处理器820可以执行例如软件(例如,程序840)以控制与处理器820耦合的电子设备801的至少一个其他组件(例如,硬件或软件组件),并且可以执行各种数据处理或计算。作为数据处理或计算的至少一部分,处理器820可以将从另一部件(例如,传感器模块876或通信模块890)接收的命令或数据加载到易失性存储器832中,处理存储在易失性存储器832中的命令或数据,并将得到的数据存储在非易失性存储器834中。处理器820可以包括主处理器821(例如,中央处理单元(CPU)或应用处理器)和辅助处理器823(例如,图形处理单元(GPU)、图像信号处理器(ISP)、传感器集线器处理器或通信处理器(CP)),辅助处理器823可独立于主处理器821或与主处理器821结合操作。附加地或替代地,辅助处理器823可以适于比主处理器821消耗更少的功率,或者执行特定功能。辅助处理器823可以被实现为与主处理器821分离或者是主处理器821的一部分。
辅助处理器823可以在主处理器821处于非活动(例如,睡眠)状态时代替主处理器821,或者在主处理器821处于活动状态(例如,执行应用)时与主处理器821一起控制与电子设备801的部件中的至少一个部件(例如,显示设备860、传感器模块876或通信模块890)相关的功能或状态中的至少一些。根据一个实施例,辅助处理器823(例如,图像信号处理器或通信处理器)可以被实现为在功能上与辅助处理器823相关的另一部件(例如,相机模块880或通信模块890)的一部分。
存储器830可以存储由电子设备801的至少一个部件(例如,处理器820或传感器模块876)使用的各种数据。各种数据可以包括例如软件(例如,程序840)和用于与其相关的命令的输入数据或输出数据。存储器830可以包括易失性存储器832或非易失性存储器834。
程序840可以作为软件存储在存储器830中,并且可以包括例如操作系统(OS)842、中间件844或应用846。
输入设备850可以从电子设备801的外部(例如,用户)接收要由电子设备801的其他组件(例如,处理器820)使用的命令或数据。输入设备850可以包括例如麦克风、鼠标或键盘。
声音输出设备855可以将声音信号输出到电子设备801的外部。声音输出设备855可以包括例如扬声器或接收器。扬声器可以用于通用目的,例如播放多媒体或记录,并且接收器可以用于接收呼入呼叫。根据一个实施例,接收器可以被实现为与扬声器分离或者是扬声器的一部分。
显示设备860可以向电子设备801的外部(例如,用户)可视地提供信息。显示设备860可以包括例如显示器、全息图设备或投影仪以及用于控制显示器、全息图设备和投影仪中的对应一个的控制电路。根据一个实施例,显示设备860可以包括适于检测触摸的触摸电路或适于测量由触摸引起的力的强度的传感器电路(例如,压力传感器)。
音频模块870可以将声音转换为电信号,反之亦然。根据一个实施例,音频模块870可以经由输入设备850获得声音,或者经由声音输出设备855或与电子设备801直接(例如,有线地)或无线地耦合的外部电子设备802的耳机输出声音。
传感器模块876可以检测电子设备801的操作状态(例如,功率或温度)或电子设备801外部的环境状态(例如,用户的状态),然后生成与检测到的状态相对应的电信号或数据值。传感器模块876例如可以包括手势传感器、陀螺仪传感器、大气压传感器、磁传感器、加速度传感器、握持传感器、接近传感器、颜色传感器、红外(IR)传感器、生物计量传感器、温度传感器、湿度传感器或照度传感器。
接口877可以支持用于电子设备801直接(例如,有线地)或无线地与外部电子设备802耦合的一个或多个指定协议。根据一个实施例,接口877可以包括例如高清多媒体接口(HDMI)、通用串行总线(USB)接口、安全数字(SD)卡接口或音频接口。
连接端子878可以包括连接器,电子设备801可以经由该连接器与外部电子设备802物理连接。根据一个实施例,连接端子878可以包括例如HDMI连接器、USB连接器、SD卡连接器或音频连接器(例如,耳机连接器)。
触觉模块879可以将电信号转换成可以由用户经由触感或动觉感觉识别的机械刺激(例如,振动或移动)或电刺激。根据一个实施例,触觉模块879可以包括例如马达、压电元件或电刺激器。
相机模块880可以捕获静止图像或运动图像。根据一个实施例,相机模块880可以包括一个或多个透镜、图像传感器、图像信号处理器或闪光灯。
电力管理模块888可以管理供应给电子设备801的电力。电力管理模块888可以被实现为例如功率管理集成电路(PMIC)的至少一部分。
电池889可以向电子设备801的至少一个部件供电。根据一个实施例,电池889可以包括例如不可再充电的一次电池、可再充电的二次电池或燃料电池。
通信模块890可以支持在电子设备801和外部电子设备(例如,电子设备802、电子设备804或服务器808)之间建立直接(例如,有线)通信信道或无线通信信道,并且经由建立的通信信道执行通信。通信模块890可以包括一个或多个通信处理器,其可独立于处理器820(例如,应用处理器)操作并且支持直接(例如,有线)通信或无线通信。根据一个实施例,通信模块890可以包括无线通信模块892(例如,蜂窝通信模块、短距离无线通信模块或全球导航卫星系统(GNSS)通信模块)或有线通信模块894(例如,局域网(LAN)通信模块或电力线通信(PLC)模块)。这些通信模块中的对应一个可以经由第一网络898(例如,短距离通信网络,诸如蓝牙TM、无线保真(Wi-Fi)直连或红外数据协会(IrDA)的标准)或第二网络899(例如,长距离通信网络,诸如蜂窝网络、互联网或计算机网络(例如,LAN或广域网(WAN)))与外部电子设备通信。这些各种类型的通信模块可以实现为单个组件(例如,单个IC),或者可以实现为彼此分离的多个组件(例如,多个IC)。无线通信模块892可以使用订户信息(例如,国际移动订户身份(IMSI))来识别和认证通信网络(诸如第一网络898或第二网络899)中的电子设备801。
天线模块897可以向电子设备801的外部(例如,外部电子设备)发送信号或电力或从电子设备801的外部(例如,外部电子设备)接收信号或电力。根据一个实施例,天线模块897可以包括一个或多个天线,并且由此,可以例如由通信模块890(例如,无线通信模块892)选择适合于在诸如第一网络898或第二网络899的通信网络中使用的通信方案的至少一个天线。然后,可以经由所选择的至少一个天线在通信模块890和外部电子设备之间发送或接收信号或电力。
上述部件中的至少一些可以相互耦合并且经由外设间通信方案(例如,总线、通用输入和输出(GPIO)、串行外设接口(SPI)或移动工业处理器接口(MIPI))在其间传送信号(例如,命令或数据)。
根据一个实施例,可以经由与第二网络899耦接的服务器808在电子设备801和外部电子设备804之间发送或接收命令或数据。电子设备802和804中的每一个可以是与电子设备801相同类型或不同类型的设备。要在电子设备801处执行的操作中的全部或一些操作可以在外部电子设备802、804或808中的一个或多个处执行。例如,如果电子设备801应当自动地或者响应于来自用户或另一设备的请求来执行功能或服务,则电子设备801可以请求一个或多个外部电子设备执行功能或服务的至少一部分,而不是执行功能或服务,或者除了执行功能或服务之外,电子设备801还可以请求一个或多个外部电子设备执行功能或服务的至少一部分。接收请求的一个或多个外部电子设备可以执行所请求的功能或服务的至少一部分,或者与请求相关的附加功能或附加服务,并将执行的结果传送到电子设备801。电子设备801可以在有或没有进一步处理结果的情况下提供结果,作为对请求的回复的至少一部分。为此,例如,可以使用云计算、分布式计算或客户端-服务器计算技术。
一个实施例可以被实现为包括存储在机器(例如,电子设备801)可读的存储介质(例如,内部存储器836或外部存储器838)中的一个或多个指令的软件(例如,程序840)。例如,电子设备801的处理器可以调用存储在存储介质中的一个或多个指令中的至少一个,并且在处理器的控制下使用或不使用一个或多个其他组件的情况下执行它。因此,可以操作机器以根据所调用的至少一个指令来执行至少一个功能。一个或多个指令可以包括由编译器生成的代码或由解释器可执行的代码。机器可读存储介质可以以非暂时性存储介质的形式提供。术语“非暂时性”指示存储介质是有形设备,并且不包括信号(例如,电磁波),但是该术语不区分数据半永久地存储在存储介质中的位置和数据临时存储在存储介质中的位置。
根据一个实施例,可以在计算机程序产品中包括和提供本公开的方法。计算机程序产品可以作为产品在卖方和买方之间交易。计算机程序产品可以以机器可读存储介质(例如,光盘只读存储器(CD-ROM))的形式分布,或者经由应用商店(例如,PlayStoreTM)在线分布(例如,下载或上传),或者直接在两个用户设备(例如,智能电话)之间分布(例如,下载或上传)。如果在线分发,则计算机程序产品的至少一部分可以临时生成或至少临时存储在机器可读存储介质中,诸如制造商服务器的存储器、应用商店的服务器或中继服务器。
根据一个实施例,上述组件中的每个组件(例如,模块或程序)可以包括单个实体或多个实体。可以省略上述组件中的一个或多个,或者可以添加一个或多个其他组件。替代地或附加地,多个组件(例如,模块或程序)可以集成到单个组件中。在这种情况下,集成组件仍然可以以与在集成之前由多个组件中的对应组件执行的方式相同或相似的方式执行多个组件中的每个组件的一个或多个功能。由模块、程序或另一组件执行的操作可以顺序地、并行地、重复地或启发式地执行,或者操作中的一个或多个可以以不同的顺序执行或省略,或者可以添加一个或多个其他操作。
尽管已经在本公开的详细描述中描述了本公开的某些实施例,但是在不脱离本公开的范围的情况下,可以以各种形式修改本公开。因此,本公开的范围不应仅基于所描述的实施例来确定,而是基于所附权利要求及其等同物来确定。

Claims (20)

1.一种交换和管理密钥的方法,包括:
在计算存储设备(CSD)处接收基于用户的公钥(PUuser)生成的用户证书(CAuser);
在CSD处使用认证中心的公钥(PUca)提取PUuser
在CSD处生成加密程序密钥;
在CSD处使用PUuser对加密程序密钥进行加密以生成加密的加密程序密钥;以及
在CSD处存储所述加密的加密程序密钥。
2.根据权利要求1所述的方法,还包括:
在CSD处,使用CSD的私钥(PRcsd)对加密的加密程序密钥执行附加加密,以生成附加加密的加密程序密钥;以及
向用户提供所述附加加密的加密程序密钥。
3.根据权利要求2所述的方法,还包括:
在利用CSD的公钥(PUcsd)对附加加密的加密程序密钥进行解密之后,由用户安全地存储所述加密的加密程序密钥。
4.根据权利要求1所述的方法,还包括:
在CSD处利用第一公钥存储第一加密的加密程序密钥;以及
在CSD处利用第二公钥存储第二加密的加密程序密钥。
5.根据权利要求1所述的方法,其中,在CSD处使用PUca提取PUuser还包括:提取服务水平协议(SLA)以用于确定程序槽(PS)配额。
6.根据权利要求1所述的方法,其中,在CSD处生成加密程序密钥还包括:使用密钥导出函数(KDF)来生成对称程序密钥。
7.根据权利要求1所述的方法,其中,使用CSD中的密钥加密密钥(KEK)来保存所述加密的加密程序密钥。
8.一种用于构建存储在主机中的安全下载程序映像格式的方法,包括:
使用加密程序密钥加密明文二进制可下载程序以生成加密密码;
以安全下载程序映像格式存储加密密码;
对明文二进制可下载程序执行漏洞检查和缺陷检查中的至少一个;
响应于成功执行漏洞检查和缺陷检查中的至少一个,生成明文二进制可下载程序的散列值,并使用认证中心的私钥(PRca)来加密散列值以生成加密的散列值;以及
将加密的散列值存储为安全下载程序映像格式的数字签名。
9.根据权利要求8所述的方法,还包括:
使用认证中心的公钥(PUca)来解密和提取用户的标识(ID);以及
以安全下载程序映像格式存储用户的ID。
10.根据权利要求8所述的方法,其中,加密程序密钥是通过使用用户的私钥(PRuser)对加密的加密程序密钥消息进行解密而获得的。
11.根据权利要求8所述的方法,其中,加密程序密钥是从包括多个条目的程序密钥存储表获得的,每个条目分别包括用户的标识(ID)、加密程序密钥和公钥。
12.根据权利要求11所述的方法,其中,程序密钥存储表中的每个条目还包括用于确定程序槽(PS)的服务水平协议(SLA)。
13.根据权利要求8所述的方法,其中,散列值是基于单向函数生成的。
14.一种用于认证具有安全下载程序格式的下载程序的方法,包括:
使用认证中心的公钥(PUca)对以安全下载程序格式存储的数字签名进行解密,以获得第一散列值;
使用加密程序密钥解密以安全下载程序格式存储的加密密码,以获得明文二进制可下载程序;
生成明文二进制可下载程序的第二散列值;
将第一散列值与第二散列值进行比较;以及
响应于第一散列值等于第二散列值,认证所述下载程序。
15.根据权利要求14所述的方法,还包括:
提取以安全下载程序格式存储的用户的标识(ID);
基于用户的ID从程序密钥存储表中获得所述加密程序密钥。
16.根据权利要求15所述的方法,还包括:
获得与加密程序密钥对应的服务水平协议(SLA);以及
确定用于SLA的程序槽(PS)配额和PS信息。
17.根据权利要求15所述的方法,其中,程序密钥存储表包括多个条目,每个条目分别包括用户的ID、加密程序密钥和公钥。
18.根据权利要求14所述的方法,还包括:
响应于第一散列值不等于第二散列值,确定下载程序不被认证用于下载。
19.根据权利要求14所述的方法,其中,解密所述加密密码是由计算存储设备(CSD)利用密钥加密密钥(KEK)来执行的。
20.根据权利要求14所述的方法,其中,解密所述加密密码是由计算存储设备(CSD)利用用户的程序加密密钥(KEYuser)来执行的。
CN202310559057.4A 2022-05-17 2023-05-17 交换和管理密钥的方法、构建方法和认证的方法 Pending CN117081729A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US63/342,856 2022-05-17
US17/879,502 2022-08-02
US17/879,502 US20230379142A1 (en) 2022-05-17 2022-08-02 Authentication mechanism for computational storage download program

Publications (1)

Publication Number Publication Date
CN117081729A true CN117081729A (zh) 2023-11-17

Family

ID=88712243

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310559057.4A Pending CN117081729A (zh) 2022-05-17 2023-05-17 交换和管理密钥的方法、构建方法和认证的方法

Country Status (1)

Country Link
CN (1) CN117081729A (zh)

Similar Documents

Publication Publication Date Title
US10880097B2 (en) Flexible provisioning of attestation keys in secure enclaves
US20200265418A1 (en) Electronic device and method for providing digital signature service of block chain using the same
US9386045B2 (en) Device communication based on device trustworthiness
US10601795B2 (en) Service processing method and electronic device
US11621855B2 (en) Electronic device and method for managing blockchain address using the same
CN109074466B (zh) 用于服务器的平台证明和注册
CN108476404B (zh) 用于配对的设备和方法
EP3308522B1 (en) System, apparatus and method for multi-owner transfer of ownership of a device
US12041189B2 (en) Method for storing and recovering key for blockchain-based system, and device therefor
CN110741370A (zh) 利用用户输入的生物识别认证
JP6552714B2 (ja) データ処理方法およびシステム、ならびにウェアラブル電子デバイス
CN112765684B (zh) 区块链节点终端管理方法、装置、设备及存储介质
WO2014036021A1 (en) Secure device service enrollment
KR20210017083A (ko) 퓨즈된 키에 기반하여 증명 인증서를 생성하는 전자 장치 및 방법
CN106687985A (zh) 用于基于特权模式的安全输入机构的方法
WO2008122171A1 (fr) Procédé de pilotage de sécurité et système associé, procédé de génération d'une signature de codage et procédé d'authentification
KR102697372B1 (ko) 보안 스위치를 이용하여 개인 정보를 보호하는 전자 장치 및 방법
US11347897B2 (en) Electronic device and method for transmitting and receiving data on the basis of security operating system in electronic device
CN114450663A (zh) 使用安全集成电路来更新固件的电子装置及其操作方法
JP2018117185A (ja) 情報処理装置、情報処理方法
US12019717B2 (en) Method for the secure interaction of a user with a mobile terminal and a further entity
EP4044500B1 (en) Electronic device for ensuring integrity of electronic device intrinsic information, and operating method therefor
CA2746062C (en) Method for authenticating device capabilities to a verified third party
US20230379142A1 (en) Authentication mechanism for computational storage download program
CN117081729A (zh) 交换和管理密钥的方法、构建方法和认证的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication