警告
Windows Hello 企业版和 FIDO2 安全密钥是适用于 Windows 的新式双因素身份验证方法。 建议使用虚拟智能卡的客户迁移到 Windows Hello 企业版 或 FIDO2。 对于新的 Windows 安装,建议Windows Hello 企业版或 FIDO2 安全密钥。
本文讨论部署虚拟智能卡身份验证解决方案时要考虑的因素。
传统标识设备(例如物理智能卡)在任何部署中都遵循可预测的生命周期,如下图所示。
设备制造商创建物理设备,然后组织购买并部署它们。 设备通过个性化阶段,在其中设置其唯一属性。 在智能卡中,这些属性包括 管理员密钥、 个人标识号 (PIN) 、 PIN 解锁密钥 (PUK) 及其物理外观。 在设备预配阶段,将安装所需的证书,例如登录证书。 预配设备后,即可使用。 你将维护设备,例如,可以在卡片丢失或被盗时更换卡片,或者在用户忘记 PIN 时重置 PIN。 最后,当设备超过预期生存期或员工离开公司时,你将停用设备。
本主题包含有关虚拟智能卡生命周期中的以下阶段的信息:
创建和个性化虚拟智能卡
公司随后购买要部署的设备。 设备通过个性化阶段,在其中设置其唯一属性。 在智能卡中,这些属性包括管理员密钥、个人标识号 (PIN) 、PIN 解锁密钥 (PUK) 及其物理外观。 为 TPM 虚拟智能卡提供的安全性在主机 TPM 中完全预配。
受信任的平台模块就绪情况
从 TPM 管理控制台启动的 TPM 预配向导会引导用户完成准备 TPM 以供使用的所有步骤。
创建虚拟智能卡时,请考虑在 TPM 中执行以下操作:
- 启用和激活:TPM 内置于许多设备中。 在某些情况下,必须通过 BIOS 启用和激活 TPM
- 获取所有权:预配 TPM 时,设置所有者密码以用于将来管理 TPM,并建立 存储根密钥。 若要为虚拟智能卡提供防打击保护,用户或域管理员必须能够重置 TPM 所有者密码。 对于企业使用 TPM 虚拟智能卡,域管理员应通过将 TPM 所有者密码存储在 Active Directory 中而不是本地注册表来限制对 TPM 所有者密码的访问。 设置 TPM 所有权后,必须清除并重新初始化 TPM
- 管理:可以通过更改所有者密码来管理虚拟智能卡的所有权,并且可以通过重置锁定时间来管理防锤逻辑
TPM 可能会在缩减功能模式下运行,如果操作系统无法确定所有者密码是否可供用户使用,则可能会出现此情况。 在缩减功能模式下,可以使用 TPM 创建虚拟智能卡,但最好将 TPM 设置为完全就绪状态,这样任何意外情况都不会阻止用户使用设备。
在尝试创建 TPM 虚拟智能卡之前需要 TPM 的状态检查的智能卡部署管理工具可以使用 TPM WMI 接口执行此操作。
根据指定用于安装 TPM 虚拟智能卡的设备设置,在继续虚拟智能卡部署之前,可能需要预配 TPM。 有关预配的详细信息,请参阅 使用虚拟智能卡。
有关使用内置工具管理 TPM 的详细信息,请参阅受信任的平台模块服务组策略设置。
创造
TPM 虚拟智能卡模拟物理智能卡,使用 TPM 提供与物理智能卡硬件相同的功能。
虚拟智能卡在操作系统中显示为始终插入的物理智能卡。 Windows 使用与物理智能卡相同的接口向应用程序提供虚拟智能卡读取器和虚拟智能卡。 发送到虚拟智能卡和传出的消息将转换为 TPM 命令,通过智能卡安全性这三个属性确保虚拟智能卡的完整性:
- 不可导出性:由于虚拟智能卡上的所有私有信息都是使用主计算机上的 TPM 加密的,因此不能在具有不同 TPM 的其他计算机上使用该信息。 此外,TPM 设计为防篡改且不可导出,因此恶意用户无法反向工程相同的 TPM,也无法在不同的计算机上安装相同的 TPM。 有关详细信息,请参阅 评估虚拟智能卡安全性。
- 隔离加密:TPM 提供与物理智能卡(虚拟智能卡利用)提供的隔离加密相同的属性。 私钥的未加密副本仅在 TPM 中加载,永远不会加载到操作系统可访问的内存中。 使用这些私钥的所有加密操作都发生在 TPM 中。
- 反锤击:如果用户输入 PIN 不正确,虚拟智能卡使用 TPM 的反锤击逻辑做出响应,这会在一段时间内拒绝进一步尝试,而不是阻止卡。 这也称为锁定。 有关详细信息,请参阅阻止的虚拟智能卡和评估虚拟智能卡安全性。
有多种选项可用于创建虚拟智能卡,具体取决于组织的部署规模和预算。 成本最低的选项是使用 tpmvscmgr.exe
在用户的计算机上单独创建卡片。 或者,可以购买虚拟智能卡管理解决方案,以便更轻松地大规模完成虚拟智能卡创建,并有助于进一步的部署阶段。 可以在要为员工预配的计算机或员工拥有的计算机上创建虚拟智能卡。 在任一方法中,都应对个性化和预配进行一些集中控制。 如果计算机供多个员工使用,则可以在计算机上创建多个虚拟智能卡。
有关 TPM 虚拟智能卡命令行工具的信息,请参阅 Tpmvscmgr。
个性化
在虚拟智能卡个性化期间,会分配管理员密钥、PIN 和 PUK 的值。 与物理卡一样,知道管理员密钥对于重置 PIN 或将来删除卡非常重要。 (如果设置 PUK,则无法使用管理员密钥重置 PIN.)
由于管理员密钥对卡的安全性至关重要,因此请务必考虑部署环境并决定适当的管理员密钥设置策略。 这些策略的选项包括:
- 统一:组织中部署的所有虚拟智能卡的管理员密钥相同。 尽管使用相同的密钥使维护基础结构变得容易 (只需要) 存储一个密钥,但它非常不安全。 对于小型组织来说,此策略可能已足够,但如果管理员密钥泄露,则必须重新颁发使用该密钥的所有虚拟智能卡
- 随机,不存储:管理员密钥是为所有虚拟智能卡随机分配的,并且不会记录。 如果部署管理员不需要重置 PIN,而是希望删除并重新颁发虚拟智能卡,则这是一个有效的选项。 如果管理员希望为虚拟智能卡设置 PUK 值,然后在必要时使用此值重置 PIN,则这是一种可行的策略
- 随机存储:随机分配管理员密钥,将其存储在中心位置。 每个卡的安全性都独立于其他安全。 这是大规模安全策略,除非管理员密钥数据库已泄露
- 确定性:管理员密钥是某些功能或已知信息的结果。 例如,用户 ID 可用于随机生成数据,这些数据可以通过对称加密算法使用机密进一步处理。 可以根据需要以类似的方式重新生成此管理员密钥,并且不需要存储该密钥。 此方法的安全性取决于所用机密的安全性。
尽管 PUK 和管理员密钥方法提供了解锁和重置功能,但它们以不同的方式执行此操作。 PUK 是在计算机上输入的 PIN,用于启用用户 PIN 重置。
管理员密钥方法采用质询-响应方法。 在用户向部署管理员验证其身份后,卡提供一组随机数据。 然后,管理员使用管理员密钥加密数据,并将加密的数据返回给用户。 如果验证期间卡生成的加密数据匹配,则卡将允许 PIN 重置。 由于除部署管理员以外的任何人都无法访问管理员密钥,因此任何其他方都无法截获或记录该密钥, (包括) 员工。 除了使用 PUK 之外,这还提供了显著的安全优势,这是个性化过程中的一个重要注意事项。
使用 Tpmvscmgr 命令行工具创建 TPM 虚拟智能卡时,可以单独进行个性化设置。 或者,组织可以购买可将个性化纳入自动化例程的管理解决方案。 此类解决方案的另一个优点是自动创建管理员密钥。 Tpmvscmgr.exe 允许用户创建自己的管理员密钥,这可能会损害虚拟智能卡的安全性。
预配虚拟智能卡
预配是将特定凭据加载到 TPM 虚拟智能卡的过程。 这些凭据包含创建用于授予用户对特定服务(例如域登录)的访问权限的证书。 每个虚拟智能卡最多允许 30 个证书。 与物理智能卡一样,必须根据部署环境和所需的安全级别,对预配策略做出若干决策。
安全预配的高保证级别要求对接收证书的个人的身份具有绝对的确定性。 因此,高保障预配的一种方法是利用以前预配的强凭据(例如物理智能卡)在预配期间验证标识。 在登记站亲自证明是另一种选择,因为个人可以使用护照或驾驶执照轻松安全地证明自己的身份,尽管这在更大范围内可能变得不可行。 若要实现类似的保证级别,大型组织可以实施“代表注册”策略,其中员工由可以亲自验证其身份的上级注册其凭据。 这将创建一个信任链,确保根据建议的标识亲自检查个人,但不需要从单个中央注册站预配所有虚拟智能卡的管理压力。
对于高保证级别不是主要考虑因素的部署,可以使用自助服务解决方案。 其中可能包括使用联机门户获取凭据,或者直接使用证书管理器注册证书,具体取决于部署。 请考虑虚拟智能卡身份验证仅与预配方法一样强大。 例如,如果使用弱域凭据 ((例如仅使用密码) )请求身份验证证书,则虚拟智能卡身份验证将等效于仅使用密码,并且双重身份验证的优势将丢失。
有关使用证书管理器配置虚拟智能卡的信息,请参阅 虚拟智能卡入门:演练指南。
高保证和自助服务解决方案通过假设在部署虚拟智能卡之前颁发了用户的计算机,来处理虚拟智能卡预配,但情况并非总是如此。 如果虚拟智能卡正与新计算机一起部署,则可以在用户与该计算机联系之前在计算机上创建、个性化和预配虚拟智能卡。
在这种情况下,预配变得相对简单,但必须进行标识检查,以确保计算机的接收者是预配期间预期的个人。 这可以通过要求员工在部署管理员或经理的监督下设置初始 PIN 来实现。
预配计算机时,还应考虑为虚拟智能卡提供的凭据的长寿。 此选项必须基于组织的风险阈值。 虽然较长的凭据生存期更方便,但它们在生存期内也更有可能遭到入侵。 若要确定凭据的适当生存期,部署策略必须考虑到其加密的漏洞 (破解凭据) 可能需要多长时间,以及攻击的可能性。
对于泄露的虚拟智能卡,管理员应能够撤销关联的凭据,就像使用丢失或被盗的笔记本电脑一样。 撤销凭据需要记录哪些凭据与哪个用户和设备匹配,但 Windows 中本身不存在该功能。 部署管理员可能需要考虑使用附加解决方案来维护记录。
用于企业访问的使用者设备上的虚拟智能卡
有些技术允许员工预配虚拟智能卡并注册可用于对用户进行身份验证的证书。 当员工尝试从未加入公司域的设备访问公司资源时,这很有用。 可以进一步定义这些设备,以允许用户从 Microsoft Store 以外的源下载和运行应用程序。
可以使用 API 生成 Microsoft Store 应用,这些应用可用于管理虚拟智能卡的整个生命周期。 有关详细信息,请参阅 以编程方式创建和删除虚拟智能卡。
注册表中的 TPM ownerAuth
当设备或计算机未加入域时,TPM ownerAuth 将存储在注册表HKEY_LOCAL_MACHINE下。 这暴露了一些威胁。 大多数威胁向量都受 BitLocker 保护,但不受保护的威胁包括:
- 恶意用户拥有在设备锁定之前具有活动本地登录会话的设备。 恶意用户可能会尝试对虚拟智能卡 PIN 进行暴力攻击,然后访问公司机密
- 恶意用户拥有具有活动虚拟专用网络 (VPN) 会话的设备。 设备随后遭到入侵
以前方案的建议缓解措施是使用Exchange ActiveSync (EAS) 策略,将自动锁定时间从 5 分钟减少到 30 秒的不活动状态。 可以在预配虚拟智能卡时设置自动锁定策略。 如果组织需要更高的安全性,还可以配置一个设置,以从本地设备中删除 ownerAuth。
有关 TPM 所有者身份验证注册表项的配置信息,请参阅组策略设置配置可用于操作系统的 TPM 所有者授权信息的级别。
有关 EAS 策略的信息,请参阅Exchange ActiveSync策略引擎概述。
托管和非托管卡
下表描述了使用者设备上存在的托管和非托管虚拟智能卡之间的重要差异:
操作 | 托管和非托管卡 | 非托管卡片 |
---|---|---|
当用户忘记 PIN 时重置 PIN | 是 | 否。 删除并重新创建卡。 |
允许用户更改 PIN | 是 | 否。 删除并重新创建卡。 |
托管卡片
托管虚拟智能卡可由 IT 管理员或具有该指定角色的其他人提供服务。 它使 IT 管理员能够影响或完全控制虚拟智能卡从创建到删除的特定方面。 若要管理这些卡,通常需要虚拟智能卡部署管理工具。
托管卡创建
用户可以使用 Tpmvscmgr 命令行工具创建空白虚拟智能卡,Tpmvscmgr 命令行工具是通过提升的命令提示符使用管理凭据执行的内置工具。 虚拟智能卡必须使用已知参数 ((例如默认值) )创建,并且应保持未格式化 (具体来说,不应) 指定 /generate 选项。
以下命令创建一个虚拟智能卡,以后可以通过从另一台计算机 (启动的智能卡管理工具进行管理,如下一部分) 中所述:
tpmvscmgr.exe create /name "VirtualSmartCardForCorpAccess" /AdminKey DEFAULT /PIN PROMPT
或者,用户可以在命令行中输入管理员密钥,而不是使用默认管理员密钥:
tpmvscmgr.exe create /name "VirtualSmartCardForCorpAccess" /AdminKey PROMPT /PIN PROMPT
在任一情况下,卡管理系统都需要了解初始管理员密钥。 要求是使卡管理系统能够获取虚拟智能卡的所有权,并将管理员密钥更改为只能通过 IT 管理员操作的卡管理工具访问的值。 例如,使用默认值时,管理员密钥设置为:
10203040506070801020304050607080102030405060708
有关使用此命令行工具的信息,请参阅 Tpmvscmgr。
托管卡管理
创建虚拟智能卡后,用户需要打开与注册站的远程桌面连接,例如,在已加入域的计算机中。 与客户端计算机关联的虚拟智能卡可用于远程桌面连接。 用户可以在远程会话中打开卡管理工具,该工具可以获取卡的所有权,并将其预配以供用户使用。 这要求允许用户建立从未加入域的计算机到已加入域的计算机的远程桌面连接。 这可能需要特定的网络配置,例如通过 IPsec 策略。
当用户需要重置或更改 PIN 时,他们需要使用远程桌面连接来完成这些操作。 他们可以使用内置工具进行 PIN 解锁和 PIN 更改,或使用智能卡管理工具。
托管卡的证书管理
与物理智能卡类似,虚拟智能卡需要证书注册。
证书颁发
用户可以从为预配卡而建立的远程桌面会话中注册证书。 此过程还可以由用户通过远程桌面连接运行的智能卡管理工具进行管理。 此模型适用于要求用户使用物理智能卡签署注册请求的部署。 如果在远程计算机上安装物理智能卡的驱动程序,则无需在客户端计算机上安装该驱动程序。 这可以通过智能卡重定向功能实现,该功能可确保连接到客户端计算机的智能卡在远程会话期间可用。
或者,用户无需建立远程桌面连接,即可从客户端计算机上的证书管理控制台 (certmgr.msc) 注册证书。 用户还可以在自定义证书注册应用程序中创建一个请求并将其提交到服务器, (例如,注册机构) 具有对证书颁发机构 (CA) 的受控访问权限。 这需要证书注册策略的特定企业配置和部署 (CEP) 和证书注册服务 (CES) 。
证书生命周期管理
可以通过远程桌面连接、证书注册策略或证书注册服务续订证书。 根据续订策略,续订要求可能不同于初始颁发要求。
证书吊销需要仔细规划。 当有关要吊销的证书的信息可靠可用时,可以轻松吊销特定证书。 当有关要吊销的证书的信息不容易确定时,可能需要撤销根据用于颁发证书的策略颁发给用户的所有证书。 例如,如果员工报告设备丢失或泄露,并且设备与证书关联的信息不可用,则可能会出现这种情况。
非托管卡片
IT 管理员无法维护非托管虚拟智能卡。 如果组织没有精心制作的智能卡部署管理工具,并且不需要使用远程桌面连接来管理卡,则非托管卡可能适用。 由于 IT 管理员无法维护非托管卡,因此当用户需要有关虚拟智能卡 ((例如重置或解锁 PIN) )的帮助时,用户唯一可用的选择是删除卡并重新创建它。 这会导致用户的凭据丢失,并且用户必须重新注册。
非托管卡创建
用户可以使用 Tpmvscmgr 命令行工具创建虚拟智能卡,该工具通过提升的命令提示符使用管理凭据运行。 以下命令创建可用于注册证书的非托管卡:
tpmvscmgr.exe create /name "VirtualSmartCardForCorpAccess" /AdminKey RANDOM /PIN PROMPT /generate
此命令使用随机管理员密钥创建卡。 创建卡后,会自动丢弃密钥。 如果用户忘记或想要更改其 PIN,则需要删除卡并重新创建它。 若要删除卡,用户可以运行以下命令:
tpmvscmgr.exe destroy /instance <instance ID>
其中 <instance ID>
是用户创建卡时在屏幕上打印的值。 具体而言,对于创建的第一个卡,实例 ID 为 ROOT\SMARTCARDREADER\0000
。
非托管卡的证书管理
根据组织特有的安全要求,用户最初可以从证书管理控制台 (certmgr.msc) 或自定义证书注册应用程序中注册证书。 后一种方法可以创建请求并将其提交到有权访问证书颁发机构的服务器。 这需要证书注册策略和证书注册服务的特定组织配置和部署。 Windows 具有内置工具,特别是 Certreq.exe 和 Certutil.exe,脚本可以使用这些工具从命令行执行注册。
通过仅提供域凭据来请求证书
用户请求证书的最简单方法是通过脚本提供其域凭据,该脚本可以通过证书请求的内置组件执行注册。
或者,可以在计算机上安装应用程序 ((例如业务线应用) ),以便通过在客户端上生成请求来执行注册。 请求提交到 HTTP 服务器,该服务器可将请求转发给注册机构。
另一个选项是让用户访问通过 Internet Explorer 提供的注册门户。 网页可以使用脚本 API 执行证书注册。
使用另一个证书对请求进行签名
可以通过个人信息交换 (.pfx) 文件为用户提供短期证书。 可以通过从已加入域的计算机发起请求来生成 .pfx 文件。 可以对 .pfx 文件强制实施其他策略约束,以断言用户的标识。
用户可以将证书导入 MY 存储 (即用户的证书存储) 。 你的组织可以向用户提供一个脚本,该脚本可用于对短期证书的请求进行签名,并请求虚拟智能卡。
对于要求用户使用物理智能卡对证书请求进行签名的部署,可以使用过程:
- 用户在已加入域的计算机上启动请求
- 用户通过使用物理智能卡对请求进行签名来完成请求
- 用户将其请求下载到其客户端计算机上的虚拟智能卡
使用一次性密码进行注册
确保在颁发虚拟智能卡证书之前对用户进行强身份验证的另一个选项是通过短信、电子邮件或电话向用户发送一次性密码。 然后,用户在证书注册期间从应用程序或桌面上调用内置命令行工具的脚本中键入一次性密码。
证书生命周期管理:可以通过用于初始证书注册的相同工具完成证书续订。 证书注册策略和证书注册服务也可用于执行自动续订。
证书吊销需要仔细规划。 当有关要吊销的证书的信息可靠可用时,可以轻松吊销特定证书。 当有关要吊销的证书的信息不容易确定时,可能需要撤销根据用于颁发证书的策略颁发给用户的所有证书。 例如,如果员工报告设备丢失或泄露,并且将设备与证书关联的信息不可用。
维护虚拟智能卡
维护是虚拟智能卡生命周期的重要组成部分,也是管理方面最重要的考虑因素之一。 创建、个性化和预配虚拟智能卡后,即可将其用于方便的双重身份验证。 部署管理员必须了解几种常见的管理方案,可以使用购买的虚拟智能卡解决方案或通过内部方法逐个处理。
续订:续订虚拟智能卡凭据是维护虚拟智能卡部署安全性所必需的常规任务。 续订是用户发出已签名请求的结果,该用户指定新凭据所需的密钥对。 根据用户的选择或部署规范,用户可以使用以前使用的相同密钥对请求凭据,或者选择新生成的密钥对。
使用以前使用的密钥续订时,无需执行额外的步骤,因为在初始预配过程中颁发了具有此密钥的强证书。 但是,当用户请求新的密钥对时,必须执行预配期间所用的相同步骤,以确保凭据的强度。 应定期续订新密钥,以对抗恶意用户渗透系统的复杂长期尝试。 分配新密钥时,必须确保新密钥由预期的个人在同一虚拟智能卡上使用。
重置 PIN:重置虚拟智能卡 PIN 也经常需要,因为员工会忘记他们的 PIN。 根据部署之前所做的选择,有两种方法可以实现此目的:如果 PUK 设置为) ,请使用 PUK (,或者对管理密钥使用质询-响应方法。 在重置 PIN 之前,必须使用除卡以外的某些方法验证用户的身份,这很可能是初始预配期间使用的验证方法, (例如现场校对) 。 当用户忘记其 PIN 时,这在用户错误方案中是必需的。 但是,如果 PIN 已泄露,则永远不要重置该 PIN,因为 PIN 公开后的漏洞级别难以识别。 应重新颁发整个卡。
锁定重置:重置 PIN 的常见前兆是重置 TPM 锁定时间的必要条件,因为 TPM 反锤逻辑将涉及虚拟智能卡的多个 PIN 输入失败。 这当前特定于设备。
停用卡片:虚拟智能卡管理的最后一个方面是在不再需要卡片时停用卡片。 当员工离开公司时,需要撤销域访问权限。 从证书颁发机构撤销登录凭据 (CA) 可实现此目标。
如果其他员工使用同一台计算机而不重新安装操作系统,则应重新颁发卡。 重用以前的卡可以允许前员工在离开组织后更改 PIN,然后劫持属于新用户的证书以获取未经授权的域访问。 但是,如果员工使用启用了虚拟智能卡的计算机,则只需吊销存储在虚拟智能卡上的证书。
应急准备
卡片重新颁发
组织中最常见的方案是重新颁发虚拟智能卡,如果重新安装操作系统或虚拟智能卡以某种方式受到威胁,则可能需要重新颁发虚拟智能卡。 重新颁发本质上是重新创建卡,涉及建立新的 PIN 和管理员密钥,以及预配一组新的关联证书。 当卡遭到入侵时(例如,如果受虚拟智能卡保护的计算机被公开给可能有权访问正确 PIN 的攻击者),这立即是必需的。 重新颁发是针对卡隐私的未知暴露的最安全响应。 此外,重新安装操作系统后,必须重新颁发,因为重新安装操作系统时,虚拟智能卡设备配置文件会随所有其他用户数据一起删除。
阻止的虚拟智能卡
TPM 虚拟智能卡的防锤行为不同于物理智能卡。 在用户多次输入错误的 PIN 后,物理智能卡阻止自身。 TPM 虚拟智能卡在用户多次输入错误的 PIN 后进入计时延迟。 如果 TPM 处于计时延迟模式,当用户尝试使用 TPM 虚拟智能卡时,系统会通知用户卡被阻止。 此外,如果启用集成解锁功能,用户可以看到用于解锁虚拟智能卡和更改 PIN 的用户界面。 解锁虚拟智能卡不会重置 TPM 锁定。 用户需要执行额外的步骤来重置 TPM 锁定或等待超时延迟过期。
有关设置“允许集成取消阻止”策略的详细信息,请参阅 允许在登录时显示集成取消阻止屏幕。