预计阅读本页时间:-
12.7 Symbian操作系统的安全
智能手机提供的环境很难保证安全。像我们之前提到的,它们属于单用户设备,不需要在使用基本功能前进行用户认证。更复杂的功能(如应用软件安装)需要授权,但不需认证。然而,智能手机上执行的复杂操作系统中,有很多途径进行数据的交换(以及执行程序)。在这样的环境进行安全防护变得很复杂。
Symbian操作系统很好地体现了这一安全难度。用户期望基于Symbian操作系统的智能手机允许不经认证即可任意使用——没有登录和身份鉴别。但是,你肯定经历过,一个和Symbian操作系统同样复杂的操作系统很容易受到病毒、蠕虫和其他恶意软件的影响。在Symbian操作系统版本9以前的版本中,操作系统提供了一个守门人式的安全功能:系统询问用户是否允许安装每一个应用程序。这种设计的思维是,只有用户自己安装的程序会造成系统毁坏,一个被告知的用户会知道他所要安装的哪些软件是恶意软件。用户会理智地使用它们。
守门人式设计有很多优点。例如:一个新的没有用户自己安装的应用程序的智能手机是一个可以无故障运行的系统。只安装用户认为不是恶意软件的程序,即可保证系统的安全。这种设计的问题是,用户并不总是知道安装一个应用程序的全部后果。存在伪装成有用的应用程序的病毒,在提供有用功能的同时静默地安装恶意代码。普通用户无法验证所有软件的可信度。
广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元
Symbian操作系统版本9的信任验证机制提升到了一个新设计的平台上。这个版本的操作系统保留原有的守门人式机制,但是在用户之外提供了对安装软件进行验证的机制。每个软件开发者现在需要负责通过数字签名技术来验证一个软件是由其编写的。不是所有的软件都必须有这样的验证,只有需要访问特定系统资源的软件需要。当一个应用软件需要数字签名时,需要如下几个步骤:
1)软件开发者需要从可信的第三方获得一个厂商ID,这些可信的第三方由Symbian来进行鉴定。
2)当一个开发者开发了一个程序包并希望发布时,他必须将其提交到可信的第三方进行验证。开发者提交其厂商ID、应用程序以及该应用程序访问系统的方式列表。
3)可信第三方验证所提供的访问类型列表是完全的,而且没有其他类型的访问发生。如果该可信第三方可以进行此验证,该软件即由可信第三方进行签名。这意味着安装包中会包含一些特殊的信息,详细地描述该软件会对Symbian操作系统做出什么操作。
4)该安装包被送回到软件开发人员处,并可以发放给用户。需要注意的是,这个方法依赖于应用程序如何访问系统资源。在Symbian操作系统中,应用程序必须拥有访问一个资源的能力,才会允许使用相应的资源。这种行为能力的机制建立在Symbian操作系统的内核中。当一个进程被创建时,该进程的进程控制块的一部分用来记录该进程被授予的权限。当进程试图使用它不能使用的权限时,该访问将被内核阻止。
这个看起来复杂的机制使得我们可以在Symbian操作系统中建立一个自动的守门人式机制,来验证要安装的软件。安装过程检查安装包中的标识。如果该标识是有效的,该应用程序被授予的权限将记录下来,同时可以在执行时通过内核的检查。
图12-3中的图描述了Symbian操作系统版本9中的信任关系。需要注意的是,系统中内置了多个信任等级。有些应用软件不访问任何系统资源,故而也不需要签名。一个例子是只在屏幕上显示内容的简单应用。这些应用软件不被也不需被信任。下一个信任级别是用户级签名应用程序级。这些应用程序只被授予其需要的权限。第三个信任等级由系统服务组成。同用户级应用程序一样,这些服务只需要特定的权限以便完成其任务。在一个如同Symbian操作系统的微内核体系结构中,这些服务运行在用户态,并像用户程序一样被信任。最后,有一类程序需要系统的完全信任。这组程序拥有修改整个系统的能力,并由内核代码组成。

在这个系统中有若干个方面看起来值得质疑。例如,这样复杂的机制真的有必要吗(尤其是需要花费金钱来制作的情况下)?结论是肯定的:Symbian签名系统代替用户来对软件进行完整性验证,并且该验证必须被执行。这一机制看起来可能会带来开发上的难度。是否每次在真实物理设备上进行测试都需要一个新的签名的安装包?为了解决这个问题,Symbian操作系统识别开发人员的特殊签名。一个开发人员必须获得一个有时效限制(通常是6个月)的证书和一个特殊的智能手机,即可使用自己的数字证书来创建安装包。
除了这样的守门人式机制外,Symbian操作系统版本9同时采用数据锁定(Data Caging)技术,来组织特定目录下的数据。比如,可执行代码只存在一个目录中,而该目录只对软件安装程序可写。另外,应用程序只能在一个目录中进行写操作,它们各自的数据不能被其他程序访问。