管理程序与虚拟机之间的存储器页转换监测的制作方法

文档序号:19128169发布日期:2019-11-13 02:20阅读:133来源:国知局
管理程序与虚拟机之间的存储器页转换监测的制作方法

本申请涉及并要求以下共同未决申请的优先权,其全部内容以引用方式并入本文:2017年3月29日提交的标题为“psp/hvflowswithsnp”的美国临时专利申请序列号62/478,148(代理人案卷号为1458-17temp01-pr)。



背景技术:

在许多处理器应用中,信息的安全性是一个重要特征。例如,处理器可以用在基础设施即服务(iaas)环境中的服务器中,其中处理器执行一个或多个虚拟机(vm),并执行管理程序以在vm之间划分服务器硬件,并将虚拟机彼此隔离。可以代表不同的客户执行不同的vm,因此希望保护每个vm使用的信息(指令和数据)不被其他vm和管理程序访问。然而,管理程序中的缺陷(例如,错误)可能会导致管理程序本身易受攻击,从而允许管理程序或vm访问另一个vm的信息。

附图说明

通过参考附图,可以更好地理解本公开,并且使其许多特征和优点对于本领域技术人员来说是显而易见的。在不同的图中使用相同的附图标记来指示类似或相同的项。

图1是根据一些实施方案的处理系统的框图,该处理系统结合管理程序采用安全模块来验证在vm和管理程序之间转换的存储器页的内容。

图2是示出根据一些实施方案的图1的处理系统的安全模块的示例的框图,该安全模块生成并存储在vm和管理程序之间转换的存储器页的散列。

图3是示出根据一些实施方案的图1的处理系统的安全模块的示例的框图,该安全模块向管理程序分配分配给vm的存储器页的子集。

图4是示出根据一些实施方案的图1的处理系统的安全模块的示例的框图,该安全模块向管理程序分配分配给vm的气球池的存储器页的子集。

图5是示出根据一些实施方案的在vm和管理程序之间转换时,在图1的处理系统的安全模块处验证分配给vm的存储器页子集的内容的方法的流程图。

图6是示出根据一些实施方案的用于向管理程序分配分配给vm的气球池的存储器页的子集的方法的流程图。

具体实施方式

图1至图6示出了用于通过以下操作来保护处理系统的处理器处的安全信息的技术:在处理器的存储器访问路径中采用安全模块,以在存储器页在一个或多个在处理系统的处理器处执行的虚拟机(vm)与管理程序(其在vm与处理系统的硬件之间提供接口)之间转换时验证存储器页的内容。管理程序用于通过为每个vm指派存储器的专用部分并指派处理系统的其他资源以供其私用来隔离vm,所述存储器被划分为称为存储器页的连续块。在一些实施方案中,如果例如管理程序存储器不足,则管理程序可以请求vm将其专用存储器部分的子集转换回到管理程序。管理程序稍后可以例如响应于vm对该存储器子集的请求而将存储器子集返回给vm。然而,管理程序中的错误或者被恶意修改以充当利用工具的管理程序可允许管理程序或另一个vm检查或甚至改变存储器子集中的信息。通过使用本文描述的技术,处理器的安全模块用于在存储器页在一个或多个vm与管理程序之间转换时监测存储器页,使得可能已经被管理程序或其他vm改变的存储器页不能返回到其被转换前的vm。

在一些实施方案中,当管理程序将存储器的一部分分配给vm时,所分配的存储器部分的一个子集被保护(例如,加密),并且所分配的存储器部分的剩余部分(例如,未预期将在一定时间段内由vm使用的存储器,本文称为“过多的存储器”)以未加密的形式存留,例如存留在气球池中。vm尚未向过多的存储器页写入,且因此不会有vm在过多存储器页上存储的信息可能会被管理程序破坏的安全风险。因此,如果有过多的存储器页可用,则管理程序可以使用并返回过多的存储器页,而安全模块不会监测过多的存储器页。通过绕过安全模块的监测,管理程序利用过多的存储器页可以比其使用分配给vm的安全存储器页更有效。

图1示出了根据一些实施方案的支持监测在vm和管理程序之间转换的存储器页的处理系统100。处理系统100包括处理器102和存储器120。处理系统100可以被并入在例如服务器、个人计算机、平板电脑、机顶盒、游戏系统等多种电子装置中的任一个中。处理器102通常被配置为执行指令集(例如,计算机程序),这些指令集操纵处理器102的电路来执行定义的任务。存储器120通过存储处理器102使用的数据来促进这些任务的执行。存储器120可以是随机存取存储器(ram)、非易失性存储器例如快闪存储器或硬盘驱动器(hdd)等,或其组合。

