平台安全( platform security )

160
Copyright © 2001-2007 Symbian Software Ltd. Symbian OS 基基 基基基基Platform Security 基基

Upload: temira

Post on 19-Mar-2016

140 views

Category:

Documents


6 download

DESCRIPTION

平台安全( Platform Security ). 第一部分. 平台安全. 本讲介绍 信任模型 能力模型 数据保护 安全标识符,商家标识符和唯一标识符. 平台安全. 平台安全 经常写作 “ PlatSec ” 由 Symbian OS v9.0 引入 是保护手机数据安全和完整性的基础 运行在软件层面上的安全模型 检测和阻止应用程序对硬件、软件、系统或用户数据进行非授权的访问 这些操作可能 锁住电话 危机用户的机密文件 相反的影响其他软件或电话网络. 平台安全. 平台安全阻止运行在 Symbian OS 上的软件采取不可接受的动作 有意或者无意的 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 平台安全( Platform Security )

Copyright © 2001-2007 Symbian Software Ltd.

Symbian OS基础

平台安全( Platform Security)第一部分

Page 2: 平台安全( Platform Security )

2

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

平台安全

本讲介绍• 信任模型• 能力模型• 数据保护• 安全标识符,商家标识符和唯一标识符

Page 3: 平台安全( Platform Security )

3

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

平台安全平台安全• 经常写作 “ PlatSec”• 由 Symbian OS v9.0 引入• 是保护手机数据安全和完整性的基础运行在软件层面上的安全模型• 检测和阻止应用程序对硬件、软件、系统或用户数据进行非授权的访问这些操作可能• 锁住电话• 危机用户的机密文件• 相反的影响其他软件或电话网络

Page 4: 平台安全( Platform Security )

4

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

平台安全

平台安全阻止运行在 Symbian OS上的软件采取不可接受的动作• 有意或者无意的这是一个系统范围的概念• 它对每个 Symbian OS开发者都有影响• 无论他是编写应用程序、中间件还是设备驱动

Page 5: 平台安全( Platform Security )

5

Symbian OS基础课程目标

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

安全模型‣ 理解“进程是信任单元”这一格言的含义,以及 Symbian OS是如何执行这一格言的‣ 理解可信计算基础( Trusted Computing Base )的目标以及为什么重要的原因‣ 了解许多 OS APIs 在被使用之前不需要进行安全检查‣ 知道不使用敏感的系统服务的自签名软件是“不可信的”,但可以安装手机上并进行运行,不过它是被有效得包在”沙箱“中( effectively “sandboxed”)

Page 6: 平台安全( Platform Security )

6

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

进程是信任的单元

平台安全中一个最进本的概念是• 信任单元的定义• Symbian OS 定义进程作为最小的信任单元• 进程 ( 绝大多数情况下即 , 应用程序或服务器 ) 代表用户运行在手机上进程可以• 由生产商构建到手机中• 也可以在手机离开工厂以后安装到手机上

Page 7: 平台安全( Platform Security )

7

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

进程是信任的单元

平台安全控制一个进程能做什么• 将它的活动限制在适当的权限中• 操作系统不会满足一个服务请求,如果进程不能提供需要的权限没有合适的权利• 进程被认为是不足以信任的

Page 8: 平台安全( Platform Security )

8

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

进程是信任的单元

进程被认为是最小的信任单元• 因为它是 Symbian OS中内存保护的单元手机硬件引发一个处理器错误• 如果对进程进行访问的地址没有在该进程的虚拟地址空间中Symbian OS 相信• 一个进程不能直接访问其他的虚拟地址空间• 硬件会阻止这种事情发生 !

Page 9: 平台安全( Platform Security )

9

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

进程是信任的单元

硬件辅助保护• 提供了软件安全模型的基础内核中转 IPC• 通过进程间安全的共享数据

Page 10: 平台安全( Platform Security )

10

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

进程是信任的单元

对运行在 Symbina OS中的进程上,应用有四个对应的信任层• 范围从安全的可信到安全不可信它们是 :• 可信计算基础( The Trusted Computing Base ,TCB)• 可信计算环境( The Trusted Computing Environment , TCE)• 其他信任(签名软件)( Other trusted (signed) software)• 平台其他(未签名,因此也不可信)

Page 11: 平台安全( Platform Security )

11

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

可信计算基础 (TCB)

TCB Symbian OS中最可信任的部分• 它控制低级的安全机制• 它有责任维护系统的完整性TCB中的代码• 以 Symbian OS的最高优先级运行

Page 12: 平台安全( Platform Security )

12

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

可信计算基础 (TCB)

为了能够进行 TCB可信性的验证• TCB 被保持得尽可能的小和简单Symbian OS TCB 已经被仔细的检查过• 例如通过逐行的代码审查• 以确保其中的代码能够正确运转 , 能被认为是可信的

Page 13: 平台安全( Platform Security )

13

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

可信计算基础 (TCB)

TCB 包含了操作系统的内核,后者负责照看每个进程的细节• 包括赋予进程的权限集合文件服务器也是 TCB的一部分• 因为它被用于将程序代码加载到进程中• 代码的权限信息在内核加载进程时建立

Page 14: 平台安全( Platform Security )

14

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

可信计算基础 (TCB)

对于“封闭的( closed)”的 Symbian OS 手机• 它们是不支持本地扩展( add-on)软件安装的TCB 包括• 内核• 内核一侧设备驱动器• 文件服务器

Page 15: 平台安全( Platform Security )

15

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

可信计算基础 (TCB)

绝大多数 Symbian OS 手机是“开放的( open)”• 因此软件安装器 (SWInstaller) 也构成了 TCB的一部分• 当安全 SIS包中的文件时,安装器 T运行• 它从安装包中提取文件,包括程序二进制代码SWInstall 具有重要的角色• 将程序二进制要求的权限与安装包的数字签名进行确认

Page 16: 平台安全( Platform Security )

16

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

可信计算基础 (TCB)

严格的说• 内存管理单元(MMU)和其他安全相关硬件都是 TCB的一部分• 它们不会在这里讨论,因为 Symbian不提供手机硬件绝大多数用户库不包含在 TCB中• 只有需要被文件服务器或者软件安装器使用的极少数属于 ... • ... 例如,密码系统库在信任的最高等级

Page 17: 平台安全( Platform Security )

17

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

可信计算环境 (TCE)

TCE 包括移动电话中的可信软件• 由 Symbian提供的• 或者由其他供应商提供的

例如 UI平台提供商以及手机生产商TCE 代码被断定为可信的• 但是它不是需要最高权限才能运行• 并被赋予较少的特权• 因此比运行在 TCB中的代码可信度弱一些

Page 18: 平台安全( Platform Security )

18

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

可信计算环境 (TCE)

在 TCE中• 每个组件只拥有执行明确定义的一组服务所需要的权限通过这样限制服务集合• Symbian OS 限制了有服务器代码缺陷所带来的威胁• 或者可能的威胁,如由代码破坏引发的危险

Page 19: 平台安全( Platform Security )

19

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

可信计算环境 (TCE)

TCE 代码通常实现• 服务器进程中的系统服务通过要求选定的服务器具有特定的权限• 可能对所有服务器限制访问敏感的低层操作• 以及防止其他进程的误操作

Page 20: 平台安全( Platform Security )

20

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

可信计算环境 (TCE)

例如 : 考虑 TCE的两个组件• 窗口服务器(window server)和电话服务器( telephony server)窗口服务器 (WServ) • 被授权访问屏幕硬件• 但是不需要访问手机网络电话服务器 (ETEL) • 被授权访问通信设备驱动器• 但需要访问屏幕硬件

