Windows Phone 安全性

2012/2/9

Windows Phone 应用程序平台 旨在交付卓越的用户体验,用户可通过从健康生态系统获取应用程序来自定义用户体验。实现此目标涉及到确保最终用户的信任问题得以解决。

Windows Phone 应用程序平台 集成了多种技术,旨在帮助用户在 Windows Phone 上下载和使用第三方应用程序时保持高质量的最终用户体验。这些技术所解决的问题可以划分为三大类:

  • 手机体验的质量。最终用户希望所获得的应用程序不会负面影响他们的手机体验,如使手机响应速度变慢或做出影响其他应用程序或手机本身的更改。此外,出于某种原因用户的手机不再需要特定的应用程序时,可以轻松且完全地卸载应用程序,这一点很重要。

  • 用户信息访问。最终用户希望他们所获得的应用程序不会在他们不知情的情况下访问某些信息。这包括他们的个人数据、联系人、地理位置和照片等信息。

  • 收费事件。最终用户希望应用程序不会在未经他们允许的情况下执行产生额外费用的操作。例如,拨打 1-900 电话号码的应用程序。

Windows Phone 应用程序平台 包含了多种措施,旨在解决这些问题并打造用户能够尝试各种应用程序的健康环境。

Windows Phone 应用程序平台 的目标之一是逐步打造设计安全和默认安全的应用程序。实现此目标最重要的一个层面就是将多个安全防护措施集成到开发环境和生命周期中。批准在 Windows Phone 商城 中销售的应用程序的强制自动数字签名就是一个很好的示例。

为了简化保护用户利益的安全措施,应用程序开发人员需要遵循以下步骤:

  1. 以 Windows Phone 开发人员登录,提供 ISV 个人信息(可能需要验证)并支付相关费用。

  2. 获取建议的开发环境(提供免费版本)。

  3. 仅使用 .NET 托管语言开发技术和工具并根据 Windows Phone 应用程序开发专用的标准做法开发 Windows Phone 应用程序。为了简化测试,开发人员可以将一个或多个 Windows Phones 注册为开发设备,从而使这些设备可以在开发期间以及在应用程序提交和认证期间进行数字签名之前运行应用程序。

  4. 提交 Windows Phone 应用程序以包含在 Windows Phone 商城 中。此过程将对应用程序进行各种公开编档的认证测试。如果应用程序通过了所有测试,则将以开发人员的名义对其进行数字签名并提供到 Windows Phone 商城 以供销售。

通过遵循该结构化开发环境和进程,开发人员应尽自己的职责,营造激发最终用户信心的 Windows Phones 应用程序环境。

该结构化的开发平台和执行环境还包含旨在保护开发人员知识产权的保护措施。对于在 Windows Phone 上运行的应用程序,手机中必须存在由 Windows Phone 商城 颁发的有效许可证。这意味着即使技术精湛的最终用户知道如何避开 Windows Phone 商城 并以某种其他方式将应用程序加载到手机,在没有许可证的情况下,Windows Phone 也不会允许应用程序运行,从而保护了开发人员的劳动成果。

Windows Phone 应用程序平台 采用了多种技术,旨在帮助保护 Windows Phone 最终用户,避免受到存在某些不需要行为的应用程序的侵扰。

  • 结构化应用程序提交和认证过程包括一系列应用程序测试,以确定某些可能有问题的行为,并防止这些应用程序在 Windows Phone 商城 中提供。

  • Windows Phone 商城 是应用程序获取、强制代码签名和应用程序许可证的唯一合法来源。此方法将有利于维持一套一致的 Windows Phone 应用程序标准。

  • 仅使用 .NET 托管代码开发 Windows Phone 应用程序的要求可以帮助提高开发人员的工作效率并提升应用程序的可靠性。如果使用得当,托管代码的强类型、绑定检查和内存管理功能可以帮助消除或最小化常见的编程错误,这些错误可能会导致应用程序受到黑客攻击以及资源被过多和意外占用。

  • Windows Phone 应用程序在沙盒进程中运行。这意味着它们之间相互独立,将以严格的结构化方式与手机功能交互。如果应用程序需要保存数据或配置信息,将使用可防止其他应用程序访问的独立存储执行保存操作。应用程序只能通过受控机制互相通信。有关独立存储的更多信息,请参阅 Windows Phone 独立存储概述

  • Windows Phone 应用程序在执行管理器的监督下运行。执行管理器将按某些已定义约定的要求度量应用程序行为。例如,执行管理器监视非前台运行应用程序使用的资源,并在需要时终止非前台应用程序,以便使前台应用程序可以更快速的响应用户。

  • 运行特定应用程序的沙盒进程具有一套自定义的安全功能。Windows Phone 应用程序平台 旨在通过仅向每个应用程序授予运行所需的功能来最小化对其的攻击面范围。例如,如果应用程序不需要使用媒体库,则 Windows Phone 应用程序平台 将寻求在没有媒体库访问权限的沙盒进程中执行该应用程序。

    应用程序可能需要的某些功能直接影响着信息访问或成本。在此类情况下,Windows Phone 商城 将在最终用户购买应用程序之前向其公开该信息。在首次使用预安装的应用程序时,应用程序也需要向最终用户公开该信息。

