加密框架提供了一个包含算法和 PKCS #11 库的公共存储区来处理加密要求。PKCS #11 库依据 RSA Security Inc. 的 PKCS #11 加密令牌接口 (Cryptographic Token Interface, Cryptoki) 标准实现。
图 1-1 加密框架级别
在内核级别,该框架目前可处理 ZFS、Kerberos、IPsec 以及硬件的加密要求。用户级的使用者包括 OpenSSL 引擎、Java 加密扩展 (Java Cryptographic Extensions, JCE)、libsasl 和 Internet 密钥协议 (Internet Key Protocol, IKE)。内核 SSL (kssl) 代理使用加密框架。有关更多信息,请参阅在 Oracle Solaris 11.2 中确保网络安全 中的SSL 内核代理加密 Web 服务器通信和 ksslcfg(1M) 手册页。
美国出口法要求应获得许可才能使用开放式加密接口。加密框架通过要求对内核加密服务提供者和 PKCS #11 加密服务提供者进行签名来满足现行法律规定。有关进一步讨论,请参阅加密框架中的用户级命令中有关 elfsign 命令的信息。
该框架允许加密服务提供者让 Oracle Solaris 中的许多使用者使用其服务。提供者又称为插件。该框架支持以下三种类型的插件:
用户级插件-使用 PKCS #11 库(例如 /var/user/$USER/pkcs11_softtoken.so.1)提供服务的共享目标。
内核级插件-在软件中提供加密算法(如 AES)实现的内核模块。
框架中的许多算法针对 x86(使用 SSE2 指令集)和 SPARC 硬件进行了优化。有关 T 系列优化,请参见加密框架和 SPARC T 系列服务器。
硬件插件-设备驱动程序及其关联的硬件加速器。Niagara 芯片和 Oracle 的 ncp 和 n2cp 设备驱动程序就是一个示例。硬件加速器承担了操作系统的高开销加密功能负载。Sun Crypto Accelerator 6000 板就是一个示例。
该框架为用户级提供者实现了标准接口 PKCS #11 v2.20 修订 3 库。第三方应用程序可以使用该库来访问提供者。第三方也可以向框架中添加签名库、签名内核算法模块和签名设备驱动程序。映像包管理系统 (Image Packaging System, IPS) 安装第三方软件时将添加这些插件。有关该框架的主要组件的示意图,请参见Figure 1–1。