Page 21: 平台安全( Platform Security )

21

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

可信计算环境 (TCE)

TCE中的服务器提供• 对底层服务的间接访问,通过为 TCE 外的软件提供例如• 一个电话应用程序不是 TCE的一部分,所以没有和电话服务器或者窗口服务器相同的权限

• 它不需要直接和硬件通信• 相反,它使用每个服务器提供的 API 来执行应用程序的操作

Page 22: 平台安全( Platform Security )

22

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

可信计算环境 (TCE)

Symbian OS 服务器 • 构成了平台安全架构的基础每个服务器都有责任节制(moderate)和保护它所拥有的底层资源的使用• 同时,也为运行在可信度减低的进程中的客户端中转对资源的访问

Page 23: 平台安全( Platform Security )

23

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

签名软件( Signed Software)

对一个“开放”的 Symbian OS手机安装软件是可能的• 绝大多数额外的软件都是位于 TCE之外的• 但是仍然需要特定的权限来使用 TCE提供的服务

Page 24: 平台安全( Platform Security )

24

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

签名软件

例如• 需要访问网络服务的软件必须打开一个网络套接字套接字服务器 (ESOCK)• 是 TCE的一部分• 它处理网络接口的底层操作一个应用程序• 它希望打开网络套接字• 请求套接字服务器代表它去这样做

Page 25: 平台安全( Platform Security )

25

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

签名软件套接字服务器 • 将首先检查请求是来自一个已经被赋予适当信任等级的程序它不会赋予所有希望访问网络套接的代码的访问权限• 恶意代码可能会供给网路或者其他设备这一点是非常重要的,任何请求一个服务的应用程序• 在请求允许之前被认为是值得信任的这种信任的一个度量就是软件已经被数字签名了

Page 26: 平台安全( Platform Security )

26

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

签名软件当一个外部作者在决定是否签名一个应用程序• 以允许它执行电话上的某些操作,如打开网络套接字 ...

...该应用程序• 没有项 TCB 和 TCE中的代码那样经过严格的评估• 源代码本身通常没有被逐行检查,虽然代码的功能被测试过• 开发者的信任状 (身份 )也将被检查这构成了 Symbian签名的基础• 它在 Symbian签名门户网站 www.symbiansigned.com上公布了 Symbian签名要求的测试

Page 27: 平台安全( Platform Security )

27

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

不可信软件( Untrusted Software)

软件的可信性不能确定• 如果它没有被签名或者是”自签名 (self-signed” )• 自签名即虽然被签名了,但是不是 Symbian信任权威( Symbian Trusted Authorities )签署的这意味着• 它必须被 Symbian OS认为是不可信任的• 但是这并不意味着软件是恶意的或者无价值的有许多有用的操作• 它不需要调用系统服务就能在手机上执行• 调用系统服务器就意味着需要一定等级的权限

Page 28: 平台安全( Platform Security )

28

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

不可信软件Symbian OS • 只在需要时进行必要的安全检查这些检查• 大约包含了所有 Symbian OS API中的 40%

例如• 一个单人纸牌游戏不执行任何操作,它们需要访问• 敏感的用户数据或者系统关键的数据或服务不可信软件可以安装• 和运行在手机上• 但是它是沙箱中的(“ sandboxed” )• 它不能执行任何需要安全权限的动作

Page 29: 平台安全( Platform Security )

29

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

不可信软件

绝大多数手机生产商要求一个应用程序在安装之前需要签名TCB 、 TCE 和 Symbian OS平台其他部分之间的关系• 在后续幻灯片中展示

Page 30: 平台安全( Platform Security )

30

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

信任的等级( Tiers of Trust)

Kernel, F32, SWInstall

WServMessaging

ETEL

ESOCK MMF

可信计算基础 :具有修改文件系统的所有能力 包含内核、 F32和开放手机上的 SWInstall

SWInstall是守门员

平台其他部分是不可信的 .包含未签名系统软件和应用程序,它们在沙箱中

平台的这部分是较少信任的 . 包含其他签名系统软件和应用程序

可信计算环境 :以不同权限运行的大量系统服务器

Page 31: 平台安全( Platform Security )

31

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

信任的等级

上图 • 故意没有将 TCB 显示在环的中心内核可能通常被认为占据该位置• 它们的一些服务对所有进程都是可用的其次,文件服务器 —— 像其他服务器• 既是内核的客户端,也是对所有进程可用的软件安装组件• 被显示成伸展到了周场外• 因为它扮演了手机守门员的角色

Page 32: 平台安全( Platform Security )

32

Symbian OS基础课程目标

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

能力模型( Capabilities Model)‣ 理解能力和 TCB的关系‣ 理解用户能力的概念以及它们与 TCE的关系‣ 理解 TCB/TCE、能力分配、软件安装器(作为守门员)以及应用程序签名的角色之间的关系‣ 认识能力的不同分组,并能够更广泛的理解被赋予的权限‣ 了解如何在MMP文件中指定平台安全能力‣ 理解能力规则

Page 33: 平台安全( Platform Security )

33

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

能力模型

进程是 Symbian OS上的信任单元• 每个进程被分配一个等级的权限,以指示它能够执行什么安全敏感的操作权限有一个能力( capability)指派• 能力是一个符号,它赋予持有者访问系统服务或资源的权限拥有一个能力说明• 进程被信任不用滥用权限关联的服务或者资源

Page 34: 平台安全( Platform Security )

34

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

能力模型

Symbian OS 平台安全• 的构建是利用能力来表现访问的权限• 定义而许多能力,它们分别分配了特定的权限内核• 拥有一个针对每个运行进程的能力列表一个进程• 可以让内核检检查另一个进程的能力,在决定是否代表它执行一个服务之前

Page 35: 平台安全( Platform Security )

35

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

能力模型

对于可安装软件• 软件安装器扮演了守门员的角色• 它验证程序已经被授权使用它构建时所带有能力• 拒绝安装没有正确授权的软件数字签名 ( 或者 – 对一些能力 – 用户的许可 )

Page 36: 平台安全( Platform Security )

36

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

能力模型能力是离散和正交的• 这意味着它们没有覆盖• 它们不是访问令牌的层次化集合• 每个增加一些权限,直到达到 TCB的等级相反• 一个特定的受保护资源能被单个能力控制• 任何要访问该资源的进程• 包括 TCB中的进程• 必须具有权限才能成功访问• 进程不需要具有其他能力

Page 37: 平台安全( Platform Security )

37

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

能力模型不同操作• 可能要求不同能力• 即使那些操作用相同的 API 实现例如• 访问文件要求不同的能力• 这取决于它在文件系统中的位置有三个宽泛的能力类别 : • TCB 能力• System 能力• User 能力

Page 38: 平台安全( Platform Security )

38

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

用户能力

用户能力• 是一小组对手机用户意义深远的能力这些能力关系到一些安全概念• 用户能力理解它们,并对其做出选择例如• 一个用户可以是否安装软件• 该软件有能力拨打电话(这将花费用户的钱)• 或者能够访问用户的个人数据

Page 39: 平台安全( Platform Security )

39

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

用户能力

一个用户不应• 对影响到手机正常工作的能力进行决定• 例如影响系统服务的能力• 系统一级的能力是个单独集合

Page 40: 平台安全( Platform Security )

40

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

用户能力可用的用户能力总结如下表所示 :

用户能力 授予的权限LocalServices 通过短连接 (“short-link” , 例如蓝牙, USB或红外 )访问系统服务 . 这样的服务通常不会引起用户的费用

Location 访问手机的位置数据NetworkServices 访问远程设备 (例如通过 OTA空中下载数据服务或者WiFi网络访

问 ). 这些服务不会引起用户的费用

