CN111886573A - 存储资源的安全共享 - Google Patents
存储资源的安全共享 Download PDFInfo
- Publication number
- CN111886573A CN111886573A CN201980018149.3A CN201980018149A CN111886573A CN 111886573 A CN111886573 A CN 111886573A CN 201980018149 A CN201980018149 A CN 201980018149A CN 111886573 A CN111886573 A CN 111886573A
- Authority
- CN
- China
- Prior art keywords
- computer system
- controller
- logic block
- memory
- logical block
- 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
Links
- 238000004891 communication Methods 0.000 claims abstract description 53
- 238000000034 method Methods 0.000 claims abstract description 23
- 238000012545 processing Methods 0.000 claims abstract description 14
- 238000004590 computer program Methods 0.000 claims abstract description 3
- 230000002085 persistent effect Effects 0.000 claims description 34
- 230000004044 response Effects 0.000 claims description 14
- 238000000926 separation method Methods 0.000 abstract description 5
- 238000002955 isolation Methods 0.000 description 22
- 230000006399 behavior Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000001010 compromised effect Effects 0.000 description 2
- 238000004549 pulsed laser deposition Methods 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000005641 tunneling Effects 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000000206 photolithography Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000002435 venom Substances 0.000 description 1
- 210000001048 venom Anatomy 0.000 description 1
- 231100000611 venom Toxicity 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/80—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0637—Permissions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
Abstract
提供了一种计算机***(100),该计算机***(100)允许基础设施即服务(IaaS)***的多个不同用户共享存储设施(500),同时保持用户之间的安全性分隔。还提供了一种被配置为在计算机***中使用的控制器(150)以及相应的方法和计算机程序。计算机***(100)包括逻辑块(101)和控制器(150),该逻辑块(101)包括一个或多个执行指令的处理单元,该逻辑块(101)被配置为通过第一接口(102)发出从存储器读取和向存储器写入的请求,该控制器被配置为:实现到存储器(500)的通信链路;实现到第二计算机***(200)的通信链路(300),并从第二计算机***(200)接收标识逻辑块(101)的当前用户的信息;以及通过第一接口(102)从逻辑块(101)接收从存储器读取和向存储器写入的请求并完成请求。第一接口(102)是逻辑块(101)与控制器(150)之间的专用物理接口,由此控制器(150)可以确定通过第一接口(102)的通信是与逻辑块(101)的通信。控制器(150)被配置为使用由第二计算机***(200)标识的逻辑块(101)的当前用户被允许使用的存储器(500)的一个或多个存储位置来完成从存储器读取和向存储器写入的请求。
Description
技术领域
本发明涉及用于安全地共享由多个不同用户使用的存储资源的计算机***和方法。
背景技术
基础设施即服务(IaaS)由诸如Compute 和等各种“云”提供商提供。利用IaaS服务,物理计算基础设施的中央池在安全性分隔(separation)的情况下由多个独立客户(或“用户”)使用,以确保任何给定客户的数据和进程(process)与任何其他客户的数据和进程隔离开。
这种隔离(isolation)需要在任何给定时间点和不同时间点都适用。这是因为一个客户(客户A)在第一时间(T1)使用的计算基础结构可能随后被另一个客户(客户B)在稍后的时间(T2)使用。客户B的进程必须不能访问客户A的数据,或者客户A的进程必须不能持续到时间T2并获得对客户B的数据的访问(或修改客户B的进程的行为)。
现有的IaaS使用虚拟化层或虚拟机监控程序层(hypervisor layer)来实施这种隔离。虚拟化技术允许IaaS提供商限定隔离的“虚拟机”,每个虚拟机可以由不同的客户使用。除了在任何给定的时间点相互隔离虚拟机之外,虚拟化技术还负责通过实施任何给定的虚拟机只能访问属于当时正在使用该虚拟机的客户的数据来提供跨时间点的隔离。
但是,在某些情况下,虚拟化提供的隔离级别可能不足以满足客户的安全性要求。虚拟化技术中的漏洞(例如,VENOM漏洞)可能允许恶意客户访问正在同一物理主机上操作虚拟机的其他客户的数据和进程。
为了解决这些问题中的一些,可以为客户提供他们自己的专用物理设备(包括处理资源以及潜在的***设备,例如永久存储器),而不是虚拟机,以提供客户之间的更强的隔离级别。
但是,尽管这在时间点上提供了适当的隔离,但它本身并没有提供跨时间点的隔离。例如,如果客户A在时间T1使用了专用的物理设备P1,然后客户B在时间T2使用了该专用的物理设备P1,则客户A的进程可能持续到时间T2并获得对客户B的数据的访问。作为另一个示例,如果P1包括永久存储器,则客户B将有权访问客户A在该永久存储器上存储的数据。即使客户A已经对其数据进行了加密,客户B仍可能覆盖加密的数据,这样,当客户A在时间T3返回使用P1时,其数据将不再可用。
此外,如果分配给客户A不同的物理设备(P2),则客户A可能希望在时间T3访问其数据。为了做到这一点,客户A的数据需要被存储在某个共享存储设施上,该存储设施可以在时间T1从P1访问,而在时间T3可以从P2访问。这可以由连接到网络的网络附接存储(NAS)装置提供,该网络还连接到P1和P2。在这种情况下,为了在客户之间实现适当的隔离,任何给定的物理设备应该只能访问共享存储设施上的由该给定的物理设备当时所分配给的客户拥有的存储数据。
存在寻求实施此隔离要求的各种方法。例如,使用诸如iSCSI或NBD之类的网络存储协议的存储装置可以提供基于正在访问它们的物理设备的网络身份(identity)来实施访问控制的能力。但是,此类协议通常相对复杂,依赖于其他较低级别的协议,例如TCP、IP和以太网。
由于这种复杂性,通常将以包含可能被攻击者利用的安全漏洞的方式来实现对这些协议的支持。如果客户对安全性有足够的关注,不愿依赖于虚拟化技术,则他们不太可能满足于此类访问控制所提供的安全性级别。
公开号为GB 2545010的英国专利申请描述了一种IaaS计算机***,在该IaaS计算机***中,可以在给定的时间点为客户分配他们自己的专用物理逻辑块,从而在客户之间提供时间点上的隔离。为了提供跨时间点的隔离,每个逻辑块都被预配置为在逻辑块上电或复位时从专用存储控制器请求引导指令,并且该存储控制器能够使用控制连接上电并复位逻辑块。通过使用控制连接为逻辑块上电或复位,该存储控制器能够将每个逻辑块置于由其提供的引导指令的执行所得到的状态。通过采取措施防止逻辑块将引导指令写入存储控制器,由引导指令的执行所得到的已知状态为“已知良好”状态,因为在逻辑块上运行的软件无法改变在上电或复位时其执行的引导指令。这样,每次将客户分配给逻辑块时,就可以将逻辑上电或复位,客户将知道逻辑块以这种“已知良好”的状态开始。
尽管GB 2545010中描述的***可以在时间点上和跨时间点在客户之间提供隔离,并且可以以高度有保证的方式实施,但是它为客户提供了对永久存储器的有限访问。如果每个逻辑块设置有其自己的永久存储器,那么跨时间点的客户之间的隔离级别将大大降低,并且如果在过后的时间将不同的逻辑块分配给客户,则这也将不允许客户访问他们自己的数据。为逻辑块提供共享的存储资源可以解决后一个问题,但是在这种情况下,一个客户可能能够访问或覆盖另一个客户的存储数据,从而降低了给定时间和跨时间点的客户之间的隔离级别。
发明内容
本文描述的实施例允许IaaS***的多个不同客户共享存储设施,同时在时间点上和跨时间点在客户之间提供隔离。
本发明在独立权利要求中限定,现在将参考该独立权利要求。优选的特征在从属权利要求中提出。
根据本发明的一方面,提供了一种在向多个不同的用户提供计算资源的服务器***中使用的计算机***。该计算机***包括逻辑块(也可以称为处理块),该逻辑块包括执行指令的一个或多个处理单元,该逻辑块被配置为通过第一接口(也称为第一连接)发出从存储器读取和向存储器写入的请求。该计算机***还包括控制器,该控制器被配置为实现到存储器的通信链路;实现到第二计算机***的通信链路,并从第二计算机***接收标识逻辑块的当前用户的信息;以及通过第一接口从逻辑块接收从存储器读取和向存储器写入的请求,并完成请求。第一接口是逻辑块和控制器之间的专用物理接口,由此控制器可以确定通过第一接口的通信是与逻辑块的通信。控制器被配置为使用由第二计算机***标识的逻辑块的当前用户被允许使用的存储器的一个或多个存储位置来完成从存储器读取和向存储器写入的请求。
通过在逻辑块和控制器之间提供专用的物理接口(即,专用的物理连接)(即,逻辑块和控制器之间的物理点对点接口(即,物理点对点连接)),控制器能够完全可靠地在从逻辑块接收的数据与不是从逻辑块接收的数据之间区分。换句话说,逻辑块无法成功地冒充其他实体,也无法被其他实体冒充,因为控制器不是基于逻辑块接收到的数据,而是根据其接收数据所通过的物理接口来确定通信是来自逻辑块。在不访问***的物理内部的情况下无法更改该物理接口。在计算机***包括多个逻辑块的情况下,这尤其重要,每个逻辑块都具有其自己的到控制器的专用物理接口,因为这意味着控制器可以以完全安全、可靠的方式在逻辑块之间进行区分。
此外,当控制器从完全独立于逻辑块的第二计算机***接收逻辑块的当前用户(即,当前分配给逻辑块的客户)的身份时,控制器可以完全确保逻辑块不会影响控制器对用户的确定。确实,在第二计算机***受信任的程度上,控制器可以绝对确定当前用户的身份。
结合而言,这意味着当控制器接收从存储器读取或向存储器写入的请求时,控制器能够识别其可以确保的可允许请求的源使用的共享存储资源的存储位置。以这种方式,实施例允许存储设施由多个不同的用户共享,在逻辑块的用户之间保持高度的隔离。
控制器可以被配置为响应于从第二计算机***接收到标识逻辑块的后续用户的信息而使用该逻辑块的后续用户被允许使用的存储器的一个或多个预定存储位置完成来自逻辑块的从存储器读取和向存储器写入的请求。后续用户(有时在本文中称为新用户)是与当前用户不同的用户,并且在它们是对于当前/先前用户的不同用户的意义上而言可以是“新”用户;为了避免疑问,后续用户是继当前/先前用户而言,但可能之前已使用过该逻辑块。由于从独立于逻辑块的第二计算机***接收到有关逻辑块的新用户的指令,因此计算机***不能被运行在逻辑块上的软件欺骗从逻辑块的真实当前用户不被允许访问的存储位置读取数据或将数据写入这些存储位置。
该计算机***还可以包括在逻辑块和控制器之间的控制连接,其中,控制器被配置为使用该控制连接来上电或复位逻辑块。控制器可以被配置为响应于从第二计算机***接收到指令而上电或复位逻辑块。在逻辑块上运行的软件无法在掉电或复位的情况下存续,因此这提供了在逻辑块上运行的软件的“刷新”逻辑块的能力。当准备供不同的客户使用的逻辑块时,或者如果认为该逻辑块正在运行恶意软件,这可以很有用。
控制器可以被配置为响应于从第二计算机***接收到配置逻辑块以供后续用户使用的指令而对该逻辑块上电或复位。复位逻辑块有助于防止该逻辑块的先前用户的进程影响该逻辑块的后续用户的进程和数据。
配置逻辑块以供后续用户使用的指令可以包括标识逻辑块的后续用户的信息。如果控制器要服务逻辑块的后续用户发出的从存储器读取数据和将数据写入存储器的请求,同时保持不同用户之间的安全性隔离,则控制器需要知道该逻辑块的后续用户的身份。
配置逻辑块以供后续用户使用的指令可以包括用于控制器在复位逻辑块之前停止从逻辑块向存储器传送从存储器读取和向存储器写入的请求的指令。
逻辑块可以被配置为、例如在逻辑上硬连线为在其通过第一接口发出从存储器读取和向存储器写入的请求时指定一个或多个预定存储位置。在这种情况下,控制器可以被配置为将由逻辑块指定的预定存储位置转换为由第二计算机***标识的逻辑块的用户被允许使用的用户特定的存储位置,并使用该用户特定的存储位置完成请求。这样,逻辑块始终指定相同的存储位置,而与逻辑块的用户无关,因此不需要将用户特定的存储位置传送到逻辑块。这可以简化逻辑块的用户之间的切换过程。由于逻辑块(在使用过程中可能会损坏)不知道任何用户特定的存储位置,从而无法尝试在计算机***外部传送这些位置,因此这也可以提高安全性。在逻辑上硬接线逻辑块以指定存储位置提供附加的安全性,因为无法通过逻辑块上运行的软件来更改行为。
控制器可以被配置为向逻辑块提供由第二计算机***标识的逻辑块的当前用户被允许使用的用户特定的存储位置,在这种情况下,逻辑块可以被配置为在其发出从存储器读取和向存储器写入的请求时指定这些用户特定的存储位置。由于控制器不需要转换其从逻辑块接收到的存储位置,因此这可以降低控制器的处理要求和复杂性。在这种情况下,控制器还可被配置为验证由逻辑块指定的存储位置匹配于与由第二计算机***标识的逻辑块的当前用户相关联的用户特定的存储位置。这提供了安全实施,因为逻辑块在使用过程中可能受到损害,并指定不允许用户访问的存储位置。
逻辑块可以被配置为、例如在逻辑上硬连线为在逻辑块上电或复位时从控制器请求允许其使用的用户特定的存储位置。将该行为集成到逻辑块的引导序列中提供更强健的***。
控制器可以包括用于与网络进行通信的网络接口,并且控制器可以被配置为将经由网络接口接收的网络数据发送至逻辑块,并且经由网络接口将从逻辑块接收的网络数据发送至网络。向计算机***添加网络接口为逻辑块提供附加功能,并为存储和网络访问提供单点安全管理。
控制器可以被配置为根据由第二计算机***标识的逻辑块的当前用户,对通过第一接口发送到逻辑块和从逻辑块接收的网络数据施加预定的用户特定的网络访问规则。这不仅进一步降低了逻辑块在使用过程中被破坏的风险,而且还允许逻辑块对外部威胁的暴露被调整为适合逻辑块的用户的要求,而不必更改逻辑块的配置。
逻辑块可以被配置为通过第一接口发送和接收网络数据。可替代地,逻辑块可以被配置为通过逻辑块与控制器之间的第二接口(也可以称为第二连接)发送和接收网络数据。在通过相同的第一接口发送网络数据和存储数据的情况下,例如可以使用时分复用在第一接口上复用第一协议和第二协议。可替代地,可以经由第二通信协议来隧道化第一通信协议,或者可以经由第一通信协议来隧道化第二通信协议。在通过单独的专用物理接口发送网络数据和存储数据的情况下,逻辑块可以被配置为根据第一通信协议通过第一接口发出从存储器读取和向存储器写入的请求,并且逻辑块被配置为根据第二通信协议通过第一接口发送和接收网络数据。
通过同一接口发送网络数据和存储数据可以减少控制器和逻辑块之间的物理连接的数量,从而可以节省硬件引脚以用于其他用途,例如将更多逻辑块连接到控制器。但是,也可以通过单独的物理接口发送网络数据和存储数据。
该存储器可以包括基于网络的存储器,并且该控制器可以被配置为通过网络接口完成对于基于网络的存储器的从存储器读取和向存储器写入的请求。
逻辑块可以被配置为、例如在逻辑上硬连线为在逻辑块上电或复位时通过第一接口从控制器请求引导指令。逻辑块可以使用ASIC、PLD或只读存储器中存储的指令中的一项或多项进行逻辑上硬接线。ROM指令可以存储在逻辑块内。将逻辑块预配置为在逻辑块上电或复位时从控制器请求引导指令,允许控制器在逻辑块切换到新用户时控制逻辑块的开始状态。由于逻辑块更改了其在上电或复位时执行的引导指令,因此还降低了逻辑块“被堵住(bricked)”的风险。
控制器可以被配置为响应于从逻辑块接收到对引导指令的请求而使用由第二计算机***标识的逻辑块的当前用户被允许使用的存储器的一个或多个存储位置来完成该请求,以便向逻辑块提供用户特定的引导指令。这允许逻辑块的给定用户将其逻辑块引导到用户特定的状态。尽管该状态可以是用户非常希望的,但该状态也可能是受恶意软件影响的状态。但是,控制器总是仅从用户特定的存储位置返回数据这一事实意味着其他用户(在给定时间和跨时间点)仍然与受影响的状态隔离。
附加地或替代地,控制器可以被配置为响应于从逻辑块接收到对引导指令的请求而将由第二计算机***提供的预定引导指令提供给逻辑块。这允许逻辑块被引导到“已知良好”的状态,该“已知良好”的状态是从由第二计算机***提供的引导指令(可以被称为“干净的”引导指令)的执行得到的。这可以允许以安全的方式更新引导指令。此外,如果用户自己的用户特定的引导指令已以某种方式被损坏,则这允许将逻辑块引导至已知良好的状态,此时可以修复用户特定的引导指令。
逻辑块还可以包括其自己的永久存储器。这为逻辑块的用户提供了附加的功能。
在逻辑块包括其自身的永久存储器的情况下,并且在计算机***包括逻辑块与控制器之间的控制连接的情况下,控制器可以被配置为响应于从第二计算机***接收到配置逻辑块以供新用户使用的指令而:上电或复位逻辑块,以便逻辑块从控制器请求引导指令;将由第二计算机***提供的预定引导指令提供给逻辑块,预定引导指令包括使逻辑块覆盖逻辑块自身的永久存储器的指令,使得逻辑块自身的永久存储器的内容不再可由逻辑块恢复;复位逻辑块,以使逻辑块从控制器请求引导指令;以及将请求传送到由第二计算机***标识的逻辑块的当前用户被允许使用的存储器的一个或多个预定存储位置以便向逻辑块提供用户特定的引导指令。
尽管向逻辑块提供其自己的永久存储器为计算机***的用户提供了附加的功能,但这潜在地降低了跨时间点的不同用户之间的隔离。但是,通过以这种方式利用控制连接和硬连线的引导序列,控制器可以确保一个用户存储在逻辑块的永久存储器中的数据不能被逻辑块的后续用户访问或影响逻辑块的后续用户。
可替代地,代替在逻辑块执行了导致其覆盖自己的永久存储器的引导指令之后复位逻辑块,引导指令可以包括最终指令,该最终指令使逻辑块请求另一组引导指令。控制器然后可以将该请求传送到由第二计算机***标识的逻辑块的当前用户被允许使用的存储器的一个或多个预定存储位置,以便向逻辑块提供用户特定的引导指令。控制器不必第二次复位逻辑块的这种方法可能更易于实现。
逻辑块可以被配置为根据诸如eMMC等存储协议通过第一接口发出从存储器读取和向存储器写入的请求。使用简单的存储协议(例如eMMC)允许以高度有保证的方式、例如使用FGPA或ASIC或使用形式上可验证的软件实现控制器。这降低了损坏的逻辑块能够使用通过第一接口的通信来损坏控制器的风险。
除了经由控制器之外,逻辑块可以没有到计算机***外部的接口。这确保了控制器能够在计算机***的用户之间提供安全性分隔。
存储位置可以是数据范围,例如字节范围或块范围。
该存储器可以包括以下一项或多项:经由控制器的网络接口可访问的一个或多个存储介质;经由到管理计算机***的通信链路可访问的一个或多个存储介质;以及计算机***内的一个或多个存储介质。
该计算机***还可以包括一个或多个附加的逻辑块,每个附加的逻辑块包括执行指令的一个或多个处理单元。每个附加的逻辑块可以被配置为通过相应逻辑块与控制器之间的相应的专用物理接口发出从存储器读取和向存储器写入的请求,使得控制器可以确定其正在与哪个逻辑块进行通信。对于附加的逻辑块,控制器还可以被配置为从第二计算机***接收标识相应的附加逻辑块的当前用户的信息;以及从相应的附加逻辑块接收从存储器读取和向存储器写入的请求,并使用由第二计算机***标识的相应的逻辑块的当前用户被允许使用的存储器的相应的预定的存储位置来完成相应的请求。
该计算机***还可以包括第二计算机***。
第二计算机***可以被配置为向控制器提供计算机***的多个不同用户中的每一个被允许使用的存储位置。
第二计算机***可以被配置为向控制器提供用户特定的网络访问规则。
控制器也被单独设置。
还提供一种操作计算机***的相应方法,该计算机***包括控制器和逻辑块,该逻辑块包括执行指令的一个或多个处理单元。该方法包括:由控制器从第二计算机***接收标识逻辑块的当前用户的信息;由控制器通过第一接口从逻辑块接收从存储器读取和向存储器写入的请求,该第一接口是逻辑块和控制器之间的专用物理接口,由此控制器可以确定通过第一接口的通信是与逻辑块的通信;以及使用由第二计算机***标识的逻辑块的当前用户被允许使用的存储器的一个或多个存储位置来完成从存储器读取和向存储器写入的请求。
还提供了一种计算机程序,该程序当在控制器上被执行使控制器执行该方法。
附图说明
现在将仅通过示例的方式并参考附图进一步描述本发明的实施例,在附图中:
图1是根据实施例的第一计算机***和第二计算机***的示意图;
图2是根据实施例的第一计算机***和第二计算机***的另一示意图,示出了图1的***的附加细节,包括用于上电或复位逻辑块的控制连接;
图3是根据实施例的第一计算机***和第二计算机***的另一示意图,其中,逻辑块具有它们自己的永久存储器;以及
图4是根据实施例的第一计算机***和第二计算机***的另一示意图,其中,接口控制器还经由网络将通信路由到逻辑块和从逻辑块路由通信。
在整个说明书和附图中,相同的附图标记用于相同的元件。
具体实施方式
图1示出了第一计算机***100和第二计算机***200。出于参考目的,第一计算机***将被称为IaaS计算机***100,第二计算机***将被称为管理计算机***200。
IaaS计算机***100通常将包括一个或多个逻辑块101a、101b、101c以及专用的接口控制器150,每个逻辑块包括一个或多个处理单元和一些RAM(未示出)。逻辑块101a、101b、101c也可以称为处理块、处理电路或逻辑电路,因为其执行处理功能。每个逻辑块101a、101b、101c经由其自己的专用的物理的点对点接口102a、102b、102c连接到接口控制器150。在本上下文中,术语“接口”用于指代逻辑块101a、101b、101c与接口控制器150之间的连接。尽快每个逻辑块101a、101b、101c可以包括或具有到IaaS计算机***内的其他专用组件(例如,专用的永久存储器,如下面将参考图3描述的)的其他连接,逻辑块101a、101b、101c没有到由逻辑块101a、101b、101c共享的组件的任何其他连接,也没有到IaaS计算机***100外部的任何连接,除非经由接口控制器150。
逻辑块101a、101b、101c与接口控制器150之间的连接以使得逻辑块101a、101b、101c可以使用适当的通信协议(例如存储协议)向接口控制器150发出从存储器读取和向存储器写入的请求的方式建立。
接口控制器150能够根据选择的协议与逻辑块101a、101b、101c通过它们相应的专用物理接口102a、102b、102c进行通信。因此,接口控制器150能够接收由逻辑块101a、101b、101c发出的读取和写入请求,并且在已经以适当的方式服务了请求(将在下面进行更详细的说明)后,在必要时将数据通过逻辑块专用的物理接口102a、102b、102c返回到逻辑块101a、101b、101c以完成请求。
逻辑块101a、101b、101c和接口控制器150可以实现在分开的芯片封装上,例如,球栅阵列。在这种情况下,可以通过在逻辑块封装的引脚与接口控制器封装上的适当的专用引脚之间的PCB上创建金属连接,来实现一个逻辑块与接口控制器150之间的专用物理接口。然后,其他逻辑块将被连接到接口控制器封装上的其他引脚,以实现其各自的专用的物理接口。
可替代地,逻辑块101a、101b、101c和接口控制器150可以实现为单个硅基板内的分开的电路。在这种情况下,一个逻辑块与接口控制器150之间的专用的物理接口可以通过例如使用光刻在基板上创建合适的导电走线来实现。
优选地,选择非常简单的存储协议(例如,eMMC),用于接口控制器150与逻辑块101a、101b、101c之间通过它们各自的专用物理接口102a、102b、102c进行通信。选择非常简单的协议允许以高度有保证的方式实现接口控制器的功能。这使得恶意方很难通过使用可能在逻辑块101a、101b、101c上运行的恶意软件来将该协议用作损害接口控制器150功能的手段。高度有保证方法的示例是以硬件(例如,使用FPGA或ASIC)实现接口控制器150。在不访问装置内部的情况下,则无法修改此类基于硬件的实现的功能,从而使其特别安全。高度有保证方法的另一个示例是使用软件来实现接口控制器,该软件是使用形式化方法而开发的。尽管可以使用更复杂的协议,但是以高度有保证的方式实现将更加危险、困难且昂贵。
接口控制器150还实现到管理计算机***200的通信链路300。这可以通过许多不同的方式来实现,但是重要的是,通信链路300独立于任何专用的物理接口102a、102b、102c。以这种方式,逻辑块101a、101b、101c无法影响接口控制器150通过通信链路300从第二计算机***200接收到的数据。
在一些实施方式中,通信链路300是到管理网络300的链接,管理计算机***200是管理网络300的一部分。在其他实施方式中,第二计算机***200实际上是IaaS计算机***100的一部分。无论如何,接口控制器150与管理计算机***200之间的通信链路300独立于接口控制器150与逻辑块101a、101b、101c之间的任何专用物理接口102a、102b、102c。
通信链路300可以实现为IaaS计算机***100与管理计算机***200之间的物理有线连接,或者实现为有线和/或无线网络连接。通信链路可以以通过该链路300的通信不能被IaaS计算机***100的任何其他组件访问的方式来实现。例如,在一种实现方式中,接口控制器150包含经由电缆连接到管理计算机***200的物理通信端口。在另一种实现方式中,接口控制器150以以下方式实现到管理计算机***200的加密链路:IaaS引导计算机***100的其他组件可能能够访问加密的流量,但将无法访问解密或加密所需的密钥。
管理计算机***200通常与IaaS计算机***100的操作者相关联。例如,管理计算机***200可以负责管理将逻辑块101a、101b、101c的使用分配给IaaS计算机***100的客户。可替代地或附加地,该信息可以由与IaaS计算机***100的操作者相关联的操作者或其他实体提供给管理计算机***200或输入。这样,管理计算机***200知道任何给定时间的逻辑块101a、101b、101c的用户的身份,并且可以将该信息通过通信链路300传送给接口控制器150。
接口控制器150还实现到存储器500的通信链路,该通信链路允许接口控制器150从存储器500读取数据并将数据写入存储器500,以便服务来自逻辑块101a、101b、101c的请求。
尽管图1将存储器500示出为IaaS计算机***100和管理计算机***200外部的单个存储装置,但是应该意识到,这只是示例:存储器500的精确位置并不重要,共享存储器500可以采取多个存储装置的形式,多个存储装置可能位于IaaS计算机***100和管理计算机***200的内部和外部的不同位置。重要的是,逻辑块101a、101b、101c不能直接从共享存储器500进行读取/向共享存储器500写入,而必须通过其专用的物理接口102a、102b、102c发出请求经由接口控制器150来进行。
存储器500是共享的存储资源在于它服务于IaaS计算机***100的多个不同用户的存储需求。将理解的是,不同用户可以是在不同时间的相同逻辑块的用户和/或在相同或不同的时间的不同逻辑块的用户。
为了在IaaS计算机***100的不同用户之间提供安全性分隔,每个用户都具有存储器500的存储位置(例如,块或字节范围),该用户被允许使用这些存储位置(即,从其读取和向其写入),但不允许其他用户使用这些存储位置。在使用时,接口控制器150具有允许逻辑块101a、101b、101c的当前用户(由管理计算机***200指示)使用的存储位置的知识。
接口控制器150可以以多种不同的方式获得这些存储位置的知识。在一些实施方式中,存储位置被预先分配给IaaS计算机***100的不同用户,并且接口控制器150被(例如,由管理计算机***200)预先配置,使得它知道允许每个不同用户使用的存储位置。在其他实施方式中,当管理计算机***200向接口控制器150提供逻辑块的当前用户的身份时,它还向接口控制器150提供允许逻辑块的用户使用的存储位置。另外,接口控制器150能够将先前未分配的存储位置分配给IaaS计算机***100的新用户或现有用户。
此外,接口控制器150通过仅使用(即,访问或写入)逻辑块的当前用户(如由管理计算机***200指示)被允许使用的存储位置来响应于其通过其相应的专用物理接口从逻辑块接收的读取和写入请求。这方面的精确实现可以变化。例如,在一些实施方式中,在逻辑块的用户发出任何读取/写入请求之前,接口控制器150向逻辑块提供允许逻辑块的用户(如管理计算机***200所指示的)使用的存储位置(例如,块或字节范围)。随后,接口控制器150将验证在读取和写入请求中由逻辑块指定的存储位置对应于允许用户使用的存储位置,并且仅代理验证的请求。在其他实施方式中,每个逻辑块被预先配置(例如,逻辑上硬连线)为指定任意(例如,预定的)存储位置,而与逻辑块的用户无关。例如,逻辑块可以使用被编程到逻辑块内的ROM中的存储位置,或者这种存储位置可以由逻辑块的硬连线电路提供。在这些实施例中,接口控制器150将在由逻辑块发出的请求中指定的任意存储位置转换为允许逻辑块的用户使用的存储位置。
为了说明上述IaaS***100和管理计算机***200的操作,现在将提供示例。
在给定时间(T1),已为IaaS计算机***100的客户(客户A)分配了特定的逻辑块(例如,逻辑块101a)以供使用。如果IaaS计算机***100包含多于一个的逻辑块,则在时间T1还可能已为另一个客户(客户B)分配了另一个逻辑块(例如,逻辑块101b)。
接口控制器150从管理计算机***200接收将客户A标识为逻辑块101a的当前用户(在时间T1)的信息。同样,接口控制器150从管理计算机***200接收将客户B标识为逻辑块101b的当前用户的信息。由于接口控制器150和管理计算机***200之间的通信链路300完全独立于接口控制器150与逻辑块101a、101b之间的专用的物理接口102a、102b,因此,逻辑块101a、101b不能影响接口控制器150从管理计算机***200接收的身份信息。因此,接口控制器150可靠地知道逻辑块101a、101b的当前用户的身份。管理计算机***200还可以标识允许客户A和客户B使用的存储位置。可替代地,接口控制器150可能已经被预先配置了该信息。
为了从共享存储资源500读取数据或向共享存储资源500写入数据,客户A的逻辑块101a通过逻辑块101a的专用物理接口102a经由接口控制器150发出读取和写入请求。同样地,为了从共享存储资源500读取数据并向共享存储资源500写入数据,客户B的逻辑块101b通过逻辑块101b的专用物理接口102b经由接口控制器150发出读取和写入请求。
接口控制器150通过专用物理接口102a接收由逻辑块101a发出的读取和写入请求。由于接口102a的专用物理性质,接口控制器150可以绝对地确定它通过接口102a接收到的请求是由逻辑块101a发出的。换句话说,接口控制器150使其对请求源的确定是基于其接收请求所通过的接口,而不是基于其接收到的数据的内容。这意味着逻辑块101a不能冒充另一个实体(例如,逻辑块101b),并且类似地,其他实体(例如,逻辑块101b)不能冒充逻辑块101a。同样,接口控制器150通过专用物理接口102b接收由逻辑块101b发出的读取和写入请求。由于接口102b的专用物理性质,接口控制器150可以绝对地确定其通过接口102b接收到的请求是由逻辑块101b发出的。
然后,接口控制器150能够将通过接口102a从逻辑块101a接收到的请求与用户即管理计算机***200所指示的逻辑块101a的当前用户:客户A相关联。同样地,接口控制器150能够将通过接口102b从逻辑块101b接收的请求与用户即管理计算机***200所指示的逻辑块101b的当前用户:客户B相关联。
最后,接口控制器150服务于客户A发出的读取和写入请求。这样做时,接口控制器150仅使用允许客户A使用的共享存储器500的存储位置(从中读取/向其写入),并且从不会从不允许客户A使用的共享存储器的存储位置进行读取或向其写入。同样地,接口控制器150仅使用允许客户B使用的共享存储器500的存储位置来服务于客户B发出的读取和写入请求。以这种方式,IaaS计算机***100允许IaaS计算机***100的多个不同客户共享存储资源500,但是保持不同客户之间的隔离。
在稍后的时间T2,接口控制器150从管理计算机***200接收标识逻辑块101a的新用户(客户C)的信息。因此,接口控制器150将通过仅使用允许客户C使用的共享存储器500的存储位置来响应由逻辑块101a发出的后续读取和写入请求。换句话说,当IaaS计算机***的逻辑块的当前用户从客户A变为客户C时,接口控制器150将停止代理对于允许客户A使用的存储位置的读取/写入请求,而是将代理对于允许客户C使用的存储位置的读取/写入请求。
图2示出了IaaS计算机***100还包括控制连接103a、103b、103c的实施例。
可以看出,图2的IaaS计算机***100包括与图1的IaaS计算机***100相同的组件、连接和接口,但还包括控制连接103a、103b、103c,该控制连接103a、103b、103c将逻辑块101a、101b、101c连接到接口控制器150。接口控制器150可以使用控制连接103a、103b、103c来使相应的逻辑块101a、101b、101c上电、使相应的逻辑块断电、或者使相应的逻辑块复位。特别地,控制连接103a、103b、103c允许接口控制器150独立地从非活动状态为逻辑块上电,或者独立地复位逻辑块。
如本文所使用的术语“复位”既包括逻辑块101a、101b、101c的电力循环(power-cycle)(先使逻辑块断电然后使逻辑块上电的序列)又包括可以被称为“硬件复位”的那些。硬件复位是强制逻辑块执行其初始引导过程而不经过断电/上电序列的硬件级方法。
如本文所使用的,术语“上电”是指从非活动、断电状态对逻辑块进行上电,其中,逻辑块已经处于非活动状态相对较长的时间了。应当理解,每当逻辑块上电时,在上电之前的某个时刻是断电的。然而,本文中使用术语“上电”与电力循环复位相反,其中,在先前的断电之后相对短的时间内发生上电。
每个控制连接103a、103b、103c可以将接口控制器150连接到实现其相应的逻辑块101a、101b、101c的一个或多个集成电路的电压输入引脚。以这种方式,接口控制器150可以控制是否将电压施加到实现逻辑块101a、101b、101c的一个或多个集成电路,因此,可以控制相应的逻辑块101a、101b、101c的电力状态。
替代地或附加地,每个控制连接103a、103b、103c可以将接口控制器150连接到实现其相应的逻辑块101a、101b、101c的集成电路的硬件复位引脚。将硬件复位引脚上的电压拉低并将电压返回到高将引起相应的逻辑块101a、101b、101c复位。
接口控制器150可以包括图2中未示出的电源管理集成电路(PMIC)。在接口控制器包括PMIC的情况下,控制连接103a、103b、103c可以将PMIC连接到实现相应的逻辑块101a、101b、101c的一个或多个集成电路的电压输入引脚和/或硬件复位引脚。
根据一些实施例,接口控制器150被配置为响应于从管理计算机***200接收到指令而使用控制连接103a、103b、103c上电或复位相应的逻辑块101a、101b、101c,以准备相应的逻辑块101a、101b、101c以供IaaS***100的不同客户使用。在上电或复位之前在逻辑块上运行的软件进程无法在上电或复位后存续,因此这具有在由新客户使用逻辑块之前刷新逻辑块的效果,这有助于跨时间点隔离不同的客户。
在这些实施例中,管理计算机***200可以指示接口控制器150采取以下步骤以便准备逻辑块101a、101b、101c以供不同的客户(客户B)使用。
i.暂时停止代理来自逻辑块的对于共享存储设施的读取和写入请求;
ii.使用相应的控制连接复位逻辑块;以及
iii.响应来自逻辑块的后续读取和写入请求,以使其只能读取和写入分配给客户B的共享存储设施的存储位置。
从图1的以上描述可以理解,步骤3可能涉及接口控制器150将由逻辑块指定的任意预定存储位置转换成允许客户B使用的存储位置。任意的预定存储位置可以由逻辑块101a、101b、101c的硬连线电路提供,或者被存储在逻辑块101a、101b、101c的ROM中。
可替代地,在复位逻辑块之后,接口控制器150可以向逻辑块提供允许逻辑块的用户(由管理计算机***200标识)使用的存储位置并且可以随后验证逻辑块在其读取和写入请求中指定的存储位置。在这些实施例中,逻辑块101a、101b、101c的硬连线电路或存储在逻辑块的ROM中的指令可能导致逻辑块101a、101b、101c在上电或复位时通过其专用物理接口102a、101b、101c从接口控制器150寻求存储位置。
优选地,逻辑块101a、101b、101c是逻辑上硬连接的以在上电或复位逻辑块101a、101b、101c后立即通过其相应的专用物理接口102a、102b、102c从接口控制器150寻求引导指令。这样,在逻辑块的当前用户更改时,接口控制器150具有对由逻辑块101a、101b、101c执行的引导指令的控制。如将在下面参考图3更详细解释的,这可以用于将逻辑块置于“已知良好”的状态,该状态是由已知为“干净”的引导指令的执行而得到的;和/或可以用于根据管理计算机***200标识的逻辑块的用户向逻辑块提供用户特定的引导指令。无论如何,重要的是逻辑块101a、101b、101c的引导序列不依赖于逻辑块内的任何专用永久存储器,因为这可能会降低跨时间点的用户之间的隔离级别。
将理解的是,本文所使用的术语“逻辑上硬连线”是指其中在上电或复位时逻辑块的行为不能由在上电或复位之前的时间点在逻辑块上运行的软件来改变的各种实现。而是,只能通过访问设备的内部来更改行为。逻辑上硬连线功能的示例包括使用ASIC、PLD和使用存储在ROM中的软件指令。
注意,图2示出管理计算机***200作为连接到IaaS计算机***100的接口控制器150的管理网络300的一部分。但是,应当理解,不一定是这种情况,并且如上面参考图1所述,管理计算机***200可以例如是IaaS计算机***100的一部分。
图3示出了IaaS计算机***100的逻辑块101可以访问专用的永久存储器104以及可能访问其他***设备105的实施例。应当理解,尽管图3示出了单个逻辑块101,但这仅是为了方便图示。在本文描述的任何实施例中,逻辑块的数量可以是一个或多于一个的任意数量。
尽管为IaaS计算机***100的逻辑块101提供逻辑块自己的永久存储器104并不是必需的,但在某些情况下可能是期望的,因为它允许客户在其使用IaaS计算机***的时段(session)期间更加本地地存储数据。这对于用户可能更方便,并且还可以改善***的性能,因为如果将使得读取和写入请求用于专用永久存储器104,则通常会更快地完成它们。但是,为逻辑块101提供专用永久存储器104具有减少跨时间点的客户之间的隔离的潜在可能。特别地,如果客户A在时间T1使用逻辑块101并将数据写入永久存储器104,然后客户B在时间T2使用逻辑块101,则客户B可能能够访问或更改客户A的数据。类似地,客户A的进程可能持续到时间T2并访问客户B的数据。实施例允许向逻辑块101提供专用的永久存储器104,同时保持跨时间点的安全性分隔。
首先,逻辑块101的引导序列不应该依赖于提供的永久存储器104。例如,如上所述,逻辑块101可以在逻辑上硬连线以在上电或复位时通过专用物理接口102寻求其引导指令,从而消除了对可能存储在永久存储器中的数据的任何依赖。
其次,应采取措施防止客户B访问客户A的数据。虽然这可以通过要求客户加密存储在永久存储器104中的数据来实现,但是替代的方法是确保在将逻辑块101分配给客户B使用之后,客户A的数据不可恢复。为此,在一种实现方式中,当逻辑块101的用户要从客户A切换到客户B时:
i.管理计算机***200指示接口控制器150使用控制连接103复位逻辑块101。这使逻辑块101通过专用物理接口102请求引导指令。
ii.接口控制器150向逻辑块101提供引导指令,该引导指令在被执行时使逻辑块覆盖永久性存储器104,使得客户A的数据不再可恢复。这些引导指令可以由管理计算机***200设置,并且接口控制器150可以通过以只读方式将逻辑块101连接到包含引导指令的存储器来提供指令。
iii.管理计算机***200指示接口控制器150使用控制连接103复位逻辑块101。这使逻辑块101通过专用物理接口102请求引导指令。可替代地,不是指示接口控制器150再次复位逻辑块101,而是控制器150在上述步骤(ii)中提供的指令可以包括最终指令,该最终指令在被执行时使逻辑块101寻求另一组引导指令。换句话说,控制器150在步骤(ii)中提供的指令可以是“引导加载程序”,在覆盖永久存储器104之后,该引导加载程序使得逻辑块101寻求在下面的步骤(iv)中提供的其余的引导映像(boot image),以便客户A的数据不再可恢复。
iv.接口控制器150向逻辑块101提供用于操作的引导指令。这些可以是存储在共享存储设施500中,允许客户B使用的存储位置中的用户特定的引导指令。替代地,它们可以是由管理计算机***200设置的“干净”引导指令,使得逻辑块101被引导至“已知良好”的状态。
以此方式,实施例允许由不同客户使用的IaaS计算机***向用户提供专用和共享的永久存储器,同时在给定时间点和跨时间点保持客户之间的高度隔离。
图4示出了IaaS计算机***100经由接口控制器150的网络接口连接到网络400(例如因特网)的实施例。
如上所述,除了服务于从共享存储资源读取数据或向共享存储资源写入数据的请求之外,接口控制器150还可以负责经由网络400将逻辑块101a、101b、101c之间的通信路由到IaaS计算机***100外部的任何其他计算机。
为了实现这一点,IaaS计算机***还可以包括在每个逻辑块101a、101b、101c与接口控制器之间的另一个专用物理接口(未示出)。逻辑块101a、101b、101c然后可以根据适当的协议通过该附加的专用物理接口向接口控制器150发送网络数据(例如,网络数据包)和从接口控制器150接收网络数据。可替代地,逻辑块101a、101b、101c可以通过其发出从存储器进行读取和向存储器写入的请求所通过的同一接口(即,专用物理接口102a、102b、102c)发送和接收网络数据。这可以通过在同一物理接口102a、102b、102c上复用两种不同的协议(一种用于存储,一种用于网络数据)来进行,例如使用时分复用。可替代地,这可以通过经由网络协议(例如,使用iSCSI)隧道化存储协议或通过经由存储协议(例如,使用SDIO)隧道化网络协议来完成。
接口控制器150通常将使用相对简单的协议将网络数据发送到逻辑块101a、101b、101c以及发送来自逻辑块101a、101b、101c的数据,以减少控制器因与逻辑块101a、101b、101c进行通信而受到损害的风险。然而,接口控制器150的网络接口与网络400之间的通信可以使用诸如HTTP等更高级别的协议。
接口控制器150还可以在逻辑块101a、101b、101c经由接口网络控制器发送和接收的网络通信上实施网络访问规则,包括基于逻辑块的当前用户(由管理计算机***200标识)的身份的用户特定的网络访问规则。例如,客户A可能请求仅将发往端口22且源自特定IP地址的TCP通信转发到逻辑块,而客户B可能请求将对于端口80的TCP通信转发到独立于源地址的逻辑块。接口控制器150可以在使用前的某个时间点可能被管理计算机***200配置有这些用户特定的规则。另外地或可替代地,管理计算机***200可以在其向接口控制器通知逻辑块的当前用户/新用户的身份时向接口控制器150提供用户特定的规则。
注意,尽管图4未示出连接到逻辑块101a、101b、101c的专用永久存储器或其他***设备,这仅仅是为了便于说明。本文描述的任何实施例中均可以存在专用的永久存储器104。
还应注意,图4示出了以上参考图1至图3描述的共享存储器500实际上可以采取一个或多个共享存储装置500a、500b、500c的形式,并且它们可以位于相对于***的任何位置,只要它们只能由逻辑块101a、101b、101c经由接口控制器150访问。例如,共享存储器可以包括网络附接存储器(NAS)500a、作为管理网络300的一部分的存储器500b和作为IaaS计算机***100的一部分的存储器500c。
上面描述的是具有各种可选特征的多个实施例。应当理解,除了任何相互排斥的特征之外,一个或多个可选特征的任何组合都是可能的。
Claims (41)
1.一种在服务器***中使用的计算机***(100),所述服务***向多个不同的用户提供计算资源,所述计算机***包括:
逻辑块(101),包括执行指令的一个或多个处理单元,所述逻辑块被配置为通过第一接口(102)发出从存储器读取和向存储器写入的请求;以及
控制器(150),其被配置为:
实现到存储器(500)的通信链路;
实现到第二计算机***(200)的通信链路(300),并从第二计算机***接收标识逻辑块的当前用户的信息;以及
通过第一接口从逻辑块接收从存储器读取和向存储器写入的请求,并完成请求;
其中,所述第一接口(102)是逻辑块与控制器之间的专用物理接口,由此所述控制器能够确定通过第一接口的通信是与逻辑块的通信;以及
其中,所述控制器被配置为使用由第二计算机***标识的逻辑块的当前用户被允许使用的存储器的一个或多个存储位置来完成从存储器读取和向存储器写入的请求。
2.根据权利要求1所述的计算机***,其中,所述控制器被配置为响应于从第二计算机***接收到标识逻辑块的后续用户的信息而使用逻辑块的后续用户被允许使用的存储器的一个或多个预定存储位置完成来自逻辑块的从存储器读取和向存储器写入的请求。
3.根据权利要求1或权利要求2所述的计算机***,还包括:所述逻辑块与控制器之间的控制连接,其中,所述控制器被配置为使用所述控制连接来上电或复位逻辑块。
4.根据权利要求3所述的计算机***,其中,所述控制器被配置为响应于从第二计算机***接收到用于上电或复位逻辑块的指令而上电或复位逻辑块。
5.根据权利要求3或4所述的计算机***,其中,所述控制器被配置为响应于从第二计算机***接收到配置逻辑块以供逻辑块的后续用户使用的指令而上电或复位逻辑块。
6.根据权利要求5所述的计算机***,其中,配置逻辑块以供后续用户使用的所述指令包括标识逻辑块的后续用户的信息。
7.根据权利要求5或权利要求6所述的计算机***,其中,配置逻辑块以供后续用户使用的所述指令包括用于所述控制器在复位逻辑块之前停止从逻辑块向存储器传送从存储器读取和向存储器写入的请求。
8.根据前述权利要求中的任一项所述的计算机***,其中,所述逻辑块被配置为当所述逻辑块通过第一接口发出从存储器读取和向存储器写入的请求时指定一个或多个预定存储位置,并且其中,所述控制器被配置为将由逻辑块指定的预定存储位置转换为由第二计算机***标识的逻辑块的用户被允许使用的用户特定的存储位置,并使用所述用户特定的存储位置完成请求。
9.根据权利要求8所述的计算机***,其中,所述逻辑块在逻辑上硬接线以在所述逻辑块发出从存储器读取和向存储器写入的请求时指定所述一个或多个预定存储位置。
10.根据权利要求1至7中的任一项所述的计算机***,其中,所述控制器被配置为向逻辑块提供由第二计算机***标识的逻辑块的当前用户被允许使用的用户特定的存储位置,并且其中,所述逻辑块被配置为在所述逻辑块发出从存储器读取和向存储器写入的请求时指定所述用户特定的存储位置。
11.根据权利要求10所述的计算机***,其中,所述控制器还被配置为验证由逻辑块指定的存储位置匹配于与由第二计算机***标识的逻辑块的当前用户相关联的用户特定的存储位置。
12.根据权利要求10或11所述的计算机***,其中,所述逻辑块被配置为在逻辑块的上电或复位时从控制器请求所述逻辑块被允许使用的用户特定的存储位置。
13.根据权利要求12所述的计算机***,其中,所述逻辑块在逻辑上硬连线以在逻辑块的上电或复位时从控制器请求所述逻辑块被允许使用的用户特定的存储位置。
14.根据前述权利要求中的任一项所述的计算机***,其中,所述控制器包括用于与网络进行通信的网络接口,并且其中,所述控制器被配置为通过第一接口将经由网络接口从网络接收的网络数据发送至逻辑块,并且经由网络接口将通过第一接口从逻辑块接收的网络数据发送至网络。
15.根据权利要求14所述的计算机***,其中,所述控制器被配置为根据由第二计算机***标识的逻辑块的当前用户,对通过第一接口发送到逻辑块和从逻辑块接收的网络数据施加预定的用户特定的网络访问规则。
16.根据权利要求14或15所述的计算机***,其中,所述逻辑块被配置为通过第一接口发送和接收网络数据。
17.根据权利要求14至16中的任一项所述的计算机***,其中,所述逻辑块被配置为根据第一通信协议通过第一接口发出从存储器读取和向存储器写入的请求,并且其中,所述逻辑块被配置为根据第二通信协议通过第一接口发送和接收网络数据。
18.根据权利要求17所述的计算机***,其中,所述第一通信协议和第二通信协议在所述第一接口上被复用。
19.根据权利要求17所述的计算机***,其中,所述第一通信协议经由第二通信协议被隧道化,或者其中,所述第二通信协议经由第一通信协议被隧道化。
20.根据权利要求14或15所述的计算机***,其中,所述逻辑块被配置为通过逻辑块与控制器之间的第二接口来发送和接收网络数据。
21.根据权利要求14至20中的任一项所述的计算机***,其中,所述存储器包括基于网络的存储器,并且其中,所述控制器可以被配置为通过网络接口使用基于网络的存储器完成从存储器读取和向存储器写入的请求。
22.根据前述权利要求中的任一项所述的计算机***,其中,所述逻辑块被配置为在逻辑块的上电或复位时通过第一接口从控制器请求引导指令。
23.根据权利要求22所述的计算机***,其中,所述逻辑块在逻辑上硬连线以在逻辑块的上电或复位时从控制器请求引导指令。
24.根据权利要求9、13和22中的任一项所述的计算机***,其中,所述逻辑块使用以下中的一项或多项而在逻辑上硬接线:ASIC、PLD或只读存储器中存储的指令。
25.根据权利要求22至24中的任一项所述的计算机***,其中,所述控制器被配置为响应于从逻辑块接收到对引导指令的请求而使用由第二计算机***标识的逻辑块的当前用户被允许使用的存储器的一个或多个预定存储位置来完成所述请求,以便向逻辑块提供用户特定的引导指令。
26.根据权利要求22至24中的任一项所述的计算机***,其中,所述控制器被配置为响应于从逻辑块接收到对引导指令的请求而将由第二计算机***提供的预定引导指令提供给逻辑块。
27.根据前述权利要求中的任一项所述的计算机***,其中,所述逻辑块还包括其自己的永久存储器。
28.根据权利要求27所述的计算机***,还包括所述逻辑块与控制器之间的控制连接,其中,所述控制器被配置为使用所述控制连接来上电或复位逻辑块,并且其中,所述控制器被配置为响应于从第二计算机***接收到配置逻辑块以供后续用户使用的指令:
上电或复位逻辑块,以便逻辑块从控制器请求引导指令;
将由第二计算机***提供的预定引导指令提供给逻辑块,所述预定引导指令包括使逻辑块覆盖逻辑块自身的永久存储器而使得逻辑块自身的永久存储器的内容不再能够由逻辑块恢复的指令;
复位逻辑块,以使逻辑块从控制器请求引导指令;以及
使用由第二计算机***标识的逻辑块的当前用户被允许使用的存储器的一个或多个预定存储位置完成从存储器读取和向存储器写入的请求,以便向逻辑块提供用户特定的引导指令。
29.根据权利要求27所述的计算机***,还包括所述逻辑块与控制器之间的控制连接,其中,所述控制器被配置为使用所述控制连接来上电或复位逻辑块,并且其中,所述控制器被配置为响应于从第二计算机***接收到配置逻辑块以供后续用户使用的指令:
上电或复位逻辑块,以便逻辑块从控制器请求引导指令;
将由第二计算机***提供的预定引导指令提供给逻辑块,所述预定引导指令包括使逻辑块覆盖逻辑块自身的永久存储器而使得逻辑块自身的永久存储器的内容不再能够由逻辑块恢复、并还使逻辑块从控制器请求进一步的引导指令集合的指令;
使用由第二计算机***标识的逻辑块的当前用户被允许使用的存储器的一个或多个预定存储位置完成从存储器读取和向存储器写入的请求,以便向逻辑块提供用户特定的引导指令。
30.根据前述权利要求中的任一项所述的计算机***,其中,所述逻辑块被配置为根据存储协议例如eMMC通过第一接口发出从存储器读取和向存储器写入的请求。
31.根据前述权利要求中的任一项所述的计算机***,其中,所述控制器以硬件例如使用FPGA或ASIC来实现。
32.根据权利要求1至31中的任一项所述的计算机***,其中,所述控制器使用形式上能够验证的软件来实现。
33.根据前述权利要求中的任一项所述的计算机***,其中,所述逻辑块除了经由所述控制器之外,没有到计算机***外部的接口。
34.根据前述权利要求中的任一项所述的计算机***,其中,所述存储位置是数据范围,例如字节范围或块范围。
35.根据前述权利要求中的任一项所述的计算机***,其中,所述存储器包括以下中的一个或多个:
经由控制器的网络接口能够访问的一个或多个存储介质;
经由到管理计算机***的通信链路能够访问的一个或多个存储介质;以及
计算机***内的一个或多个存储介质。
36.根据前述权利要求中的任一项所述的计算机***,还包括一个或多个附加的逻辑块,每个附加的逻辑块包括执行指令的一个或多个处理单元,
其中,每个附加的逻辑块被配置为通过相应的逻辑块与控制器之间的相应的专用物理接口发出从存储器读取和向存储器写入的请求,由此所述控制器能够确定所述控制器正在与哪个逻辑块进行通信;
其中,对于附加的逻辑块,所述控制器还被配置为:
从第二计算机***接收标识相应的附加逻辑块的当前用户的信息;以及
从相应的附加逻辑块接收从存储器读取和向存储器写入的请求,并使用由第二计算机***标识的相应的逻辑块的当前用户被允许使用的存储器的相应的预定的存储位置来完成相应的请求。
37.根据前述权利要求中的任一项所述的计算机***,还包括所述第二计算机***。
38.根据权利要求36所述的计算机***,其中,所述第二计算机***被配置为向控制器提供计算机***的多个不同用户中的每一个被允许使用的存储位置。
39.一种被配置用于前述权利要求中的任一项中的控制器。
40.一种操作计算机***的方法,所述计算机***包括控制器和逻辑块,所述逻辑块包括执行指令的一个或多个处理单元,所述方法包括:
由控制器从第二计算机***接收标识逻辑块的当前用户的信息;
由控制器通过第一接口从逻辑块接收从存储器读取和向存储器写入的请求,所述第一接口是逻辑块和控制器之间的专用物理接口,由此所述控制器能够确定通过第一接口的通信是与逻辑块的通信;以及
使用由第二计算机***标识的逻辑块的当前用户被允许使用的存储器的一个或多个存储位置来完成从存储器读取和向存储器写入的请求。
41.一种计算机程序,所述计算机程序当在根据权利要求39所述的控制器上执行时使控制器执行权利要求40的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1800530.6A GB2570143B (en) | 2018-01-12 | 2018-01-12 | Secure sharing of storage resources |
GB1800530.6 | 2018-01-12 | ||
PCT/EP2019/050262 WO2019137876A1 (en) | 2018-01-12 | 2019-01-07 | Secure sharing of storage resources |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111886573A true CN111886573A (zh) | 2020-11-03 |
CN111886573B CN111886573B (zh) | 2024-07-23 |
Family
ID=61256242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980018149.3A Active CN111886573B (zh) | 2018-01-12 | 2019-01-07 | 存储资源的安全共享 |
Country Status (7)
Country | Link |
---|---|
US (1) | US11294581B2 (zh) |
EP (1) | EP3738024A1 (zh) |
JP (1) | JP7244527B2 (zh) |
CN (1) | CN111886573B (zh) |
BR (1) | BR112020014044A2 (zh) |
GB (1) | GB2570143B (zh) |
WO (1) | WO2019137876A1 (zh) |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5077737A (en) * | 1989-08-18 | 1991-12-31 | Micron Technology, Inc. | Method and apparatus for storing digital data in off-specification dynamic random access memory devices |
US6125435A (en) * | 1995-09-13 | 2000-09-26 | Lexar Media, Inc. | Alignment of cluster address to block addresses within a semiconductor non-volatile mass storage memory |
KR20070023514A (ko) * | 2005-08-24 | 2007-02-28 | 히다치 글로벌 스토리지 테크놀로지스 네덜란드 비.브이. | 데이터 기억 장치 및 그 사용자 데이터의 기록 제어 방법 |
CN101165661A (zh) * | 2006-10-19 | 2008-04-23 | 索尼株式会社 | 数据存储装置和数据控制方法 |
GB0909769D0 (en) * | 2009-06-08 | 2009-07-22 | Klarzynski Mark | Method for compartmentalizing data on a block level storage device into defined chunks, storable as files |
CN101546252A (zh) * | 2008-03-25 | 2009-09-30 | 株式会社日立制作所 | 存储装置及其控制方法 |
CN101563676A (zh) * | 2006-12-20 | 2009-10-21 | Lg电子株式会社 | 信息处理设备及其工作方法 |
CN101615106A (zh) * | 2008-06-23 | 2009-12-30 | 国际商业机器公司 | 用于虚拟化sas存储适配器的方法和*** |
CN102063267A (zh) * | 2009-11-13 | 2011-05-18 | 西部数据技术公司 | 包括用于使主机块大小与数据存储装置的物理块大小匹配的映射桥的数据存储*** |
CN102522123A (zh) * | 2011-12-06 | 2012-06-27 | 苏州国芯科技有限公司 | 利用数据产生器模块来提高存储设备读写测试效率的方法 |
US20130074178A1 (en) * | 2011-09-15 | 2013-03-21 | Sandisk Technologies Inc. | Preventing access of a host device to malicious data in a portable device |
US20150334221A1 (en) * | 2014-05-19 | 2015-11-19 | Keolabs | User interface device |
GB201521394D0 (en) * | 2015-12-03 | 2016-01-20 | Garrison Technology Ltd | Secure boot device |
CN106126447A (zh) * | 2015-05-07 | 2016-11-16 | 三星电子株式会社 | 控制存储装置的方法、存储器模块和存储*** |
CN106575271A (zh) * | 2014-06-23 | 2017-04-19 | 谷歌公司 | 管理存储设备 |
US20170285986A1 (en) * | 2016-03-31 | 2017-10-05 | Vinodh Gopal | Secure memory controller |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4692251B2 (ja) * | 2005-12-01 | 2011-06-01 | 株式会社日立製作所 | アクセスを提供するコンピュータシステム及びその管理方法 |
JP5294742B2 (ja) * | 2008-07-14 | 2013-09-18 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 機器の間のアクセスを管理する装置及び方法 |
JP4572250B2 (ja) * | 2008-09-11 | 2010-11-04 | 株式会社日立製作所 | 計算機切り替え方法、計算機切り替えプログラム及び計算機システム |
US20120102564A1 (en) * | 2010-10-25 | 2012-04-26 | Openpeak Inc. | Creating distinct user spaces through mountable file systems |
US8577885B2 (en) * | 2010-12-09 | 2013-11-05 | International Business Machines Corporation | Partitioning management of system resources across multiple users |
US9178886B2 (en) * | 2012-08-29 | 2015-11-03 | Red Hat Israel, Ltd. | Flattening permission trees in a virtualization environment |
WO2014091535A1 (ja) * | 2012-12-10 | 2014-06-19 | 株式会社日立製作所 | 計算機システム及び記憶部の暗号化方法 |
JP2014123254A (ja) * | 2012-12-21 | 2014-07-03 | International Business Maschines Corporation | メディア上のファイルをユーザ単位で分割管理する方法、プログラム、及びストレージ・システム |
-
2018
- 2018-01-12 GB GB1800530.6A patent/GB2570143B/en active Active
-
2019
- 2019-01-07 JP JP2020538615A patent/JP7244527B2/ja active Active
- 2019-01-07 WO PCT/EP2019/050262 patent/WO2019137876A1/en unknown
- 2019-01-07 EP EP19700108.4A patent/EP3738024A1/en active Pending
- 2019-01-07 BR BR112020014044-9A patent/BR112020014044A2/pt unknown
- 2019-01-07 CN CN201980018149.3A patent/CN111886573B/zh active Active
- 2019-01-07 US US16/961,488 patent/US11294581B2/en active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5077737A (en) * | 1989-08-18 | 1991-12-31 | Micron Technology, Inc. | Method and apparatus for storing digital data in off-specification dynamic random access memory devices |
US6125435A (en) * | 1995-09-13 | 2000-09-26 | Lexar Media, Inc. | Alignment of cluster address to block addresses within a semiconductor non-volatile mass storage memory |
KR20070023514A (ko) * | 2005-08-24 | 2007-02-28 | 히다치 글로벌 스토리지 테크놀로지스 네덜란드 비.브이. | 데이터 기억 장치 및 그 사용자 데이터의 기록 제어 방법 |
CN101165661A (zh) * | 2006-10-19 | 2008-04-23 | 索尼株式会社 | 数据存储装置和数据控制方法 |
CN101563676A (zh) * | 2006-12-20 | 2009-10-21 | Lg电子株式会社 | 信息处理设备及其工作方法 |
CN101546252A (zh) * | 2008-03-25 | 2009-09-30 | 株式会社日立制作所 | 存储装置及其控制方法 |
CN101615106A (zh) * | 2008-06-23 | 2009-12-30 | 国际商业机器公司 | 用于虚拟化sas存储适配器的方法和*** |
GB0909769D0 (en) * | 2009-06-08 | 2009-07-22 | Klarzynski Mark | Method for compartmentalizing data on a block level storage device into defined chunks, storable as files |
CN102063267A (zh) * | 2009-11-13 | 2011-05-18 | 西部数据技术公司 | 包括用于使主机块大小与数据存储装置的物理块大小匹配的映射桥的数据存储*** |
US20130074178A1 (en) * | 2011-09-15 | 2013-03-21 | Sandisk Technologies Inc. | Preventing access of a host device to malicious data in a portable device |
CN102522123A (zh) * | 2011-12-06 | 2012-06-27 | 苏州国芯科技有限公司 | 利用数据产生器模块来提高存储设备读写测试效率的方法 |
US20150334221A1 (en) * | 2014-05-19 | 2015-11-19 | Keolabs | User interface device |
CN106575271A (zh) * | 2014-06-23 | 2017-04-19 | 谷歌公司 | 管理存储设备 |
CN106126447A (zh) * | 2015-05-07 | 2016-11-16 | 三星电子株式会社 | 控制存储装置的方法、存储器模块和存储*** |
GB201521394D0 (en) * | 2015-12-03 | 2016-01-20 | Garrison Technology Ltd | Secure boot device |
US20170285986A1 (en) * | 2016-03-31 | 2017-10-05 | Vinodh Gopal | Secure memory controller |
Also Published As
Publication number | Publication date |
---|---|
US20200379658A1 (en) | 2020-12-03 |
GB201800530D0 (en) | 2018-02-28 |
EP3738024A1 (en) | 2020-11-18 |
JP7244527B2 (ja) | 2023-03-22 |
US11294581B2 (en) | 2022-04-05 |
JP2021510871A (ja) | 2021-04-30 |
CN111886573B (zh) | 2024-07-23 |
GB2570143A (en) | 2019-07-17 |
WO2019137876A1 (en) | 2019-07-18 |
GB2570143B (en) | 2020-04-08 |
BR112020014044A2 (pt) | 2020-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI554905B (zh) | 安全防護管理方法、電腦系統以及非暫態電腦可讀取存儲媒體 | |
CN110073355B (zh) | 用于提供安全执行环境的服务器和用于保护服务器上的非易失性存储器中的固件的方法 | |
EP3077951B1 (en) | System and method for supporting host-based and in-band/side-band firmware upgrade of input/output (i/o) devices in a middleware machine environment | |
US9047468B2 (en) | Migration of full-disk encrypted virtualized storage between blade servers | |
US11469964B2 (en) | Extension resource groups of provider network services | |
EP2845346B1 (en) | System and method for secure provisioning of virtualized images in a network environment | |
US9043501B2 (en) | Input/output monitoring mechanism | |
US10972449B1 (en) | Communication with components of secure environment | |
US20100235833A1 (en) | Methods and systems for providing secure image mobility | |
KR20170117565A (ko) | 시스템 계층들 간에 데이터 연산 기능을 분할하는 방법 | |
EP3070633B1 (en) | Network interface devices with remote storage control | |
US11563799B2 (en) | Peripheral device enabling virtualized computing service extensions | |
US10425412B2 (en) | Dynamic generation of key for encrypting data in management node | |
US20210089239A1 (en) | Peripheral device for configuring compute instances at client-selected servers | |
CN111886573B (zh) | 存储资源的安全共享 | |
US11025594B2 (en) | Secret information distribution method and device | |
JP7027664B2 (ja) | ハッキング耐性のあるコンピュータ設計 | |
CN113039757B (zh) | 提供商网络服务扩展 | |
US11805109B1 (en) | Data transfer encryption offloading using session pairs | |
CN115828249A (zh) | 基于云技术的计算节点及基于云技术的实例管理方法 | |
CN116560787A (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 |