Citrix Virtual Apps and Desktops

智能卡

根据本文中介绍的指导原则,智能卡以及等效技术均受支持。要对 Citrix Virtual Apps 或 Citrix Virtual Desktops 使用使用智能卡,请完成以下各项:

  • 了解贵组织与使用智能卡有关的安全策略。例如,这些策略可能说明如何颁发智能卡,以及用户必须如何保护这些智能卡。在 Citrix Virtual Apps 或 Citrix Virtual Desktops 环境中,可能需要重新评估这些策略的某些方面。
  • 确定要与智能卡结合使用的用户设备类型、操作系统和已发布的应用程序。
  • 熟悉智能卡技术以及选定智能卡供应商提供的硬件和软件。
  • 了解如何在分布式环境中部署数字证书。

注意:

快速智能卡不支持智能卡注册。禁用了快速智能卡时,智能卡注册可能会起作用,但取决于智能卡和中间件的类型。请联系您的智能卡和中间件供应商,了解他们与 Citrix Virtual Apps and Desktops 的集成以及是否支持通过虚拟会话进行智能卡注册。

智能卡类型

企业和使用者智能卡具有相同的尺寸和电连接器,并且适合相同的智能卡读卡器。

供企业使用的智能卡包含数字证书。这些智能卡支持 Windows 登录,并且还可以与应用程序结合使用以进行数字签名以及文档和电子邮件的加密。Citrix Virtual Apps and Desktops 支持这些用法。

供使用者使用的智能卡不包含数字证书,但包含一个共享机密。这些智能卡可以支持付款(例如,签名支付或芯片密码信用卡)。这些智能卡不支持 Windows 登录或典型的 Windows 应用程序。需要对这些智能卡使用专用 Windows 应用程序和适用的软件基础结构(例如,包括与支付卡网络建立连接)。要了解与支持在 Citrix Virtual Apps 或 Citrix Virtual Desktops 上使用这些专用应用程序有关的信息,请联系您的 Citrix 代表。

对于企业智能卡,这些是能够以相似的方式使用的兼容等效物。

  • 与智能卡等效的 USB 令牌直接连接到 USB 端口。这些 USB 令牌通常与 U 盘大小相同,但可以像手机中使用的 SIM 卡一样小。这些令牌显示为智能卡与 USB 智能卡读卡器的组合。
  • 使用 Windows 受信任的平台模块 (TPM) 的虚拟智能卡显示为智能卡。使用 Citrix Workspace 应用程序(最低版本为 Citrix Receiver 4.3)的 Windows 8 和 Windows 10 支持这些虚拟智能卡。
    • XenApp and XenDesktop 7.6 FP3 之前的 Citrix Virtual Apps and Desktops(以前称为 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) 或微型驱动程序。

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

中间件 相配的卡
适用于 .NET 卡的 Gemalto 微型驱动程序 Gemalto .NET v2+

有关对其他设备类型使用智能卡的信息,请参阅 Citrix Workspace 应用程序文档中与该设备有关的内容。

Remote PC Access

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

以下智能卡已通过 Remote PC Access 进行测试:

中间件 相配的卡
Gemalto .NET 微型驱动程序 Gemalto .NET v2+

快速智能卡

快速智能卡是对现有基于 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(作为非零 DWORD)

  • HKLM\SOFTWARE[\WOW6432Node]\Citrix\ICA Client\SmartCard\ForceDisableCryptographicRedirection(作为非零 DWORD)

如果客户端计算机为 64 位,则必须指定(使用 WOW6432Node)32 位注册表配置单元。

限制:

  • 只有适用于 Windows 的 Citrix Workspace 应用程序支持快速智能卡。如果在 default.ica 文件中配置了快速智能卡,非适用于 Windows 的 Citrix Workspace 应用程序将仍使用现有 PC/SC 重定向。
  • 快速智能卡支持的唯一双跃点场景为 ICA 到在两个跃点中启用了快速智能卡的 ICA。由于快速智能卡不支持 ICA 到 RDP 的双跃点场景,因此这些情况下不起作用。
  • 快速智能卡不支持下一代加密技术。因此,快速智能卡不支持椭圆曲线加密 (ECC) 智能卡。
  • 快速智能卡仅支持只读密钥容器操作。
  • 快速智能卡不支持更改智能卡 PIN。

自 VDA 版本 2203 和适用于 Windows 的 Citrix Workspace 应用程序版本 2202(或更高版本)起,快速智能卡与下一代加密技术 (Cryptography Next Generation, CNG) 兼容。此外,椭圆曲线加密 (Elliptic Curve Cryptography, ECC) 智能卡还支持以下曲线:ECDSA 和 ECDH 的 P-256、P-384、P-521 位。

