如上所述,CSP是执行真正加密工作的独立模块。理想情况下,它们被完全独立于任何特定应用程序,因此任何给定的应用程序都将运行各种CSP。然而,在现实中,一些应用可能具有需要定制CSP的非常特定的要求。
CSP的物理表现至少包括动态链接库(DLL)和签名文件。签名文件是必要的,以确保操作系统识别CSP。操作系统定期验证此签名,以确保CSP尚未被篡改。
一些CSP可以在通过本地RPC调用的地址分离服务中或通过系统设备驱动程序调用的硬件中实现其功能的一小部分。在硬件或服务中隔离全局密钥状态和中央加密操作可以保证密钥和操作在应用程序数据空间内不受篡改。
应用程序不应该利用特定CSP特有的属性。例如,Microsoft RSA Base Provider目前使用40位会话密钥和512位公钥。当应用程序操作这些,他们应该小心不要对存储所需的内存量做出假设。否则,当用户将不同的CSP加载到系统上时,应用程序可能会失败。您应该注意编写尽可能好的和灵活的应用程序。