智能卡
智能卡和等效技术在本文章所述的指导原则范围内受支持。要在 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 代表,了解在 Citrix Virtual Apps 或 Citrix Virtual Desktops 上支持这些专用应用程序的信息。
对于企业智能卡,存在可以类似方式使用的兼容等效产品。
- 智能卡等效的 USB 令牌直接连接到 USB 端口。这些 USB 令牌通常与 USB 闪存驱动器大小相同,但也可以小到手机中使用的 SIM 卡。它们表现为智能卡加上 USB 智能卡读卡器的组合。
- 使用 Windows 可信平台模块 (TPM) 的虚拟智能卡表现为智能卡。这些虚拟智能卡支持 Windows 8 和 Windows 10,使用 Citrix Workspace 应用程序(最低版本 Citrix Receiver 4.3)。
- 早于 XenApp 和 XenDesktop 7.6 FP3 的 思杰虚拟应用和桌面(以前称为 XenApp 和 XenDesktop)版本不支持虚拟智能卡。
- 有关虚拟智能卡的更多信息,请参阅虚拟智能卡概述。
注意: 术语“虚拟智能卡”也用于描述存储在用户计算机上的数字证书。这些数字证书与智能卡并非严格等同。
Citrix Virtual Apps and Desktops 智能卡支持基于 Microsoft 个人计算机/智能卡 (PC/SC) 标准规范。最低要求是智能卡和智能卡设备必须受底层 Windows 操作系统支持,并且必须获得 Microsoft Windows 硬件质量实验室 (WHQL) 批准,才能在运行合格 Windows 操作系统的计算机上使用。有关硬件 PC/SC 合规性的更多信息,请参阅 Microsoft 文档。其他类型的用户设备可能符合 PS/SC 标准。有关详细信息,请参阅 Citrix Ready 计划。
通常,每个供应商的智能卡或等效设备都需要单独的设备驱动程序。但是,如果智能卡符合 NIST 个人身份验证 (PIV) 标准等标准,则可能可以使用单个设备驱动程序来支持多种智能卡。设备驱动程序必须安装在用户设备和 Virtual Delivery Agent (VDA) 上。设备驱动程序通常作为 Citrix 合作伙伴提供的智能卡中间件软件包的一部分提供;智能卡中间件软件包提供高级功能。设备驱动程序也可以称为加密服务提供商 (CSP)、密钥存储提供商 (KSP) 或微型驱动程序。
Citrix 已测试以下适用于 Windows 系统的智能卡和中间件组合,作为其类型的代表性示例。但是,也可以使用其他智能卡和中间件。有关 Citrix 兼容智能卡和中间件的更多信息,请参阅 http://www.citrix.com/ready。
| 中间件 | 匹配的卡 |
|---|---|
| Gemalto .NET 卡微型驱动程序 | 金雅拓 .NET v2及更高版本 |
有关智能卡在其他类型设备上的使用信息,请参阅该设备的 Citrix Workspace™ app 文档。
远程电脑访问
智能卡仅支持远程访问运行 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 软件。
- 将 Citrix Receiver™ for Web URL 添加到“受信任的站点”列表,以供在 Windows 10 中使用 Internet Explorer 智能卡的用户使用。在 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_本地计算机\软件\思杰\智能卡
Name: EnableReaderInsertCountReporting
Type: DWORD
值: 任何非零值
会话断开连接时,计数将重置为零。
读取器插入计数报告与第三方智能卡中间件兼容。