自 VDA 版本 2203 起,快速智能卡增加了在同一用户的登录会话中的应用程序之间缓存智能卡 PIN 码的功能。例如,如果启用了 Session PIN Caching(会话 PIN 码缓存),并且最终用户之前已向 Outlook 提供了其智能卡 PIN 码,则当使用 Word 对文档进行签名时,Word 将使用已缓存的智能卡 PIN 码(已提交给 Outlook)。Session PIN Caching(会话 PIN 码缓存)通过减少用户必须输入其智能卡 PIN 码的次数来帮助改善用户体验。此外,如果使用智能卡登录 VDA,则可以选择将 Windows 智能卡登录 PIN 码保存到 Session PIN Cache(会话 PIN 码缓存)中。这可以进一步改善用户体验。

默认情况下,会话 PIN 缓存处于禁用状态。可以使用 VDA 上的以下注册表设置进行启用和控制:

在 HKLM\SOFTWARE\Citrix\SmartCard 中:

  • EnablePinSessionCache 为 DWORD(非零值表示启用)
  • EnableLogonPinSessionCache 为 DWORD(非零值表示启用)
  • PinSessionCacheEntryStaleTimeout 作为 DWORD(注册表项失效前的秒数,默认值为 1 小时)

智能卡读卡器类型

智能卡读卡器可能内置在用户设备中,或者单独连接到用户设备(通常通过 USB 或蓝牙进行连接)。支持遵守 USB 芯片/智能卡接口设备 (CCID) 规范的接触式读卡器。这些读卡器包含用户可插入智能卡的插槽或刷槽。Deutsche Kreditwirtschaft (DK) 标准定义了四种类别的接触式读卡器。

  • 类别 1 智能卡读卡器最常见,通常包含一个插槽。随操作系统提供的标准 CCID 设备驱动程序通常支持类别 1 智能卡读卡器。
  • 类别 2 智能卡读卡器还包含一个用户设备无法访问的安全数字小键盘。类别 2 智能卡读卡器可能内置在具有集成的安全数字小键盘的键盘中。要了解与类别 2 智能卡读卡器有关的信息,请联系您的 Citrix 代表;可能需要安装读卡器特有的设备驱动程序,才能启用安全数字小键盘功能。
  • 类别 3 智能卡读卡器还包含一个安全显示屏。不支持类别 3 智能卡读卡器。
  • 类别 4 智能卡读卡器还包含一个安全的交易模块。不支持类别 4 智能卡读卡器。

注意:

智能卡读卡器类别与 USB 设备类别无关。

智能卡读卡器必须随相应的设备驱动程序一起安装在用户设备上。

有关受支持的智能卡读卡器的信息,请参阅您使用的 Citrix Workspace 应用程序对应的文档。在 Citrix Workspace 应用程序文档中,支持的版本在智能卡一文或系统要求一文中列出。

用户体验

智能卡支持功能通过默认启用的特定 ICA/HDX 智能卡虚拟通道集成在 Citrix Virtual Apps and Desktops 中。

重要:请勿对智能卡读卡器使用通用 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 建议您首先在物理计算机上安装并测试驱动程序和 CSP 软件,然后再安装 Citrix 软件。
  • 在 Windows 10 上的 Internet Explorer 中,为使用智能卡的用户将 Citrix Receiver for Web URL 添加到可信站点列表中。在 Windows 10 中,Internet Explorer 默认情况下不会针对可信站点采用受保护模式运行。
  • 确保正确配置了您的公钥基础结构 (PKI)。包括确保针对 Active Directory 环境正确配置了证书至帐户的映射,并且可以成功执行用户证书验证。
  • 确保您的部署符合与智能卡结合使用的其他 Citrix 组件(包括 Citrix Workspace 应用程序和 StoreFront)的系统要求。
  • 确保可以访问您站点中的以下服务器:
    • 与智能卡上的登录证书相关联的用户帐户的 Active Directory 域控制器
    • Delivery Controller
    • Citrix StoreFront
    • Citrix Gateway/Citrix Access Gateway 10.x
    • VDA
    • (对于 Remote PC Access 可选):Microsoft Exchange Server

支持使用智能卡

步骤 1. 根据智能卡颁发策略向用户颁发智能卡。

步骤 2. (可选)设置智能卡以使用户能够启用 Remote PC Access。

步骤 3. 安装并配置 Delivery Controller 和 StoreFront(如果尚未安装)以实现智能卡远程连接。

步骤 4. 启用 StoreFront 以使用智能卡。有关详细信息,请参阅 StoreFront 文档中的配置智能卡身份验证。

步骤 5. 启用 Citrix Gateway/Access Gateway 以使用智能卡。有关详细信息,请参阅 NetScaler 文档中的配置身份验证和授权及通过 Web Interface 配置智能卡访问权限。

步骤 6. 启用 VDAs 以使用智能卡。

  • 确保 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(SCardGetStatusChangeA 函数)和 SCARD_READERSTATEA structure(SCARD_READERSTATEA 结构)。

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

HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\SmartCard

名称:EnableReaderInsertCountReporting

类型:DWORD

值:任何非零值

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

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