在执行指令集的过程中,处理器102生成存储器访问请求,包括在存储器120处存储数据的写入请求以及从存储器120检索数据的读取请求。每个存储器访问请求都包括指示存储器120处由存储器访问请求所针对的位置的存储器地址(例如,系统物理地址)。响应于读取请求,存储器120检索存储在与读取请求的存储器地址对应的位置处的信息(数据或指令),并将所述信息提供给处理器102。响应于写入请求,存储器120将请求的写入信息存储在对应于写入请求的存储器地址的位置处。

处理器102包括加密模块115。加密模块115是通用处理器、现场可编程门阵列(fpga)、专用集成电路(asic)、处理器核心的操作模式或被设计和配置为执行处理系统100的安全操作的其他模块,安全操作包括要在处理器102处执行的实体的注册(例如,虚拟机、计算机程序等)、用于要执行的实体的安全密钥的生成和识别、用于安全操作的处理系统100的认证等。如本文进一步描述的,加密模块115通过生成安全密钥、识别被注册以在处理系统100处执行的实体以及实现这种密码隔离的其他操作来支持处理系统100处的信息的密码隔离。

为了便于执行指令,处理器102包括一个或多个处理器核心106、高速缓存108、北桥110和安全模块130。尽管图1中仅描绘了单个处理器核心106,但是处理系统100可以包括多个处理器核心。处理器核心106是单独地并同时执行指令的处理单元。在一些实施方案中,处理器核心106中的每一个包括个别指令流水线,所述个别指令流水线提取指令、将所提取的指令解码为对应的操作并且使用处理系统100的资源来执行包括存储器访问请求的操作。处理器核心106中的每一个被配置为将每一存储器访问请求识别为以下两种类型中的一种:安全存储器访问请求,其指示对应于存储器访问请求的信息被指定用于密码保护;或者非安全存储器访问请求,其指示对应于存储器访问请求的信息未被指定用于密码保护。

在一些实施方案中,处理系统100实现安全方案,其中基于对应于信息存储在存储器120中所在位置或对应于信息的类型(例如,指令或数据)的存储器地址所带的控制位来指派信息的安全性指定(信息是否将被加密保护)。这允许将大量数据集合轻松地分类为安全信息,从而提供有效的信息保护。例如,在一些实施方案中,控制位是由处理系统100设定,以便将特定类型的信息,例如指令信息,或提供虚拟地址到存储器120的物理地址的映射的页表信息,指定为安全信息,从而以加密方式保护该信息,如下面进一步描述的。指派给数据的地址的控制位可以基于例如在处理器102处执行的程序所请求的指定,以更细粒度的方式来指定。该安全方案提供对关键数据的保护(例如,防止虚拟机或其程序的未授权执行),同时仍为更通用的数据提供灵活性。

在一些实施方案中,由于基于信息的对应存储器地址来指定指派给信息的安全类型,因此处理系统100使用页表本身来指示每个存储器地址的安全类型。因此,处理器核心106在识别对应于存储器访问请求的存储器地址的过程中识别存储器访问请求的类型。特别地,如果存储器地址被指示为存储安全信息,则对应的存储器访问被识别为安全存储器访问。类似地,如果存储器地址被指示为存储非安全信息,则对应的存储器访问被识别为非安全存储器访问。

高速缓存108是存储在存储器120处存储的信息子集的存储器装置,由此使处理器核心106快速地访问相应的信息子集。尽管图1中仅描绘了单个高速缓存108,但是应理解,处理系统100可以包括多个高速缓存,包括驻留在处理器102的存储器层级的不同级别的不同高速缓存。高速缓存108接收存储器访问请求并识别其存储阵列(图1中未示出)是否存储了存储器访问请求所针对的信息。如果是,则高速缓存108指示高速缓存命中并且在存储阵列处满足存储器访问请求。如果高速缓存108不存储目标信息,则其指示高速缓存未命中并将存储器访问请求提供给北桥110。