ReadUserData 读访问用户的私人数据UserEnvironment 访问用户和他们所在环境的活动数据WriteUserData 写访问用户私人数据

Page 41: 平台安全( Platform Security )

41

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

用户能力

用户能力• 典型的赋予那些软件• 它们使用有 TCE提供的服务TCE服务• 检查和执行用户能力• 并执行被请求的服务

Page 42: 平台安全( Platform Security )

42

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

用户能力

平台安全被设计成 Platform security is designed • 可安装软件(它只需要用户可授权能力)• 不需要被一个可信任权威签名该模型允许• 用户为软件授予权限• 当它被安装时• 或者当它运行需要执行某个动作时• 该动作需要一个特定的能力

Page 43: 平台安全( Platform Security )

43

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

用户能力

虽然用户能力• 被设计成用户可理解的• 但是它提供很多选择可能并不总是合适的• 这决定于手机当前使用的环境• 移动手机生产商会判断• 用户能力是如何在他们的手机上配置的• 即——他们是真正的用户可授权

Page 44: 平台安全( Platform Security )

44

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

系统能力最大一组的能力• 是系统能力授予一个系统能力• 允许进程访问敏感的操作• 系统能力的误用将威胁手机的完整性系统能力• 对于用户并不是特别有意义• 而是被设计成对用户隐藏需要系统能力的可安装软件• 在赋予它们能力之前,需要提交• 到测试和认证机构(例如 Symbina Signed)

Page 45: 平台安全( Platform Security )

45

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

系统能力下表总结了可用的系统能力 :

系统能力 赋予的权限AllFiles 读访问整个的文件系统,写访问其他进程的私有目录

CommDD 直接访问所有的通信设备驱动器DiskAdmin 访问文件系统管理操作,它会影响多个文件或目录(或者整个文件系统的完整性,行为等)Drm 访问 DRM保护的内容MultimediaDD 访问关键的多媒体功能,例如直接访问关联的设备驱动器以及优先访问多媒

体 API

NetworkControl 修改或访问网络协议控制的能力

Page 46: 平台安全( Platform Security )

46

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

系统能力系统能力 赋予的权限PowerMgmt 杀死任何进程、关闭不使用的外设、使手机进入待机状态、唤醒以及完全关机的能力ProtServ 允许服务器进程以一个受保护名字注册的能力ReadDeviceData 读访问秘密的网络运营商和手机生产商信息以及设备设置

SurroundingsDD 访问逻辑设备驱动器,它提供手机周围环境的输入信息SwEvent 迷你按键输入以及从任意程序捕捉这类事件的能力TrustedUI 创建一个可信 UI会话从而能力在安全的 UI环境显示对话框的能力

WriteDeviceData 写访问能够控制设备行为的设置

Page 47: 平台安全( Platform Security )

47

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

Tcb 能力

Tcb 能力• 只能由 TCB的成员拥有可信计算基础• 内核 The kernel • 设备驱动程序• 文件系统• 软件安装器——在开放的 Symbian OS手机上

Page 48: 平台安全( Platform Security )

48

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

Tcb 能力

TCB以最大的权限运行• 任何 TCB中运行的代码都会被赋予• 所有的系统和用户能力• 因为有些事情只有 TCB代码能做• 例如加载程序代码 Such as loading program code

有一种能力• 只赋予 TCB• 最关键的能力是 Tcb

Page 49: 平台安全( Platform Security )

49

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

分配能力

当构建可执行代码时• 为了 Symbian OS的平台安全• 需要在它的MMP文件中为其赋予一定的能力• 使用关键字 CAPABILITY

所以能力• 被 Symbian工具链构建到了 EXE 或 DLL中

Page 50: 平台安全( Platform Security )

50

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

分配能力能力可以在一个包含列表中指定• 例如 :

作为替换• 一大组的能力也可以用排除列表指定• 例如 :

指定 CAPABILITY Tcb • 并不等同于拥有所有能力指定 CAPABILITY All • 并不意味着拥有 Tcb 能力• 像拥有其他能力一样

CAPABILITY ReadUserData WriteUserData SwEvent

CAPABILITY All -Tcb -Drm -DiskAdmin

Page 51: 平台安全( Platform Security )

51

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

分配能力

一旦代码以适当的能力构建• 它要么被包含在手机的 ROM中• 由手机生产商• 或者后来安装到手机上是手机生产商• 的责任去确定将哪些代码构建到 ROM中• 以及为代码分配适当的信任等级• Symbian进行了必要的安全审查• 对它所发布的 OS 二进制代码

Page 52: 平台安全( Platform Security )

52

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

分配能力

需要系统能力的可安装二进制代码• 必须由以可信任的权威进行测试和验证• 例如 Symbian Signed• 软件安装“守门员”只允许经过了测试和验证的软件被安装• 如果它们附有适当的数字签名只需要用户授予能力的可安装二进制代码• 或者不需要能力的代码• 理论上不需要数字签名• 因为它们是在沙箱中运行的

Page 53: 平台安全( Platform Security )

53

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

分配能力

但是• 绝大多数的手持设备生产商配置 Symbian OS的平台安全• 以要求二进制代码在安装前被签名• 只要自签名来识别软件供应商

Page 54: 平台安全( Platform Security )

54

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

分配能力

在二进制被构建到 ROM 中后• 或者安装到手机上后• Symbian OS 会假定它已经符合的标准• 从而认为它所分配的能力是可能的对于一个 EXE• 这意味着进程将有权执行一定的特权操作对于一个 DLL• 这说明了它被信任的程度• 以及它被加载进的进程的可信度

Page 55: 平台安全( Platform Security )

55

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

能力规则 1

一个进程的能力在其生命期不会改变

Page 56: 平台安全( Platform Security )

56

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

能力规则 1

在运行时• 作为 TCB一部分的加载器• 从文件系统中读入可执行代码创建一个新的进程• 并确定需要的能力集合• 一旦这个完成,进程的能力就不能更改了如果一个进程由另一个进程产生• 它是独立运行• 它没有能力创建一个进程• 但是具有在构建它是MMP 里指定的能力

Page 57: 平台安全( Platform Security )

57

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

能力规则 2

一个进程只能加载这样的 DLL,它能被信任的能力至少与该进程一样的能力

Page 58: 平台安全( Platform Security )

58

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

能力规则 2

当一个进程加载一个 DLL 时• 这不会扩大或者缩小进程的能力集合正如规则 1 所说• 进程的能力在其生命期是不会改变的一个进程能加载一个 DLL• 该 DLL 已经被赋予比进程自身更多的能力• 进程不会被更新到那个更可信的集合• 而该 DLL会降级到进程的能力集合

Page 59: 平台安全( Platform Security )

59

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

能力规则 2

一个 DLL可以被加载进一个进程• 该进程拥有的权限比 DLL构建时的权限更少• 所以 DLL中的代码不能假设• 它将以赋予它的能力运行如果一个 DLL要求• 一个特定的能力以满足其目的• 这应该在库文档中清楚的指明

Page 60: 平台安全( Platform Security )

60

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

能力规则 2

一个进程会加载一个 DLL失败• 如果该 DLL没有至少与该进程一样的能力如果 DLL没有这些能力• 这说明该 DLL不能被信任会安全的运行在该进程中• 这可以阻止不可信的代码被加载到敏感的进程中一个可信的进程应当不能加载不可信的 DLL• 例如——一个 DLL可能耗尽所有可用的栈或堆• 恶意的或者仅仅由于糟糕的编码• 从而妨碍了该进程的功能实现

Page 61: 平台安全( Platform Security )

61

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

能力规则 2

