此文为开发视界翻译转载者请注明出处(开发视界 www.sf.org.cn)否则追究法律责任 1、绪论
本文档描述了Symbian平台安全的一些基本概念,并对开发商如何获取相关功能进行了延伸探讨。
2、Symbian 安全模型 2.1 对Symbian平台安全模型的论证
移动设备所具有的能力日益增长,因此,用户在使用移动设备处理大量的重要信息时,移动资源所拥有资源的重要性亦不断增长。然而,对于移动设备来说,虽然他们和普通的计算机并不一样,但令用户发现他们的电话易用、可靠、安全和值得信任仍是我们的目标。从这个目标出发,我们向大家介绍Symbian 平台安全模型。这个模型的目的不是令用户关掉他们的手机,而是想让用户和以前一样,将其作为一个简便的,值得信任的工具来使用。将这个设想应用在广大用户群所拥有的只能设备上,是完全可能的。同时,这个目标亦会为应用程序带来大批的用户。 2.2 Symbian 平台安全模型实践
Symbian安全模型主要使用以下三种模型:
1.基于可信计算。
2.数据牢笼
3.功能 2.2.1 基于可信计算
基于可信计算是一种关于强制使用功能和数据囚笼模式软件的集成方式。其包括核心,文件系统和软件安装程序。对于平台安全模型来说,这是操作系统的控制部分。
2.2.2 数据牢笼
数据牢笼意味着用户只能访问文件系统的部分区域。在实际应用中,用户可以访问他们自己的目录与标记设定为开放的目录。这意味着,举个例子,一个应用程序不能访问其它应用程序的私有目录与数据。 其获取限定方法如下:
\资源
应用程序图标的位置,位图等等。仅在应用程序安装时允许写操作。所有人都可以对文件夹执行读操作。
\系统
二进制的位置,包括应用程序安装注册与登陆证书。用户仅在应用程序安装时拥有写权限。当备份应用程序时有读权限。
\ 私有
这是每个应用程序的私有空间。用户仅在应用程序所在的目录有读权限与写权限。当备份软件时,允许对该目录进行读写。
\其它
可以对其它所有的文件夹不受限制的访问,例如,用户的照片,音乐和文档。 2.2.3 功能
可以通过证明为一类应用程序接口授予功能访问权限。例如Symbian 认证。功能可被分为4个部分。
1.对所有开放
· 在目录下的应用程序接口拥有所有的基本属性,例如,大部分的单主角游戏。
· 一般来说,约60%的应用程序接口可以自由使用而不需要定义特别的容量需求。
2.在安装时授予用户
· 一些功能可以在用户进行安装时进行授权。
· 应用程序设定为默认获得,直到应用程序从设备上移除。
· 在某些缺省设备上选项将不被激活。因此用户不得不单独激活那些安装阶段授权的功能。
3.通过Symbian认证授权
· 当通过Symbian认证授权后,一些功能将可用。
· 某些敏感功能需要在使用时进行验证。也可能需要通过测试。
· 大多数敏感功能要求开发商填写功能需求表与平台制造商同意表,还需要通过一些包括额外平台开发商所定义规范的测试。关于S60的规范可以在www.forum.nokia.com/testing的Nokia Test Criteria for Symbian C++ Applications文档中找到。
4.通过制造商进行授权
· 功能需求表包括TCB与DRM功能。其由设备制造商提供并由一个法律协议规范。
· 由于强烈的商业原因,通常需要获得这些功能
2.3 应用程序认证
S60第三版介绍了应用程序托管认证。这意味着如果没有使用认证,应用程序将无法安装。一般来说有以下两种认证:
1.使用任意私有标签(私钥)获得唯一认证并且确保SIS文件的完整性。使用makekeys程序可获得私钥,而利用运行signsis程序则可完成应用程序认证过程。以上两种应用程序均可由SDK获得。
2.使用特殊私有密钥注册从而获得证书——认证应用程序从而使设备上的可信根证书认证应用程序。
在部署过程期间,为了将应用程序安装到设备上,开发商应该使用第一种 认证。后一种认证方法可以通过Symbian注册来获得相关功能。
2.4 分配功能
应用程序所需要的功能可以在程序设计阶段定义下来。应用程序定义文件包括一个MMP文件,其包含了应用程序所拥有功能的相关信息。然而,车载用户可以通过车载设备用户界面在一个特殊区域获得功能信息。
在应用程序安装阶段,设备将检测应用程序是否注册或认证。随后其将检测根证书用于确定设备是否被授予应用程序所需求的相应功能。如果没有遇到问题,安装过程将继续直至完成。
表1显示了功能是如何划分的。
|
非受限 |
安装时用户授权 |
Symbian认证 |
制造商核准 |
|
60%的API |
读用户信息
写用户信息
网络服务
本地服务
用户环境
注意:实施可能在两台设备间完成 |
用户授予权限+定位 |
Symbian认证功能+ |
|
声明:
读设备数据
写设备数据
准许在系统中中断任何进程或者转换机器状态(关掉设备)
准许访问提供外围设备输入信息的逻辑设备驱动
准许服务器应用可以用一个受保护的名字进行注册
区分”normal”应用和”trusted”应用的UI
准许生成或者捕获键盘以及笔输入事件 |
功能需求表与功能商鉴定:
l DRM
l TCB |
|
功能需求格式及核准平台 |
|
准许进行硬盘管理操作,例如格式化驱动器
所有文件操作
准许访问通信设备驱动
准许对所有多媒体设备驱动(声音、摄像头等)的访问
准许修改或者访问网络协议控制 |
表1 功能对比 表2为实践环节的更多功能提供了信息
|
|
功能 |
说明 |
|
1 |
准许修改或者访问网络协议控制(NetworkServices) |
例如拨号或发文本信息的功能 |
|
2 |
本地服务(LocalServices) |
通过USB,红外或点对点蓝牙规范通信的能力 |
|
3 |
读用户数据(ReadUserData) |
授予用户读信息的权限。当授予该级规范与用户数据时,系统服务器与应用程序引擎是非限的 |
|
4 |
写用户数据
(WriteUserData) |
授予用户数据写权限。同时,当授予该级规范与用户数据时,系统服务器与应用程序引擎是非限的 |
|
5 |
准许访问手机的位置信息(Location) |
授予可获得电话位置的权限 |
|
6 |
准许访问用户及其附近环境的实时保密信息(UserEnvironment) |
授予访问涉及他/她紧密环境的生活秘密信息的能力。 |
|
7 |
准许在系统中中断任何进程或者转换机器状态(关掉设备)
(PowerMgmt) |
准许在系统中中断任何进程或者转换机器状态(关掉设备) |
|
8 |
准许对所有多媒体设备驱动(声音、摄像头等)的访问
(MultimediaDD) |
控制访问所有多媒体设备驱动的能力(声音,照相等等) |
|
9 |
读设备信息(ReadDeviceData) |
授予读敏感设备数据信息的能力 |
|
10 |
写设备信息
(WriteDeviceData) |
授予写敏感设备数据信息的能力 |
|
11 |
准许访问DRM保护的内容(DRM) |
准许访问DRM保护的内容的能力 |
|
12 |
区分”normal”应用和”trusted”应用的UI
(TrustedUI) |
该功能区分”normal”应用和”trusted”应用的UI。当一个”trusted”应用在屏幕上显示内容时,一个”normal”的应用不能伪造它。 |
|
13 |
准许服务器应用可以用一个受保护的名字进行注册(ProtServ) |
授予服务器以受保护名进行注册的权限。受保护名以“!”开头,其核心是阻止无该权限的服务器使用这类名称,并且这种方式将保护服务器信息的私有化 |
|
14 |
准许修改或者访问网络协议控制(NetworkControl) |
授予可以修改或获得网络协议控制能力的权限。 |
|
15 |
准许生成或者捕获键盘以及笔输入事件(SwEvent) |
授予生成与捕获软件关键词与画笔事件的权限。 |
|
16 |
准许访问提供外围设备输入信息的逻辑设备驱动(SurroundingsDD) |
授予通过电话等周边设备向本地设备提供输入信息的权限。 |
|
17 |
准许在终端中访问/sys以及/resource目录(TCB) |
授予访问电话/sys或/resource的权限 |
|
18 |
准许访问通信设备驱动(CommDD) |
准许访问通信设备驱动 |
|
19 |
准许进行硬盘管理操作,例如格式化驱动器
(DiskAdmin) |
准许进行硬盘管理操作,例如格式化驱动器 |
|
20 |
准许系统中的所有文件可见,而且还可对在/private下的文件进行写操作(AllFiles) |
准许系统中的所有文件可见,而且还可对在/private下的文件进行写操作 |
表2:功能描述
2.5 平台需求或制造商架构 在一些情况下,某种功能是需要的,而在其它情况下,对这类需求并没有直接的应用。例如:
1.在S60第三版中,使用除了可信计算基外其它所有功能的应用程序为:
· 消息类型模块
· 前后进程
· 浏览器插件
2.使用文件服务进程的设备加密应用程序需要以下功能:可信计算基,ProtServ,DiskAdmin,AllFiles,PowerMgmt,和CommDD。
3.反病毒应用程序至少需要可信计算基。
一些特定情况下,应用文档描述所需要的特定功能,但深层检查可以得知其是否需要使用特定功能。在诺基亚论坛,需要使用特殊功能的情况在关于平台安全页的问题回答段有相关描述 www.forum.nokia.com/platformsecurity。 |