SDL 是一个针对软件开发的安全保证过程。它是强制安全活动的集合,可按传统软件开发生命周期的阶段来分组。如果单独实施,其中许多安全活动都可以提供一定程度的安全好处。但是,Microsoft 的实际经验表明,按时间顺序并作为重复进程一部分执行的安全活动相对于即席实施,可以产生更大的安全收益。SDL 合并了全面的实际方法,同时还在开发过程的所有阶段引入了安全和隐私,以便实现保护最终用户的目标。有关 SDL 的更多信息,请参阅 SDL 进程指南

Microsoft 为开发人员提供了多种可与其应用程序一起使用的 SDL 工具。作为 Windows Phone 开发人员,有多种可能有所帮助的工具:

SDL 工具

信息

Microsoft SDL 威胁建模工具

SDL 威胁建模工具使得非安全主题事务专家能够通过交流系统的安全设计、使用经实践检验的方法分析这些设计的潜在安全问题,以及建议和管理安全问题的缓解措施,创建和分析威胁模型。

FxCop

FxCop 是一个静态分析器。它分析托管代码程序集,并报告程序集的相关信息(如在设计、本地化、性能和安全方面可能的改进)。

BinScope

BinScope 二进制文件分析器是一个验证工具,它分析二进制文件以确保它们的生成符合 SDL 要求和建议。BinScope 检查 SDL 要求的编译器/链接器标记是否正在设置、强名称程序集是否正在使用、最新生成工具是否已实施以及是否正在使用状态良好的最新 ATL 标头。BinScope 还报告 SDL 禁止的危险构造。

MiniFuzz

MiniFuzz File Fuzzer 是一个基本的测试工具,用来帮助检测文件处理代码中可能暴露安全漏洞的问题。该工具对于在应用程序中解析文件的 Windows Phone 开发人员来说很有帮助。

Banned.h

banned.h 头文件是一个整理资源,支持将禁止使用的功能从代码中移除的 SDL 要求。它将列出所有禁止的 API,并允许开发人员在代码中查找这些 API。该工具对于生成 Web 服务的开发人员来说很有帮助。

只要服务器的 SSL 证书由受信任的机构颁发且对目标网站有效,即可使用 SSL 连接来连接到 Web 服务。在测试应用程序中的 SSL 连接之前,可以尝试使用 Windows Phone Internet Explorer 导航到网站。在使用浏览器时,若证书导致警告或错误,则应用程序中的连接可能也会失败。

若要查看随 Windows Phone 提供的 SSL 根证书的完整列表,请参阅 Windows Phone 的 SSL 根证书

您可以将证书颁发机构添加到受信任的机构,但不支持添加客户端 SSL 证书。

您可以使用 ProtectedData 类通过数据保护 API (DPAPI) 轻松加密和解密数据。有关更多信息,请参阅如何加密 Windows Phone 应用程序中的数据

有关如何处理 Web 服务安全的更多信息,请参阅 Windows Phone 的 Web 服务安全

当应用程序需要使用与以下各项相关联的 API 时,会在应用中心的应用程序提交和认证过程中自动授予相应的功能。当最终用户在 Windows Phone 商城 中查看要购买的应用程序时,这些功能会公开给最终用户。某些功能(例如,定位服务)将突出显示。

有关完整的功能列表,请参阅 Windows Phone 的应用程序清单文件

Windows Phone 支持下列加密算法:

  • AES

  • HMACSHA1

  • HMACSHA256

  • Rfc2898DeriveBytes

  • RSA

  • SHA1

  • SHA256

显示: