1.6k likes | 1.7k Views
平台安全( Platform Security ). 第一部分. 平台安全. 本讲介绍 信任模型 能力模型 数据保护 安全标识符,商家标识符和唯一标识符. 平台安全. 平台安全 经常写作 “ PlatSec ” 由 Symbian OS v9.0 引入 是保护手机数据安全和完整性的基础 运行在软件层面上的安全模型 检测和阻止应用程序对硬件、软件、系统或用户数据进行非授权的访问 这些操作可能 锁住电话 危机用户的机密文件 相反的影响其他软件或电话网络. 平台安全. 平台安全阻止运行在 Symbian OS 上的软件采取不可接受的动作 有意或者无意的
E N D
平台安全(Platform Security) • 第一部分
平台安全 • 本讲介绍 • 信任模型 • 能力模型 • 数据保护 • 安全标识符,商家标识符和唯一标识符
平台安全 • 平台安全 • 经常写作“PlatSec” • 由Symbian OS v9.0 引入 • 是保护手机数据安全和完整性的基础 • 运行在软件层面上的安全模型 • 检测和阻止应用程序对硬件、软件、系统或用户数据进行非授权的访问 • 这些操作可能 • 锁住电话 • 危机用户的机密文件 • 相反的影响其他软件或电话网络
平台安全 • 平台安全阻止运行在Symbian OS上的软件采取不可接受的动作 • 有意或者无意的 • 这是一个系统范围的概念 • 它对每个Symbian OS开发者都有影响 • 无论他是编写应用程序、中间件还是设备驱动
安全模型 • 理解“进程是信任单元”这一格言的含义,以及Symbian OS是如何执行这一格言的 • 理解可信计算基础(Trusted Computing Base )的目标以及为什么重要的原因 • 了解许多OS APIs 在被使用之前不需要进行安全检查 • 知道不使用敏感的系统服务的自签名软件是“不可信的”,但可以安装手机上并进行运行,不过它是被有效得包在”沙箱“中(effectively “sandboxed”)
进程是信任的单元 • 平台安全中一个最进本的概念是 • 信任单元的定义 • Symbian OS 定义进程作为最小的信任单元 • 进程 (绝大多数情况下即, 应用程序或服务器) 代表用户运行在手机上 • 进程可以 • 由生产商构建到手机中 • 也可以在手机离开工厂以后安装到手机上
进程是信任的单元 • 平台安全控制一个进程能做什么 • 将它的活动限制在适当的权限中 • 操作系统不会满足一个服务请求,如果进程不能提供需要的权限 • 没有合适的权利 • 进程被认为是不足以信任的
进程是信任的单元 • 进程被认为是最小的信任单元 • 因为它是Symbian OS中内存保护的单元 • 手机硬件引发一个处理器错误 • 如果对进程进行访问的地址没有在该进程的虚拟地址空间中 • Symbian OS 相信 • 一个进程不能直接访问其他的虚拟地址空间 • 硬件会阻止这种事情发生!
进程是信任的单元 • 硬件辅助保护 • 提供了软件安全模型的基础 • 内核中转IPC • 通过进程间安全的共享数据
进程是信任的单元 • 对运行在Symbina OS中的进程上,应用有四个对应的信任层 • 范围从安全的可信到安全不可信 • 它们是: • 可信计算基础(The Trusted Computing Base ,TCB) • 可信计算环境(The Trusted Computing Environment ,TCE) • 其他信任(签名软件)(Other trusted (signed) software) • 平台其他(未签名,因此也不可信)
可信计算基础 (TCB) • TCB Symbian OS中最可信任的部分 • 它控制低级的安全机制 • 它有责任维护系统的完整性 • TCB中的代码 • 以Symbian OS的最高优先级运行
可信计算基础(TCB) • 为了能够进行TCB可信性的验证 • TCB 被保持得尽可能的小和简单 • Symbian OS TCB 已经被仔细的检查过 • 例如通过逐行的代码审查 • 以确保其中的代码能够正确运转, 能被认为是可信的
可信计算基础(TCB) • TCB 包含了操作系统的内核,后者负责照看每个进程的细节 • 包括赋予进程的权限集合 • 文件服务器也是TCB的一部分 • 因为它被用于将程序代码加载到进程中 • 代码的权限信息在内核加载进程时建立
可信计算基础(TCB) • 对于“封闭的(closed)”的Symbian OS 手机 • 它们是不支持本地扩展(add-on)软件安装的 • TCB 包括 • 内核 • 内核一侧设备驱动器 • 文件服务器
可信计算基础(TCB) • 绝大多数Symbian OS 手机是“开放的(open)” • 因此软件安装器 (SWInstaller) 也构成了TCB的一部分 • 当安全SIS包中的文件时,安装器T运行 • 它从安装包中提取文件,包括程序二进制代码 • SWInstall 具有重要的角色 • 将程序二进制要求的权限与安装包的数字签名进行确认
可信计算基础(TCB) • 严格的说 • 内存管理单元(MMU)和其他安全相关硬件都是TCB的一部分 • 它们不会在这里讨论,因为Symbian不提供手机硬件 • 绝大多数用户库不包含在TCB中 • 只有需要被文件服务器或者软件安装器使用的极少数属于... • ...例如,密码系统库在信任的最高等级
可信计算环境 (TCE) • TCE 包括移动电话中的可信软件 • 由Symbian提供的 • 或者由其他供应商提供的 • 例如UI平台提供商以及手机生产商 • TCE 代码被断定为可信的 • 但是它不是需要最高权限才能运行 • 并被赋予较少的特权 • 因此比运行在TCB中的代码可信度弱一些
可信计算环境(TCE) • 在TCE中 • 每个组件只拥有执行明确定义的一组服务所需要的权限 • 通过这样限制服务集合 • Symbian OS 限制了有服务器代码缺陷所带来的威胁 • 或者可能的威胁,如由代码破坏引发的危险
可信计算环境(TCE) • TCE 代码通常实现 • 服务器进程中的系统服务 • 通过要求选定的服务器具有特定的权限 • 可能对所有服务器限制访问敏感的低层操作 • 以及防止其他进程的误操作
可信计算环境(TCE) • 例如: 考虑TCE的两个组件 • 窗口服务器(window server)和电话服务器(telephony server) • 窗口服务器(WServ) • 被授权访问屏幕硬件 • 但是不需要访问手机网络 • 电话服务器 (ETEL) • 被授权访问通信设备驱动器 • 但需要访问屏幕硬件
可信计算环境(TCE) • TCE中的服务器提供 • 对底层服务的间接访问,通过为TCE外的软件提供 • 例如 • 一个电话应用程序不是TCE的一部分,所以没有和电话服务器或者窗口服务器相同的权限 • 它不需要直接和硬件通信 • 相反,它使用每个服务器提供的API来执行应用程序的操作
可信计算环境(TCE) • Symbian OS 服务器 • 构成了平台安全架构的基础 • 每个服务器都有责任节制(moderate)和保护它所拥有的底层资源的使用 • 同时,也为运行在可信度减低的进程中的客户端中转对资源的访问
签名软件(Signed Software) • 对一个“开放”的Symbian OS手机安装软件是可能的 • 绝大多数额外的软件都是位于TCE之外的 • 但是仍然需要特定的权限来使用TCE提供的服务
签名软件 • 例如 • 需要访问网络服务的软件必须打开一个网络套接字 • 套接字服务器 (ESOCK) • 是TCE的一部分 • 它处理网络接口的底层操作 • 一个应用程序 • 它希望打开网络套接字 • 请求套接字服务器代表它去这样做
签名软件 • 套接字服务器 • 将首先检查请求是来自一个已经被赋予适当信任等级的程序 • 它不会赋予所有希望访问网络套接的代码的访问权限 • 恶意代码可能会供给网路或者其他设备 • 这一点是非常重要的,任何请求一个服务的应用程序 • 在请求允许之前被认为是值得信任的 • 这种信任的一个度量就是软件已经被数字签名了
签名软件 • 当一个外部作者在决定是否签名一个应用程序 • 以允许它执行电话上的某些操作,如打开网络套接字... • ...该应用程序 • 没有项TCB和TCE中的代码那样经过严格的评估 • 源代码本身通常没有被逐行检查,虽然代码的功能被测试过 • 开发者的信任状 (身份)也将被检查 • 这构成了Symbian签名的基础 • 它在Symbian签名门户网站www.symbiansigned.com上公布了Symbian签名要求的测试
不可信软件(Untrusted Software) 软件的可信性不能确定 • 如果它没有被签名或者是”自签名(self-signed” ) • 自签名即虽然被签名了,但是不是Symbian信任权威( Symbian Trusted Authorities )签署的 • 这意味着 • 它必须被Symbian OS认为是不可信任的 • 但是这并不意味着软件是恶意的或者无价值的 • 有许多有用的操作 • 它不需要调用系统服务就能在手机上执行 • 调用系统服务器就意味着需要一定等级的权限
不可信软件 • Symbian OS • 只在需要时进行必要的安全检查 • 这些检查 • 大约包含了所有Symbian OS API中的40% • 例如 • 一个单人纸牌游戏不执行任何操作,它们需要访问 • 敏感的用户数据或者系统关键的数据或服务 • 不可信软件可以安装 • 和运行在手机上 • 但是它是沙箱中的(“sandboxed” ) • 它不能执行任何需要安全权限的动作
不可信软件 • 绝大多数手机生产商要求一个应用程序在安装之前需要签名 • TCB、TCE和Symbian OS平台其他部分之间的关系 • 在后续幻灯片中展示
可信计算环境: 以不同权限运行的大量系统服务器 可信计算基础: 具有修改文件系统的所有能力包含内核、F32和开放手机上的SWInstall 平台的这部分是较少信任的. 包含其他签名系统软件和应用程序 Messaging WServ SWInstall是守门员 Kernel, F32, SWInstall ETEL MMF ESOCK 平台其他部分是不可信的.包含未签名系统软件和应用程序,它们在沙箱中 信任的等级(Tiers of Trust)
信任的等级 • 上图 • 故意没有将TCB显示在环的中心 • 内核可能通常被认为占据该位置 • 它们的一些服务对所有进程都是可用的 • 其次,文件服务器 ——像其他服务器 • 既是内核的客户端,也是对所有进程可用的 • 软件安装组件 • 被显示成伸展到了周场外 • 因为它扮演了手机守门员的角色
能力模型(Capabilities Model) • 理解能力和TCB的关系 • 理解用户能力的概念以及它们与TCE的关系 • 理解TCB/TCE、能力分配、软件安装器(作为守门员)以及应用程序签名的角色之间的关系 • 认识能力的不同分组,并能够更广泛的理解被赋予的权限 • 了解如何在MMP文件中指定平台安全能力 • 理解能力规则
能力模型 • 进程是Symbian OS上的信任单元 • 每个进程被分配一个等级的权限,以指示它能够执行什么安全敏感的操作 • 权限有一个能力(capability)指派 • 能力是一个符号,它赋予持有者访问系统服务或资源的权限 • 拥有一个能力说明 • 进程被信任不用滥用权限关联的服务或者资源
能力模型 • Symbian OS 平台安全 • 的构建是利用能力来表现访问的权限 • 定义而许多能力,它们分别分配了特定的权限 • 内核 • 拥有一个针对每个运行进程的能力列表 • 一个进程 • 可以让内核检检查另一个进程的能力,在决定是否代表它执行一个服务之前
能力模型 • 对于可安装软件 • 软件安装器扮演了守门员的角色 • 它验证程序已经被授权使用它构建时所带有能力 • 拒绝安装没有正确授权的软件 • 数字签名 (或者 –对一些能力 –用户的许可)
能力模型 • 能力是离散和正交的 • 这意味着它们没有覆盖 • 它们不是访问令牌的层次化集合 • 每个增加一些权限,直到达到TCB的等级 • 相反 • 一个特定的受保护资源能被单个能力控制 • 任何要访问该资源的进程 • 包括TCB中的进程 • 必须具有权限才能成功访问 • 进程不需要具有其他能力
能力模型 • 不同操作 • 可能要求不同能力 • 即使那些操作用相同的API实现 • 例如 • 访问文件要求不同的能力 • 这取决于它在文件系统中的位置 • 有三个宽泛的能力类别: • TCB 能力 • System 能力 • User 能力
用户能力 • 用户能力 • 是一小组对手机用户意义深远的能力 • 这些能力关系到一些安全概念 • 用户能力理解它们,并对其做出选择 • 例如 • 一个用户可以是否安装软件 • 该软件有能力拨打电话(这将花费用户的钱) • 或者能够访问用户的个人数据
用户能力 • 一个用户不应 • 对影响到手机正常工作的能力进行决定 • 例如影响系统服务的能力 • 系统一级的能力是个单独集合
用户能力 • 可用的用户能力总结如下表所示:
用户能力 • 用户能力 • 典型的赋予那些软件 • 它们使用有TCE提供的服务 • TCE服务 • 检查和执行用户能力 • 并执行被请求的服务
用户能力 • 平台安全被设计成Platform security is designed • 可安装软件(它只需要用户可授权能力) • 不需要被一个可信任权威签名 • 该模型允许 • 用户为软件授予权限 • 当它被安装时 • 或者当它运行需要执行某个动作时 • 该动作需要一个特定的能力
用户能力 • 虽然用户能力 • 被设计成用户可理解的 • 但是它提供很多选择可能并不总是合适的 • 这决定于手机当前使用的环境 • 移动手机生产商会判断 • 用户能力是如何在他们的手机上配置的 • 即——他们是真正的用户可授权
系统能力 • 最大一组的能力 • 是系统能力 • 授予一个系统能力 • 允许进程访问敏感的操作 • 系统能力的误用将威胁手机的完整性 • 系统能力 • 对于用户并不是特别有意义 • 而是被设计成对用户隐藏 • 需要系统能力的可安装软件 • 在赋予它们能力之前,需要提交 • 到测试和认证机构(例如Symbina Signed)
系统能力 • 下表总结了可用的系统能力:
Tcb能力 • Tcb能力 • 只能由TCB的成员拥有 • 可信计算基础 • 内核The kernel • 设备驱动程序 • 文件系统 • 软件安装器——在开放的Symbian OS手机上
Tcb能力 • TCB以最大的权限运行 • 任何TCB中运行的代码都会被赋予 • 所有的系统和用户能力 • 因为有些事情只有TCB代码能做 • 例如加载程序代码Such as loading program code • 有一种能力 • 只赋予TCB • 最关键的能力是Tcb
分配能力 • 当构建可执行代码时 • 为了Symbian OS的平台安全 • 需要在它的MMP文件中为其赋予一定的能力 • 使用关键字CAPABILITY • 所以能力 • 被Symbian工具链构建到了EXE或DLL中
CAPABILITY ReadUserData WriteUserData SwEvent CAPABILITY All -Tcb -Drm -DiskAdmin 分配能力 • 能力可以在一个包含列表中指定 • 例如: • 作为替换 • 一大组的能力也可以用排除列表指定 • 例如: • 指定CAPABILITY Tcb • 并不等同于拥有所有能力 • 指定 CAPABILITY All • 并不意味着拥有Tcb 能力 • 像拥有其他能力一样