安全性

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

简介

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

身份验证和用户身份

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

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

加密

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

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