专利名称:可验证嵌入式系统及其验证方法
技术领域:
本发明是关于一种嵌入式系统及其验证方法,尤其是涉及验证应用程序 在预定的嵌入式系统环境下作业的方法。
背景技术:
嵌入式系统是为了特定应用功能所设置的运算系统,在嵌入式系统中所 运用的程序软件多半也为了所适用的应用功能而另行开发,使研发厂商更重 视保护其所开发的程序软件与硬件不被分离而复制到其它的硬件装置中使用。
在防止非法复制软件程序的技术当中,其中一种是采用绑定软件程序及 装载此软件的特定硬件装置的方式,用以产生只能在特定硬件上执行所述软 件的效果,以维持嵌入式系统的完整性及保护应用程序。
在已知的作法上,是于软件程序一开始执行时,先比对装载该软件的其
中一装置的识别码,例如外围控制适配卡(PCI)的厂商识别码(Vendor ID), 判断与软件中所记录的识别码是否相同,若相同则允许继续执行该软件。
然而,同一厂商所生产的相同装置的厂商识别码相同,因此即使嵌入式 系统中其它的硬设备全部被更换,只要接受比对的装置不变,软件程序仍会 判定其是在一预定的嵌入式系统的硬件上执行,因而使得防止软件被盗拷及 维护系统完整性的目的无法达成。
发明内容
本发明提供一种嵌入式系统验证方法及可验证嵌入式系统,用以确保应 用程序在预设的嵌入式系统环境下运作,防止程序被复制到其它的装置之中 执行;同时亦达到维护应用程序所在的系统的完整性的效果。
本发明实施方案提供一种可验证嵌入式系统,搭载有一操作系统。本发 明实施例的可验证嵌入式系统包括 一处理器; 一网络单元,连接至处理器, 具有一网络单元识别数据;以及一储存装置,连接至处理器,具有一储存装置识别数据;其中,当本发明实施例的嵌入式系统启动时,处理器执行一验 证程序以读取一 网络单元识别数据、 一储存装置识别数据以及一操作系统识 别数据,并将这些识别数据与本发明实施例的嵌入式系统多个预设识别数据 比对,若预设识别数据及读取到的识别数据皆符合,则执行一内容程序于本 发明实施例的嵌入式系统。
此外,本发明另一种实施方案还提供一种嵌入式系统的验证方法,以确 保应用程序在嵌入式系统上执4亍。本发明实施例的嵌入式系统-睑证方法包括 提供嵌入式系统的多个预设识别数据;执行一验证程序,以读取本发明实施 例的嵌入式系统的一网络单元识别数据、 一储存装置识别数据,以及一操作 系统识别数据;比对这些识别数据和预设识别数据;及若读取的识别数据与 预设识别数据皆相符,则执行一内容程序于本发明实施例的嵌入式系统。
图1为本发明所提供一 图2为本发明所提供一 图3为本发明所提供另 图4为本发明所提供一 图5为本发明所提供一 [主要元件标号说明] 1, la-b嵌入式系统 100操作系统 120应用程序 1202内容程序 16处理器
20基本输入输出系统 42中^H某体 S401-S411流程步骤
种可验证嵌入式系统实施例的方块图; 种可验证嵌入式系统数据架构实施例示意图; 一种可验证嵌入式系统实施例方块图; 种嵌入式系统验证方法实施例的流程图;及 种比对识别数据实施例的流程图。
10第一储存装置 12第二储存装置 1200验证程序 14网络单元 18存储单元 40硬件 44软件
S4070 ~S4074流程步骤
具体实施例方式
本发明提供一种嵌入式系统装置及其验证方法,以验证嵌入式系统中各 项系统元件的方式,确保应用程序在正确的嵌入式系统上顺利执行。详细实施方式请配合图式参照下列说明。
图1为本发明的一种可验证嵌入式系统实施例的方块图,本实施例的嵌 入式系统1可对应用程序进行保护。嵌入式系统1由多个系统元件所组成,
包括第一储存装置IO、第二储存装置12、网络单元14、处理器16及存储单 元18。其中,第一储存装置IO搭载有一操作系统100,第二储存装置12则 装载有应用程序120。虽然本实施例以两个独立的储存装置分别储存操作系 统100以及应用程序120, ^旦本领域技术人员应知道这两者实际上也可以存 放于同一个储存装置中。
本实施例的网络单元14例如为一内建网络卡。网络单元14具备有一媒 体存取控制地址(MAC address),以做为在网络上识别此网络单元14的信息。
操作系统100存放在第一储存装置IO(例如Flash ROM),操作系统100 的识别数据包括操作系统100映像文件(image)的建立日期及版本编号。嵌入 式系统1常用的操作系统100包括Windows CE、 Windows XP embedded, Embedded Linux、 VxWorks等等,不同操作系统的建立日期和版本亦不相同。
此外,装载应用程序120的第二储存装置12亦具有其独特的装置序号 (device serial number),与厂商识别码不同的地方,在于每一装置的序号 皆不相同,因此不会发生两个以上装置具有相同序号的情形。应用程序120 包括二个部分验证程序1200及内容程序1202。验证程序1200为一应用程 序接口 (API),用以呼叫函数库(Library)中的函数以验证嵌入式系统1中各 个系统元件,判断此项应用程序120是否处在原本预设的系统环境之中。内 容程序1202即为该应用程序120实际上所欲提供的应用软件服务,例如文件 编辑、行事记录、网络浏览等等,此部分的服务,将于验证完成后供使用者 操作使用。
本实施例的存储单元18中记录一验证数据,其中包括预先指定的嵌入式 系统1中数个系统元件的预设识别数据。本实施例中例如包括预设媒体存 取控制地址、预设装置序号、预设操作系统日期与版本编号。上述识别数据 可由嵌入式系统1的制造或销售厂商,在嵌入式系统1的软、硬件都装设完 成后,利用软件程序读取出(1)网络单元的媒体存取控制地址;(2)储存 装置的储存装置序号;以及(3)操作系统的映像文件建立日期与版本编号。 再将上述读取到的数据做为所述的预设识别数据,写入存储单元18的系统设 定文件(system registry)当中,做为确认原始嵌入式系统1的组成元件的-睑
6证数据。其中,存储单元18可为随机存取存储器或非易失性存储器。
此外,本实施例包含一验证程序1200,装载于嵌入式系统1的应用程序 120当中。当应用程序120被执行时,处理器16即先行执行验证程序1200, 亦即呼叫一特定的函数,以读取当时嵌入式系统1的软硬件识别数据,例如
(1)网络单元14的々某体存取控制地址;(2)第二储存装置12的储存装置序 号;及(3)操作系统100的映像文件建立日期与版本编号。
此外,验证程序1200亦读取被存在存储单元18系统设定文件中的预设 验证数据,并与先前读取到的识别数据进行比对。本实施例的验证程序1200 可设计成依照验证数据被记录的架构,按序读取出识别数据,以便与预设识 别数据一一对照,判断相对应的识别数据是否相符,例如比对第二储存装 置12的储存装置序号是否与预设储存装置序号相同。若不相同,即可得知进 行验证当时,应用程序120并非装载在嵌入式系统1原始预设的储存装置中。 另外两类识别数据的比对亦然,若验证程序1200所读取到的々某体存取控制地 址与预设媒体存取控制地址不同,或操作系统100的映像文件建立日期与版 本编号与预设操作系统日期与版本编号不同,即表示系统元件已被更换、或 应用程序120已被复制到其它系统中。
经过验证程序1200比对验证数据中的预设识别数据及识别数据后,若有 其中任一项数据不相符,即不允许再继续执行内容程序1202,例如由验证 程序1200关闭整个应用程序120。唯有每一项识别数据皆符合相对应的预设 识别数据的情况下,内容程序1202才会被执行。
根据上述方式,即可确保应用程序120唯有装载在预设的嵌入式系统1 之中方能顺利提供应用服务,即可保护应用程序120不被非法复制或搬移到 其它的设备上;同时,也由于对嵌入式系统1的多项系统元件同时进行验证, 也能维护嵌入式系统1的完整性。
在上述实施例中,以媒体存取控制地址、操作系统及第二储存装置三者 的识别数据为例的原因在于,通过应用程序120中的验证程序1200来验证上 述系统元件的识别数据,可达到完整保护嵌入式系统1的硬件、软件及管理 此二者的中介4某体。请参阅图2,嵌入式系统la的组成可划分为硬件40层 面、软件44层面,以及介于两者之间,用于管理及协调软、硬件的资源分配 的中^/N某体42层面。
验证网络单元14的媒体存取控制地址、及储存装置序号,即保护了嵌式系统la的硬件40层面(如处理器16及各储存装置);验证操作系统IOO 的映像文件建立日期与版本编号,则确保控制整个嵌入式系统la运作的中介 媒体42的正确性;而通过验证程序1200检验嵌入式系统1的系统环境,即 是保护了嵌入式系统la的软件44层面(如应用程序120)。以此种同时聪r 证系统软、硬件及中介^ 某体的手段,即使只更换了其中一项系统元件,也会 造成应用程序120无法提供应用服务的结果,大幅增加应用程序120被装载 在其它装置或系统上执行的困难度,能较已知手段更有效地防止应用程序12 0 从预设的嵌入式系统la中遭分离或复制,也更能保障嵌入式系统的完整性。
请参阅图3所显示的另一种可验证嵌入式系统lb实施例方块图,其中包 括了存放在非易失性存储器中的一基本输入输出系统(BIOS) 20。在本实施例 中,上述的预设识别数据除了可记录在存储单元18的系统注册文件之外,亦 可事先写入基本输入输出系统20当中。当嵌入式系统lb开机时,上述预设 识别数据即会被读取。验证程序1200可呼叫函数到基本输入输出系统20中 读取预设识别数据。
图4为本发明所提供的一种嵌入式系统验证方法实施例的流程图,利用 全面性地验证安装了受保护的应用程序的嵌入式系统的方式,确认应用程序 处于一未经变更的嵌入式系统中,才允许程序执行。
首先于一嵌入式系统提供包含数个预设识别数据的一组验证数据 (S401),本实施例的验证数据包括了预设媒体存取控制地址、预设装置序号, 及预设操作系统日期及版本编号。验证数据可预先记录在嵌入式系统的系统 设定文件中或是基本输入输出系统。
应用程序包括二部分程序其一为验证程序,另一部分为内容程序。当 应用程序被执行时,验证程序可自函数库呼叫函数,以读取当时嵌入式系统 的系统元件的识别数据(S403)。识别数据包含组成嵌入式系统的软、硬件或 中介Jf某体的识别数据。而本实施例中的识别数据包括嵌入式系统网络单元 的媒体存取控制地址、嵌入式系统存放应用程序的第二储存装置的储存装置 序号,以及嵌入式系统所搭载操作系统映像文件的建立日期与版本编号。上 述识别数据皆为所属系统元件的独特识别数据,可用来作为判别每一 系统元 件的"身份"的特征。
接着,验证程序将识别数据与其相对应的预设识别数据分别比对(S405), 以判断应用程序被执行时,由验证程序所取得的识别数据是否符合预设识别数据中的记录(S407)。
若比对的结果发现其中有任一者不相符,表示应用程序并未安装在预设 的嵌入式系统上,因此不允许执行后续的内容程序(S409);反之,若经比对 后,每一项识别数据都正确对应到预设识别数据,则可确认应用程序系安装 在预设的嵌入式系统当中,则允许继续执行应用程序中的内容程序(S411)。
以本实施例的预设识别数据及识别数据为例,在判断识别数据与预设识 别数据是否相符的步骤中(S407),验证程序将一-^"进行下列比对(参照图5): 判断网络单元的媒体存取控制地址与预设媒体存取控制地址是否相同 (S4070),若不相同即停止执行后续程序(S409);若相同则比较储存装置的储 存装置序号与预设装置序号是否相同(S4072),若不相同亦停止(S409);若仍 相同则继续比较操作系统映像文件建立日期、版本编号与预设操作系统曰期 及版本编号是否完全相符(S4074),若不同也需停止(S409),反之若完全相同, 则完成全部的比对判断,允许继续执行内容程序(S411)。
然而上述步骤S4070到S4074的执行顺序并无限制,只要确定三类识别 数据皆经过验证即可,而经比对发现有不相符的情况时,除了停止执行后续 程序外,还可发出警示音加以提示。
用以验证系统元件的识别数据不限于上述各实施例中所示的项目,为了 更完整保障应用程序所在的执行环境未经改变,还可更进一步为处理器嵌入 独特的 一句柄,并且将处理器的预设处理器句柄也作为验证数据其中之一, 以供验证程序进行验证时,更读取处理器的句柄,以判断处理器是否被更换 为其它型号或其它厂牌的设备。
此外,所述验证数据亦可于嵌入式系统出厂时,即登录在一远程数据库 (图未示)当中,嵌入式系统的处理器执行验证程序时,经由网络单元连接到 远程数据库读取相关的预设识别数据,再加以比对。
经由上述所揭露的嵌入式系统验证方法及可验证嵌入式系统,以全面性 验证嵌入式系统的软、硬件及中介媒体的手段,除可确保应用程序不受非法 的复制搬移之外,同时也保障嵌入式系统的完整性,避免系统中各项系统元 件被更换为其它的替代装置,影响系统的运作效能及安全性。
上述各实施例所揭露的装置、元件等项目仅为说明本发明实施方式的例 示,并非用以限缩本发明所适用的范畴,如有其它符合本发明的精神与未实 质改变本发明的技术手段者,皆属本发明所涵盖保护的范围。
9
权利要求
1.一种嵌入式系统验证方法,该嵌入式系统搭载操作系统,该嵌入式系统包括网络单元、处理器、及储存装置,该方法包括提供该嵌入式系统的多个预设识别数据;执行验证程序,以读取该嵌入式系统中的网络单元识别数据、储存装置识别数据以及操作系统识别数据;比对该等识别数据和该等预设识别数据;及若该等识别数据与该等预设识别数据皆相符,则执行内容程序。
2. 根据权利要求1所述的方法,其中,该网络单元识别数据为该网络单 元的媒体存取控制地址。
3. 根据权利要求1所述的方法,其中,该储存装置识别数据为该储存装 置的储存装置序号。
4. 根据权利要求1所述的方法,其中,该操作系统识别数据为该操作系 统的映像文件建立日期及版本编号。
5. 根据权利要求1所述的方法,其中,该等预设识别数据包括预设媒 体存取控制地址、预设装置序号、及预设操作系统日期及版本编号。
6. 根据权利要求1所述的方法,其中还包括比对该处理器的句柄与预设 处理器句柄。
7. 根据权利要求1所述的方法,其中还包括若一个以上的该等识别数据与其相对应的该预设识别数据不相符,停止 执行该应用程序。
8. 根据权利要求1所述的方法,其中该等预设识别数据记录于该嵌入式 系统的存储单元。
9. 根据权利要求1所述的方法,其中该等预设识别数据记录于该嵌入式 系统的基本输入输出系统。
10. 根据权利要求1所述的方法,其中还包含至远程数据库存取该等预 设识别数据。
11. 根据权利要求1所述的方法,其中该验证程序与该内容程序储存于 该储存装置。
12. —种可验证嵌入式系统,搭载操作系统,该嵌入式系统包括处理器;网络单元,连接至该处理器,该网络单元具有网络单元识别数据;及 储存装置,连接至该处理器,该储存装置具有储存装置识别数据; 其中,当该嵌入式系统启动时,该处理器执行验证程序,以读取该网络 单元识别数据、该储存装置识别数据以及该操作系统的操作系统识别数据, 并将该等识别数据与该嵌入式系统多个预设识别数据比对,若该等预设识别 数据及该等识别数据皆符合,则于该嵌入式系统执行内容程序。
13. 根据权利要求12所述的系统,其中,该网络单元识别数据为该网络 单元的4某体存取控制地址。
14. 根据权利要求12所述的系统,其中,该储存装置识别数据为该储存 装置的储存装置序号。
15. 根据权利要求12所述的系统,其中,该操作系统识别数据为该操作 系统的映像文件建立日期及版本编号。
16. 根据权利要求12所述的系统,其中该等预设识别数据包括预设媒 体存取控制地址、预设装置序号、及预设操作系统日期及版本编号。
17. 根据权利要求12所述的系统,其中该验证程序与该内容程序储存于 该储存装置。
18. 根据权利要求12所述的系统,其中,该嵌入式系统还包括 基本输入输出系统,该等预设识别数据储存于该基本输入输出系统。
19. 根据权利要求12所述的系统,其中,该嵌入式系统还包括 存储单元,该等预设验证数据以系统注册文件型式储存于该存储单元。
20.根据权利要求12所述的系统,其中该嵌入式系统通过该网络单元,经由网络至远程数据库存取该等预设识别数据。
全文摘要
一种验证应用程序在预设系统环境下作业的可验证嵌入式系统及其验证方法。该方法适用在嵌入式系统上,提供包括数个预设识别数据;执行验证程序以读取嵌入式系统中数个系统元件的识别数据;再将识别数据与预设识别数据进行比对,判断每一系统元件的识别数据是否与其相对应的预设识别数据相符;若相符才允许继续执行应用程序中真正提供应用服务的内容程序。
文档编号G06F21/00GK101615237SQ20091016330
公开日2009年12月30日 申请日期2009年8月11日 优先权日2009年8月11日
发明者王圣棋, 程圣祥 申请人:威盛电子股份有限公司