DLL 加载器• 为所有进程提供了这种安全机制• 消除了它们识别哪些 DLL能够安全加载的负担演示如下• 其中二进制代码的能力用“ Cn”表示

Page 62: 平台安全( Platform Security )

62

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

直接加载 DLLs

exe

dll

dll

exe

C1,C2

C1

C1,C2,C3

C1,C2

Page 63: 平台安全( Platform Security )

63

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

能力规则 2

本规则 • 对于静态链接 DLL有一些有趣的后果绝大多使用 DLL的数程序• 会使用静态链接动态加载主要用于插件框架静态链接解析引用 Static linking resolves references • 到链接的 DLL中的符号,是在构建时• 这样它们在运行时的加载效率更高

Page 64: 平台安全( Platform Security )

64

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

能力规则 2

关于能力一个有趣的情况是• 当一个 DLL静态链接到另一个 DLL 时• 原始的 DLL被加载进程中• 第二个 DLL也被加载考虑下面的图示• 其中原来的 DLL (DLL1) 具有一个能力• 而该能力第二个 DLL (DLL2) 没有

Page 65: 平台安全( Platform Security )

65

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

DLLs静态链接

exe dll2dll1? C1C1,C2,C3load static

link

DLL1 永远不能被加载到具有能力 C2 或 C3的进程中——外什么?

Page 66: 平台安全( Platform Security )

66

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

能力规则 2

DLL1 不能被加载到进程中• 该进程拥有能力 C2或者 C3• 因为 DLL1 (C1,C2,C3) 链接到了 DLL2 (C1 only)• 而 DLL2 是没有可信性• 足以加载到有 C2 或 C3的环境中的事实上• 不必为 DLL1申明 C2 或 C3• 因为它永远不会被用到!典型的,进程会重用已经加载的 DLL• 因此这引发了对规则 2 的优化,如下: ...

Page 67: 平台安全( Platform Security )

67

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

能力规则 2

加载器只加载静态链接到第二个 DLL 的 DLL,如果第二个 DLL以至少与第一个 DLL相同的能力被信任

Page 68: 平台安全( Platform Security )

68

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

间接加载 DLLs

exe dll2dll1C1,C2 C1C1,C2,C3

例 1

动态加载

exe dll2dll1C1,C2 C1,C2C1,C2,C3

例 2动态加载

exe dll2dll1C1,C2 C1,C2C1,C2,C3

例 3静态链接

Page 69: 平台安全( Platform Security )

69

Symbian OS基础课程目标

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

Data Caging(数据隔离)‣ 理解 data caging是如何工作以保护三个特殊目录 (\sys,\resource 和 \

private);下所有类型文件的;特别的, data caging是用于分割文件系统中所有可执行文件,这样,一旦被信任它们就被保护起来免于修改‣ 理解 data caging对于命名可执行代码的影响‣ 认识 data caging可用于为应用程序数据提供安全的保存区域‣ 认识到读或者写特定目录或子目录所需要的能力‣ 知道 DLL没有私有的隔离的数据( data caged)的区域,而是使用加载它们的进程的区域,并且这个目录可以被 DLL获知,通过调用文件系统方法

RFs::PrivatePath()

Page 70: 平台安全( Platform Security )

70

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

数据隔离

重要文件的安全性• 由 Symbian OS通过被称为 data caging的文件访问控制方法来保护的隔离( caging) 涉及所有的文件类型 refers to all types of files• 无论它们的内容是代码还是数据• 可能它应该被称为文件锁定(“ file caging”)

Page 71: 平台安全( Platform Security )

71

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

数据隔离

许多系统文件• 对于手机正确的功能和完整性是关键性的• 其他的对于用户则是个人的,应该保持秘密系统和用户文件都• 能被 data caging保护• 它将文件分割到文件系统的安全区域• 以防止破坏和不受欢迎的访问

Page 72: 平台安全( Platform Security )

72

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

数据隔离

Data caging 不用于保护所有文件• 文件系统存在一些公共区域• 其他的则将特定的文件锁定在私有区域里私有区域位于特定的顶层路径上 :• \sys

• \resource

• \private

这些目录是访问限制的• 其子目录也是

Page 73: 平台安全( Platform Security )

73

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

数据隔离当访问其他所有保持公开的路径时• 不需要任何能力来实现读出或写入TCB 进程• 对所有的目录具有完全的读写权限对其他进程• 用以读写特定目录的能力• 总结如下 ...

Page 74: 平台安全( Platform Security )

74

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

读写需要的能力

所有磁盘的目录及其子目录 (z:, c:, 等 ) 读需要的能力 写需要的能力

\sys AllFiles Tcb

\resource 不需要 Tcb

\private\<ownSID> 不需要 不需要\private\<otherSID> AllFiles AllFiles

\other (e.g. c:\games or just c:\) 不需要 不需要

Page 75: 平台安全( Platform Security )

75

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

数据隔离

AllFiles 能力• 允许读访问整个文件系统• 写访问 \private的所有子目录Tcb 能力• 扩展到允许写访问 \sys 和 \resource • 包括其子目录

Page 76: 平台安全( Platform Security )

76

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

数据隔离文件的访问控制• 有包含的目录所在的位置决定无论• 那个磁盘• 以及尝试访问它的进程有什么能力不需要有访问控制列表( ACLs)• 用以每个文件来确定哪个进程可以访问它为了限制一个文件的访问 ..• 只要简单的将其移动到受保护的目录

Page 77: 平台安全( Platform Security )

77

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

锁定的文件路径 : \sys

目录 \sys\bin• 是保存所有程序二进制(可行性)代码的地方构建在移动手机 ROM中的可执行程序• 从 z:\sys\bin运行安装的软件被写入• C:盘的 \sys\bin 目录• 或者可移动介质上的对应目录

Page 78: 平台安全( Platform Security )

78

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

锁定的文件路径 : \sys

由于二进制程序被安装在可移动介质上• 它们潜在的可以从手机的卡上删除为了检查可执行程序是否被篡改 To check for tampering of executables• c:\sys\hash 被用于存储二进制代码的安全散列值 .

只有 TCB中的代码• 具有读写 \sys 目录及其子目录的权限具有 AllFiles 能力的代码• 可以读访问 \sys• 这确保了只有可信的代码能够访问可执行程序

Page 79: 平台安全( Platform Security )

79

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

锁定的文件路径 : \sys

存储在手机其他地方的二进制代码• 是不可执行的• 以防止恶意软件的安装一个要求所有的执行程序代码安装在 \sys\bin 的后果• 是潜在的名字冲突开发者必须确保• 他们的二进制程序被赋予唯一的名称• 典型的,通过包含 SID 或 UID3• 它们对于二进制代码是唯一的

Page 80: 平台安全( Platform Security )

80

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

锁定的文件路径 : \resource

\resource 目录• 是用于严格自渎的资源文件的例如• 位图,字体,和帮助文件只有 TCB 能写入这个目录• 以确保资源数据不会被破坏• 从这个目录读数据不需要能力\resource 目录中的文件是• 要么构建到手机的 ROM中• 要么是后来被软件安装器安装到可写介质上

Page 81: 平台安全( Platform Security )

81

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

锁定的文件路径 : \private

每个进程• 有它们自己锁定的文件系统区域,作为每个磁盘 \private下的一个子目录该子目录• 有 EXE 的 SID标识• 只有符合 SID或者具有 AllFiles 能力的进程• 才对该目录具有全部的读写权限

Page 82: 平台安全( Platform Security )

82

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

锁定的文件路径 : \private

一个 DLL • 没有自己的私有目录• 它使用加载它的进程的目录Symbian OS 文件服务器访问类• 提供了一个方法以发现私有路径的名称• 即 RFs::PrivatePath()

