8051嵌入式计保护器之研究_第1页
8051嵌入式计保护器之研究_第2页
8051嵌入式计保护器之研究_第3页
8051嵌入式计保护器之研究_第4页
8051嵌入式计保护器之研究_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1058051嵌入式计保护器之研究嵌入式计保护器之研究嵌入式计保护器之研究嵌入式计保护器之研究ASTUDYONTHE8051EMBEDDEDPROTECTOR摘摘摘摘要要要要在嵌入式计算系统的单芯片应用领域中,最具代表性的为8051系列。全方位系统架构的8051已被广泛使用,因为它易学并且基本功能强大。但8051的缺点为内部储存程序内存一般仅有2KB4KB依照型号的不同而有差异。因此,若所需控制的事件复杂度高时,则程序代码会超过内部储存空间的内存上限;此时,只能以外部寻址方式储存程序代码。因程序代码储存置外部储存空间中,所以程序代码容易遭到非法的篡改与拷贝。换句话说,智慧财产权不但无法得到保障,而且会造成系统非预期的不稳定现象。所以,研究如何防止侵权行为,是本篇论文的主要目的。几种常见的侵权方式如下所述以ICE读取程序代码;使用逻辑分析仪观测与拷贝程序代码;使用特定的软、硬件拷贝系统。针对非善意的侵权行为,我们不但首先提出一套法则来保护8051嵌入式计算系统,而且实作与验证此法则。因此,在不影响整体系统效能下,此系统可极度严谨避免他人非法拷贝。关键词嵌入式计算系统,8051,ICE,逻辑分析仪,智能财产权,保护器106ABSTRACTINTHEAPPLICATIONSOFTHEEMBEDDEDCOMPUTINGSYSTEM,8051ISONBEHALFOFTHESINGLECHIPSERIALSALLINONESYSTEMARCHITECTUREOF8051HASWIDELYBEENAPPLIEDININDUSTRIALANDACADEMY,SINCEITISEASYTOLEARNANDEASYTOUSETHEINTERNALROMSIZEOF8051ISONLY2KB4KBDEPENDONTHETYPEOF8051,WHICHWILLLIMITITSAPPLICATIONHOWEVER,INAMORECOMPLEXEMBEDDEDSYSTEM,THECODESIZEWILLUSUALLYEXCEEDTHEPOORINTERNALROMSIZEOFTHIS8051THEREFORE,WEUSEANEXTERNALROMTOSTORETHESOURCECODESINCETHESOURCECODEISSTOREDINTHEEXTERNALROM,NOTONLYTHEINTELLECTUALPROPERTYWILLBEEASILYINFRINGEDBYSOMEONE,BUTALSOTHEILLEGALONEWILLMODIFYTHESOURCECODESO,HOWTHERESEARCHPREVENTSTHEBEHAVIOROFTHEINFRINGEMENTISMAINPURPOSEOFTHISTHESISTHEREAREFEWANDFAMILIARMETHODSTOINFRINGEASFOLLOWSUSEICETOREADTHESOURCEPROGRAMCODEUSETHELOGICANALYZESTOOBSERVEANDCOPYTHEPROGRAMCODEUSETHEPARTICULARSOFTWAREANDHARDWARETOANALYSISTHESYSTEMAIMATNOTGOODFAITHBEHAVIOROFTHEINFRINGEMENT,WENOTONLYPROPOSEARULETOPROTECT8051EMBEDDEDSYSTEM,BUTALSOIMPLEMENTANDVERIFYTHISRULESBYCPLDTHEREFORE,WHENOURPROTECTIONSYSTEMDOESNOTAFFECTTHEPERFORMANCEOFTHEWHOLESYSTEM,ITCANBEEXTREMELYCAREFULTOAVOIDTHEOTHERSTHEILLEGALCOPYINGKEYWORDEMBEDDEDCOMPUTINGSYSTEM,8051,INTELLECTUALPROPERTY,PROTECTIONSYSTEM壹壹壹壹、导导导导论论论论在嵌入式计算器系统中,如何保护创作者的原始程序代码或资料,是主要研究课题之一。然而,在保护机制上,一般使用保密演算保护数据,以防止非法使用者之读取,此方面议题较为广泛的讨论,如文献12,47,1011,13。但其缺点只作静态方式保护,若以动态方式保密程序代码,将消耗CPU之计算能力,使嵌入式系统在计算能力上受限。另外,单独以可程序化芯片PROGRAMMINGCHIP作为硬件上之保护方式是属于实作部份,较少在文献中讨论。在保护装置系统中,若单纯以软件或硬件的设计作为加密保护,其保护效果是有限的,很容易被仿冒。在本文中,我们不但首先提出以软件和硬件结合为一的保护装置。以提升保护技术,而且我们也实际验证此保护装置系统功能。侵权者惯用之技术为藉由两个途径破解保护装置第一是以硬件仿真器INCIRCUITEMULATION简称ICE1,直接取代CPU,以CPU观点将程序读出,再透过本身实时组译107程序或储存至外部储存媒体。再藉由专业反组译程序加以破解,还原成原始码SOURCECODE,再经整理之后即成为可修改及可执行的完整程序代码。因此,如何防止ICE的非正规读取动作,是加密保护的核心技术之一。因为我们无法阻止反组译的正常功能。但是当ICE全速执行FREERUN时,为完全模拟正规CPU的动作,程序代码必须为正确无误1。第二是以DECAP方式破解保护装置。换句话说,非法者是以切割工具除去芯片上层封装或利用酸洗方式腐蚀芯片上层封装,再以特定的照相制版工具完全复制硬件逻辑的行为。在防止拷贝软件技术上,我们使用三项技术以防止非法任意之拷贝,分别描述如下。1将绝对地址的值储存至CPLD中,尔后读出其值来判断此程序的绝对地址是否合法;2将特殊图样PATTERN储存在CPLD中,之后再至特定地址中读取CPLD中的特殊图样作比对,判断此程序是否合法;3对单一指令码OPCODE作保护,将单一指令码的产生装置,储存在CPLD中,可防止非法任意修改原始程序。兹将本文的论点在下文中讨论。第二部份为工作原理与系统架构。在第三部份中,我们介绍本文的保密方法和证明主要性质。第四部份是结论。实际范例为第五部份附录中讨论。贰贰贰贰、工作原理与系统架构工作原理与系统架构工作原理与系统架构工作原理与系统架构为方便说明,我们使用条列式来定义本文中所使用的专有名词,如下列所示。CPU仿真器ICE/MICE指用来研究发展程序代码,可实时除错和模拟CPU的工具1。8051系列单芯片为8位单芯片的典型代表之一,是全方位ALLINONE的系统架构。8051芯片架构主要构件COMPONENTS包含ALU、ROM、RAM、I/O、TIMER、INTERRUPT、TXD、和RXD,其外观接脚如图一所示11,13,15。图图图图一一一一8051接脚图接脚图接脚图接脚图复合指令集计算机COMPLEXINSTRUCTIONSETCOMPUTER简称CISCCISC架构的CPU有一个特性,即指令码与指令元OPERAND的有所区别。有些指令为单一字节BYTE简称B的指令码,有些指令为指令码外加有1B3B的指令元跟随其后,形成一完整的指令。8051是一种CISC架构的CPU。8051嵌入式计保护器之研究3108组译器ASSEMBLER将汇编语言转成机器码的工具称为组译器ASSEMBLER,一般程序代码正常组译流程如方块图二所示1。图图图图二二二二程序正常组译流程程序正常组译流程程序正常组译流程程序正常组译流程反组译器DISASSEMBLER可将经过组译动作后所产生的机械码,还原成程序代码的工具1。实时反组译器ONLINEDISASSEMBLERICE就是一个最典型的具备实时反组译功能的设备,可任意读取指定地址的数据,将之实时解译或执行。作业码TASKCODE原始程序经组译及连结过程后,所产生之档案称为作业码,如图二所示。此作业码储存在8051的外部程序内存中ROM,即称为程序代码,以下简称TSKCODE。CPLD所谓CPLD即为复杂型可规划逻辑装置COMPLEXPROGRAMMABLELOGICALDEVICES,简称CPLD,主要将PLD概念延伸扩充,提高大阶层之集成电路以改善系统执行性。同时使用较少晶圆空间,可改善可靠度并降低成本。早期PLD多属于EEPROM或乘积项PRODUCTTERM架构。快闪FLASHEEPROM架构或乘积项架构的PLD称为CPLD,即复杂型PLDCOMPLEXPLD4。地址编码ADDRESSENCODING主要功能为让循序的程序代码成为某种非循序状态。加入编码动作的地址线越多,其编码的复杂度越高,较不易译码。本文采取的方式为非线性的编码方式,即非单纯的做地址线交换而已,而是以多重触发条件的编码方式,进行比较复杂的加密动作,以下将此动作简称为ADDRKEY。数据编码DATAENCODING与地址编码的方式相同,但是加密演算的法则及触发条件不同,以下将此动作简称为DATAKEY。ADDRKEY与DATAKEY共同构成一个二维的复杂保密逻辑。内存倾读MEMORYDUMP当ICE仿真CPU动作时,可以将任意地址的数据读出,包括数据存储器及程序内存,简称为倾读。通常倾读的目的是观测数据或转存成档案(HEXORBINARYFILE);若倾读程序内存储存成档案后,可用反组译器将不易判读的机械码还原成易懂的汇编程序。嵌入式系统EMBEDDEDSYSTEM所谓嵌入式系统,系指于电机设备中执行一组特定指令以控制设备运作的微处理机系统4,10,16。它们常见于各类实验仪器、办公设备、交通运输设备、电信设备、制造设备、建筑设备、医疗设备及个人计算机。本论文的防护电路系统架构如方块图三所示。109图图图图三三三三防护电路架构方块图防护电路架构方块图防护电路架构方块图防护电路架构方块图随机随机数产生器当非法行为触发时,随机数产生器及产生一组随机数,与CODEKEY的保密机制作其运算,将之保密讯号送出,已达动态保密之功效。弱高电位WEAKHIGHVHDL定义了九种逻辑标准值,目的是为了解决在实际电路中,两个不同位准的讯号源同时驱动时,所产生的冲突状况。所谓弱高电位之定义是指单一讯号源逻辑1驱动时,可维持稳定的高准位,但是当与逻辑0讯号源发生多重驱动的冲突状况时,可轻易的被拉为低准位,此即弱高电位9。DECAP以切割工具除去芯片的上层封装;或利用酸洗的方式,腐蚀芯片的上层封装。再以照相制版的方式,完全复制其硬件逻辑的行为,简称DECAP。基本频率周期TCYCLE标准8051的基本频率周期,简称T周期,为XTAL1PIN19及XTAL2PIN18振荡频率的1/1212,11,13,15。机器周期MACHINECYCLE每12个基本的T周期,称为一机器周期1,11,13,15。S状态SSTATE每个机器周期有六个连续的S状态,分别为S1,S6,而每个状态又分为两个相位PHASE,分别为相位1与相位212,11,13,15。在叙述专有名词后,接着讨论标准8051的一些基本特性,如下列7点所示基本的振荡频率T为加在XTAL1PIN19及XTAL2PIN18振荡频率的1/12,因此又称为12T之8051;每一机器周期(MACHINECYCLE)包含六个S状态,分别为S1,S6因为8051是CISC架构,CPU依照不同的指令,会有不同的指令执行周期,分别为12T、24T和48T。而指令的长度也分为1B、2B、和3B三种;埠0PORT0采用多任务总线MULTIPLEXBUS的方式驱动,低地址线A0A7须由ALE讯号配合锁住LATCHIC74LS373来提取FETCH地址;RD讯号线在低电位时,可读取外部数据存储器;PSEN讯号线低电位时,可读取外部程序内8051嵌入式计保护器之研究5110存;ALE讯号在无提取外部内存动作时,其周期固定为振荡频率之1/6,如图四ALE讯号所示。图图图图四四四四外部程序内存读取时序图外部程序内存读取时序图外部程序内存读取时序图外部程序内存读取时序图因此,从基础特性中第三点中可推论出性质1。性质18051在执行提取外部程序内存的指令码或指令元时,最长不超过四个机器周期,亦即48个基本频率周期(48T),如图四中所示四种不同的频率周期。从图四中的外部程序内存读取的部份时序图中研究可得知性质2,如下描述。性质28051的ALE讯号在无提取外部内存时,其地址栓锁(LATCH)固定为振荡频率之1/6,起始于S1的相位2,且为非对称方波,如时序图五所示。111图图图图五五五五ALE讯号和讯号和讯号和讯号和时序时序时序时序相位关系图相位关系图相位关系图相位关系图为了要分辨与分析特殊指令的行为,我们以8051的ALE讯号提取外部内存动作时的特性如性质3所描述。性质38051的ALE讯号在提取外部内存动作时,其周期分为不具有MOVX和具有MOVX两种,分别如图六A和六B所示的时序脉波所示。A非非非非MOVX方式方式方式方式BMOVX方式方式方式方式图图图图六六六六包含两种包含两种包含两种包含两种MOVX的时序脉波的时序脉波的时序脉波的时序脉波在8051系统封装中,为了节省成本,端口0采用多任务总线的方式来驱动地址线,如性质4所说明。性质48051的端口0采用多任务总线的方式8051嵌入式计保护器之研究7112来驱动地址线,其中低地址线A0A7须由ALE讯号配合74LS373来提取,多任务总线如图七所示。图图图图七七七七8051的端口的端口的端口的端口0采用多任务总线的方式来驱动地址线采用多任务总线的方式来驱动地址线采用多任务总线的方式来驱动地址线采用多任务总线的方式来驱动地址线8051数据是储存在外部内存ROM中,因此,我们对外部程序内存读取的时序图,需详加研究,以归纳出特性方便作为保护系统使用,方别有两种外部程序内存读取时序图,如图八和九所示。性质5外部程序内存的提取时序图,分别如图八和九所示。当电源接上POWERON后,重置RESET时序图如性质6描述。性质6当8051的重置信号由高电位转低高电位后,约12个机器周期后,ALE及PSEN信号开始正常动作;在此之前,ALE及PSEN信号皆保持在弱高电位(WEAKHIGH)。当电源接上重置时序如图十所示。图图图图八八八八外部程序内存读外部程序内存读外部程序内存读外部程序内存读取时序图取时序图取时序图取时序图A8台北科技大学学报第三十七之一期113图图图图九九九九外部程序内存读外部程序内存读外部程序内存读外部程序内存读取时序图取时序图取时序图取时序图B图图图图十十十十以以以以LA量测量测量测量测,电源电源电源电源接上的时序图接上的时序图接上的时序图接上的时序图参参参参、主要结果主要结果主要结果主要结果我们不但研究常见的非法拷贝与破解方法,而且提出防止拷贝与防止破解方法技术。依特质的不同,分成4种情况分别如下列讨论。情况1当以ICE取代CPU时,ICE是以CPU的观点来撷取外部程序代码。因此,我们必须侦测与判断控制程序者是CPU或ICE。若是CPU是主控者,则保护电路不起动作用;若8051嵌入式计保护器之研究9114是ICE是主控者,则保护电路必须锁定程序代码,使ICE不能非法的读取程序或是读到乱码。情况2当以烧录器或其它专业软硬件工具读取外部内存ROM后;储存成BIN或HEX型态的档案格式;再以专业的反组译软件整理成汇编程序。此时,我们将地址和数据以动态方式加密后,锁住程序代码,若无编码的序列规则,将难以破解。但前提是ICE必须要能如情况1能被保护电路锁定,否则以ICE取代CPU,以CPU的观点来撷取外部程序代码,无论加密演算多复杂,皆已丧失作用。其中,外部程序内存读取的时序分别如图八和九所示,各种内存读取时序的时间参数如文献2,11,13,15。情况3使用逻辑分析仪(LOGICALANALYZER,以下简称LA)对外部的逻辑保护电路做逆向追踪后,彻底的测试、记录及分析,再使用FPGA合成等效电路取代保护电路。或是使用DECAP的方式拷贝整颗芯片,做成完全相同的逻辑电路取代原先的防护电路。若以此方式作仿冒,因为是一对一的复制行为,所以硬件上的逻辑必然完全相同,但是由于在保护电路中有参数缓存器,以照相制版的方式可以复制逻辑,但是无法读取其逻辑内的状态。例如,在初始化过程中,在参数缓存器中记录各种重要的信息,可以是窗体或程序进入点,若无此信息,则程序将无法正常动作。在讨论情况4之前,我们先定义几个名词。我们将动态的加密算法则称为CODEKEY,依触发条件的不同给予不同的加密算法则,来增加其复杂度与保密性,分别命名为CODEKEY13,以下为几个CODEKEY的触发条件描述与说明。情况4当使用可程序化的数据产生器(PATTERNGENERATOR,以下简称PG),取代CPU的动作,模拟CPU运作的方式,以特定的测试图样输入,藉由其反应记录并追踪程序代码。此方式与情况1最大的不同点为ICE主要目的是在研发过程中模拟CPU的动作,并非专为逆向工程破解而设计的工具,因此有其特有及固定的行为模式可依循,称为ICE规则。而以PG作为模拟工具,则可不受ICE规则的限制,可以自由读取或写入内存。换句话说,就是灌信号,抓数据。但其缺点是无法做到太复杂行为,因此无法模拟全速执行的CPU。针对此点,只要在程序内部加上全速执行监测器的监督程序,如图三中所示,监看程序是否仍在正常的回路中执行,以及是否有工作逾时TIMEOUT的现象,即可判断及防止非正规的读取行为,将此动作简称为CODEKEY1。作业码TSK分两种方式加密,动态加密与静态加密。在动态加密中,当ICE做为主控电路时,保护电路可以判断ICE之两种工作模式,分别为除错模式DEBUGMODE及内存倾读模式。如果ICE工作在此两种模式中,则将会触发并启动加密演算的动作,称为CODEKEY2。在静态加密中,将存放在外部ROM中的作业码数据,使用DATAKEY与ADDRKEY编码过后,再存放回外部ROM中。其中多种不同之保护算法则可分别自订,DATAKEY、115ADDRKEY及CODEKEY13,皆存放至CPLD中。其静态加密处理方式如图十一所示。图图图图十一十一十一十一作业码加密组译转码方块图作业码加密组译转码方块图作业码加密组译转码方块图作业码加密组译转码方块图静态加密算法的加密范围可依据原始程序的程序区与数据区的规划,自行做参数变动调整;而地址与数据的编码亦一样可以随时进行调整,只需与CPLD的译码规则处理一致即可。当CPU与ICE电源接上POWERON时,两者的时序和行为模式的特质是不同。因此,可利用两者间的差异性之特质,我们做为防护电路的判读动作。判断CPU或ICE谁来读取数据或指令,及反应此判读动作。反应判读动作如下若是ICE进入全速执行模式,则ICE可完全取代CPU之功能,正常执行程序,此时防护电路不需动作;若是ICE中断设计者程序的执行,则保护电路实时启动,透过总线仲裁器如图三所示,令系统的地址总线ADDRESSBUS及数据总线DATABUS进入高阻抗状态,并产生控制信号强制暂停系统运作,因此ICE完全无法正常动作,此动作称为CODEKEY3。因此,我们有引理1如下所示。引理1假设ICE中断设计者正常的执行程序,则启动防护电路进行锁定状态。因此,ICE无法正常动作。证明CPU在加上电源后,首先执行硬件的重置动作,重置的信号必须维持高电位至少24个T周期。当重置动作结束后,重置信号由高电位转为低电位,大约在24个T周期之内,ALE及PSEN开始动作,如图十所示。若是以ICE模拟CPU动作,必须要操作ICE的使用者接口,透过软件来做启动。无法在24个T周期内来完成。因此,藉由此特点可判断与研究出,此时是由ICE或CPU掌控系统。如果此时是由ICE掌控系统,且不在全速执行的操作模式中,保护电路将系统强制暂停SYSTEMHALT,因此ICE将完全无法正常动作。在8051的系统环境下,我们不但研究CPU中ALE控制信号时序周期的细微电器特性,并且归纳出当ICE在模拟CPU动作时,ICE无法以内存倾读的静态方式来读取外部程序代码。在引理1中,我们证明了CODEKEY3的合理性与正确性,为了增加保密之严谨性,我们使用另一个加密法则CODEKEY2。引理2证明此特性,描述如下。引理2假设ICE掌控系统,ICE以内存倾读的方式读取外部程序代码,仍然无法正确的读取程序代码。证明一般正常情况下,在一个机器周期中,会有两次的ALE信号周期,除非是类似MOVX指令。因为要提取外部数据存储器,而将ALE信号SKIP一次如图六所示。因此最长的ALE信号周期约为12T的时间;由于ICE做内存倾读时,会改变正常的ALE信号周期分别如图十二外部程序内存全速执行时序图及图十三外部程序内存倾读时序图8051嵌入式计保护器之研究11116所示。因此,可由ALE周期监测器如图三所示,确认ALE信号周期是否在正常范围内,如不是在正常范围内;将启动CODEKEY2的防护机制,将数据先经加密演算后再送出。因此,ICE无法以内存倾读的方式撷取正确的程序代码。图图图图十二十二十二十二外部程序内存全外部程序内存全外部程序内存全外部程序内存全速执行速执行速执行速执行时序图时序图时序图时序图图图图图十三十三十三十三外部程序内存倾读外部程序内存倾读外部程序内存倾读外部程序内存倾读时序图时序图时序图时序图在8051的系统环境下,当使用PG取代CPU的动作,以特定的图样输入,藉由其反8051嵌入式计保护器之研究13118应来撷取程序代码。假如,从CPU的观点VIEWPOINT直接控制特定的信号线,例如PSEN、ALE、RD、WR、RESET及ADDRESSCOUNT,再藉由LA观测并记录总线的反应,由于CODEKEY1的机制会被启动,导致无法正确的撷取程序代码。因此,我们有引理3,描述如下。引理3使用LA直接观测并且记录总线中经PG所产生的,仍然无法正确的撷取正常的程序代码。证明此方式与引理2最大不同点为ICE的主要目的是在研发的过程中模拟CPU的动作,并非专为逆向工程的破解而设计的工具。因此,有其特有及固定的行为模式可依循。而以PG来做为模拟工具,则可不受ICE规则的限制,可以自由的读取或写入内存,简单的说,就是灌信号,抓数据。但其缺点是无法做到太复杂的模拟动作,因此无法模拟全速执行的CPU。针对此特性,只要在CPLD中加上监督电路,称为全速执行监控器如图三中所示。并且设立多处查验节点,监看程序是否在正常的全速模式下运作执行。在主程序回路中,全速执行监控器计数到达终点前,把全速执行监控器的缓存器清除归零。若无实时清除归零,则可判断为非正规的撷取行为(MEMORYDUMP模式)。因此,必须将数据先加密再送出,此时LA无法撷取正确的程序代码。类似引理2特性,我们研究CPU中ALE控制信号时序周期的禁能(DISABLE)电器特性。若以ICE模拟CPU动作时,当ICE进入除错模式(DEBUGMODE)或单步执行模式SINGLESTEPMODE时,ICE仍然无法正常的执行程序或撷取正确程序代码。引理4假设ICE掌控系统,当ICE进入除错模式或单步执行模式时,仍然无法正常的执行程序或撷取正确程序代码。证明当ICE进入除错模式或单步执行模式时,ALE动作会被ICE暂时禁能,直到ICE进入全速执行模式,ALE才会被再次致能ENABLE。此时,引理2及引理3之机制会同时被触发,进入防护锁定状态。因此,ICE此时仍然无法正确动作。原始程序代码经数据编码DATAKEY后,因原始数据是以另外一种无规则性的数据呈现,数据编码范例,如附录A的表一与表二的比较所示。欲知原始程序,则必须先知道CPLD中的数据编码规则DATAKEY,所以可防止反组译器任意撷取原始程序代码。因此,我们有系理1如下所示。系理1原始程序代码经数据编码后,其编码规则储存在CPLD的数据译码器中,可防止反组译器任意撷取原始程序代码。原始程序代码经地址编码后,其地址编码规则ADDRKEY储存在CPLD的地址译码器中。因原始数据是已经由地址编码器转换储存在另外的地址中,原始程序代码无法在新地址中执行,地址编码范例,如附录A、C和D所示。欲知原始程序之地址,必须先知道CPLD中的地址编码规则ADDRKEY所以可防止ICE任意撷取原始程序代码。因此,我们有系理2如下所示。14台北科技大学学报第三十七之一期119系理2原始程序代码经地址编码后,其编码规则储存在CPLD的地址译码器中,可防止反组译器还原原始程序代码。若使用烧录器或其它专业工具静态读取储放在外部内存ROM的程序。换言之,使用特定工具读取存放在ROM中的原始正确的汇编程序。要先,读取程序后,储存成BIN或HEX特定型态的档案;然后,再以专业反组译软件进行还原组译程序。此时无法整理成正确的汇编程序,如引理5所描述。引理5单独使用特定工具来转换储放在外部内存的汇编程序,仍然无法还原成原始正确的汇编程序。证明由于储存在外部ROM的程序代码,已经被DATAKEY和ADDRKEY的加密规则对地址及数据做编码的动作,作业码加密组译转码方块图,如图十一所示。因此若无DATAKEY和ADDRKEY的加密规则,将难以破解。此部份的译码作业,在正常情况下,是以防护电路中的地址译码器及数据译码器所完成,但前提是ICE必须要能被防护电路锁定,如CODEKEY13,否则以ICE取代CPU,以CPU的观点撷取外部程序代码,无论加密演算做到多复杂,皆已丧失其保密作用。作业码经如图十一方式加密后的加密作业码,已是一新的无规则性数据的呈现。因此,不但ICE无法任意撷取原始程序作业码,而且反组译器也无法还原原始程序代码。已加密后的作业码,需经由特定步骤译码后才能还原成原始程序代码。其解密处理流程图,如方块图十四所示。图图图图十四十四十四十四加密之作业码还原流程加密之作业码还原流程加密之作业码还原流程加密之作业码还原流程使用硬件方式拷贝电路有两种方式使用FPGA合成等效电路和开光罩两种方式。如果将防护电路以LA进行逆向追踪,并且做彻底的测试、记录及分析,再以FPGA合成等效电路;或是将整颗芯片DECAP,之后以照相制版做成完全相同的逻辑电路,取代原先的防护电路。此两种做法所拷贝的硬件电路,恢复系统后,仍然无法正常动作,如引理6所述。引理6使用硬件方式来拷贝电路,恢复系统后,仍然无法正常动作。证明假如以上述两种方式做仿冒,因其为等效电路或为一比一完全的复制行为,所以硬件上的逻辑必然完全相同,但是由于在防护电路中有参数缓存器,以照相制版的方式可以复制逻辑,但仍是无法读取其逻辑内的状态,换句话说逻辑可拷,但状态不可拷。例如,在初始化过程中,参数缓存器中记录各种重要的启动信息、初值设定、窗体地址、程序进入点、随机数种子和装置序号,若无此信息,则程序将无法正常动作。120原始程序代码加上绝对地址的查核点CHECKPOINT,其查核地址储存在防护电路的绝对地址检查器中,可用来防止任意修改原始程序代码。引理7原始程序代码加上绝对地址的查核点,其查核地址储存在防护电路的绝对地址检查器中,可用来防止任意修改原始程序代码。证明因当修改程序时,插入或删除一行程序,经组译后,会造成绝对地址之不同。我们利用此偏移绝对地址之特性,把其值储存在绝对地址检查器中,作为查核点。假设原始程序代码已被拷贝,因在原始程序代码加上特定地址的查核点,当程序执行到此查核点,将目前的地址加载当成数据比对。换句话说,我们把特定数据储存在防护电路内的绝对地址检查器中,当程序执行到此时,将读取防护电路的特定内容转换成特定地址。如果来源地址被非法修改,将会产生地址偏移的现象,导致程序非正常执行的中断,以作适当的保护原始程序代码被非法修改。因此原始程序代码加上绝对地址查核点时,可防止任意修改原始程序代码。引里8和9分别描述两种可防止逆向追踪与任意修改原始程序代码的机制。引理8将部份单一字节的指令码,以硬件转换码的方式HARDWIRE,储存在防护电路的指令制造器中,以硬件讯号产生软件的指令码来执行,可防止逆向追踪程序的执行。证明在CISC指令集中,单一字节指令都是单纯指令码,不包含操作数。我们以此特性使用硬件讯号产生软件的指令码来执行此单一字节的指令码。当使用ICE追踪程序时,无法正确解译此硬件指令码,此时ICE的实时反组译器将误译此码,造成逆向追踪的陷阱。因此,可防止逆向追踪程序的执行。引理9原始程序代码加上特殊图样的比对,其特殊图样储存在CPLD的图样检查器中,可用来防止任意修改原始程序代码。证明假设原始程序代码已被拷贝,因在原始程序代码加上特殊图样的比对,当程序执行到此查核点,则跳跃至CPLD图样检查器中取出特殊图样比对。如果此图样已被非法修改,会造成程序的非正常执行的中断,适当保护原始程序代码被非法修改。因此,本引理成立。综合以上几点可知,单靠非常复杂的硬件逻辑电路或软件程序加密作为保护的手段是不够的,如果能结合软件及硬件特点,使其互相为用,互有关联,以环环相扣方式加以保护,将可达到难以破解的目的。此外,必须要了解仿冒者的心态,如果产品的防护很差,或是根本没有保护,很容易诱使其犯罪行为的发生;反之,若是防护工作很扎实,仿冒者必须要花很多心思及时间去破解,基于投资报酬率过低的考虑,往往会就此罢手。系理3将初值设定、装置序号、起始程序指针和各种运算公式储存在参数缓存器中。可防止当整颗CPLD遭受强迫硬式拷贝时,如果参数缓存器中的储存值不正确,非法程序仍然无法正常的执行。由引理1至8和系理1至3,再加上简单的推论,可得到定理1的结果。不但可防止ICE和反组译器任意撷取作业码,而且也可防止专8051嵌入式计保护器之研究15121业工具非法的考备与修改程序代码。定理1作业码经加密处理后,其所有加密规则都储存在CPLD,再加上其它辅助保护措施,可防止ICE和反组译器任意撷取作业码。加上保护系统后,8051的整体效能不受影响,因此,我们有定理2如下所示。定理28051保护器的系统将不影响系统效能。证明直接从ROM来看程序代码是杂乱无章,因为程序代码已使用各种方式保密过。但经由CPLD的各种内容解密后,可还原正常程序。可由下列3点知,此保护器的系统几乎不影响系统效能。在正常程序执行下,具有防护作用的8051系统程序代码大小和不具防护作用的8051系统程序代码的大小是相同。甚且是一比一程序代码大小的对应。虽然在此系统加上CPLD,但是读取CPLD的各种内容再加上加密演算后,程序代码的执行或数据的提取周期,依指令码的长短,总是可在12T48T内完成。换言之,加上CPLD后的系统,不影响任何指令的执行周期。在此ROM空间上,加上额外读取与判断的指令用来启动或触发部份保护机制,例如指令MOVXA,DATAJZRELATIVEADDRESS,执行时间约5US,相对于整体程序代码与数据所占空间的比例是极小;此两指令的执行时间也几乎不占用系统执行程序代码的时间。理由如下,在12T的标准8051,外频加12MHZ的状况下,执行一组指令约13US,若控制中断的频率维持在5MS,而5US即能完成此两指令;因此,5US/5MS1/1000。由定理2中可知,在保护系统中,虽然加上CPLD,但8051仍然能正常执行运算。因此,我们有系理4,如下所示。系理4本篇保密机制,加上CPLD之8051保密系统,程序代码的执行与数据提取周期仍能如正常8051系统的运作。肆肆肆肆、结结结结论论论论推动保护与尊重智慧财产权的观念是必然潮流。针对嵌入式计算平台8051系列做为发展工具,我们首先提出以综合方式对智慧财产权保护器的研究。以8051之频率特性为基础,以动态方式使用两种保密规则,对于程序保护,可防止ICE作非正常之撷取;外加一CPLD仿真器作为特殊图样比对,可防止不当的逆向追踪程序执行;再将原始程序代码的地址及数据重新编码,可防止反组译程序的运作。相信经改良后的8051系列嵌入式产品,对软硬件智能财产权之保护,可提供一个极佳保护方法。参考文献参考文献参考文献参考文献18051ICEUSERMANUAL2ATMEL,MICROCONTROLLERINSTRUCTIONSET,19973THCORMEN,CELEISERSON,ANDRLRIVEST,INTRODUCTIONTOALGORITHMS,MCGRAW16台北科技大学学报第三十七之一期122HILL,20004EFINKELSTEINANDSWEISS,“IMPLEMENTATIONOFPCIBASEDSYSTEMSUSINGPROGRAMMABLELOGIC,”CIRCUITS,DEVICESANDSYSTEMS,IEEPROCEEDINGS,VOL147,ISSUE3,PP171174,JUNE20005RFOCARDIANDRGORRIERI,“ACLASSIFICATIONOFSECURITYPROPERTIESFORPROCESSALGEBRAS,”JCOMPUTERSECURITY,VOL3,NO1,PP533,1994/19956RFOCARDI,“COMPARINGTWOINFORMATIONFLOWSECURITYPROPERTIES,”COMPUTERSECURITYFOUNDATIONSWORKSHOP,PROCEEDINGS,9THIEEE,PP116122,JUNE19967RFOCARDIANDRGORRIERI,“THECOMPOSITIONALSECURITYCHECKERATOOLFORTHEVERIFICATIONOFINFORMATIONFLOWSECURITYPROPERTIES”,IEEETRANSONSOFTWAREENGINEERING,VOL23,ISSUE9,PP550571,SEP,19978MGERBERANDRVSOLMS,“INFORMATIONSECURITYMANAGEMENTTHESECONDGENERATION,”COMPUTERSECURITY,VOL15,ISSUE4,PP281288,19969RGEISSLER,VHDLMANUAL,SEPT1998HTTP/MIKROETECHNIKUNIULMDE/VHDL/ANLENGLVHD/HTML/NODE15HTML10JEANJLABROSSE,EMBEDDEDSYSTEMSBUILDINGBLOCKS,COMPLETEANDREADYTOUSEMODULESINC,RDBOOKS,200011MCS51MICROCONTROLLERFAMILYUSERSMANUAL12RNEEDHAMANDMSCHROEDER,“USINGENCRYPTIONFORAUTHENTICATIONINLARGENETWORKSOFCOMPUTERS,”COMMACM,VOL21,NO12,PP993999,197813PHILIPS,80C518BITMICROCONTROLLERFAMILY,DATASHEET,200014CRTSAI,VDGLIGOR,ANDCSCHANDERSEKARAN,“ONTHEIDENTIFICATIONOFCOVERTSTORAGECHANNELSINSECURESYSTEMS,”IEEETRANSSOFTWAREENG,PP569580,JUNE199015WINBOND,W78LE8128BITMICROCONTROLLER,199916WWOLF,COMPUTERSASCOMPONENTS,PRINCIPLESOFEMBEDDEDCOMPUTINGSYSTEMDESIGN,MORGANKAUFMANNPUBLISHERS,200117YASINANDRUTRELL,“SECURITYTOOLS,SPECSOFFERMOREPROTECTION,”COMPUTERSECURITY,VOL17,ISSUE3,PP226227,1998附录附录附录附录A使用使用使用使用DATAKEY加密加密加密加密后之后之后之后之实际状态实际状态实际状态实际状态为了检验经数据编码后和原始数据的不同,我们只针对位5做静态XOR运算。为了观察方便,我们只列取6000至605F的内容来观察。其原始数据段如表A所示,经数据编8051嵌入式计保护器之研究17123码DATAKEY处理后之内容,如表B所示。举例,地址6000之内容是00,经由00100000B作反向互斥运算后得到11110111BF7H之值存放置6000之地址。表表表表一一一一原始数据尚未编码之内容原始数据尚未编码之内容原始数据尚未编码之内容原始数据尚未编码之内容0000500071A192A9A87880099AB75B191898A42C0000501000199E44B088190B25B91000E878919100005020899059B1100AF42B1800A9A61C00008C00005030179809190A15AA2800CA71A190098A7800005040B1000AC63C080098933E80000C17980900005050198916AA1810B971A1A18A9178B000090000600000828149BA048CA458B88910368AA900000060109A370C91101838BABA1B9770B980229800006020099910BD372BAA9132439CD9100852BA00006030010082200FE8082639BA983209A01A9100006040E273AABB022419089DB83749B890288100006050913EC882738BA9082A90033D99B37499表表表表二二二二数据编码处理后之内容数据编码处理后之内容数据编码处理后之内容数据编码处理后之内容000050005181B2898858A029BA977B3938B8840C000050102039BE6490A8392B05993020C858B1B100005020A9B07991302AD40B382089863C2020AC0000503037B829392A358A0820EA5181B029AA580000504091202AE61C2820B8B31EA0202C37B8290000505039A9368A383099518181AAB1589020290000600020A2A1699A24AC847898A93016AA892000006010BA172CB13038189A9A3BB75099A002B80000602029B9309D170B8AB11263BCF93028729A000060302120A2002FC82806199AB81229803AB100006040C2538A9B22043928BD98176998B008A100006050B11EE8A253AB89280AB0231DB99354B9附录附录附录附录B使用使用使用使用ADDRKEY加密加密加密加密之实之实之实之实际状态之比较际状态之比较际状态之比较际状态之比较从系理2可知,对原始程序代码作地址编码,可防止ICE任意撷取原始程序代码。表三及表四分别列出实际上程序节地址CODESEGMENT的变化情形,为了方便观测,仅对A12、A13和A14共3条地址线来做线性编码。表三所示,为尚未编过码的原始地址。经加上反向状态,总共可切割成16个节地址;如要分割成更多的节地址,只须增加编码的数据线即可,公式如节地址数量2N2所示。表四所示为一个地址编码之实际范例,为已使用A12、A13和A14编过码的地址数据,称为B12、B13和B14,其中代表反向逻辑。B12A13,B13A14,B14A12。表表表表三三三三原始地址原始地址原始地址原始地址未编码未编码未编码未编码ORGA15A14A13A12000001000120010300114010050101601107011118台北科技大学学报第三十七之一期1248100091001A1010B1011C1100D1101E1110F1111表表表表四四四四已编码后的地址已编码后的地址已编码后的地址已编码后的地址ORGB15B14B13B120601101200102701113300114401005000006501017100018E11109A1010AF1111BB1011CC1100D81000ED1000F91001附录附录附录附录C使用使用使用使用ADDRKEY加密加密加密加密后之后之后之后之实际状态实际状态实际状态实际状态从系理1可知,对原始程序代码作数据编码,可防止组译器任意撷取原始程序代码。如表五所示是一个经地址编码程序处

温馨提示

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

评论

0/150

提交评论