智能卡
本文所述指南支持智能卡和等效技术。要将智能卡与 Citrix Virtual Apps 或 Citrix Virtual Desktops™ 结合使用,请执行以下操作:
- 了解贵组织有关智能卡使用的安全策略。例如,这些策略可能会说明如何颁发智能卡以及用户必须如何保护它们。在 Citrix Virtual Apps™ 或 Citrix Virtual Desktops 环境中,可能需要重新评估这些策略的某些方面。
- 确定要与智能卡一起使用的用户设备类型、操作系统和已发布的应用程序。
- 了解并熟悉智能卡技术,以及您选择的智能卡供应商提供的硬件和软件。
- 了解如何在分布式环境中部署数字证书。
注意:
不支持使用 快速智能卡 进行智能卡注册。当快速智能卡被禁用时,智能卡注册可能会起作用,但这取决于智能卡和中间件的类型。有关其与 Citrix Virtual Apps and Desktops 的集成以及通过虚拟会话支持智能卡注册的信息,请联系您的智能卡和中间件供应商。
智能卡类型
企业和消费者智能卡具有相同的尺寸、电气连接器,并且适用于相同的智能卡读卡器。
企业用途的智能卡包含数字证书。这些智能卡支持 Windows 登录,也可用于应用程序对文档和电子邮件进行数字签名和加密。Citrix Virtual Apps and Desktops™ 支持这些用途。
消费者用途的智能卡不包含数字证书;它们包含共享密钥。这些智能卡可以支持支付(例如芯片签名或芯片 PIN 信用卡)。它们不支持 Windows 登录或典型的 Windows 应用程序。要使用这些智能卡,需要专门的 Windows 应用程序和合适的软件基础结构(例如,连接到支付卡网络)。有关在 Citrix Virtual Apps 或 Citrix Virtual Desktops 上支持这些专用应用程序的信息,请联系您的 Citrix 代表。
对于企业智能卡,存在可以类似方式使用的兼容等效产品。
- 智能卡等效 USB 令牌直接连接到 USB 端口。这些 USB 令牌通常与 USB 闪存驱动器大小相同,但也可以小到手机中使用的 SIM 卡。它们表现为智能卡和 USB 智能卡读卡器的组合。
- 使用 Windows 可信平台模块 (TPM) 的虚拟智能卡显示为智能卡。这些虚拟智能卡支持 Windows 8 和 Windows 10,使用 Citrix Workspace 应用程序(最低版本 Citrix Receiver 4.3)。
- 早于 XenApp 和 XenDesktop 7.6 功能包 3 的 思杰虚拟应用和桌面(以前称为 XenApp 和 XenDesktop)版本不支持虚拟智能卡。
- 有关虚拟智能卡的更多信息,请参阅虚拟智能卡概述。
注意:“虚拟智能卡”一词也用于描述存储在用户计算机上的数字证书。这些数字证书与智能卡并非严格等同。
Citrix Virtual Apps and Desktops 智能卡支持基于 Microsoft 个人计算机/智能卡 (PC/SC) 标准规范。最低要求是智能卡和智能卡设备必须由底层 Windows 操作系统支持,并且必须经过 Microsoft Windows 硬件质量实验室 (WHQL) 批准才能在运行合格 Windows 操作系统的计算机上使用。有关硬件 PC/SC 合规性的更多信息,请参阅 Microsoft 文档。其他类型的用户设备可能符合 PS/SC 标准。有关更多信息,请参阅 Citrix Ready 计划。
通常,每个供应商的智能卡或等效设备都需要单独的设备驱动程序。但是,如果智能卡符合 NIST 个人身份验证 (PIV) 标准等标准,则可能可以使用单个设备驱动程序来支持一系列智能卡。设备驱动程序必须安装在用户设备和虚拟投递代理 (VDA) 上。设备驱动程序通常作为智能卡中间件包的一部分提供,该中间件包可从 Citrix 合作伙伴处获得;智能卡中间件包提供高级功能。设备驱动程序也可能被称为加密服务提供程序 (CSP)、密钥存储提供程序 (KSP) 或微型驱动程序 (minidriver)。
Citrix 已测试以下适用于 Windows 系统的智能卡和中间件组合,作为其类型的代表性示例。但是,也可以使用其他智能卡和中间件。有关 Citrix 兼容智能卡和中间件的更多信息,请参阅 http://www.citrix.com/ready。
| 中间件 | 匹配的卡 |
|---|---|
| Gemalto .NET 卡微型驱动程序 | 金雅拓 .NET 版本 2 及更高版本 |
有关智能卡与其他类型设备一起使用的信息,请参阅该设备的 Citrix Workspace™ 应用程序文档。
远程电脑访问
智能卡仅支持远程访问运行 Windows 10、Windows 8 或 Windows 7 的物理办公电脑。
以下智能卡已通过远程电脑访问测试:
| 中间件 | 匹配的卡片 |
|---|---|
| 金雅拓 .NET 微型驱动程序 | 金雅拓 .NET v2 及更高版本 |
快速智能卡
快速智能卡是对现有基于 HDX PC/SC 的智能卡重定向的改进。它提高了智能卡在高延迟 WAN 环境中使用时的性能。当延迟较高时,性能提升会非常显著(例如,Windows 快速智能卡登录需要 15 秒,而使用基于 PC/SC 的智能卡重定向则需要 1 分钟以上)。
快速智能卡在当前支持的 Windows VDA 主机上默认启用。若要在主机端禁用快速智能卡(例如,出于诊断目的),请将“Disable Cryptographic Redirection”注册表设置设为任何非零值:
HKLM\SOFTWARE\Citrix\SmartCard
CryptographicRedirectionDisable (DWORD)
<!--NeedCopy-->
On the client side, to enable fast smart card, include the SmartCardCryptographicRedirection ICA parameter in the default.ica file of the associated StoreFront site:
[WFClient]
SmartCardCryptographicRedirection=On
此外,在客户端,可以通过以下注册表设置强制启用或强制禁用快速智能卡(例如,出于诊断目的):
- HKLM\SOFTWARE[\WOW6432Node]\Citrix\ICA Client\SmartCard\ForceEnableCryptographicRedirection (as a non-zero DWORD)
或
- HKLM\SOFTWARE[\WOW6432Node]\Citrix\ICA Client\SmartCard\ForceDisableCryptographicRedirection (as a non-zero DWORD)
如果客户端计算机是 64 位,则必须指定 32 位注册表配置单元(使用 WOW6432Node)。
限制:
- 只有适用于 Windows 的 Citrix Workspace 应用程序支持快速智能卡。如果您在 default.ica 文件中配置了快速智能卡,则非 Windows 版本的 Citrix Workspace 应用程序仍将使用现有的 PC/SC 重定向。
- 快速智能卡唯一支持的双跳场景是 ICA® > ICA,且在两个跳上都启用了快速智能卡。由于快速智能卡不支持 ICA > RDP 双跳场景,因此这些场景将不起作用。
- 快速智能卡不支持下一代加密技术。因此,快速智能卡不支持椭圆曲线密码学 (ECC) 智能卡。
- 快速智能卡仅支持只读密钥容器操作。
- 快速智能卡不支持更改智能卡 PIN。
从 VDA 2203 版本和适用于 Windows 的 Citrix Workspace 应用程序 2202 版本(或更高版本)开始,快速智能卡与下一代加密技术 (CNG) 兼容。此外,椭圆曲线密码学 (ECC) 智能卡支持以下曲线:P-256、P-384、P-521 位,同时支持 ECDSA 和 ECDH。
从 VDA 2203 版本开始,快速智能卡增加了在同一用户登录会话中的应用程序之间缓存智能卡 PIN 的功能。例如,如果启用了 会话 PIN 缓存 并且最终用户之前已将智能卡 PIN 提供给 Outlook,当 Word 用于签署文档时,Word 会使用已缓存的智能卡 PIN(已提交给 Outlook)。会话 PIN 缓存 通过减少用户输入智能卡 PIN 的次数来改善用户体验。此外,如果智能卡用于登录 VDA,Windows 智能卡登录 PIN 可以选择保存到 会话 PIN 缓存 中。这可以进一步改善用户体验。
会话 PIN 缓存 默认禁用。可以在 VDA 上通过以下注册表设置启用和控制它:
In HKLM\SOFTWARE\Citrix\SmartCard:
-
EnablePinSessionCache作为 DWORD(非零表示启用) -
EnableLogonPinSessionCache作为 DWORD(非零表示启用) -
PinSessionCacheEntryStaleTimeout作为 DWORD(条目失效前的秒数,默认为 1 小时)
智能卡读卡器类型
智能卡读卡器可能内置于用户设备中,或者单独连接到用户设备(通常通过 USB 或蓝牙)。支持符合 USB 芯片/智能卡接口设备 (CCID) 规范的接触式读卡器。它们包含一个插槽或刷卡口,用户可将智能卡插入其中。德国信贷经济 (DK) 标准定义了四类接触式读卡器。
- 1 类智能卡读卡器最常见,通常包含一个插槽。支持 1 类智能卡读卡器,通常使用操作系统提供的标准 CCID 设备驱动程序。
- 2 类智能卡读卡器还包含一个安全键盘,用户设备无法访问该键盘。2 类智能卡读卡器可能内置于带有集成安全键盘的键盘中。对于 2 类智能卡读卡器,请联系您的 Citrix 代表;可能需要读卡器特定的设备驱动程序才能启用安全键盘功能。
- 3 类智能卡读卡器还包含一个安全显示屏。不支持 3 类智能卡读卡器。
- 4 类智能卡读卡器也包含一个安全事务模块。4 类智能卡读卡器不受支持。
注意:
智能卡读卡器类别与 USB 设备类别无关。
智能卡读卡器必须在用户设备上安装相应的设备驱动程序。
有关支持的智能卡读卡器的信息,请参阅您正在使用的 Citrix Workspace 应用程序的文档。在 Citrix Workspace 应用程序文档中,支持的版本列在智能卡文章或系统要求文章中。
用户体验
智能卡支持已集成到 Citrix Virtual Apps and Desktops 中,使用默认启用的特定 ICA/HDX 智能卡虚拟通道。
重要提示:请勿将通用 USB 重定向用于智能卡读卡器。智能卡读卡器默认禁用此功能,如果启用,则不受支持。
可以在同一用户设备上使用多张智能卡和多个读卡器,但如果正在使用直通身份验证,则用户启动虚拟桌面或应用程序时只能插入一张智能卡。当在应用程序中使用智能卡时(例如,用于数字签名或加密功能),可能会出现其他提示,要求插入智能卡或输入 PIN。如果同时插入了多张智能卡,则可能会发生这种情况。
- 如果系统提示用户插入智能卡而智能卡已在读卡器中,则他们必须选择取消。
- 如果系统提示用户输入 PIN,则他们必须再次输入 PIN。
您可以使用卡管理系统或供应商实用程序重置 PIN。
重要提示:
在 Citrix Virtual Apps 或 Citrix Virtual Desktops 会话中,将智能卡与 Microsoft 远程桌面连接应用程序结合使用不受支持。这有时被称为“双跳”用法。
部署智能卡之前
- 获取智能卡读卡器的设备驱动程序,并将其安装在用户设备上。许多智能卡读卡器可以使用 Microsoft 提供的 CCID 设备驱动程序。
- 从智能卡供应商处获取设备驱动程序和加密服务提供程序 (CSP) 软件,并将其安装在用户设备和虚拟桌面上。驱动程序和 CSP 软件必须与 Citrix Virtual Apps and Desktops 兼容;请查阅供应商文档以了解兼容性。对于使用支持并采用微型驱动程序模型的智能卡的虚拟桌面,智能卡微型驱动程序会自动下载,但您也可以从 http://catalog.update.microsoft.com 或从您的供应商处获取。此外,如果需要 PKCS#11 中间件,请从卡供应商处获取。
- 重要提示:Citrix 建议您在安装 Citrix 软件之前,先在物理计算机上安装并测试驱动程序和 CSP 软件。
- 对于在 Windows 10 中使用 Internet Explorer 智能卡的用户,请将 Citrix Receiver™ for Web URL 添加到“受信任的站点”列表中。在 Windows 10 中,Internet Explorer 默认情况下不会为受信任的站点运行在保护模式下。
- 确保您的公钥基础结构 (PKI) 配置正确。这包括确保为 Active Directory 环境正确配置了证书到帐户的映射,并且可以成功执行用户证书验证。
- 确保您的部署满足与智能卡一起使用的其他 Citrix 组件(包括 Citrix Workspace 应用程序和 StoreFront)的系统要求。
- 确保可以访问您的站点中的以下服务器:
- 智能卡上与登录证书关联的用户帐户的 Active Directory 域控制器
- 交付控制器™
- 思杰 店面
- 思杰 网关/思杰 访问网关 10.x
- VDA
- (远程电脑访问可选):微软 Exchange 服务器
启用智能卡使用
步骤 1. 根据您的卡片颁发策略向用户颁发智能卡。
步骤 2.(可选)设置智能卡以启用用户进行远程电脑访问。
步骤 3. 安装并配置 Delivery Controller 和 StoreFront(如果尚未安装),以用于智能卡远程处理。
步骤 4. 启用 StoreFront 以使用智能卡。有关详细信息,请参阅 StoreFront 文档中的“配置智能卡身份验证”。
步骤 5. 启用 Citrix Gateway/Access Gateway 以使用智能卡。有关详细信息,请参阅 NetScaler 文档中的“配置身份验证和授权”以及“通过 Web 界面配置智能卡访问”。
步骤 6. 启用 VDA 以使用智能卡。
- 确保 VDA 具有所需的应用程序和更新。
- 安装中间件。
- 设置智能卡远程处理,以实现在用户设备上的 Citrix Workspace 应用程序与虚拟桌面会话之间进行智能卡数据通信。
步骤 7. 启用用户设备(包括已加入域或未加入域的计算机)以使用智能卡。有关详细信息,请参阅 StoreFront 文档中的“配置智能卡身份验证”。
- 将证书颁发机构根证书以及颁发证书的证书颁发机构的证书导入到设备的密钥库中。
- 安装供应商的智能卡中间件。
- 安装并配置适用于 Windows 的 Citrix Workspace 应用程序,务必使用组策略管理控制台导入 icaclient.adm 并启用智能卡身份验证。
步骤 8. 测试部署。通过使用测试用户的智能卡启动虚拟桌面,确保部署配置正确。测试所有可能的访问机制(例如,通过 Internet Explorer 和 Citrix Workspace 应用程序访问桌面)。
跟踪智能卡读卡器插入计数
通过智能卡远程处理,您可以使用 SCardGetStatusChange 函数跟踪智能卡插入或从读卡器中移除的次数。该函数会更新一个 SCARD_READERSTATE 数据结构数组,每个您监控的读卡器对应一个。每个 SCARD_READERSTATE 的 dwEventState 字段的高字(16 位)包含读卡器计数。有关详细信息,请参阅 Microsoft 文章 SCardGetStatusChangeA function 和 SCARD_READERSTATEA structure。
“读取器插入计数报告”设置默认处于禁用状态。要启用跟踪,请添加以下注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\SmartCard
Name: EnableReaderInsertCountReporting
Type: DWORD
值:任何非零值
会话断开连接时,计数将重置为零。
“读取器插入计数报告”与第三方智能卡中间件兼容。