Page 83: 平台安全( Platform Security )

83

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

注意

一个 .pkg安装文件• 可被用于指定数据 Can be used by other parties to specify data • 它们将被放置其他应用程序的 \private\<SID>\import子目录下但是 ...• 只有 import子目录已经在磁盘上存在时才行

Page 84: 平台安全( Platform Security )

84

Symbian OS基础课程目标

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

安全标识符 , 厂商标识符,及唯一标识符‣ 解释什么是安全标识符 (Secure Identifier ,SID), 它是哪里定义的以及它的用处是什么‣ 理解 SID , VID(厂商标识符)和二进制文件唯一性标识符 (UID)之间的异同‣ 知道根据 SID , VID 和 UID 来标识一个应用程序的规则‣ 知道 SID 和 VID可以分配给 DLL,但是没有特别的关系‣ 了解如何在MMP文件中指定 VID 和 SID‣ 了解 UIDs 现在被分为两组(保护的和非保护的),它们的区别是分别用于商用代码和测试代码

Page 85: 平台安全( Platform Security )

85

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

安全标识符 , 厂商标识符及唯一标识符

与每个可执行二进制文件关联的标识符有很多 : • SID(安全标识符)• VID (厂商标识符)• 以及一些 UIDs• 它们都是 32 位数

Page 86: 平台安全( Platform Security )

86

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

唯一标识符( Unique Identifier ,UID)

UIDs可用于• 当二进制文件在 Symbian OS上执行时,对其进行唯一性标识对任意一个可执行程序,都有三个 UIDs• 它们被构建到所有的 Symbian OS文件的前 12个字节中,以对其进行标识

Page 87: 平台安全( Platform Security )

87

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

唯一标识符 (UID)

第一个 UID (UID1)• 有 Symbian OS构建工具自动产生• 根据MMP文件中声明的目录类型 targettype• 例如 DLL 或 EXE

第二个 (UID2)• 对特定的目标类型进行指定,进一步对其进行细分• 例如,对于 DLL,有不同的 UID2的值• 针对多态接口 DLL 的 UID2 值和针对共享库 DLL 的 UID2 值第三个 UID (UID3) • 用于唯一性的标识二进制文件• 所有的商用代码将有 Symbian 负责分配 UID

Page 88: 平台安全( Platform Security )

88

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

安全标识符 (SID)

需要 SID• 对手机上每个 EXE都是存在的和唯一的• 用以标识进程可以访问的私有目录• 以及在进行进程间调用时唯一性的标识应用程序SID 与 UID3有些相似• SID的缺省值就是 UID3• SID 可以用MMP文件中 SECUREID 关键字予以指定 .

典型的• 推荐不指定 SID

简单的让它等于 UID3的值

Page 89: 平台安全( Platform Security )

89

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

安全标识符 (SID)

为了保持 SID是全球唯一• Symbian 通过一个中心数据库管理 UID3的分配• 该中心数据库由 Symbian 签名权威( Signed authority)管理可能的 32 位值已经被分成两个范围 : • 受保护范围 0x00000000–0x7FFFFFFF• 和非保护范围 0x80000000–0xFFFFFFFF

Page 90: 平台安全( Platform Security )

90

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

安全标识符 (SID)

当一个二进制文件拥有保护范围内的 SID 时• 软件安装器只是允许它安装• 如果它已经被一个认证程序予以签名• 例如 Symbian Signed

认证权威• 检查提交签名的二进制程序的 UIDs• 是否真的属于代码的作者• 以及该作者之前没有提交了另一个使用同样值的程序

Page 91: 平台安全( Platform Security )

91

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

安全标识符 (SID)

很重要的是• 组织有意或无意的重复使用另一个应用程序的 SID• 因为冲突的 SIDs会破坏由数据锁定所提供的应用程序数据隔离检查 SIDs的唯一性• 也能防止一个软件作者愚弄其他人的程序( spoofing the binaries of another)

Page 92: 平台安全( Platform Security )

92

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

安全标识符 (SID)

一些未受保护的 ID 范围• 不会进行唯一性控制• 可以用于未签名应用程序以及测试代码测试范围的 UID可以安全的用于测试• 因为它不是有 Symbian Signed分配的• 测试代码不会与合法应用程序冲突测试范围的 UID不应使用• 当发布自签名的代码时• 而是应该使用 0xA0000000–0xAFFFFFFF 范围的 UID

Page 93: 平台安全( Platform Security )

93

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

安全标识符 (SID)

下表显示了 UID的范围• 带阴影部分由 Symbian Signed根据请求进行分配

UID Range Intended Use Status0x00000000 KNullUID 保护0x00000001-0x0FFFFFFF 保留 保护0x10000000-0x1FFFFFFF 遗留分配范围 , 不是 V9的 保护0x20000000-0x2FFFFFFF UID3/SID 范围 保护0x30000000-0x6FFFFFFF 保留 保护

Page 94: 平台安全( Platform Security )

94

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

安全标识符 (SID)

UID Range Intended Use Status0x70000000-0x7FFFFFFF Vendor IDs 保护

0x80000000-0x9FFFFFFF 保留 未保护

0xA0000000-0xAFFFFFFF UID3/SID 范围 未保护

0xB00000000-0xE0FFFFFF 保留 未保护0xE10000000-0xEFFFFFFF 开发及测试范围 未保护

0xF00000000-0xFFFFFFFF 遗留 UID 兼容范围 未保护

Page 95: 平台安全( Platform Security )

95

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

厂商标识符 (VID)

厂商标识符 (VID) • 不需要对每个二进制文件都是唯一的其用意是 The intention is that multiple executables • 统一来源的多个可执行程序应该共享一个 VID • 以标识它们来自某个软件开发商例如• Nokia软件的 VID 是 0x101FB657

Page 96: 平台安全( Platform Security )

96

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

厂商标识符 (VID)

为了防止任何厂商 To prevent any vendor • 试图使用其他厂商的 VID• VID 只能用于可安装的代码,如果它被一个认证程序签名的话• 例如,将验证指定的 VID对于作者是合适的DLL 的 VID• 是没有关系的,因为任何 DLL 的 VID• 总是加载它的进程的 VID

VID可以在MMP文件中指定• 使用 VENDORID 关键字• 如果没有指定,就假定是 0• VIDs在应用程序构建完成之后是不能修改的

Page 97: 平台安全( Platform Security )

97

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

注意

SID 和 VID的值对 DLL是无关的• 因为它们运行在一个进程中 (EXE) • 它们使用进程的 SID 和 VID

Page 98: 平台安全( Platform Security )

98

Symbian OS基础课程清单

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

平台安全 : 第一部分✓ 信任模型✓ 能力模型✓ 数据锁定( Data Caging)✓ 安全标识符、厂商标识符和唯一标识符

Page 99: 平台安全( Platform Security )

Copyright © 2001-2007 Symbian Software Ltd.

Symbian OS基础

平台安全第二部分

Page 100: 平台安全( Platform Security )

100

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

平台安全

本讲介绍• 基于安全平台的应用程序设计• 在 Symbian OS v9上发布一个安全应用程序• 本地的软件安装器

Page 101: 平台安全( Platform Security )

101

Symbian OS基础课程目标

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

基于安全平台的应用程序设计‣ 了解编写安全应用程序时的关键考虑,包括应用程序安全相关的部分、典型攻击、反制措施以及安全应用程序设计和各种反制措施的代价

Page 102: 平台安全( Platform Security )

102

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

基于安全平台的应用程序设计

“一个安全的应用程序是用户可以信任它而不会失望 . 相反 ,一个不安全的应用程序要么是它的用户不信任的,或者会让信任它的用户失望 .”

