智能卡微型驱动程序

智能卡微型驱动程序通过封装大部分复杂的加密操作,为卡微型驱动程序开发人员提供了一种用于开发传统加密服务提供商(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 及更高版本中的 ECC/RSA 双模式智能卡。

归根结底,新体系结构旨在支持所有新的智能卡-RSA、ECC,以及接下来的一切。 它将 CSP 的实现拆分为两个部分:

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

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

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

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

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

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

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