在图1所示的示例中,处理系统100的存储器访问路径使得高速缓存108以未加密的形式存储信息,包括安全信息。因此,在一些实施方案中,高速缓存108针对给定大小的每个存储位置(例如,高速缓存行),存储识别特定程序或被授权访问该存储位置处的信息的其他实体(例如,vm)的实体标签信息。响应于对存储阵列的位置的存储器访问,高速缓存108将生成存储器访问请求的实体的身份与实体标签信息进行比较,并且响应于不匹配,指示高速缓存未命中,从而防止对信息的未授权访问。

北桥110是存储器控制器,其提供供处理器102与存储器120通信的接口。在一些实施方案中,北桥110可以执行其他功能,例如与输入/输出控制器(例如,南桥,未示出)连接,以及提供不同处理器核心106之间的接口。在其作为存储器控制器的身份下,北桥110从高速缓存108接收存储器访问请求,并控制向存储器120提供这些请求。另外,北桥110从存储器120接收对存储器访问请求的响应并且控制向高速缓存108提供响应。在一些实施方案中,北桥110可以从处理系统100的输入/输出装置(未示出)接收存储器访问请求(例如,直接存储器访问请求),并且控制向存储器120提供所述请求。

为了提供信息的密码隔离,北桥110包括加密模块115,加密模块115被配置为根据指定的密码标准并且基于密钥116、118将信息加密和解密。在一些实施方案中,加密模块115被配置为采用高级加密标准(aes)加密和解密,但是在其他实施方案中,加密模块115可以采用其他加密/解密技术。响应于接收到写入请求,北桥110识别所述请求是安全存储器访问请求还是非安全存储器访问请求。如果写入请求是非安全存储器访问请求,则北桥110绕过加密模块115,并向存储器120提供写入请求,而不加密要写入的信息。如果写入请求是安全存储器访问请求,则北桥110识别指派给生成了存储器访问请求的实体(例如程序、vm、软件服务等)的密钥116、118中的一个。在一些实施方案中,安全模块130基于当前正在处理器102处执行哪个实体来识别要选择的密钥。加密模块115采用选定的密钥来加密要写入的信息,并将写入请求与加密的信息一起提供给存储器120以供存储。在一些实施方案中,加密模块115使用选定的密钥和存储器访问请求的物理地址两者来加密和解密对应的信息,由此防止块移动攻击。在一些实施方案中,加密模块115基于处理器102处的控制位(未示出)的状态来识别是否使用物理地址进行加密和解密。控制位状态可以由安全模块130设定。

响应于接收到读取请求,北桥110将所述请求提供给存储器120,并随后接收响应于所述请求的信息。如果北桥110将读取请求识别为非安全存储器访问请求,则其绕过加密模块115,并将读取的信息提供给高速缓存108而不加密。如果北桥110将读取请求识别为安全存储器访问请求,则其识别指派给生成了读取访问请求的实体的密钥116、118中的一个,并且加密模块115解密读取的信息。北桥110将解密的读取信息提供给高速缓存108以供存储。在一些情况下,北桥110可以绕过向高速缓存108提供信息,并将解密的读取信息直接提供给生成了对应的读取访问请求的处理器核心。

管理程序152被配置为通过为每个vm指派存储器的专用部分并指派处理系统的其他资源以供其私用来隔离vm(vm-a150、vm-b151)。每个vm150、151都为一个或多个虚拟处理器提供安全且隔离的硬件仿真环境,由此每个虚拟处理器都执行对应的访客操作系统(os)(未示出)。每个访客os/虚拟处理器以及管理程序152都具有相关联的地址空间。通常使用特定识别符(本文称为“worldid”)来识别每个访客os,并且使用本文称为“地址空间识别符”或“asid”的特定识别符来识别由访客os管理的较低级地址空间。

指派给每个vm的地址空间可以被指定为存储安全信息(例如,安全地址空间vm-a122、安全地址空间vm-b126)。在一些实施方案中,指派给每个vm的地址空间还可以包括未指定用于安全信息的过多存储器,并且保存在气球池(例如,vm-a气球池124、vm-b气球池128)中。气球池124、128是物理或虚拟存储器地址空间,其保存指派给vm的过多存储器,预期所述过多存储器在给定时间段内不被对应的vm写入,或者对应的vm认为所述过多存储器不太有价值。在一些实施方案中,如果例如管理程序152本身或另一vm需要额外的存储器,则管理程序152可以请求vm将其专用存储器部分的子集转换回到管理程序152。管理程序152稍后可以例如响应于vm对该存储器子集的请求而将存储器子集返回给vm。

