智能卡

智能卡和等效技术在本文章所述的指导原则范围内受支持。要将智能卡与 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)。
    • Versions of Citrix Virtual Apps and Desktops (formerly XenApp and XenDesktop) earlier than XenApp and XenDesktop 7.6 FP3 do not support virtual smart cards.
    • 有关虚拟智能卡的更多信息,请参阅虚拟智能卡概述

    注意:术语“虚拟智能卡”也用于描述存储在用户计算机上的数字证书。这些数字证书与智能卡并非严格等同。

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) 或微型驱动程序。

Citrix 已测试以下适用于 Windows 系统的智能卡和中间件组合,作为其类型的代表性示例。但是,也可以使用其他智能卡和中间件。有关 Citrix 兼容智能卡和中间件的更多信息,请参阅 http://www.citrix.com/ready

中间件 匹配的卡
Gemalto .NET 卡微型驱动程序 金雅拓 .NET v2+

有关智能卡在其他类型设备上的使用信息,请参阅该设备的 Citrix Workspace™ 应用程序文档。

远程电脑访问

智能卡仅支持远程访问运行 Windows 10、Windows 8 或 Windows 7 的物理办公电脑。

以下智能卡已通过远程电脑访问测试:

中间件 兼容卡片
Gemalto .NET minidriver Gemalto .NET 版本 2 及更高版本

快速智能卡

快速智能卡是对现有基于 HDX PC/SC 的智能卡重定向的改进。它提高了在高延迟 WAN 环境中使用智能卡时的性能。当延迟较高时,性能提升会非常显著(例如,Windows 快速智能卡登录需要 15 秒,而使用基于 PC/SC 的智能卡重定向则需要 1 分钟以上)。

快速智能卡在当前支持 Windows VDA 的主机上默认启用。若要在主机端禁用快速智能卡(例如,出于诊断目的),请将“Disable Cryptographic Redirection”注册表设置设为任意非零值:

HKLM\SOFTWARE\Citrix\SmartCard
CryptographicRedirectionDisable (DWORD)
<!--NeedCopy-->

在客户端,为了能够成功启用快速智能卡功能,您需要将名为 SmartCardCryptographicRedirection 的 ICA 参数添加到关联的 StoreFront 站点的 default.ica 配置文件中。

[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 域控制器
    • 交付控制器™
    • Citrix StoreFront
    • 思杰网关/思杰访问网关 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 functionSCARD_READERSTATEA structure

读卡器插入计数报告”设置默认处于禁用状态。要启用跟踪,请添加以下注册表项:

HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\SmartCard

Name: EnableReaderInsertCountReporting

数据类型: DWORD

值: 任何非零值

会话断开连接时,计数重置为零。

读卡器插入计数报告”与第三方智能卡中间件兼容。

智能卡