2.1. 系统架构
系统架构对WOLF Linux的设计中起到至关重要的作用:其一,WOLF Linux 不能脱离开引导和硬件系统而单独存在。其二,虽然WOLF Linux经过裁减或增加驱动程序模块可以方便地移植到其他架构下运行,但它将不具备本质安全的性质。整个系统采用了层次结构,分3层:应用层、操作系统层、硬件层。WOLF Linux 处在中间的内核层,是系统的核心。图2.1 为移动阅读平台的架构:


WOLF Linux的底层是驱动程序,直接对硬件操作。驱动程序上面是虚拟驱动,它是一个过渡层,这一层隐藏了更多的硬件细节,对上层提供透明的服务[11]。这种结构的优点是: 1. 当硬件发生变化时,上层根本不需改动。 2. 每个模块相互独立,便于增删。 3. 由于各个硬件驱动为上层服务时,不经过统一的调用接口,可以使系统的并行度大大提高。 2.2. 系统组成 为了对WOLF Linux有一个整体的认识,需要把它放入整个系统中,有机地分析其组成。这样才能更好地说明WOLF Linux在系统中的作用。

2.2.1. WOLF Linux的硬件需求 WOLF Linux在体系结构的硬件层可以看到主板和各种存储卡,适配卡等。似乎与一般计算机系统无异,但是,这个设备为了多媒体阅读平台与一般的嵌入式设备有区别。 首先,显示部分:显示控制芯片支持的分辨率很大,并带VGA标准接口。 其次,存储部分:支持USB存储设备,支持外接Smart Media卡、SD卡。其中,SD卡属于安全存储介质,可用内部硬件保证内容不被非法拷贝。读取卡中的内容需要密钥。 此外,晶振和电源控制部分:这一部分在低功耗控制中起着重要的作用。 最后,SIM卡:这是版权和本质安全的核心部分。 2.2.2. 对引导部分的特殊要求 一般的嵌入式Linux系统在加电后,Boot Loader将内核拷贝到RAM中,并把Ramdisk搬运到RAM中,其中内核是压缩的,然后将控制权交给操作系统。操作系统自解压,运行。 但是,WOLF Linux 为了节省内存资源并加快引导速度,内核是未经过压缩的二进制代码,并且实现了只读部分(代码和常量)和可写部分(数据)分离,所以Boot Loader不需要把内核拷贝到内存中(参见2.3.1)。只是把数据部分拷到内存中。此外,WOLF Linux采用了基于flash的文件系统,文件存放在flash上,所以也不需要拷贝ramdisk。 2.2.3. 各部分的有机联系和系统原理 上面剖析的各个部分不是独立的,它们之间有着有机的联系(如图2.4):,并相互作用形成系统。