为了促进管理程序152与vm150、151之间的存储器的安全转换,安全模块130被配置为在存储器页在管理程序152与vm150、151之间转换时选择性地监测存储器页。在启动vm时,管理程序152将存储器分配给vm150、151,为给每个vm分配的存储器指定物理地址和asid。在一些实施方案中,管理程序152维护指示给每个vm分配的存储器的物理地址和asid的日志(未示出)。管理程序152另外还将分配的存储器指定为不可变的。在一些实施方案中,管理程序152通过设定存储在日志中的与分配的存储器相关联的不可变位来将所分配的存储器指定为不可变的。在管理程序152向vm150、151分配存储器之后,管理程序152用信号通知加密模块115加密每个vm150、151在其相应分配的存储器122、126处存储的数据和指令,并且通知安全模块130进行测量。在一些实施方案中,安全模块130在vm启动时生成并存储离线加密密钥,所述离线加密密钥是每个vm所独有的随机密钥。在一些实施方案中,在存储在每个vm的分配的存储器处的数据已经由加密模块115加密并且由安全模块130进行测量之后,安全模块130指示存储加密和测量的数据的存储器已被验证(例如,通过在管理程序152维护的日志中设定与存储器相关联的已验证位),并清除不可变位。验证指示向vm发信号通知,vm可以向存储加密和测量数据的存储器写入。

如果管理程序152请求vm150、151从vm的地址空间122、126的安全页域向管理程序152转换(“换出”或在dram与例如磁盘的另一存储介质之间移动)一个或多个存储器页,则安全模块130测量特征,包括要被换出的一个或多个存储器页的散列,例如存储器页的物理存储器地址范围、一个或多个存储器页的明文、随机数,以及与一个或多个存储器页相关联的元数据。安全模块130存储测量值,并将所请求的一个或多个存储器页提供给管理程序152。在一些实施方案中,管理程序152还存储所测量的特征,例如存储器页的物理存储器地址范围、一个或多个存储器页的密文、随机数,以及与一个或多个存储器页相关联的元数据。

当管理程序152随后发信号通知它已准备好将一个或多个存储器页返回(“换入”,或将页带回到dram)到管理程序152从其中转换了存储器页的vm150、151时,管理程序152将所存储的测量特征提供给安全模块130。安全模块130检索所存储的一个或多个存储器页的散列,并将换出的存储器页的测量特征与管理程序152正换入的一个或多个存储器页的特征进行比较。如果换出的存储器页的测量特征与换入的存储器页的特征匹配,则安全模块130允许管理程序152将存储器页返回到vm150、151。如果换出的存储器页的测量特征与返回的存储器页的特征不匹配,则安全模块130阻止管理程序152将存储器页返回到vm150、151。以这种方式,安全模块130防止管理程序152将修改的存储器页换入到vm150、151。

在一些实施方案中,如果管理程序152请求vm150、151将一个或多个存储器页从其气球池124、128换出到管理程序152,则安全模块130绕过测量存储器页的特征,并允许管理程序152在没有安全监测的情况下将存储器页直接从气球池124、128换出到管理程序152。由于存储在气球池124、128处的存储器页是过多的,未使用或不太有价值的存储器,因此这样的存储器页不需要安全模块130对其内容进行验证。

根据一些实施方案,图2示出了图1的处理系统100的安全模块230的示例,其生成并存储在vm250和管理程序252之间转换的存储器页240的散列245。在所描绘的示例中,管理程序252请求分配给vm-a250的存储器的一部分。当在vm-a250和管理程序252之间转换存储器页时,安全模块230验证存储器页240的内容。安全模块230包括安全模块存储器235,其被配置为存储由管理程序252换入换出的存储器页的测量特征。