[Heath 2006 Chapter 4]

Page 103: 平台安全( Platform Security )

103

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

基于安全平台的应用程序设计编写安全的应用程序是需要着重考虑的• 它提升了最终用户对产品的信任度• 一个不安全的应用可以导致很差的销售业绩并损坏开发者的信誉安全应用程序设计有两点需要坚持 :• 分析潜在的威胁和它们的影响• 分析和部署适当的反制措施

Page 104: 平台安全( Platform Security )

104

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

威胁分析

有几种类型的人• 对应用程序的安全感兴趣应用程序开发者• 商业开发者对反盗版信息的安全保护干兴趣,例如注册信息• 因为如果该信息被破坏的话,将产生重要的财务影响相似的 Likewise• 知识产权必须被安全保护• 尤其是如果从一个提供商获取授权的,而授权协议要求内容受到保护

Page 105: 平台安全( Platform Security )

105

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

专注于安全的人的种类

最终用户 : • 用户的关心是很明显的• 关心是否保持他们个人和敏感数据的私有性• 通过确保数据不被破坏和删除,以保持数据的可访问• 组织应用程序引发未经授权的财务支出例如• 不经过用户同意就发送消息或者拨打电话

Page 106: 平台安全( Platform Security )

106

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

专注于安全的人的种类

手机上其他内容的拥有者 :• 即使应用程序不会与它们的数据交互• 没有应用程序能够访问另一个应用程序的私有数据签名权威 : • 可信的认证权威,例如 Symbian Signed• 将要求应用程序证明是安全的• 在签署应用程序是可信的之前

Page 107: 平台安全( Platform Security )

107

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

专注于安全的人的种类

应用程序零售商 : • 零售商将希望应用程序能够保护自己免于盗版• 他们不希望卖那些会导致最终用户抱怨数据损坏的产品• 网络运营商也希望避免发布会引起计费争议(因为未授权的电话或消息)的应用程序• 或者其他会破坏电话网络的应用程序

Page 108: 平台安全( Platform Security )

108

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

安全设计考虑必须考虑一下几个方面• 当设计应用程序的安全性时 ...

确定哪些数据不被透露• 到应用程序之外• 例如——注册妈, DRM密钥等确定哪些数据不被透露的• 除了给用户或者其他可信软件• 例如——用户联系信息或者游戏的美工确定哪些数据需要保护以防止修改• 例如标识银行的证书• 用户可能会发送帐号和密码给银行

Page 109: 平台安全( Platform Security )

109

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

安全设计考虑

理解哪些正常行为• 可能被非正常使用例如• 一个图像渲染器被信任用于输出 DRM保护的内容• 它应当不能与一个可以输出到文件的模块交互• 因为这样的组合可能被用于获取未受保护数据的电子副本

Page 110: 平台安全( Platform Security )

110

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

潜在攻击

潜在的攻击可以分为一下几类:• 尝试导致用户使用上的不便• 要么通过阻止预期的行为或者引发意外的行为• 例如,拨打昂贵的电话,或者让手机软件崩溃• 尝试扫描手机以获取敏感的用户或应用程序数据• 直接或间接使用一个应用程序来提升攻击者的能力的攻击

Page 111: 平台安全( Platform Security )

111

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

采取措施已经进行了安全分析• 一个开发者可以采取许多措施来保护应用程序免于攻击绝大多数的措施• 应当在应用程序设计时考虑例如• 应用程序应当典型的模块化• 这样内部组件的交互就是可预测和可控的• 例如通过限制每个模块的能力• 将其限制到特定功能所需要的能力集合

Page 112: 平台安全( Platform Security )

112

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

采取措施

在设计阶段• 有必要确定一个应用程序可能需要哪些能力 • 因为对应用程序而言,可能需要一个可信权威的认证• 例如 Symbian Signed

有几种方法可用于分析需要的能力 ...

Page 113: 平台安全( Platform Security )

113

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

能力分析应用程序执行的一般操作• 应当被考虑,并联系 Symbian OS的能力集合• 这相对容易,因为能力的划分很粗• 只有相对很少的能力可供选择例如• 一个即时通信应用程序可能需要 NetworkServices 以访问 internet • 需要 ReadUserData 以便从用户的地址簿中读取数据每个要使用的 API被审查• 以记录它所需要的能力• 如其文档中所描述的

Page 114: 平台安全( Platform Security )

114

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

能力分析在代码的开发中反复实验• 如果需要就添加能力• 这可以通过Windows模拟器的平台安全设置确定• To write any failed capability checks to the debug log file

但这种办法一般情况下是不鼓励的• 因为它可能导致被赋予多于它需要的能力• 这反过来过使得程序有更大的被攻击的风险• 从而减弱了一般安全模型• 以及可能造成应用程序要求不必要的签名• 这意味着费用和时间上的耗费

Page 115: 平台安全( Platform Security )

115

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

能力分析

绝大多数的平台安全能力• 与安全风险关联• 要么是单独的,要么是组合的一个应用程序• 应当被设计成不为其能力所累• 它绝不应当被赋予比要真正需要更多的能力

Page 116: 平台安全( Platform Security )

116

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

能力分析

一个应用程序也应当确保• 其数据文件保持私有• 通过使用其隔离的私有目录• 该目录被数据锁定( data-caged )不让所有其他进程访问• 除非它们具有 Tcb 或 AllFiles 能力的被信任进程具有 \private\<SID>\import目录的应用程序• 该目录允许其他程序向其中安装数据• 可能需要自己自己的验证机制• 以决定导入的文件是否可信

Page 117: 平台安全( Platform Security )

117

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

数据共享

偶尔的,应用程序数据• 需要在进程之间共享• 对数据来说,要被多个不同的进程共享是不寻常的• 典型的,它只是对一个明确定义的组可访问的在这种情况下• 将文件保存在私有目录下是明智的• 并且实现一个服务器来提供和管理数据或者采用一个简单的办法• 即,服务器将文件句柄传递给其他进程• 这些进程具有足够的信任等级来访问文件

Page 118: 平台安全( Platform Security )

118

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

可移动介质上的数据

如果介质是可以从手机上移除的• 数据的访问可以不通过系统的保护机制这样• 如果一个应用程序将数据放在MMC中的私有目录下• 没有办法组织用户将存储卡取下• 然后在电脑上访问它一些手机• 支持密码保护的存储卡• 但不要假定所有存储卡都有这种保护

Page 119: 平台安全( Platform Security )

119

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

可移动介质上的数据

敏感数据• 应只存储在内部磁盘上• 或者应该加密存储例如• 通过设计一个安全存储的应用程序模块• 该模块在内部磁盘创建和存储一个加密密钥• 使用密钥来保证数据是安全的• 无论数据存储在那个磁盘

Page 120: 平台安全( Platform Security )

120

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

可移动介质上的数据

另一个与可移动介质使用相关联的问题• 是用户可以在 PC上修改存储卡上的内容• 然后重新把它插回到手机• 这可能破坏数据任何必须免于篡改的信息• 必须被保护要么通过• 将它保存在手机的内部磁盘• 或者通过使用数据的密码学中的散列值来进行篡改检测

Page 121: 平台安全( Platform Security )

121

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

可移动介质上的数据

Symbian OS 使用密码学散列值技术• 当程序二进制文件被安装到可移动介质的 \sys\bin 目录时• 以确保二进制文件不被修改• 当存储卡被移出手机时Symbian OS 检查二进制文件的散列值• 在每次它被加载时,以保证它没有被篡改

Page 122: 平台安全( Platform Security )

122

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