系统工作原理是:当硬件设备加电后,CPU先去执行地址为0处的程序。地址0处的存储器是Flash Memory。在此处已烧录了Boot Loader程序,当启动时,先执行Boot Loader,具体过程上面已有介绍。初始化完成后,Boot Loader把控制权交给内核,内核把定时器和进程调度器初始化,然后内存初始化,创建各种cache, 内存描述符表。启动init 进程,建立起运行环境。进程调度负责创建各种核心线程。驱动程序负责初始化各硬件设备。最后,文件系统初始化,自动执行书架管理程序。读者可以选择读书、网络应用或系统设置。 2.3. WOLF Linux特征 上面章节介绍了系统的硬件和启动过程的特点,这些特点都是为WOLF Linux服务的,WOLF Linux的特殊性要求系统的硬件、启动等做特殊的考虑。而WOLF Linux的特点又是为了移动阅读服务的。移动阅读与一般的计算机应用是有区别的:阅读的特殊要求是设备成本低(主要用于阅读)、功耗低(经常处于空闲态)、平台安全性高(版权保护要求)、文件系统支持多格式(多用户平台、多种存储卡)。 2.3.1. WOLF Linux的存储结构及运行机制 存储结构和机制的研究主要是针对降低成本、安全、和降低功耗三个目的。 1946年著名的匈牙利数学家冯 •诺伊曼(Von Neuman)提出了“ 存贮程序式计算机” 方案 (一种概念性结构),从而使计算初步实现了自动化。它由运算器、控制器、存贮器、输入设备和输出设备5大部分组成[12]。最根本的一点是采用存贮程序原理 (即控制部件根据程序对整个计算机的活动实行集中过程控制[13],并根据程序规定的顺序依次执行每一个操作) 目前在市场上销售的计算机,大部分仍然采用Von Neuman 式计算机的结构。 但是,这种存储结构并不适合嵌入式系统: 1. 嵌入式系统不需要经常更换程序,所以程序可以固化,不必和数据同时调入存储器。 2. 这种结构自身有不安全性:冯 •诺伊曼在一篇专注论文报导中有《自动复制原理》这本书中提到了:计算机可以自动复制自身,当时,在理论界中起多的争论,认为计算机怎么可能对它自身来复制呢?直到1986年,第一个可以自循复制的程序出来以后,大家突然想起来,原来冯•诺伊曼提的这个理论,它指的计算机自制自己,并不是说计算机的硬件复制自己,而是讲计算机的软件复制自己,而软件的自我复制,是病毒的一个根本原理,计算机病毒目前很难解决一个根本的问题就是基于冯•诺伊曼这个体系结构,那这个就是计算机病毒的根源,所以这个问题就是一个根本性的问题[14]。 3. 嵌入式系统往往需要少的硬件和高的反应速度,如果取指令与取数据操作并行,而不是指令和数据都用一条总线,那么可以极大提高处理速度。 4. 程序放在内存上,可以被修改,可能会造成严重后果。 5. 需要很大容量的内存来存放无需修改的程序,增加了成本和功耗。 针对上述缺点,WOLF Linux的存储结构采用了类哈佛结构。(哈佛结构指当前DSP和一些MCU采用的结构,程序存储器总线和数据存储器总线分开,独立的程序和数据存储器空间允许同时存取程序指令和数据,因而大大提高了处理速度。由于这里采用的CPU不是哈佛结构,但存储结构与哈佛结构相同所以称为类哈佛结构。) WOLF Linux的程序存放在ROM中,数据和运行栈都在DRAM中。运行程序时不把程序调入内存,而是直接在ROM上运行。这样的存储结构达到了降低成本、增强安全性两个目的,避免了上面所说的5个缺点中的4个,第三个缺点在当前系统中仍存在,因为这是MPU的内部结构造成的。 在这种类哈佛结构下,WOLF Linux的运行机制也有自己的特点: 当Boot Loader把内核数据都拷贝到内存后,把控制权转到内核时,它跳转到放有内核第一条指令的ROM地址。WOLF Linux开始运行,它不象其它内核那样解压缩,因为WOLF Linux不是压缩过的。所有内核程序都在ROM中运行;由于WOLF Linux是在ROM中,所以省掉了2MB的运行内存空间。当系统空闲时,WOLF Linux自动刷新动态内存。并使各设备都进入睡眠状态。WOLF Linux切到低频执行程序,一般是只执行一条HALT指令,使MPU进入睡眠状态。当有外部中断时,系统先进入唤醒处理:系统时钟切到高频,各设备电源依次被打开。动态内存结束自动刷新,恢复数据。进入外部中断处理。这样的机制使系统能达到降低功耗的目的。 2.3.2. 低功耗与电源优化 便携式无线应用中靠电池工作的嵌入式设备性能最重要的指标之一便是功耗。无论电池容量多大,人们总是希望它能工作时间更长。举例来说,用户坐在火车中用手持设备阅读,看到精彩处电池没电了,可以想见用户的无奈。如果功耗足够低,电池容量可以支持几十年,则“停电”会很少发生;更重要的是地球能源越来越少,降低功耗可以节省能源;另外废电池一般有污染,节省电池也减少了污染。 低功耗需要软、硬件结合设计,最底层的嵌入式微处理器(Embedded Microprocessor Unit, EMPU)从设计上对低功耗的实现提供了支持,并提供了开关外设电源的控制寄存器,系统板的各个部分(如存储卡,显示控制器,SIM卡,)与控制寄存器相连,可以通过软件打开关闭电源。操作系统的内核则需要根据情况切换EMPU的状态,操控内存及外设。WOLF Linux的工作方式分为ACTIVE(加速、正常、减速),STANDBY,SUSPEND三种状态,功耗按此顺序逐步降低,在系统没有工作任务或接到命令时,转入低功耗的工作模式,以节省电量,延长待机时间。这里所说的状态与一般操作系统的运行态、阻塞态、等待态的意义是不同的,三个状态的核心是对频率和设备电源的管理优化: 1. ACTIVE状态(加速、正常、减速) ACTIVE状态是WOLF Linux的工作状态,为适应阅读应用的需要,分三种子态:即加速、正常、减速。加速是指阅读应用程序在刚开始运行时,开了许多额外进程去做预处理工作:读取数据,解析文档,数据预写到显存等。或者是有多媒体进程运行,这时WOLF Linux工作在加速状态,加速态设计是对系统的优化,可以最大限度提高处理速度。正常则是处理一般事件如触摸屏,按钮,显示刷屏等。减速是WOLF Linux在正常态时,检测到电量不足,WOLF Linux自动切换到减速态 2. STANDBY状态 是WOLF Linux的等待状态,WOLF Linux在ACTIVE状态中发现超过规定的时间用户没有操作移动阅读设备时,切换到此状态。这个状态下,WOLF Linux把各个外设都设为STANDBY,外设的中断可以唤醒本状态。 3. SUSPEND状态 在STANDBY态下的时间超过规定或用户软关机时,WOLF Linux将切换到这个状态,它类似于Windows的睡眠状态,在该状态,WOLF Linux将关掉外设的电源,并以极低频率运行。这时不再有外设中断,系统只能由专门按键唤醒。 WOLF Linux是一款嵌入式操作系统,必须利用硬件平台的支持实现正常、低功耗工作模式的转换,因此在实际设计中,利用了嵌入式处理器的电源管理逻辑。EMPU的电源管理逻辑控制EMPU在三种操作模式中切换,这三种模式是:运行态,空闲态,睡眠态,后两种模式用来减少在不需要某些功能或电源供给不足时减少处理器的耗电量。WOLF Linux的 ACTIVE, STANDBY, SUSPEND的三种状态设计就利用了这三种模式。 多媒体阅读平台的特点就是软件工作的断续性,比如用户在仔细阅读静态的文本或是用户不是在看而是在想,这时就需要WOLF Linux适时切换状态,让系统停止部分无用设备的工作,以达到降低功耗的目的。 功耗的指标用电流来衡量,可以测量得到。WOLF Linux的功耗和电源管理的目标就是最终减小电流。根据作业调度和当前进程情况,减少无用的电源消耗,使操作系统的电源管理设计最优化。 2.3.2. 多元化文件系统 当前linux支持多种格式文件系统比较常见的有:DOS FAT、MSDOS FAT、UMSDOS: Unix-like file system、VFAT (Windows-95)、NTFS、EXT等等。 适于嵌入式环境的文件系统有: 1. cramfs: Compressed ROM File System,是只读文件系统,其容量上限只有 256MB。 2. romfs: 非常小的只读文件系统。 3. jffs: 日志式快闪(Flash) 文件系统。 4. tmpfs: 可以用来将数据暂时保存在RAM中,而且容量可以随着保存数据的量变 化。 5. ramfs: 也可以用来将数据暂时保存在RAM中,与tmpfs类似。 WOLF Linux在嵌入式设备环境下使用,支持flash,同时又要支持多平台下的存储卡,所以,在选择文件系统时要考虑到实际应用。 WOLF Linux对文件系统的要求是: 1. 要用尽可能少的内存 2. 速度要快 3. 临时文件操作不能在flash上进行,因为flash的擦写是有寿命的。 内核运行需要的文件和数据存放在flash上,而一些临时文件则用内存作为存储介质。所以内核运行采用两种文件系统:jffs和 tmpfs。 Jffs文件系统是在flash上操作,内部有专门对flash的优化。采用jffs的优点是内存占用少、速度快、体积小。现在很多嵌入式linux采用的是基于EXT2的Ramdisk。Ramdisk在flash上要占用2MB以上,启动时还要解压缩到内存,需要占用内存10MB以上,缺点是浪费内存、启动速度慢。内存需要10MB的Ramdisk中的内容采用jffs只需占flash 2.1MB左右。 tmpfs由于体积随内容可增可减,所以它没有浪费内存,一些临时文件可以采用这种格式。 而书籍等数据文件是存放在存储卡上的,这些存储卡可能在不同的平台上使用,比如,出版社用NTFS格式化了存储卡,然后在上面加密拷贝了一些书籍。这时要求WOLF Linux能识别该卡,并且完成阅读软件要求的读写操作,所以,支持存储卡的文件系统更加多样: FAT、VFAT (Windows-95)、NTFS、EXT等。 2.3.3. 本质安全 WOLF Linux的本质安全,是指WOLF Linux的安全特性是根本意义上的信息安全,它是建立在特殊的硬件设备基础上的,是在专有硬件、特殊的体系结构、到操作系统的进程验证和运行权利限制等措施保证的安全性。 WOLF Linux的本质安全主要体现在以下几个方面: 多重ID的交叉、生命时间的监控 SIM卡烧录唯一的ID,并且ID只能一次性写入,不能更改。每个系统在装入WOLF Linux时,也赋予WOLF Linux一个唯一的ID号,WOLF Linux与SIM卡的ID互相校验通过后系统才能运行。阅读设备用硬件电路形成了固定不变的ID,每个阅读应用程序也有自己的ID标识,WOLF Linux在运行中实时检测设备和应用程序的ID,如果发现不合法则转入到SUSPEND状态。这样设计可以防止非法仿造硬件然后偷取内容。 WOLF Linux引入生命时间监控的目的是控制应用程序和著作内容的使用时间,指应用程序或文件具有时效性,这个时间既可以是从拷贝的一刻算起的绝对时间,也可以是使用时间的累加和。本措施可以为租赁阅读器或内容提供技术保证。 进程的受控运行,主要预防非法的攻击性开发(SDK) WOLF Linux用进程受限来控制非法应用程序的攻击。WOLF Linux 开发工具包(SDK)赋予每个应用程序一个唯一的ID,WOLF Linux在启动阅读类应用程序的进程时检查ID是否合法,如果合法才能让这样的进程运行。 基于字库显示与文件系统数字水印嵌入 数字水印技术是通过一定的算法将一些标志性信息直接嵌到数字媒体内容当中,但不影响原内容的价值和使用,且不能被人的知觉系统觉察或注意到[15]。在产生版权纠纷时,通过合法的发行者、运营者相应的算法提取出该数字水印,从而验证版权的归属,确定泄漏与泛滥渠道,确保数字产品著作权人的合法利益,避免非法盗版的威胁[16]。 WOLF Linux在系统调用层设计了数字水印的支持,分两个方面,一个是文本数字水印(原理如图2.5示),一个是版权内容文件的数字水印,图2.6是这种水印的原理图: 
中心内核的硬件化,使得操作系统可以硬件化和量化 内核的初始化部分和进程调度部分的可执行代码是一次性烧录在SIM卡上的,防止内核代码被修改。同时,也使得操作系统具有了数量的概念。 这里再从信息安全和操作系统安全的角度评估WOLF Linux的这种本质安全的安全性: 信息安全指设备运行的信息处理系统的安全。包括两层含义: 1. 对信息处理系统的安全保护(整体) 确保信息处理系统安全、可靠地不间断运行,为信息系统的所有用户提供应有的有效服务; 2. 对信息处理系统中的信息的安全保护 对系统中以各种形式存在的信息提供应有的保护,使其不会因为内部或外部的原因,遭到泄露、破坏或纂改。 总之,在为合法用户提供正确、可靠、有效的信息服务的同时,不允许任何人以任何非法手段窃取、破坏或纂改系统中的信息、或对系统的运行造成威胁。 操作系统安全内容:安全策略﹑主体识别﹑客体标记﹑可检查性﹑安全保证﹑连续保护等[17] 1. 安全策略 明确安全策略,对已标识的主、客体,必须有一规则集用来确定某一给定的主体是否可访问特定的客体。一般有:自主访问控制和强制访问控制两种策略。 2. 主体识别 必须唯一而可靠地识别每一主体,主体经身份验证后才能对客体访问。每次访问应明确识别何主体,访问安全级别的信息。 3. 客体标记 每个客体都有一标号,用以指明该客体的安全级别以及访问类型。 4. 可检查性 有选择地保护审计信息 注意使开销最小 审计数据必须得到保护,避免破坏和未授权的修改。 5. 安全保证 计算机系统应包含可独立被评估的软/硬件装置,以提供上述功能。 该装置可嵌入到操作系统中,并以安全方式执行以保证其可信度 6. 连续保护 可信装置能连续保护实施这些基本要求,防止损害或未授权的更改。 而WOLF Linux的安全是系统本身固有的,当发生超过范围的攻击时,系统可以采取使部分器件失效等措施来抵抗。包括三个层面的安全:物理安全/实体安全、 系统安全和应用安全。这三方面的安全涵盖了上面操作系统的安全内容。 WOLF Linux的物理安全指它赖以运行的手持设备是特殊的,不象PC兼容机那样,没有特殊硬件措施来对抗各种攻击。现在的安全很大一部分靠个性化实现,这在PC机的体系下是不可能的。在对物理安全的研究中,WOLF Linux主要有以下突破: 1. SIM卡保证运行环境安全 主要有以下几种措施: a. 部分程序代码可以转移到SIM卡:SIM卡有一段存储空间经过密码验证后可以使用,WOLF Linux在启动过程中,先与SIM卡互相校验,通过后,跳转到SIM卡的存储空间,在SIM卡的存储空间预先烧录了一段内核初始化程序,这段程序如果不执行,则系统就会停机。这是安全策略和客体识别内容。 b. 个性化配置,防止复制:SIM卡烧录唯一的ID,并且ID只能一次性写入,不能更改。这属于客体标记内容。 c. 自毁:当用户强行运行不能通过校验的系统,试图采取多次重试破解及通过验证时,自动烧毁SIM卡电路,防止穷举破解。 2. 存储卡保证内容安全 采用SD卡硬件实现内容保护:SD卡分系统区、隐藏区、保护区、用户区。 SD卡的系统区是写保护区,有64比特的媒体ID,和16个MKB,由4C提供,支持多种应用。每块最大65536字节,每个MKB由16columns,每个column 最多500行,由生产商放入。 SD卡的隐藏区是写保护区,对应16个MKB由16个Kmu。56比特,有媒体钥匙和媒体标识经单项函数计算的。 SD卡的保护区经互相认证后可读写。包含用Kmu加密的Title Key and CCI。加密用户区的内容。 SD卡的用户区是用户可访问的读写区。存储加密的内容。FAT文件系统。 系统运作的简单过程: a. 4C(国际组织)提供给每个设备制造商秘密设备钥匙;媒体制造商在每个媒体中设置有4C提供的媒体标志和MKB。 b. 当媒体放入设备中时,设备使用秘密钥匙和存储在媒体中的MKB生成一个秘密的媒体钥匙。不管使用哪种设备(记录设备或播放设备)访问该媒体,都会生成这个媒体钥匙。 c. 存储在媒体中的内容由content key加密解密,这个钥匙由一个秘密的Title Key 的单项函数和联系内容的CCI得出。而Title Key 则是由媒体钥匙和媒体ID的单项函数生成的钥匙加密和存储在媒体中的。对不同的应用由不同的钥匙管理。 d. WOLF Linux的存储卡驱动在内容加密和解密协议下,对SD卡的用户区进行读写访问。 3. 显示屏保证显示安全 在显示的数据经过加密才能到数据线上,到达屏控制器再解密显示,WOLF Linux显示驱动负责加密,屏控制器解密。这样的措施防止破坏者截取显示数据线窃取数据。 WOLF Linux的系统安全指在WOLF Linux在运转过程的安全性。当控制权到了WOLF Linux时,它首先巡检各物理安全设备,如果设备对于攻击已经失效,则停止整个系统的运行。系统安全措施用于抵抗在系统运行过程的攻击。这是操作系统的连续保护内容。 WOLF Linux的应用安全则指WOLF Linux在应用程序运行时的安全性,包括对应用程序提供的安全保证以及抵抗两个方面: 1. 给应用程序提供的安全保证: a. 提供各种加密解密系统调用,给应用程序以算法的支持。 b. 提供多个系统相关的唯一的ID,比如SIM卡ID,WOLF Linux ID,手持设备ID,让应用程序判断是否是正确的运行平台。 2. 抵抗应用程序非法操作: a. WOLF Linux用进程受限来控制非法应用程序的攻击。这一措施属于客体标记内容。 b. WOLF Linux对于硬件的操作也是严格限制的,应用程序不能直接操作硬件,必须经过系统调用,防止应用程序破坏或攻击设备。 从安全策略到连续性保护,WOLF Linux采用了个性化、软件硬件相互认证、显示加密、进程调度控制等底层措施确保了其硬件平台,自身,应用程序的安全性,达到了根本意义上的安全。这样,凭借以上软件硬件资源可以使数字版权保护不再是软弱无力,在本质安全的WOLF Linux支持下,多媒体移动平台的抗攻击性能大大提高。 2.3.5. 版权保护 数字版权保护技术,即Digital Rights Management(DRM),是指通过加密、信息安全传递等技术,防止电子书的非法拷贝,完成作者、出版社和网上书店之间的交易清算等。对电子出版物的版权保护,不仅关系到作者和出版商的切身利益,也是整个电子出版业能否健康发展的关键问题。这里所说的版权控制,在阅读器环节上对存在版权的数字内容进行阅读和传播方面的控制。Wolf Linux作为便携式个人电子阅读平台的专用操作系统,从操作系统级上对此提供支持,这是其重大突破。 WOLF Linux以它的本质安全和平台提供的具体验证以及固化的一些算法为基础,从内部和结构上保证版权保护的抗攻击性。具体的体现是在于SDK,SDK使WOLF Linux版权保护 用户相关ID。此ID可以理解为厂商授权给用户的阅读密钥存根,可由用户相关信息经过包括加密在内的数学变换生成。然后由厂商在eBook出厂时烧到Mask ROM或Flash等非挥发的存储器中,供用户使用阅读器或拷贝电子读物时验证密钥使用。此ID不能由包括操作系统在内的任何软件改写,只能由厂商使用特定设备和加密算法写入,操作系统对存放该ID的存储空间只有读权限。版权授权和授权规则维护是基于设备ID(包括SIM、手持设备、存储卡)标识的,发布资料的用户可以选择授权的时间期限,使用的设备数或范围,系统通过标识每一台设备的访问控制权限和控制授权的发放,控制了对内容数据的复制的无效性。从而保护了出版者的权利。 体系结构级的抗侵扰特性。由于类Harvard体系结构的特点,代码和数据可以存储于不同的存储空间,代码可以直接烧到非挥发存储器中,消除了通过修改程序代码实现破解的可能性。 从设计上实现产品、技术人员无关性。这主要指通过安全技术上的设计,实现避免由于相关技术人员的流失而造成对电子出版物数字版权的破坏。比如可以通过将解密程序和密钥存根烧到同一块存储空间中,实现加/解密算法的可替换。密钥长度和加/解密算法的灵活性将会使相关人员与用户ID联系的密切程度降至最低。 底层保证的本质安全和版权支持通过SDK提供给开发者,从而保证了阅读应用的安全性,是出版商可以信赖开发者,把内容由阅读软件开发者呈现给读者。
|