CN110968871A 用于使用信任域的安全的存储器访问的装置和方法 (英特尔公司)_第1页
CN110968871A 用于使用信任域的安全的存储器访问的装置和方法 (英特尔公司)_第2页
CN110968871A 用于使用信任域的安全的存储器访问的装置和方法 (英特尔公司)_第3页
CN110968871A 用于使用信任域的安全的存储器访问的装置和方法 (英特尔公司)_第4页
CN110968871A 用于使用信任域的安全的存储器访问的装置和方法 (英特尔公司)_第5页
已阅读5页,还剩97页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

用于使用信任域的安全的存储器访问的装本发明涉及用于使用信任域的安全的存储用在第一组页表和第二组页表中的安全查找来并且执行电路用于执行指令中的第二或第二多条指令,以将第一进程地址空间标识符(PASID)2执行电路,用于执行所述指令中的第一指令或第一多条指钥建立第一受信任域,所述受信任域密钥用于对所述第一受信任域内的存储器页进行加所述执行电路用于执行所述指令中的第二指令或所述地址转换电路用于使用唯一地标识所述第一受信任域的第一受信任域标识符来4.如权利要求2或3所述的装置,其特征在于,所述执行电路用三指令或第三多条指令以将所述第一受信任域8.如权利要求7所述的装置,其特征在于,所述9.如权利要求8所述的装置,其特征在于,所述地址转换电路一部分来标识PASID目录中的条目,并用于使用与所述PASID目录中的条目组合的所述使用第一受信任域密钥建立第一受信任域,将第一进程地址空间标识符PASID与所述第一受信12.如权利要求11所述的机器可读介质,进一步包括使所述机器执行以下操作的程序3使用唯一地标识所述第一受信任域的第一受信任域标识符来标识第二组一个或多个设备值和/或所述功能值来标识所述第一上下文表中的条目,所述条目用于标识所述PASID的第一部分来标识PASID目录中的条目,并用于使用与所述PASID目录中的条目组合PASID表中的条目来标识所述第一组一用于使用所述第一组一个或多个转换表将宾客虚拟地址转换为宾客物理地址的装置;用于使用唯一地标识第一受信任域的第一受信任域标识符来标识第二组一个或多个4理在物理主机之上的虚拟化环境的操作。VMM是在虚拟化环境和虚拟化实现背后的主要软VMM还提供了集中式接口,以用于管理安装在单个主机上或跨不同且经互连的主机而散布[0003]为了实现机密和/或受保护的VM执行,还必须保护主机的存储器和运行时处理器用的VMM经由使用扩展页表(EPT)对存储器地址空间执行页重新映射攻击来改变VM使用的[0005]图1A是示出根据一个实现方式的使用信任域在虚拟化系统中提供隔离的示例计[0006]图1B是示出根据一个实现方式的使用信任域在虚拟化系统中提供隔离的另一示5[0031]如在本公开中所预期,本发明的实施例包括称为受信任域扩展(TDX)的处理器安[0032]实施例包括称为安全扩展页表(SEPT)的附加扩展页表(EPT)结构,该附加扩展页表(EPT)结构由处理器用于TD私有页遍历。SEPT是逐TD的EPT(即,每个TD具有其自身的[0033]在典型的VM实现中,处理器针对每个虚拟存储器控制结构(VMCS)支持一个EPT指之间的执行上下文的每次更改,针对当前VM恢复VMCS,从而定义VM的虚拟处理器的状态。[0035]页未命中处置器(PMH):处理器支持称为(指向当前正被访问的SEPT)受信任域6[0036]用于管理SEPT的指令集架构(ISA):处理器支持一组指令以安全地允许TDRM操纵到主机物理地址(HPA)映射(和GPA属性)。该ISA使得使用用于以下操作的指令的SEPT管理[0037]解决EPT重新映射攻击是从用于TDX的受信任计算基础(TCB)移除管理程序以满足过利用由云服务提供方(CSP)提供的托管服务将数据和企业工作负载放置在云中。作为在云中托管数据和企业工作负载的结果,CSP的消费者(本文中称为租户)正在为其工作负载中称为TD扩展(TDX))以为在不受信任的CSP基础结构中执行的消费机(租户机)软件提供机加密(MKTME)引擎的存储器加密,2)资源管理能力,在本文中称为受信任域资源管理器(TDRM)(TDRM可以是虚拟机监视器隔离能力,其经由CPU管理的存储器所有权表(MOT)并经由CPU访问控制的TD控制结构来个专用加密密钥用于对与受信任域相关联的(保持代码和/或数据的)存性和重放控制而无权访问TD的存储器状态。在TD中执行的软件以降低的特权操作,使得[0042]用于在虚拟化系统中提供隔离的传统系统不完全从租户机的TC提取CSP软件。此7TCB。本公开的实现方式的TD架构通过从TCB移除CSP软件来明确地减少TCB以提供消费机的实现方式允许软件在不损害平台安全性要求的情况下利用性能益处(诸如,用于SCM的持多个客户端设备101A–101C。虚拟化服务器110包括执行TDRM180的至少一个处理器112个TD190A-190C实例化,这一个或多个TD190A-190C经由网络接口170可由客户端设备视图的示意性框图,该TDRM180与MOT160和一个或多个信任[0046]计算系统100代表基于可从美国加利福尼亚州圣克拉拉市的英特尔公司获得的微处理设备的处理系统,不过也可使用其他系统(包括具有其他微处理设备的PC、工程工作公司获得的WINDOWSTM操作系统的某个版本,不过也可使用其他操作系统(例如,UNIX和8[0048]虚拟化服务器110包括主存储器114和次级存储118,以存储程序二进制文件和OS理存储器地址的集合。虚拟化服务器110可以采用虚拟存储器管理,在该虚拟存储器管理中,由(多个)核120运行的诸如TD190A–190C之类的应用使用被映射到宾客物理存储器地址的虚拟存储器地址,并且宾客物理存储器地址通过MMU140被映射到主机/系统物理地[0049]核120可以执行MMU140以将来自次级存储118的页加载到主存储器114中(该主存运行的软件更快地访问。当TD190A-190C中的一个试图访问与被加载到主存储器114中的执行TDRM180的VMM部分以将宾客物理地址转换为主存储器的主机物理地址,并且为允许TD控制结构(即,TDCS124和TDTCS128)提供的处理器112中的执行状态和存储器隔离能190C的安全操作。物理存储器和I/O资源分配给TD190A-190C,但是由于单独的加密密钥以及对存储器的其[0052]关于单独的加密密钥,处理器可以利用MK-TME引擎145对在执行期间使用的存储可以利用加密密钥在存储器中被加密。MK-TME是对允许使用多个加密密钥(所支持的密钥数量取决于实现方式)的TME的增强。处理器112可以利用MKTME引擎145以使得使用不同的针对每个TD190A-190C的一个或多个加密密钥,从而帮助实现不同的CSP消费机工作负载主控的)应用软件组成的软件栈的软件环境。每个TD190A-190C独9[0054]本公开的实现方式不限于计算机系统。本公开的替代实现方杂指令集计算机(CISC)微处理设备、精简指令集计算(RISC)微处理设备、超长指令字储118)之间传输数据信号。计算系统100的其他组件可包括图形加速器、存储器控制器中处理器112可以具有单个内部高速缓存或多级的内部高速缓存。其他实现方式包括内部高112包括用于存储微代码的微代码(ucode)ROM,该微代码在被执行时将执行用于某些宏指114存储指令和/或数据,这些指令和/或数据由用于由处理器112执行的数据信号来表示。处理器112经由处理设备总线而耦合至主存储器114。诸如存储器控制器中枢(MCH)之类的设备总线、存储器114与系统I/O之间桥接数据信号。MCH可通过存储器接口耦合至存储器[0059]计算系统100也可以包括I/O控制器中枢(ICH)。ICH可经由本地I/O总线来提供到存储、包括用户输入和键盘接口的传统I/O控制器、串行扩展端口(诸如,通用串行总线[0060]对于系统的另一实现方式,由如上所述的处理设备核120执行的指令可与芯片上[0064]TDX还为被称为TDRM180的TD架构的TD管理层提供编程接口。TDRM可以实现为[0066]图2A是描绘实现TD架构200的示例计算系统的框图。TD架构200支持两种类型的TD。第一类型的TD是在其中租户机信任CSP以实施机密性并且不实现本公开的实现方式的VM216B仍然可以经由该模型中的TME或MK-TME来[0067]另一种类型的TD是在其中租户机不信任CSP以实施机密性并且因此依赖于具有本公开的实现方式的TD架构的CPU的TD。这种类型的TD以两种变体被示出为TD2220和TD3TD2220或TD3230可以与关于图1A和/或图1B描[0069]图2B是描绘TD架构250的示例以及TD220与TDRM180之间的交互的框图。理在系统上活跃的TD的生命周期的层。对TD的处理器支持由被称为TDX操作的处理器操作[0072]TDX租户机操作中的处理器行为类似地被限制以促进隔离。例如,与普通操作不[0073]TD架构250被设计成用于使对当在TD220中运行时依赖于虚拟化的软件的兼容性VMOS修改为与TDRM180一起作为根VMM的唯一加密密钥(下面进一步讨论)来加密TD220的执行状态,TD220的该唯一的加密密钥器使用经分配而仅供TDRM180使用的唯[0076]诸如TD220之类的TD可以由TDRM180使用(用于创建TDCS的)TDCREATE、(用于创建TD-TCS的)TDTCREATE和TDADDPAGE指令来建立,这些指令使得属于TD220的存储器使用TD的唯一加密密钥被加密,该TD的唯一加密密钥对于TDRM180或其他TD不可见或不可访在TD220中执行的IBB软件来负责完成TD220的测量的启动并负责从TDRM180请求附加资针对不同的租户机VM225A、租户机VM225B(和/或容器或诸如NVRAM之类的不同存储器资TME密钥。此后,TD220可以可选地为在TD220内部操作的每个租户机软件管理的上下文要具有对驻留在所分派的TD存储器中的数据的任何可见性的情况下完全能够将存储器作包括代码/数据308,该代码/数据308可以包括对一个或多个宾客虚拟地址(GVA)310的引[0081]图5示出了宾客物理地址(GPA)空间的示例分区。TD架构将用于宾客物理存储器316的宾客物理地址空间502分区为两个部分–私有地址空间504和共享地址空间506。对被GPA的另一预定位可用于指示共享状态还是存储的受信任域控制结构(TDCS)124指定的)指向该EPT的指针(EPTP)325可由处理器112的[0083]本发明的实施例引入了可由处理器112硬件构建和管理的一个或多个安全EPT=0的GPA)时观察到任何EPT违规,则EPT违规退出资格报告由于SEPT336中的EPT违规而发[0088]由于SEPT336由处理器构建和管理,因此TDRM180(或传统VMM)不能影响[0089]返回到图3,物理地址(PA)跟踪器组件342(也称为物理地址元数据表(PAMT)是由命周期涵盖了用于TD存储器管理的所有ISA和硬件交互。在框702处,可以构建受信任域令)添加SEPT页和映射;(通过使用TDADDPAGE和TDEXTEND指令)将页添加到具有测量的TD;以及(通过使用TDAUGPAGE指令)将多个零使用触发上述PMH140行为)可以包括用于以下各项的操作:(通过使用TDBLOCKPAGE、TDREMOVEPAGE指令进行的)对SEP[0094]TDADDSEPT802该指令将GPA1于将GPA转换为HPA的映射,但是将映射设置为被阻止访问。仅当使用TDADDPAGE或面描述的CreatMapping(创建映射)微指令来更新190A现在可以访问这些页。该指令使用下面描述的AssignMapping(分派映射)和UnblockMapping(解除阻止映射)微指令来更新SEPT[0096]TDAUGPAGE806该指令类似于TDADDPAGE,但是该指令不是将初始内容复制到页中,而是将页初始化为零。该指令使用下面描述的AssignMapping(分派映射)和UnblockMapping(解除阻止映射)微指令来更新SEPT[0097]TDBLOCKPAGE808该指令将指定页的SEPT334映射更新为阻止状态,使得不再能够从TD190A访问该页。该指令使用下面描述的BlockMapping(阻止映射)微指令来更新[0098]TDEVICTPAGE810该指令将指定页的SEPT334映射更新为阻止状态,使得不再能据传递给以下所描述的AssignMapping(分配映射)和UnblockMapping(解除阻止映射)微[0100]TDPROMOTE814由TDRM180使用该指令以将4k的页TDEVICT/TDRELOAD4k到存储[0101]TDDEMOTE816由TDRM使用该指令以将大页分割成较小页的连续区域以使TLB映射可以由用于EPT122页的类似的TDMAPPINGEVICT和TDMAPPINGRELOA一个HPA161目的地(没有源)被映射,从而添加SEPT页并且插入映射。处理器112验证GPA钥ID来执行一系列MOVDIR64操作以清除SEPT页目录条目(PDE)/页表条目(PTE)页(有效地处理器读取-修改-写入具有经修改的扩展页目录/表(x)高速缓存条目(EPxE)的高速缓存源页的有效地址和目的地HPA161作为输入参数。处理器112验证GPA166不具有经设置的应当使用TDADDSEPT来修复该错误)。如果页遍历成功完成,则处理器检查映射是否被标记数。修改-写入以修改EPTE以将其标记为存在(即,解除阻止)。在实施例中,可以将AssignMapping和UnblockMapping微指令组合以优化操作。则处理器检查映射是否被标记为不存在(即,被阻止状态)。处理器经由9个EPxE可用位对处理器停止/需要更多页时返回错误(然后TDRM应当使用TDADDMAPPING指令来修复该错检查叶EPTE页尺寸应当大于期望的(较小的)尺寸,并且对EPTE的第二HPA和目的地大页的于剩余的片段,处理器使用AssignMapping和UnblockMapping微指令(使用距GPA的偏移和第三HPA3)来更新与通过先前步骤中的CreateMapping微指令建立的PTE页中的每个片理设备980包括P-P接口986和988。处理设备970、980可以经由使用点对点(P-P)接口电路接口952和954来与芯片组990交换信息。芯片组990还可经由高性能图形接口939来与高性处理设备或这两个处理设备的本地高速缓存信息可被存储在共享高速缓存中。芯片组990(PCI)总线或诸如PCI快速总线或另一第三代I/O互连总线之类的总线,但是本公开的范围数据930的盘驱动器或其他大容量存储设备。此外,音频I/O924可以被耦合至第二总线[0119]图11是可包括核1102中的一个或多个的示例芯片上系统(SoC)。本领域中已知的备1120,其可包括集成图形逻辑1108、用于提供静止和/或视频相机功能的图像处理设备[0123]互连1211提供到其他组件的通信信道,其他组件诸如用于与用户身份模块(SIM)[0125]图13示出了以计算系统1300的示例形式的机器的示意图,在该计或者能够执行指定将由该机器执行的动作的一组指令(顺序的或以其他方式)的任何机器。等。更具体地,处理设备可以是复杂指令集计算(CISC)微处理设备、精简指令集计算机算系统1300还可以包括视频显示单元1310(例如,液晶显示器(LCD)或阴极射线管(CRT))、出),芯片组是指被设计为与处理设备1302一起协作并控制处理设备1302与外部设备之间的执行期间,软件1326也可完全或至少部分地作为指令1326驻留在主存储器1304内和/或[0130]计算机可读取存储介质1324也可以用于利用诸如参考图1所描述的处理设备1302或承载由机器执行并且使该机器执行实现方式的方法中的任何一种或多种方法的一组指逻辑器件。例如,所公开的实现方式不仅限于台式计算机系统或便携式计算机,诸如,页表1420检取的地址,VM/TD使用其域ID1405来访问第二级页表1430(例如,使用上述技TD域可以被分派0到N个设备功能(b/d/f),而直接被分配的设备fn可以被分派给仅一DMA事务可以可选地携带PASID,该PASID标识设备中的唯一IO上下文。如果事务不携带1525,1535由PASID的低6位受信任DMA请求的访问控制。当通过由VMM建立的数据结构对不受信任的设备执行遍历时,IOMMU实施此操作。那些数据结构和作为遍历那些数据结构的结果而获得的最终物理地址任设备OS管理页表1603和微代码管理[0146]IOMMU1601需要知晓受信任的根表地址,并且为此,第二根指针二树状数据结构来编程以主控用于被分派给信任域的受信任设备的映射。在一个实施例被配置就写入一次并被锁定。TRUSTED_IOMMU_BAR还包含一组TRUSTED_INVALIDATION_REGISTERS,可由微代码使用该组TRUSTED_INVALIDATION_REGISTERS来调用IOTLB和IOMMU选项b),因为它不浪费存储器用于(如选项(a)将会所需的)该数据结构的最大尺寸。选项事务并且PASID无效;01指示不受信任的事务并且PASID有效;10指示受信任的事务并且[0159]DEV_REQ_3:已置于受信任模式下并在安全链路上接收到具有经设置的“受信任”位的事务的桥接器或根端口必须验证头部的请求方ID中的总线号是该端口的有效总线号。被分派该PASID的TD的TD控制结构的指针。第二结构TDMK-TMEKID2003是分派给该TD的[0167]TDDEVICEBIND-由TD使用该指令来指示其希望获得设备和/或PASID的所有权。该[0169]TDDEVICEUNBIND-该指令由TD使用,它希望释放先前分派的设备和/或PASID的所[0172]TDPASIDTRKRMEMORYRECLAIM-该指令用于:如果结构现在是空闲的,则回收用于[0173]TDCONFIGIOMMU-由VMM使用该指令以将设备上下文表的根编程到平台中的各种[0176]如所提及,TDPASIDASSIGN指令更新PASID跟踪器结构以将PASID分派给TD。该PASID跟踪器结构从由VMM提供的但是通过指令使用平台预留的密钥ID(PKID)进行加密的SPARE_PAGE_PA-可由该指令用于构SPARE_PAGE_STATUS-指令是否消耗了所提ERROR_CODE-分派失败的原因-其中之一ALREADY_ASSIGNED-PASNEED_MORE_MEMORY-需要更多存储器来构建PASID[0178]TDPASIDASSIGN指令的一个实施例将PASID跟踪器2100构建为如图21中所示的两级数据结构。PASID目录指针2101指向PASID目录2105内的位置该PASID目录2105包括标[0179]输入到指令的PASID的位19:18用于检查对应的PASID目录指针是否为空。如果对的高速缓存行进行RFO的情况下执行高速缓存行范围的存储。然后该指令返回错误代码[0180]如果PASID目录指针不为空,则指令使用输入PASID的位18:10读取PASID目录条指令可以使用MOVDIR64微指令,该MOVDIR64微指令在不对相应的高速缓存行进行RFO的情果条目有效且条目中记录的TDCS指针不是输入到指令的TDCS指针,则该指令返回错误-Device-Exclusive(设备-独占)-用于指示TD是否想要获取整个设备功能的所有权,-Device-TLB-Enable(设备-TLB-启用)-是否允许设备侧IOTLB–由IOMMU使用它来允许-第一级页表指针-在启用嵌套转换的情况下的第一级-Write-protect-enable(写-保护-启用)–是否允许监督DMA请求忽略第一级页表-Supervisor-request-enable(管理-请求-启用)–是否允许[0186]Device-bind-structure(设备-绑定-结构}=)-该结构包括输入参数,并且附加地具有MAC,该MAC由处理器使用处理器内部密钥对输入参数生成。MAC还涵盖防重放计数[0188]TD控制结构保持两个计数器-绑定-解除绑定-分配-计数器和绑定-解除绑定-消数器通过TDDEVICEASSIGN/TDDEVICEREMOVE指令递增。因此,由TDDEVICEASSIGN/[0190]由VMM使用该指令来请求处理器将设备分派给TD。这涉及构建受信任的根、上下设备-绑定-结构-由TDDEVICEBIN[0192]需要被分配作为IOMMU数据结构构建的一部分的最大连续结构是PASID目录。此[0194]拒绝是被输入到该指令的特殊标志,该特殊标志指示来自VMM的完成具有错误的REJECT_REQUESTED-由于拒绝标志NEED_MORE_MEMORY_SPARE_MEMORY_PTR1_USED–SPARE_MEMORY_PTR1被消耗,并且操作[0197]指令首先使用CPU内部密钥验证对设备绑定结构的MAC,并且如果无效则生成错耗-计数器地址并且返回具有错误代码REJECT_REQUESTED的失败响应来使防重放计数器进[0199]指令首先验证在设备绑定结构中记录的TD被分派给在设备-绑定-结构中记录条目开始遍历,并且这次将适当地填充上下文表条目和PASID表条目。然后该指令返回成[0211]第二级页表指针(即,指向第二级页表结构2206)是被创建为用于TD的EPT的内容在上述设备-绑定-结构中所指定。未由设备-绑定-结构指定的上下文和PASID表条目[0213]该指令类似于TDDEVICEBIND指令,但是将TD意愿编码为释放设备。像绑定-结构那样具有MAC和防重放计数器。设备-解除绑定-结构中的参数指示是否释放[0214]在不同的实施例中,TDDEVICEBIND和TDDEVICEUNBIND可以使[0216]该指令将设备-解除绑定-结构用作输入参数,并释放对TD执行的设备和/或-Device-unbind-structure(设备-解除绑定-结构)-由TDDEVICEBIND指令创建的经签-拒绝-指示VMM想要利用失败响应来拒绝指令但想要使防重放计[0218]如果TD未被标记为被终止,则指令首先使用CPU内部密钥验证对设备绑定结构的[0219]如果rejectrequested标志被设置为真,则指令通过使绑定-解除绑定-消耗-计数器地址并且返回具有错误代码REJECT_REQUESTED的失败响[0220]然后,指令使用设备-解除绑定-结构中记录的请求方ID和PASID来遍历链接到受信任根指针的数据结构。如果遇到任何无效的表条目,则指令失败并返回错误。如果[0222]如果设备-解除绑定-结构将PASID标记为已释放,则指令遍历并将PASID跟踪器条目标记为无效并清除针对该PA每个IOMMU中通过TRUSTED_IOMMU_BAR中的TRUSTED_INVALIDATION_REGISTERS对受信任根[0227]指令的一个实施例首先使用请求方ID和PASID遍历到该指令能够到达的最后一个[0229]如果结构现在是空闲的,则该指令用于回收用于PASID跟踪器的VMM分配的存储[0230]指令的一个实施例首先使用PASID遍历到该指令能够在PASID跟踪器中到达的最[0232]该指令用于利用CPU管理的设备上下文结构的根指针来配置平台中的IOMMU。VMM利用平台中的每个IOMMU的TRUSTED_IOMMU_[0233]CPU还记录在其中TRUSTED_ROOT_PTR被编程到微代码私有存储器中的所有IOMMU-TRUSTED_IOMMU_BAR-包含TRUSTED_ROOT_PTR寄存器的M指令的一个实施例使用微代码SAI写入TRUSTED_IOMMU_BAR中的TRUSTED_ROOT_PTR寄任位来查找该IOMMU的上下文、PASID和IOTLB高速缓存。如果在IOTLB中存在命中,则在IOTLB中记录的物理地址和TDKID被发送到确定了最终转换,IOTLB就被填充经转换的物理地址以及具有经设置的“受信任”位的TD[0242]入列指令ENQCMDUS和ENQCMDS使用具有64字节写入原子性的向设备中的设备共享工作队列(SWQ)的非发布写入使诸如图23中所示的64字节命令入列。该命令的有效负载携中可由此类装置执行和/或可利用此类装置执行的方法中的任一方法。可将本文中所描述的处理器中的任一处理器包括在本文中所公开的系统中的任一系统中。在一些实施例中,或附图标记的结尾部分以指示可任选地具有类似或相同化,这些机器可执行指令或电路可执行指令可用于使得和/或者导致利用执行这些操作的由机器执行时,可操作以使该机器执行和/或导致该机器执行本文中所公开的一种或多种只读存储器(ROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM行电路用于执行指令中的第二或第二多条指令,以将第一进程地址空间标识符(PASID)与第一受信任域相关联,第一PASID用于唯一地标识与第一受信任域相关联的第一执行上下PASID目录中的条目,并用于使用与PASID目录中的条目组合的PASID的第二部分来标识识PASID目录中的条目,并用于使用与PASID目录中的条目组合的PASID的第二部分来标识域

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论