可移动介质上的数据强制将二进制或数据文件• 安装到内部磁盘是可能的• 通过在 .pkg文件的目录路径中指定磁盘• 而不是允许用户在安装时指定磁盘但是• 这种方法应该尽量少用• 因为它阻止用户进行选择• 以尽量使用可移动介质上的存储空间它甚至可能阻止用户安装应用程序• 如果在内部磁盘上没有足够空间的话

Page 123: 平台安全( Platform Security )

123

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

备份与恢复另一个数据离开手机的途径• 是通过备份到 PC• 或者备份到可移动介质备份和恢复• 是用户防止重要数据丢失的重要工具它导致了一个潜在的安全威胁• 因为一旦数据从手机中移出• 它就可以被查看和 /或篡改

Page 124: 平台安全( Platform Security )

124

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

备份和恢复对于一个应用程序• 可能存在一些数据是不需要备份的• 因为它们很容易重建或者是瞬时性的• 如,在恢复发生前可能会变化例如• 语音电话的持续时间• 或者用于脱机数据的临时文件其他数据仅仅是不应该备份 Other data simply should not be backed up• 例如银行帐号的 PIN 码• 最好让用户重新输入它

Page 125: 平台安全( Platform Security )

125

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

备份和恢复

一些数据• 可以在它被备份之前被加密——以保护它如果数据必须向用户保护 If the data must be protected from the user • 例如—— DRM密钥• 它必须使用一个应用程序私有的密钥对其进行加密• 密钥保存在手机上并永不备份• 后者用户可能提取密钥并用它来解密内容经过加密的备份数据• 绝不能恢复到任何其他手机上• 除非上面有解密密钥

Page 126: 平台安全( Platform Security )

126

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

备份和恢复

其他数据不需要保护• 但是仍然应该加密备份• 以保护用户数据免于被他人通过 PC访问这种数据一个很好的例子• 可能是通信簿和电话记录等用户被要求输入密码• 才能访问备份的数据

Page 127: 平台安全( Platform Security )

127

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

备份和恢复

一些应用程序数据不需要保护• 因为它对于应用程序和用户都不是保密的但是记得下面几天是很重要的• 数据可能潜在被篡改,当它们不在手机上时• 要么恢复操作时必须检查数据的完整性• 要么应用程序必须准备处理…• 备份数据的异常修改

Page 128: 平台安全( Platform Security )

128

Symbian OS基础课程目标

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

在 Symbian OS v9上发布安全的应用程序‣ 理解在 Symbian OS v9上测试和发布一个签名的应用程序的基本概念

Page 129: 平台安全( Platform Security )

129

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

在 Symbian OS v9上发布安全的应用程序

本节描述一些要求的步骤• 一旦二进制文件代码准备就绪• 用于在 Symbian Os v9模拟器上测试一个安全的应用程序• 并把它部署在手机硬件上• 以便进一步的测试和发布

Page 130: 平台安全( Platform Security )

130

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

平台安全配置

Symbian OS的平台安全设置• 是可配置的例如 • 通过在模拟器的出刷文件中添加语句• \epoc32\data\epoc.ini

配置选项包括 ...

Page 131: 平台安全( Platform Security )

131

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

平台安全配置

PlatSecEnforcement • 用于打开 /关闭平台安全的执行当打开时• 如果平台安全检查失败,将采取一定的行动• 典型的,会产生一个 KErrPermissionDenied 错误或者异常退出如果平台安全执行被关闭• 系统就会想所有安全检查都通过了那样运行

Page 132: 平台安全( Platform Security )

132

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

平台安全配置

PlatSecDisabledCaps• 用于关闭对该关键字之后指定的能力的检查 该设置指示加载器• 授予系统中所有进程该语句中所给出的能力例如• epoc.ini 中语句 PlatSecDisabledCaps SwEvent

• 将关闭对 SwEvent 能力的检查

Page 133: 平台安全( Platform Security )

133

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

平台安全配置

PlatSecDiagnostics• 用于开启 /关闭平台安全诊断消息的日志记录• 记录到调试日志文件 epocwind.out• 当平台安全检查失败或者产生了警告PlatSecEnforceSysBin• 强制模拟器只从 \sys\bin 目录中加载二进制代码• 模拟手机硬件

Page 134: 平台安全( Platform Security )

134

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

平台安全配置

它对于开发的早期阶段是很有用的• 用于暂停平台安全的执行• 并打开平台安全消息的诊断日志• 以确定一个应用程序是否拥有它所需要的全部能力Windows模拟器缺省的设置• 是平台安全完全启动和执行• 也就是手机硬件的真实模拟

Page 135: 平台安全( Platform Security )

135

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

MakeSIS, Makekeys, SignSIS 和 CreateSIS

SIS文件的创建 : • 打包文件 , MakeSIS, Makekeys, SignSIS 和 CreateSIS

不同于 Windows 模拟器• 其中二进制文件只是简单拷贝用以测试• 在手机硬件上,安全和测试代码的唯一合法途径• 是由软件安装器从一个安装包读入二进制代码• 安装包就是 SIS 文件

Page 136: 平台安全( Platform Security )

136

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

MakeSIS, Makekeys, SignSIS 和 CreateSIS

Symbian OS 开发者使用一个 Symbian OS 打包文件 (.pkg)• 来向 SIS文件创建工具(MakeSIS)指定• 应用程序关联的文件和元数据打包文件包含• 文件• 规则• 应用程序需要的选项和依赖

Page 137: 平台安全( Platform Security )

137

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

MakeSIS

MakeSIS是一个基于 PC的 工具• 它从 .pkg 打包文件中读入数据,然后产生一个 SIS安装文件• SIS安装文件包含了安装一个应用程序到手机上的所有必要信息• 除了数字签名一旦 SIS文件被创建• 在它的内容能够被安装到手机上之前,它必须进行签名它可以 ..

Page 138: 平台安全( Platform Security )

138

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

MakeSIS, Makekeys, SignSIS 和 CreateSIS

自签名( Self-signed)• 如果不需要能力• 或者需要的是那些手机生产商认为是用户可授予的能力• 这意味着代码是不可信的由一个测试和认证程序签名• 它需要的能力是不能由用户授予的• 或者对于一个开发者他希望提升用户对程序的信心• 通过让程序经过认证权威的测试和签名为了移除警告• 即, SIS文件来自一个“不可信的来源”

Page 139: 平台安全( Platform Security )

139

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

Makekeys

为了自签名 SIS文件• 开发者可以使用基于 PC 的 MakeKeys工具• 以创建数字证书和私钥• 该工具也能用于产生一个 PKCS#10 证书请求• 它可以被发送到一个可信权威以便进行签名但是• 绝大多数开发者不会用Makekeys 来产生证书• 而是想 Symbian Signed申请一个开发者证书• 该证书可以用于对测试用的安装文件进行签名

Page 140: 平台安全( Platform Security )

140

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

SignSIS 和 CreateSIS

一个 SIS 安装文件可以使用 SignSIS工具进行签名• 该工具以 SIS文件作为输入• 以及一个证书和私钥但是 Symbian也提供称为 CreateSIS的工具• 它是Makekeys, MakeSIS 和 SignSIS 工具的整合• 封装了 SIS文件的创建和签名开发者可以提供• 一个密钥 /证书对来对文件进行签名否这• 该工具会产生一个自签名的证书及其匹配的密钥

Page 141: 平台安全( Platform Security )

141

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

开发者证书

使用可信任权威• 以签名 SIS安装文件和为程序代码赋予能力• 表现出一个有趣的 “第二十二条军规”的处境软件安装器• 只安装要求系统能力的二进制文件• 如果它们被测试和认证权威签名• 所以开发者必须想权威结构提交它们已经予以验证

