使用移动应用程序代码签名确保安全性

日期: 2011-02-24 作者:Jay Schiavo 来源:TechTarget中国 英文

  ABI Research近期发布的报告指出,在2009年,智能手机用户曾下载约24亿个应用程序,预计2010年的下载数量将突破60亿大关。智能手机应用程序正在为更多用户提供更多功能,其激增速度和影响度比电脑革命更胜一筹。

  无线网络提供商将软件订购视为新的收入来源,移动应用程序开发者争相满足最具吸引力的平台需求,进而接触到广泛的用户群体。但这些发展在带来好机会的同时,也带来了漏洞代码和恶意代码的风险,威胁着用户体验和网络完整性。移动应用程序发行商和开发者需要借助各种方式,区隔合法软件与恶意软件,保护应用程序免受篡改,召回有问题的代码及恶意代码,但同时又不会影响应用程序的其余部分。

  幸运的是,先进的移动操作系统平台(如Windows® Mobile 7)以及流行的应用程序商店(如Windows Marketplace)已经实施代码签名技术,以解决多种最严重的安全问题。这些移动平台通过采用代码签名来控制网络允许的软件,并采取完善的措施,确保用户日益依赖的网络和手机应用程序的安全性。

  什么是代码签名?

  在传统的软件交付模式中,购买者通过检查包装来确定应用程序的来源及完整性。然而,在移动网络下载的软件存在风险,因为发行商的身份更难以确定。不慎在无线网络环境中引入恶意软件,不仅会给终端用户的智能手机带来风险,还会影响整个设备网络,使所有用户遭受攻击,并导致服务中断,严重损害网络提供商的声誉和财务业绩。

  为保护智能手机用户,应用程序软件商店(如Windows Marketplace)现在要求应用代码签名技术,用数字签名对移动软件代码进行“签名”。创建一个“数字压缩包”,不仅能够验证软件代码的来源,还能确保代码并未被修改。

  代码签名基于公共密钥加密法技术。开发者或软件发行商使用“私有”密钥,在软件代码中加设一个数字签名。例如,Windows Mobile 7移动平台,在移动应用程序下载过程中,使用“公共”密钥验证签名,将应用程序签名中的散列码与所下载程序中的散列码进行对比。

  数字签名中的散列码用以确认文件内容,检验文件在签名后代码是否被更改或损坏。用户能够验证文件内容及软件的完整性,同时,发行商应该有能力及时有效召回损坏的证书。

  在传统代码签名证书中,开发者使用相同的数字签名签署所有代码。但移动应用具有独特挑战,因为它要求独特的部署和管理方法。开发者和发行商必须有能力迅速召回有漏洞、有错误及有泄露的代码,但不影响合法开发者所发布的其它版本及应用程序。

  理想情况下,移动代码签名的实现有两个数字认证——一个用来识别发行商,另一个用来识别内容。在这种情况下,发行商使用发行商身份标识号来签名代码,然后上传,再通过安全接口,由应用认证中心所提供的代码签名服务进行验证。一旦签名生效,它便会生成唯一的内容身份识别号,其中包括发行商身份和应用程序信息。接下来,认证中心可以使用内容身份识别号对内容重新进行签名,随后,它就可以被确定为可信的并允许发布的代码了。如果应用程序中有潜在而敏感的应用程序编程接口(API),那么在签发内容身份标识号前,便要求有第三方评估(如微软Privileged Access for Marketplace)。

  重新签名过程技术对最终用户设备是透明的,因为在客户端设备层面只会执行一项检验。但对于开发商和网络提供商来说,分配具体的证书有利于简便地识别并召回有问题的代码,而并不影响应用程序的其余部分。这些方案和功能为网络运营商提供了更多的操控力和更好的网络保障,不会影响创新或最终用户体验。

  大多情况下,来自受信源的签名代码可以被自动接收。安全警报也会提示终端用户查看签名信息,确定这一代码的可信度。某些网络提供商只接受已签名的应用程序,以便最大限度地降低网络风险;有些网络提供商则要求代码签名,以便应用程序能够访问潜在敏感的应用程序编程接口(API)。如果移动平台(如Windows Mobile 7)没能将应用程序的签名识别为有效签名,那么该平台将完全不会运行这一程序。

  通过信任门槛

  发行商的验证过程对应用程序开发者是一个关键性门槛,因此应该确保以最佳的方式检查签名实体。认证中心(CA)的责任是要证实进行签名的实体确实是合法的注册机构,如赛门铁克通过收购威瑞信,承担起这一责任。

  在代码签名登记过程中,认证中心将收集与发行商及其机构有关的信息,核实身份的真实性。验证过程可能需要几小时或几天的时间,取决于所提供的信息和检验的难易程度。理想情况下,认证中心将使用经过独立核实后的联系信息与每个机构联系,确保其身份的真实性。就威瑞信而言,毕马威会计事务所会进行年度审计,以确保认证中心所使用的身份确认方法是全面的。

  对于希望在微软Windows Marketplace上发布移动应用程序的开发者而言,软件必须经过威瑞信代码签名过程。这要求开发者在将应用程序发布到商店目录之前,要对每次内容的更新进行签名。微软会密切关注这些应用程序,如果发现异常情况,微软将运用自身职权,要求撤销与恶意内容有关的证书。

  无需因追求市场机会而牺牲安全性

  数字方式改善日常生活的巨大潜力,正驱动着消费者更加关注移动应用程序。在移动应用程序中,特别是在微软移动平台上实现代码签名,意味着用户、应用程序开发者、发行商以及网络运营商都能意识到,他们在急于抓住移动应用程序带来的机会时,无需牺牲安全性。

  代码签名向智能手机用户和网络提供商表明,下一代优秀的移动应用程序的下载和运行都是安全的。这使得发行商能够保护客户和他们的品牌价值。网络运营商可以最大限度地降低网络和用户遭受攻击的风险,且不会牺牲其他利益。用户在下载智能手机应用程序时,可以享受完美的用户体验,并且对安全感信心十足。

  注释:作者Jay Schiavo现为赛门铁克公司威瑞信代码签名产品管理总监。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者

Jay Schiavo
Jay Schiavo

赛门铁克公司威瑞信代码签名产品管理总监

相关推荐