智能卡微型驱动器

智能卡微型驱动程序提供了一种更简单的替代方法,用于通过封装来自智能卡微型驱动程序开发人员的大多数复杂加密操作来开发旧式加密服务提供程序 (CSP)。

有关智能卡微型驱动程序规范的信息,请参阅智能卡微型驱动程序规范

从 Windows Vista 开始,应用程序可以使用 Microsoft 加密 API:下一代 (CNG) 实现基于智能卡的加密服务。 作为 Windows Vista 中引入的 ECC) 工作 (椭圆曲线加密的一部分,新的加密框架支持 ECC 智能卡。 通过旧 CAPI 子系统与现有 Rivest-Shamir-Adleman (RSA) 卡微型驱动程序进行交互的应用程序和接口可以继续工作,而无需修改。

RSA 智能卡微型驱动程序也可以注册到智能卡密钥存储提供程序 (KSP) ,以便可以通过 CNG 接口调用它们。 双模式 ECC/RSA + 仅限 ECC 的请求将路由到 KSP,并通过它路由到相应的卡微型驱动程序。 对于基于 Windows Vista 的客户端,使用 Windows 智能卡框架支持仅 ECC 和 ECC/RSA 双模式卡。 还可以通过 CAPI 访问双模式卡,主要用于公开仅限 RSA 的功能。

应用程序将 CAPI 用于基于智能卡的加密服务。 CAPI 又将这些请求路由到相应的 CSP,以处理加密要求。

Microsoft 智能卡基础 CSP 和 KSP 是体系结构的优化,分别将通常需要的基于 CAPI 的 CSP 和基于 CNG 的 KSP 功能与每个卡供应商必须更改的实现详细信息分开。

尽管基本 CSP 只能使用微型驱动程序来使用智能卡的 RSA 功能,但基于 CNG 的 KSP 支持仅限 ECC 以及 Windows Vista 和更高版本的 Windows 中的 ECC/RSA 双模式智能卡。

最终,新体系结构旨在支持所有新的智能卡-RSA、ECC 以及后续任何功能。 它将 CSP 的实现分为两个部分:

  • 基本 CSP/KSP (公共部分) ,其中包括哈希、对称和公钥加密操作的功能,以及个人标识号 (PIN) 输入和缓存。
  • 一系列插件,称为“卡微型驱动程序”,将特定智能卡的特征转换为所有智能卡相同的统一接口。 然后,卡微型驱动程序使用智能卡资源管理器 (SCRM) 的服务与其卡进行通信,这些服务同样抽象化了各种智能卡读取器的特征。

智能卡供应商的剩余部分是实现卡微型驱动程序,这是一个合理有限的接口层,它为基本 CSP/KSP 提供卡的抽象,并组织为文件系统,以及一组基元功能。 更高级别的功能(例如缓存 (确保卡上的不同文件具有一致的内容) 或处理命名冲突),在卡微型驱动程序外部的更高级别进行处理。

下图显示了卡微型驱动程序与基于 CAPI 的应用程序之间的接口。

卡微型驱动程序和基于 capi 的应用程序之间的接口。

下图显示了卡微型驱动程序与基于 CAPI2 的应用程序之间的接口。

卡微型驱动程序和基于 capi2 的应用程序之间的接口。

建议开发人员利用 Microsoft 为微型驱动程序执行的加密操作提供的丰富库集。 这使开发人员可以从 Microsoft Windows 更新基础结构中获益,以便分发关键安全更新。