Page 142: 平台安全( Platform Security )

142

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

开发者证书为了让应用程序• 通过需要的认证测试• 它必须首先由开发者在硬件上充分的测试但是开发者怎么测试它呢• 如果它没有权威签名而不能安装到手机上 ?

解决方案• 就是提供一个过渡的认证过程• 使得开发者能够签名一个 SIS安装文件以用于硬件测试但是限制它的安装• 这也 SIS文件就不能广泛发布

Page 143: 平台安全( Platform Security )

143

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

开发者证书发放的过渡证书• 就是开发者证书• 由 Symbian Signed或者其他可信权威发放给个人或结构• 例如手机制造商或网络运营商 .

开发者证书• 是有时间限制的 (6个月 )• 限定到一个特定手机上• 或者一组有限的手机上在 GSM手机上• 这是通过将证书锁定到手机的 IMEI 号来完成的

Page 144: 平台安全( Platform Security )

144

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

开发者证书

这种证书被限制于一个很小的能力集合• 典型的,开发者需要从手机生产商请求特殊的授权• 在接收到开发者证书之前• 这允许它们能够签名要求最敏感能力的二进制文件• Drm, AllFiles, CommDD, DiskAdmin, MultimediaDD, Network Control 和 Tcb

Page 145: 平台安全( Platform Security )

145

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

开发者证书

开发者证书• 也只能在有限的时间内有效• 现在是从发放开始起共六个月这些限制防止开发者• 使用这种证书发布商用软件

Page 146: 平台安全( Platform Security )

146

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

Symbian Signed

要求能力的应用程序 An application which requires capabilities • 而这些能力不能由用户授予• 则不能被安装到受平台安全保护的手机上除非它经过了验证• 验证由一个可信的认证权威进行,例如 Symbian Signed

Symbian Signed • 于 2004 年 3 月启动,已经得到了广泛的商业认可

Page 147: 平台安全( Platform Security )

147

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

Symbian Signed

签名过程使用• 标准的公开密钥基础设施 (PKI) • 以提供安全与认证使用了两种证书,分别用于• 开发者认证• 应用程序授权

Page 148: 平台安全( Platform Security )

148

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

Symbian Signed

第一种证书使用的• 是认证内容签名 (Authenticated Content Signing ,ACS) Publisher ID, ( 现在就称为 “ Publisher ID”)

• 它有一个直到公共根证书 (public root certificate)的信任链它被用于认证开发者的身份• 开发者将被要求提供他 /她自己的信息• 以及审查者的详细联系方式 ,审查者将核对开发者所提供的信息

Page 149: 平台安全( Platform Security )

149

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

Symbian Signed

第二个使用的证书是内容 ID (Content ID)• 它具有到达根证书的信任链,该信任链构建在 Symbian OS v9手机的 ROM中它被用于提供程序的授权• 通过为应用程序授予能力• 能力是 Symbian Signed 验证过的应用程序被认证为可信的• 只限于它所需要的并已经被验证过的能力• 验证由独立的测试机构针对一组业界一致的标准进行

Page 150: 平台安全( Platform Security )

150

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

Symbian Signed

Symbian Signed 测试标准• 可以从 Symbian Signed 门户网站下载• 所以开发者可以首先自己测试应用程序以确保它符合要求• 在提交给测试结构之前• 测试包括两个部分第一个部分是一般性测试• 它会对所有提交的应用程序进行• 以确认它们的稳定性以及对所需进程的忠实度• 例如正确的使用 UIDs, 高效的内存使用以及卸载时清除

Page 151: 平台安全( Platform Security )

151

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

Symbian Signed

第二个要素包括测试和声明书• 主要针对应用程序要求的特殊能力一个应用程序要求的能力越多• 它就需要越多的针对性测试• 这意味着更加昂贵的测试周期这也是另一个原因• 为什么开发者应该限制应用程序所要求的能力• 到应用程序真正需要的最小集合

Page 152: 平台安全( Platform Security )

152

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

Symbian Signed Summary

Symbian Signed 过程包含了如下几步 :• 开发和内部测试,使用开发者证书对代码进行签名,在被安装到手机之前

• 使用 Publisher ID进行开发者认证• Symbian Signed 利用业界标准进行测试• 用 Content ID 证书进行签名,确认可信

Page 153: 平台安全( Platform Security )

153

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

注意开发者证书和 Symbian Signed • 是不需要的,如果是安装或发布不要求任何能力的二进制文件的话• 或者只使用用户可授权的能力开发者可以测试和发布• 他们不可信的运行于沙箱中的应用程序,通过自签名一些开发者• 还是可以提交他们的二进制代码给 Symbian Signed • 这意味着他们的代码被认定为“可信的”,可以没有警告的安装• 这样可以提高用户对应用程序的信心

Page 154: 平台安全( Platform Security )

154

Symbian OS基础课程目标

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

本地软件安装器‣ 知道 Symbian OS v9中本地软件安装器的关键功能,包括 Symbian OS v9和以前版本在 SIS文件格式上的不兼容

Page 155: 平台安全( Platform Security )

155

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

本地软件安装器

软件安装器• 是扩展软件包正确安装到 Symbian OS v9 手机上的• 一个关节点 (“ pinch point” )

软件安装器引擎由 Symbian提供• 用户接口层由移动移动手机生产商自己加入• 所以控件的外观感觉就会不同,即 S60手机和 UIQ手机

Page 156: 平台安全( Platform Security )

156

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

本地软件安装器

安装器通常被称为• 本地软件安装器• 以指示它安装的软件直接运行在 Symbian OS上• 而不是像 Java MIDlets 那样运行在 Java虚拟机中软件安装器的关键责任是 :• 验证和安装本地软件包 (即 SIS 文件 )• 验证以预装形式发布在介质卡上的软件• 以处理升级和删除的问题,并为平台的其他部分提供包管理服务

Page 157: 平台安全( Platform Security )

157

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

本地软件安装器安装器在安装之前执行一系列的检查• 以检验 SIS文件没有篡改• 以及应用程序的二进制文件的能力没有超出允许的范围• 检查是基于 SIS包中的签名进行的如果通过了检查• 安装器将文件放置到手机上数据锁定( data-caged) 正确目录这就是为什么安装器被称为“守门员”的原因• 构成了 TCB的一部分

Page 158: 平台安全( Platform Security )

158

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

本地软件安装器

Symbian OS v9平台安全的引入• 对软件安装器增加了一些很新的要求• SIS 安装包也增加了新的要求Symbian 抓住这个机会• 重新设计了 SIS文件的基本结构• 改变了以前发布版本的内部格式这意味着 v9以前的 SIS文件• 与 Symbian OS v9 的软件安装器是不兼容的

Page 159: 平台安全( Platform Security )

159

平台安全

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

本地软件安装器这可能显示出一个很大的兼容性间断• 但是旧的 SIS文件中的二进制文件• 与 Symbian OS v9 所要求的本来就是不兼容的• 因为新版本 OS 所造成的二进制间断v9 的软件安装器• 检查二进制代码,如果遇到旧的( v9以前的)不兼容文件,就退出安装• 或者遇到了为其他硬件目标构建的软件也退出安装例如• 为运行在模拟器上构建的二进制软件• 在一个准备安装到硬件上的安装包中,或者相反

Page 160: 平台安全( Platform Security )

160

Symbian OS基础课程清单

Symbian OS基础Copyright © 2001-2007 Symbian Software Ltd.

平台安全 : 第二部分✓ 基于安全平台的应用程序设计✓ 在 Symbian OS v9上发布一个安全的应用程序✓ 本地软件安装器