在操作中,管理程序252从vm-a250请求额外的存储器240。在从管理程序252接收到请求时,安全模块230验证一个或多个所请求的存储器页240被验证并分配给vm-a250。在一些实施方案中,安全模块230读取和解密存储在存储器页240的页数据、生成随机数,并使用在vm启动时生成的离线加密密钥(未示出)来重新加密页数据。安全模块230测量存储器页240的特征(称为存储器页散列)245,并将存储器页散列245存储在安全模块存储器235中的vm-a250的页交换列表(未示出)中。在一些实施方案中,存储器页散列245是随机数、重新加密的数据和页元数据的散列。在一些实施方案中,安全模块230在由管理程序252维护的日志(未示出)中,将换出的存储器页240标记为“并非有效”或“无效”,从而指示存储器分配给vm。通过将换出的存储器页240标记为无效,安全模块230向vm-a250指示,换出的存储器页不可用于vm-a250写入。这防止管理程序252(或管理程序252向其分配换出的存储器页的另一个vm)和vm-a250同时向同一存储器页写入。在一些实施方案中,安全模块230将重新加密的数据、随机数、页元数据和存储器页240的散列提供给管理程序252,并将存储器页240提供给管理程序252。

当管理程序252随后请求换入存储器页240时,管理程序252将重新加密的数据、随机数、页元数据和存储器页240的散列提供给安全模块230。安全模块230计算由管理程序252提供的换入的存储器页240的重新加密的数据、随机数和页元数据的散列,并将计算的散列与存储的散列245进行比较。如果计算出的散列和存储的散列245不匹配,则安全模块230拒绝换入存储器页240的请求。如果计算出的散列和存储的散列245匹配,则安全模块230允许管理程序252换入存储器页240,并将存储器页240返回到vm-a250。

图3是示出根据一些实施方案的图1的处理系统100的安全模块330的示例的框图,该安全模块将分配给vm-a350的存储器页340的子集342分配给管理程序352。在所描绘的示例中,安全模块330包括加密模块315。在一些实施方案中,加密模块315可以与安全模块330分离。

在启动vm-a350时,管理程序352将存储器页340分配给vm-a350。存储器页340存储在存储器320的指定存储器安全地址空间vm-a322中。管理程序352调用安全模块330以使用加密密钥-a316来加密vm-a350写入到存储器页340的数据,并生成与vm-a350唯一相关联的离线加密密钥-b319。当管理程序352请求存储器页340的子集342时,安全模块330读取和解密存储在存储器页子集342中的页数据、生成随机数,并使用在启动vm时生成的离线加密密钥-b319来重新加密页数据。安全模块330计算随机数、重新加密的数据和页元数据的散列,并将散列与vm-a350换出的页的交换列表(未示出)一起存储。

图4是示出根据一些实施方案的图1的处理系统100的安全模块430的示例的框图,该安全模块向管理程序452分配分配给vm-a450的气球池424的存储器页子集442。在所描绘的示例中,存储器420包括:被设计用于存储vm-a450的安全信息的部分422;和气球池424,所述气球池被分配给vm-a450,用于存储预期在一定时间段内不被写入或被vm-a450认为不太有价值的过多存储器页。

当管理程序452请求存储在vm-a气球池424处的存储器页子集442时,安全模块430绕过加密、计算和存储存储器页子集442的散列。由于vm-a450未使用或认为存储器页子集442不太有价值,因此管理程序452可以将存储器页换入换出vm-a气球池424,而不调用安全模块430的保护以防止修改存储器页子集442。

图5是示出根据一些实施方案的方法500的流程图,该方法用于在vm-a150和管理程序152之间转换时,在图1的处理系统的安全模块130处监测分配给vm-a150的存储器页子集。在框502处,管理程序152将多个存储器页分配给虚拟机150。在框504处,加密模块115利用第一密钥116来加密由vm-a150写入到的多个存储器页。在框506处,安全模块130接收来自管理程序152的针对分配给vm-a150的存储器页子集的请求。在框508处,安全模块在vm-a150处将所请求的存储器页子集指定为无效。在框510处,安全模块用第二密钥来加密所请求的存储器页子集。在框512处,安全模块130测量并存储所请求的存储器页子集的特征。在框514处,安全模块130将所请求的存储器页子集提供给管理程序152。

在框516处,安全模块130接收来自管理程序152的请求将存储器页子集返回到vm-a150的信号。在框518处,安全模块130将存储的存储器页子集的所测量的特征与管理程序152正返回的存储器页的特征进行比较。如果所存储的存储器页子集的测量特征与管理程序152正返回的存储器页的特征匹配,则在框520处,安全模块将存储器页的子集提供给vm-a150。如果存储器页子集的存储的测量特征与管理程序152正返回的存储器页的特征不匹配,则在框522,安全模块130通过拒绝换入存储器页子集的请求,来防止管理程序152向vm-a150提供存储器页的子集。在一些实施方案中,响应于存储的测量特征与管理程序152正返回的存储器页的特征不匹配,安全模块130将拒绝用vm-a150的密钥来解密和重新加密存储器页子集的请求。以这种方式,安全模块130通过限制管理程序152使用vm-a150的密钥换入,来防止管理程序152换入用vm-a150的密钥加密的数据。因此,如果存储的测量特征与管理程序152正试图返回的存储器页的特征不匹配,则安全模块130不允许存储器页的子集返回到vm-a150的安全页域。

