移动电话已经成为我们生活的基本工具,其普遍存在性使电话偷盗成为最常见的盗窃形式之一。遗憾的是,越来越多的年轻人甚至小孩都成为被盗窃对象。
运营商通过将手机与某种服务捆绑的方法来对电话价格进行补贴。这些补贴实实在在,每年可达数亿欧元。但是,由于盗窃原因,这些补贴电话多数都没有完全在该运营商网络上使用服务,而是在其它网络上使用。
在电话上播放音乐是一种热门应用,但是将音乐发布到移动电话上的业务模式的进展则相当缓慢,这是由于版权的所有者不愿意将音乐发布到没有正确数字权限管理(DRM)的设备上。而内容所有者迫切希望在真正向移动服务开放他们的媒体目录之前,能够确保安全的DRM已经就位。
病毒是另一种主要的威胁。在过去,病毒并没有带来任何危害,但在2004年末,第一个具有破坏性病毒Skull出现了,遭受该病毒攻击后,移动电话的大量功能无法使用。
这些威胁说明移动电话的安全级别已经非常重要,而且随着越来越多功能和服务的推出,这种需求也在不断增长。作为一个行业,我们应通过实施安全性,确保能够阻止移动电话的不当使用,进而使移动运营商和用户都完全放心。
通常,对移动电话的软件和体系架构不甚了解的人很难了解内置的安全功能。采用"尝试--错误"的方法通常很难发现安全漏洞。但是,能够接入源代码和详细结构信息的个人一般能够攻破安全屏障:从源代码了解运算法则的内部操作比从二进制数据调试代码更容易攻击电话。这种内行的攻击是威胁移动电话安全的最大问题,因此,只有可靠的密码法才能抵御内行的攻击。
首先,我们来看看我们需要保护移动电话免受哪些最危险的攻击。在过去几年中,我们越来越多地经历了对电脑的各种软件攻击。企业需要花费数百万欧元来构建防火墙、安装病毒检查程序,并扫描电子邮件可能带来的攻击,或恢复这些攻击造成的损害。特洛伊木马、病毒和蠕虫这些常见的电脑病毒,现在也开始攻击移动电话了。缓冲溢出攻击是这些严重威胁的另一个例子,它经常与前面提及的其它武器同时使用。所有这些软件攻击都会对基于软件的系统造成严重破坏。
调试和开发工具是攻击移动电话的一条路径。这些工具几乎可以进入现有电话的中央处理器单元(也叫基带IC)的任何区域。攻击者可以使用这些工具来读取或修改代码,以单步骤模式运行CPU,甚至在运行中修改CPU的寄存器。因此,阻截这些调试机制的进入绝对十分重要。
现在,许多被盗电话在克隆合法电话身份后就可以重新出售:这是通过将合法电话的闪存复制到被盗电话的内存中实现的。这就使被盗电话黑名单的执行变得非常困难
那么,应如何实施安全的解决方案呢?在现代系统中,我们习惯于使用软件解决方案来执行各类任务。但是软件本身够安全吗?遗憾的是,由于保存在设备内存或硬盘上的程序可以修改,仅软件系统就为安全性隐患提供了大量空间。如果您实施保护软件来防止类似的修改,该保护软件自身就可以被修改。这是一场几乎无法取胜的较量。
但是,基于硬件的安全解决方案则不容易轻松被修改。事实上,在许多情况下,完全替代IC就可以攻克最简单的安全系统,仅这一因素就使攻击变得十分困难,并且从经济上说不可行。采用基于硬件的设计,重要的是实施安全性的芯片也需要内置一个唯一的根密钥,因为拥有不同根密钥的新芯片不能满足电话内存内容的需求,替换该芯片则导致系统无法使用。
如果电话的所有软件都内置在蜂窝式基带芯片的ROM上,那么问题就变得简单一些,因为这几乎可以使攻击不可能发生。但遗憾的是,现在移动电话的软件组件都太大,并且需要太多变量,因此该软件不可避免地保存在外部闪存上。这就意味着我们必须确保只有安全系统验证为真实的代码才能被执行。
开始或启动流程是安全概念的基本部分。电话通常从内置ROM上启动,该操作不能做假。因此,安全性必须从这里入手。如果在稍后阶段(如使用仅软件的方法)启动安全功能,就可能遭受攻击,因为软件可以被修改或替换,而基于软件的安全性也会由此消除。
下一步是代码的完整性检查。此处验证代码是为了确保该代码自原始生产商版本发布以来未被人修改。这里有几种验证代码的方法。基本要素是生成具有识别功能的指纹代码散列。该值再与原始代码版本的数值相比较。如果两个数值相同,则软件是正确版本,可以执行。
为保护散列签名本身免受攻击,可以采用加密的方法,如采用HMAC [RFC2104]或DSA数字签名。电话生产商在此处为该代码生成数字签名,该代码应该在移动电话内。然后该电话在启动时验证该签名,而且这种签名系统(DSS)使用带专用和公共密钥对(DSS)的不对称加密。
一套安全的系统还需要另外几种组件,包括密码运算法则,如对称和不对称加密、散列、公共密钥操作和数字签名等。此外,还需要一个随机号码生成器。这些元素提供了可以开发安全系统的工具箱。理想的做法是,所有这些元素都应在硬件和芯片中实施,但最重要的硬件元素是安全启动和代码完整性检查组件。如果证实该代码未受感染,还可以使用加密代码。此时的主要折中方案是实施软件运算法则,该运算法则比硬件中实施的运算法慢很多。这些加密密钥和中间值都很重要,并且需要特殊的保护,因为它们能够为攻击者提供系统的完全接入。这些密钥和数值应保存在芯片内部,不应从外部看到,也不能通过软件接入。
为了防止数据被修改,为绝密数据寻找一个安全的储存位置对维持安全系统的完整性具有特别重大的意义。鉴权数据、证书(包括DRM权限对象)和关键系统数据(如专用/公共密钥)或SIMLock信息等都需要这种安全的存储。
然后,音频、视频、Java、文件系统等应用就可以使用这些核心的安全性功能了。
结论
如今,安全性取决于最薄弱的一环这样的一句众所周知的名言在移动电话领域仍然适用,而且随着移动电话及服务的发展,其适用性还在提不断高。但我们还应了解,任何地方都没有绝对的安全。安全性问题一直是构建保护措施的人们与攻击者之间的拉锯战,即使以前足够安全的体系在以后也可能变得非常脆弱。我们必须继续对市场情况进行监控,确保安全屏障足以防御商业攻击或欺诈者的滥用。
移动电话的这种体系结构可以实现比消费者产品或个人电脑更牢固的安全系统。根据使用硬件模块的基础安全系统(替换和取消费用都不低),按照最低实施要求,蜂窝式基带芯片是充当安全系统核心组件的理想之选。