基于光学PUF的印刷电子认证技术研究
这是一篇关于印刷电子,喷墨打印,光学PUF,硬件安全的论文, 主要内容为印刷电子(printed electronics,PE)是近年来新兴的一种技术。它提供了大规模,低成本制造电子设备的能力,可以满足人们对超低成本,按需制造和机械灵活性的要求。目前PE已经在物联网、智能传感器和显示技术等多个领域得到了应用。在未来的十年内PE的市场将不断扩大,预计实现250%的增长。对PE市场的预测表明了PE技术对于未来电子产品的重要性,PE设备的大量增加也成为一个必然的趋势。随之而来的是一些安全性问题。伪造问题存在于集成电路、软件和药物等诸多领域。这种行为不仅使得生产方蒙受巨大的经济损失而且还会引起一系列的安全问题,给消费者带来恶劣的影响。因此,印刷电子设备的身份认证与防伪成为了必须要考虑的安全问题。同时,PE电路往往是轻量化、低成本的,其结构简单,功能有限。这要求了相应的安全性设计不能过于复杂且开销要低。因此,如何以可接受的成本实现对PE设备的防伪和认证,确保设备的安全性和合法性成为我们亟待解决的问题。当下,常见的防伪方法包括直接在零件上做标记或在零件上粘贴标签。目前最广泛的解决方案是在产品上粘贴条形码。通过读取器可以从条形码上获取信息,从而进行防伪。但在条形码存在的最大的问题是它无法避免被伪造。此外,一种被称为直接零件标记的方法被广泛用于工业零件识别。这种方法通过激光刻蚀等方式直接在零件本体上做标记。这种方法因为要破坏产品的表面,所以应用场景受限。同时,在批量生产时,蚀刻或压印标记的过程需要很多时间,这些限制成为工厂生产线批量生产的瓶颈。射频标签(radio-frequency identification,RFID)是另一种常见的防伪手段。但是对于低成本的PE设备,将它们附加到数百万个零件上的成本非常高,甚至可能超过设备本身的成本。在最近的研究中,已经提出了不需要使用标签而基于“指纹”对象的方法。物体表面天然产生的随机图案被作为物品本身的指纹。每个生成的图案都是唯一的,并且不能被复制或伪造。这对于认证以及防伪措施很有用,但是因为要清楚地获得物品的微结构,对识别设备的要求很高。总而言之,目前已有的防伪方案在应用到印刷电子产品上时仍存在着局限性。此外,PE轻量级的实现与超低成本的要求也对安全设计提出了挑战。因此,需要一种适用于PE的低成本、轻量级的认证方案来实现对PE产品的防伪与认证。物理不可克隆函数(physical unclonable function,PUF)被提出用于安全性设计且已在多种认证方案中得到了广泛的应用。它可以从不可控的制造差异而导致的随机物理特征中提取唯一身份标识(identification,ID),具有不可预测的,难以复制或模仿的特性。利用物体本身不可克隆的特征来唯一识别物体得到了广泛的关注。这也激发了我们利用PUF对PE进行防伪和认证的想法。其中,光学PUF可以通过对对象的光学信息进行分析来识别对象,近年来得到了广泛的关注,并且被用于不可克隆标签的制造上,这些标签可以贴在产品上,并可以通过光学或基于图像的技术读取。光学PUF在电路中引入的开销很低,是低成本应用的理想选择,可以有效降低认证的成本。如何利用PE工艺差异与材料的多样化设计并实现低成本的光学PUF,在本文中得到了深入的探究。我们提出了一种与PE工艺兼容的光学PUF,从该PUF中可以为每个PE设备提取出独一无二的ID,从而不需要专门的仪器和步骤为设备添加附加标签。在对印刷电子工艺的实验和研究中,我们发现一种水基的纳米银粒子墨水打印在聚酯薄膜(poly(ethylene terephthalate),PET)薄膜上时会呈现复杂且不可预测的图案。这种现象产生的原因与PET薄膜的特性有关。PET薄膜是印刷电子工艺中常见的一种基底。这种材料无色透明、有光泽的薄膜,具有良好的力学性能、光学性能,但是其表面的吸湿性和粘结性较差。当水基墨水打印到PET薄膜上时,墨水会溅射,相邻的墨点则会在表面张力的作用下会汇聚成斑块,这个过程使得纳米银墨水在PET薄膜上产生了丰富的图形,打印图形中斑块的位置与大小充满了随机性,且无法人为控制这些图形的形成。这种天然形成的图案表现出了良好的随机性和独特性,包含了非常丰富的信息熵,可以用于制备光学PUF。从这个研究出发,我们设计了一种光学PUF图案,这种PUF仅仅在电路中引入约15 mm2的面积开销。而且这种PUF的制造完全和当前的PE工艺兼容,只需要在整个流水线中增加一个用于打印标签的环节就可以为每个产品附加这种标签,不需要太多的设备和人工。此外所需的工作就是获取,处理电路组件的图像和保存ID。因此,这种PUF很好地符合PE超低成本应用的要求。同时针对我们所提的PUF,一种ID提取算法被提出。这种ID提取算法对原始PUF图案进行一系列的图像处理后生成一串二进制序列,可以在降低存储成本的同时保证ID的独特性和随机性。每个ID仅需几百比特的存储空间。最终,在100个PUF样本上对所提方法进行了检验。实验结果表明,在ID长度为256 bits的情况下仍然具有0.23的良好的品质因子(figure of merit,Fo M),这表明了基于我们所提的光学PUF生成的ID可以很好地识别并区别不同的PE设备,进而实现对印刷电子设备的认证。基于这种光学PUF,一个完整的认证方案被提出并实现。并使用PYNQ-Z2开发板以及工业摄像头完成了整个硬件系统的搭建。同时,在PYNQ-Z2板载处理器内建立数据库,并模拟远程认证过程。整个完整的认证系统由待认证的PE标签、标签阅读器、远程服务器、存储合法PE设备ID的数据库组成。认证过程则分为注册阶段和认证阶段。每个PE产品在制造时都会被附加上一个标签,标签生成的ID也将被注册到数据库中,该数据库在后续的身份验证过程中发挥着重要作用。认证阶段则是在读卡器和数据库之间进行安全可靠的有线通信的前提下进行的。这是因为只有合法标签读取器生成的ID才是可信的。标签阅读器从标签中读取的ID会被送到远程服务器进行认证。服务器通过比较待认证ID与数据库中存储的合法ID来判断待认证ID所属的PE设备的合法性。此外,机器学习攻击也被重点考虑在内。考虑到ID的提取本质上是一个压缩映射的过程,很多信息在这些过程中不可避免地丢失了,即不同的PUF图案可能被映射成同一个输出。因此,理论上,攻击者可以通过诸如机器学习的方式推导出一种图像。这种模式简单且可重复,它没有实际PUF模式那样丰富的信息熵,但在映射的过程中可以表现得像一个合法的标签,也可以生成一个可以通过认证的ID。同时这种图像本身包含的信息熵很少,因而可以被低成本地大规模制造。为了使所提出的认证方案具备抵御这种攻击的能力。一种伪标签识别算法被提出,该算法在提取ID前对一个标签的合理性进行判断,剔除可能的伪标签,从而防止上述攻击。因为在同一工艺下制造的PUF,其墨滴的大小,形状和数量服从相近的分布。所以,所提的伪标签识别算法统计真正的PUF样本中墨滴的大小,形状,数量的分布,然后根据归纳的规律来判断某一个PUF是否是伪样本,并在一开始就拒绝对伪造的标签进行认证,从而实现对上述攻击的抵御。实现过程中,图像的获取和认证结果的显示则由PYNQ-Z2开发板的可编程逻辑完成。硬件模块通过PYNQ-Z2开发板上的AXI总线和板载处理器进行通信。最后,在对整个认证方案的误识率、误拒率、准确率和伪标签识别率进行了评估。在同样的工艺参数下打印了128+16个标签;将其中128个注册到数据库中,这128个样本被视为合法的标签,未被注册到数据库的16个标签视为非法标签。此外还在与合法标签不同的工艺参数下打印了16个标签,这16个标签被视为伪标签,用于测试伪标签识别算法。最后得到了100%的准确率、0%的误识率(false acceptance rate,FAR)、0%的误拒率(false rejection rate,FRR)和100%的伪标签识别率(pseudo-label recognition rate,PTRR)。结果表明,我们的方案具有很高的认证成功率和较低的制造成本。
基于FPGA的椭圆曲线数字签名算法高性能与安全实现研究
这是一篇关于椭圆曲线数字签名,FPGA,高性能实现,硬件安全的论文, 主要内容为21世纪以来,随着计算机科学与技术的飞速发展与通信协议的不断更新换代,以物联网应用为代表的新型大规模端到端通信系统开始广泛地部署到我们的生活中。而对于大量的终端设备,如何通过密码学算法保证它们的安全部署与运行,已经逐渐发展为一个迫在眉睫的问题。此外,面对硬件资源有限、实时性要求高的应用场景,如何使运算量庞大的密码学算法更加轻量化地安全部署,也受到相关领域研究人员的关注。FPGA作为一种半定制化的硬件平台,兼顾了硬件计算的并行性与可编程的灵活性,十分适合作为硬件终端,实现密码学算法的部署。本文以国内外的一种常用数字签名算法:椭圆曲线数字签名算法的设计与安全实现为研究内容,以FPGA为实现载体展开研究。首先,本文探讨并分析了椭圆曲线数字签名算法的数学理论基础,以及硬件实现工作的研究现状,明确优化方向为点乘运算与模乘运算。其次,本文针对并行点乘运算中,冗余计算过多、点加与倍点并行计算非对称的问题,同时综合考虑侧信道安全防护,提出了2-PPM点乘算法及其硬件架构,同时针对其特点设计了融合点加-四倍点与融合点加-倍点架构。接着,本文针对模乘运算中,乘法器使用效率偏低、乘法器流水线级数与例化个数没有良好的可解释性问题,提出了基于高阶蒙哥马利模乘算法的S-IDDMM模乘算法,并论证了其中的乘法器设计方案。最后,本文将该设计部署到FPGA开发板上,通过UDP协议网络通信方式证明该签名设计的计算正确性。具体内容如下:1.提出基于并行点乘的2-PPM算法,以及融合点加-四倍点、融合点加-倍点硬件架构。通过改良并行点乘运算的硬件架构,提出了2-PPM算法,将点乘运算中的标量进行每2bit模糊1bit的方式,在有效提高系统效率的同时,保留了其侧信道防护功能。通过分析并行点乘运算中的模乘运算周期,发现点加运算需要多于倍点运算的模乘周期。因此,提出融合倍点-点加运算,使得模乘器得到更加合理的利用。同时结合2-PPM算法的特点,进一步设计了融合点加-四倍点算法与硬件架构,使得点运算的硬件效率与并行度得到长足提升。2.提出基于高阶蒙哥马利模乘算法的S-IDDMM算法,及其硬件架构。该算法主要解决了在较低位(如256bit)的高阶模乘运算中,乘法器使用效率通常较低的问题。此外,本文还基于该算法与对应的硬件架构,深入探讨了其中例化的乘法器的设计方案,包括乘法器流水线级数的选择与乘法器的使用个数。基于FPGA的实验结果表明,本模乘设计在提供较良好的吞吐率与硬件使用效率的基础上,还能够实现一定的乘法器设计灵活度。除了模乘算法的设计与实现之外,本文在模加减模块与模逆模块上,也均进行了一定优化,使得模块更加适配该系统。3.在系统实现与部署上,采用UDP协议将硬件系统与计算机进行网络通信;通过异步FIFO实现FPGA芯片中的计算模块与计算机的信息传输。计算机可以传输任意随机数给到FPGA,之后FPGA返回将此随机数进行签名后的签名结果。此方案能够打通软硬件之间的通信渠道,为实现软件端进行数字签名参数的配置提供一种设计思路。
基于PMU的处理器侧信道攻击自动挖掘系统的设计与实现
这是一篇关于侧信道攻击,瞬态执行漏洞,性能监控单元,硬件安全的论文, 主要内容为侧信道攻击(Side Channel Attack,SCA)的研究广泛应用于恢复加密算法的密钥。近些年,与缓存侧信道攻击紧密结合的瞬态执行漏洞对处理器安全造成了极大的威胁,这进一步扩大了侧信道攻击的影响范围。之前的研究大多以手动的方式,利用粗粒度的时间信息来构造侧信道攻击,忽略了性能监控单元(Performance Monitoring Unit,PMU)具备提供各种架构级和微架构级的硬件交互信息的能力。除了记录正常提交的指令所触发的微架构行为,本文还发现了 PMU对瞬态指令所触发的微架构行为同样具备一定的记录能力。于是,本文基于PMU开展了侧信道攻击的研究,主要创新点和成果如下:(1)面向缓存侧信道和瞬态侧信道的攻击场景,设计与实现了基于PMU的处理器侧信道攻击自动挖掘系统。此系统在处理器上自动进行黑盒挖掘测试,成功挖掘出能够记录缓存行为和瞬态执行期间微架构行为的监控事件,并将其发展成两个侧信道攻击:PMULeaker缓存侧信道攻击和PMUSpill瞬态侧信道攻击。(2)PMULeaker缓存侧信道攻击利用PMU来监控数据加载指令所触发的缓存命中和缺失的行为,以此推测Intel软件保护扩展(Software Guard Extensions,SGX)所保护的受害者进程无意间泄漏到缓存中的私密数据。PMULeaker缓存侧信道攻击成功恢复了运行在SGX中AES加密算法的密钥,并结合Spectre攻击成功泄露了被保存在SGX中的私密数据。(3)PMUSpill瞬态侧信道攻击构造了一个代码段,代码段关联了瞬态执行期间微架构的行为和私密数据,通过PMU监控瞬态执行期间微架构的行为来推测私密数据。PMUSpill瞬态侧信道攻击结合Foreshadow漏洞成功泄露了被保护在SGX中的私密数据,验证了攻击的有效性。
基于PMU的处理器侧信道攻击自动挖掘系统的设计与实现
这是一篇关于侧信道攻击,瞬态执行漏洞,性能监控单元,硬件安全的论文, 主要内容为侧信道攻击(Side Channel Attack,SCA)的研究广泛应用于恢复加密算法的密钥。近些年,与缓存侧信道攻击紧密结合的瞬态执行漏洞对处理器安全造成了极大的威胁,这进一步扩大了侧信道攻击的影响范围。之前的研究大多以手动的方式,利用粗粒度的时间信息来构造侧信道攻击,忽略了性能监控单元(Performance Monitoring Unit,PMU)具备提供各种架构级和微架构级的硬件交互信息的能力。除了记录正常提交的指令所触发的微架构行为,本文还发现了 PMU对瞬态指令所触发的微架构行为同样具备一定的记录能力。于是,本文基于PMU开展了侧信道攻击的研究,主要创新点和成果如下:(1)面向缓存侧信道和瞬态侧信道的攻击场景,设计与实现了基于PMU的处理器侧信道攻击自动挖掘系统。此系统在处理器上自动进行黑盒挖掘测试,成功挖掘出能够记录缓存行为和瞬态执行期间微架构行为的监控事件,并将其发展成两个侧信道攻击:PMULeaker缓存侧信道攻击和PMUSpill瞬态侧信道攻击。(2)PMULeaker缓存侧信道攻击利用PMU来监控数据加载指令所触发的缓存命中和缺失的行为,以此推测Intel软件保护扩展(Software Guard Extensions,SGX)所保护的受害者进程无意间泄漏到缓存中的私密数据。PMULeaker缓存侧信道攻击成功恢复了运行在SGX中AES加密算法的密钥,并结合Spectre攻击成功泄露了被保存在SGX中的私密数据。(3)PMUSpill瞬态侧信道攻击构造了一个代码段,代码段关联了瞬态执行期间微架构的行为和私密数据,通过PMU监控瞬态执行期间微架构的行为来推测私密数据。PMUSpill瞬态侧信道攻击结合Foreshadow漏洞成功泄露了被保护在SGX中的私密数据,验证了攻击的有效性。
基于PUF的PCB认证技术研究
这是一篇关于硬件安全,PCB认证,PUF,SM3杂凑算法的论文, 主要内容为随着半导体行业的不断发展,电子产品已经广泛应用于人们的日常生活当中。这些电子产品是由印刷电路板(PCB)、集成电路(IC)和内存等组成,其中PCB是绝大多数电子产品的基础和核心组件。由于PCB形状、尺寸及材料的灵活性,使得PCB能够在各种场景中发挥作用,其使用几乎涵盖了每个行业。然而在全球化的趋势下,PCB与IC的设计、制造与测试相互分离,导致假冒电子产品越来越多,PCB的非法复制和过度生产等问题越来越严重。这些假冒PCB不仅造成大量的经济损失,同时其质量很差,容易导致早期故障、性能下降和其他的潜在危害。更严重时,假冒的PCB中往往带有恶意插入的硬件木马,会导致敏感信息的丢失,当这些PCB被应用于国防设备中,可能对国家的安全造成巨大的威胁。因此,如何有效的保护PCB的安全性是一个亟待解决的问题。目前现有的PCB认证方案可分为使用内部和外部签名来认证。内部签名主要通过测量痕迹的阻抗、测量路径延迟、测量电容的变化以及测量表面图案的变化等方法来产生。这些方法利用PCB制造过程中产生的工艺偏差来得到PCB的签名。在注册阶段,将这些签名存储在数据库中,在认证阶段,将PCB产生的签名与存储在数据库中的签名进行对比,以此来验证PCB的真实性。然而,这些方法大多需要使用自动化测试夹具和探针等专用仪器,实施困难,且不易自动化,实用性不强。物理不可克隆函数(PUF)作为一种安全原语,在多种认证方案中得到了广泛的应用。PUF利用结构和设计参数完全相同的单元电路之间存在的微小工艺偏差,通过输入相同的激励生成一组独特的输出响应,称为激励-响应对(CRPs),这些响应具有唯一性、随机性和不可克隆性,可以作为芯片及PCB的独一无二的签名。基于PUF的认证方案中,在注册阶段,将PUF产生的CRPs连同嵌入PUF的物理系统的身份信息一起被存储在数据库中;在认证阶段,验证者从数据库中选择一个CRP,供给当前的系统来激励不可克隆函数,将得到的响应与数据库中存储的响应进行对比。若该响应足够接近存储的数据,则认证成功。现有的PUF生成方案可以分为存储型PUF和延迟型PUF。存储型PUF由对称的电路结构构成,利用设计单元参数的不匹配现象,通过观察存储单元的稳定状态得到随机且唯一的响应。延迟型PUF通常由信号在对称路径上的传输延迟来产生输出响应。这些PUF都利用芯片内部的变化产生,能够提供较高的安全性,但相应的需要更高的成本。同时基于PUF的认证设计大多都是针对芯片的认证,只能证明单个芯片的真实性,而无法认证整个PCB。针对PCB的仿冒问题,结合PUF响应的优点,本文提出一种利用电路板上的电阻阻值差异实现的PCB上的PUF设计方案。电阻是PCB上最常见的器件之一,具有成本低廉、应用广泛、可靠性和稳定性高的特点。在生产制造的过程中,由于不可避免的制造工艺偏差,同样标称值的电阻器的阻值存在一定程度的偏差,可以用来生成PUF响应。该方案中,利用分压法测量电阻的阻值,利用一个参考电阻和一个待测电阻串联,测量两电阻中间固定位置的电压作为输出值来生成PUF响应。每个结构单元中用两个参考电阻和两个待测电阻,将两个待测电阻上的分压分别输入电压比较器的正负输入端,利用电压比较器将模拟电压信号转换为数字信号0或1,从而得到1位的PUF响应。此方案中使用的电阻阻值不是必须固定的,只需保证参考电阻与待测电阻阻值相同即可实现。例如,要生成32比特的PUF响应,可以选择32个100Ω的电阻和2个100Ω的参考电阻得到16比特PUF响应,而其余比特的PUF响应可以使用200Ω或其他阻值的电阻实现。这些电阻可以复用,在认证模式下作为PUF生成电路产生响应,在正常使用时实现其他功能。同理电压比较器也可以复用。因此对于整体设计来说,该方案产生的面积开销很小。通过电路仿真及实验测量,选择LM393型号的电压比较器,利用阻值为100Ω、200Ω和1kΩ的电阻进行试验,设计4x16的PUF电路,利用Aultim Designer软件设计相应的印刷电路板,得到PUF生成电路的硬件实物。利用Altera公司的Cyclone-4 FPGA开发板实现PUF响应的自动化提取。设计信息提取电路,利用排针和杜邦线将设计得到的PCB板与FPGA相连接,通过UART串口将PUF响应传送到PC端,并对100组64-bit的PUF响应进行收集和测试。信息提取电路在每个待测电阻下接一个NMOS晶体管,通过行列的移位寄存器控制NMOS管的通断,从而实现对每个待测电阻的扫描,每次扫描得到一位PUF响应。对于生成的PUF响应,通常通过测试其独特性、唯一性、可重复性和可靠性等安全指标来判断其性能的好坏。通过测试得到的100组64-bit数据,计算出该方案生成的PUF的独特性达到49.81%,与理想值50%很接近。利用美国国家标准与技术研究院(NIST)所提供的用于测试随机性的统计软件包对得到的PUF响应进行随机性测试,有96%的PUF响应通过了该测试,证明该PUF响应具有较好的随机性。考虑该PUF电路可能工作的温度环境,对30组64-bit数据在20℃~80℃的条件下进行提取和测试,计算PUF响应的比特错误率和可靠性,测试的可靠性结果为100%。在FPGA的VCC和室温25℃的条件下对PUF进行可重复性测试,对30组64-bit的PUF响应进行重复提取,每组数据重复提取30次,测试结果为99.84%。证明该PUF在相同的激励下,具有较高的稳定性。此外,本方案中用来生成PUF响应的电阻电路直接暴露在PCB上,若直接使用该PUF响应作为PCB的签名,则很容易被他人窃取,电阻也很容易被毁坏或替换,因此需要对生成的PUF响应进行进一步的加密处理。哈希函数,也称杂凑函数或散列函数,是将任意长度的消息输入映射为固定长度输出值的一种函数,由于它的运算过程是单向的,逆向操作很难完成,且碰撞发生的几率非常小,因此通常使用哈希函数对签名进行加密。哈希加密算法通常基于迭代结构设计,将输入划分为固定长度的消息分组,每个分组为k比特,将每个分组映射为固定长度的n比特,并作为下一次映射的输入,直到所有分组全部映射结束,最终得到n比特的杂凑结果。当最后一个分组长度不足k比特时,使用1个1与若干0对数据进行填充,保证整个输入数据的长度为k的整数倍。使用最为广泛的杂凑加密算法有MD5、SHA等,其安全性较高,被美国NIST和NSA两个组织设定为加密标准。然而,随着密码学研究的不断发展,中国密码专家王小云教授研究小组攻破了MD5和SHA-1等加密算法,因此这些算法不再适用。随后王小云教授等人提出了国产加密算法SM3,是目前国家商用密码算法中唯一的杂凑算法。SM3密码杂凑算法适用于商用密码应用中的数字签名和验证、消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。本文设计使用处理器对PCB上生成的PUF响应进行加密,并完成对PCB的认证。在处理器中存储一组随机数,与从PCB上获得的PUF响应进行异或计算操作,设计SM3算法的硬件实现,对上述得到的结果值进行SM3杂凑加密,将得到的256比特密钥与对应的PUF响应保存在数据库。在认证阶段,将PCB与处理器连接并上电后,用再次得到的256比特密钥与存储在数据库中的密钥值进行比较,若二者相同,则认证成功,反之认证失败。认证成功后得到新的信号,利用该信号对处理器中的部分待配置功能模块进行配置,并且在完成配置之后,该密钥失效,从数据库中删除。当再有相同的PUF响应及其密钥产生时,无法再次完成认证。该方案在实现对PCB的认证的同时实现对处理器功能的正确实现,将PCB与处理器一一对应,保证二者中任意一方被仿冒或回收利用时都能够被检测出来。对设计的SM3杂凑算法使用Modelsim软件进行仿真验证,再利用Cyclone-4 FPGA开发平台对整体认证方案进行功能仿真,确定方案的可行性。最后针对多种攻击方法分析该认证方案的安全性。本文中设计的板级PUF虽然具有较好的独特性和可靠性,但由于电阻直接暴露在PCB上,其安全性还需要进一步加强。未来的研究方向应继续侧重设计实现PCB级的PUF,并将板级PUF与芯片内的PUF结合,用来实现基于PUF的PCB认证方案。可以考虑使用PCB的其他工艺偏差或PCB上常用的电子器件在PCB上生成PUF。除电阻之外的电容电感等器件同样存在偏差,考虑单独器件的偏差或将多种器件组成小电路中的参数偏差产生签名。
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕业设计客栈 ,原文地址:https://bishedaima.com/lunwen/55102.html