图6是示出根据一些实施方案的用于将分配给vm-a150的气球池124的存储器页子集分配给图1的处理系统100的管理程序152的方法600的流程图。在框602处,管理程序152将存储器页分配给vm-a150。在框604处,管理程序指定用于与vm-a150相关联的安全地址空间122的第一存储器处的所分配的存储器页的第一子集。在框606处,管理程序指定与vm-a150相关联的气球池124处的所分配的存储器页的第二子集。在框608处,安全模块130接收来自管理程序152对气球池124中的存储器页的请求。在框610处,安全模块130将来自气球池124的至少一个存储器页提供给管理程序152。在框612处,安全模块130接收来自管理程序152的将至少一个存储器页返回到vm-a150的信号。在框614处,安全模块130将至少一个存储器页返回到vm气球池124。

在一些实施方案中,上文描述的技术的某些方面可以由执行软件的处理系统的一个或多个处理器来实现。软件包括存储或以其他方式有形地体现在非暂时性计算机可读存储介质上的一个或多个可执行指令集。软件包括指令和某些数据,所述指令和某些数据在由一个或多个处理器执行时操纵一个或多个处理器来执行上文所述技术的一个或多个方面。非暂时性计算机可读存储介质可以包括例如磁盘或光盘存储装置、固态存储装置例如快闪存储器、高速缓存、随机存取存储器(ram)或者一种或多种其他非易失性存储器装置等等。存储在非暂时性计算机可读存储介质上的可执行指令可以是呈源代码、汇编语言代码、对象代码或者由一个或多个处理器解释或以其他方式可执行的其他指令格式。

计算机可读存储介质可以包括在使用期间可由计算机系统访问以向所述计算机系统提供指令和/或数据的任何存储介质或存储介质的组合。这种存储介质包括但不限于:光学介质(例如,压缩盘(cd)、数字通用盘(dvd)、蓝光盘)、磁性介质(例如,软盘、磁带或磁性硬盘驱动器)、易失性存储器(例如,随机存取存储器(ram)或高速缓存)、非易失性存储器(例如,只读存储器(rom)或快闪存储器)或基于微机电系统(mems)的存储介质。计算机可读存储介质可以嵌入计算系统(例如,系统ram或rom)中,固定地附接到计算系统(例如,磁性硬盘驱动器),可移除地附接到计算系统(例如,光盘或基于通用串行总线(usb)的快闪存储器),或者经由有线或无线网络(例如,网络可访问存储装置(nas))耦合到计算机系统。

应注意,并不需要上文在一般描述中描述的全部活动或元件,可能不需要特定活动或装置的一部分,并且可以执行除了所描述那些之外的一个或多个其他活动,或者包括其他元件。更进一步地,列出活动的顺序不一定是其被执行的顺序。另外,已经参考具体实施方案描述了概念。然而,本领域普通技术人员认识到,在不脱离如所附的权利要求所阐述的本公开的范围的情况下,可以进行各种修改和改变。因此,说明书和附图应被视为具有说明性的而不是限制性的意义,并且所有这些修改意在被包括在本公开的范围内。

上文已经关于具体实施方案描述了益处、其他优点和问题的解决方案。然而,益处、优点、问题的解决方案以及可能导致任何益处、优点或解决方案发生或变得更明显的任何特征都不应被解释为任何或所有权利要求的关键、必需或本质特征。此外,上文公开的特定实施方案仅仅是说明性的,因为所公开的主题可以受益于本文教示的本领域技术人员明白的不同但等效的方式进行修改和实践。除了在所附权利要求中所描述的之外,无意限于本文示出的构造或设计的细节。因此,显而易见的是,上文公开的特定实施方案可以被更改或修改,并且所有这种变化都被认为在所公开的主题的范围内。因此,本文寻求的保护如所附权利要求中所阐述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1