安全性

本节包含有关为 Windows 生成安全的通用 Windows 平台 (UWP) 应用的文章。

介绍

如果你不熟悉 Windows 或 UWP 开发,请从安全 Windows 应用开发简介开始。 这一介绍性级别的文章概述了 Windows 中可用的应用和各种功能的安全注意事项。

身份验证和用户身份

身份验证和用户身份部分包含与用户登录和身份相关的方案的操作实例。 应用提供了多个选项用于用户身份验证,范围从使用 Web 身份验证代理的简单单一登录 (SSO) 到高度安全的双重身份验证。

主题 说明
凭据保险箱 本文介绍了应用可如何使用凭据保险箱安全存储和检索用户凭据,并使用用户的 Microsoft 帐户在设备间漫游用户凭据。
指纹生物识别 本文介绍了如何将指纹生物识别添加到应用。 在用户必须同意特定操作时将指纹身份验证请求囊括在内,将提升应用的安全性。 例如,可在授权应用内购买或对受限资源的访问权限之前要求指纹身份验证。 指纹身份验证使用 Windows.Security.Credentials.UI 命名空间中的 UserConsentVerifier 类进行管理。
Windows Hello 本文介绍了新的 Windows Hello 技术,并讨论了开发人员可如何实现此技术来保护其应用和后端服务。 它重点介绍了这些技术的特定功能,这些功能有助于缓解来自传统凭据的威胁,并提供有关设计和部署这些技术作为打包的 Windows 应用推出的一部分的指南。
创建 Windows Hello 登录应用 有关如何创建打包的 Windows 应用的完整演练的第 1 部分,该应用使用 Windows Hello 作为传统用户名和密码身份验证系统的替代方案。
创建 Windows Hello 登录服务 有关如何创建打包的 Windows 应用的完整演练的第 2 部分,该应用如何使用 Windows Hello 作为打包的 Windows 应用中传统用户名和密码身份验证系统的替代方案。
智能卡 本主题介绍了应用如何使用智能卡将用户连接到安全网络服务,包括如何访问物理智能卡读卡器、创建虚拟智能卡、与智能卡通信、对用户进行身份验证、重置用户 PIN 以及删除智能卡或断开智能卡连接。
在应用之间共享证书 需要用户 ID 和密码组合以外的安全身份验证的 UWP 应用可以使用证书进行身份验证。 对用户进行身份验证时,证书身份验证将提供高级别的信任。 在某些情况下,一组服务将要针对多个应用对用户进行身份验证。 本文介绍了如何使用同一个证书对多个应用进行身份验证,以及如何提供方便代码,用户可使用此代码导入提供的证书以访问安全的 Web 服务。
具有配套 (IoT) 设备的 Windows 解锁 配套设备是可以与 Windows 一起使用来增强用户身份验证体验的设备。 通过使用“配套设备框架”,即使是在 Windows Hello 不可用时(例如 Windows 计算机缺少相机进行人脸身份验证或缺少指纹读取器设备),配套设备也能提供丰富的体验。
Web 帐户管理器 本文介绍了如何使用 Windows Web 帐户管理器 API 来显示 AccountsSettingsPane 并将你的通用 Windows 平台 (UWP) 应用连接到外部标识提供者,如 Microsoft 或 Facebook。 你将了解如何请求用户的权限以使用其 Microsoft 帐户、获取访问令牌,并使用它来执行基本的操作(如获取配置文件数据或将文件上传到他们的 OneDrive)。
Web 身份验证代理 本文介绍如何将应用连接到使用 OpenID 或 OAuth 等身份验证协议的联机标识提供者。 AuthenticateAsync 方法将请求发送给联机标识提供者,并取回描述应用有权访问的提供者资源的访问令牌。

加密

加密部分包含与加密相关的更复杂主题的信息。

主题 说明
证书简介 本文将讨论如何在应用中使用证书。 在公钥加密中使用数字证书将公钥绑定到个人、计算机或组织。 绑定身份主要用于针对一个实体来验证另一个。 例如,证书通常用来为用户验证 Web 服务器和为 Web 服务器验证用户。 你可以创建证书请求并安装或导入已颁发的证书。 还可以按照证书层次结构注册证书。
加密密钥 本文显示了如何使用标准密钥派生函数来派生密钥以及如何使用对称密钥和非对称密钥来加密内容。
数据保护 本文介绍了如何在 UWP 应用中使用 Windows.Security.Cryptography.DataProtection 命名空间中的 DataProtectionProvider 类加密和解密数字数据。
MAC、哈希以及签名 本文讨论如何在应用中使用消息验证代码 (MAC)、哈希以及签名来检测消息篡改。
有关加密的导出限制 使用此信息可以确定应用使用加密的方式是否可能会阻止它被列在 Microsoft Store 中。
常见的加密任务 这些文章提供常见的加密任务的示例代码,这些任务包括创建随机数、比较缓冲区、在字符串和二进制数据之间转换、复制到字节数组和从字节数组复制,以及编码和解码数据等。