Solaris 开发者安全性指南

对加密提供者应用程序和模块打包

在 Solaris 操作系统中,应用程序软件是在称为软件包的单元中提供的。软件包是分发和安装软件产品所需的文件集合。软件包通常是在完成应用程序代码开发后由应用程序开发者设计和生成的。有关软件应用程序打包的一般信息,请参见《Application Packaging Developer’s Guide》

加密提供者打包有两个附加要求:

符合美国政府出口法

美国政府限制出口开放式加密接口(也称为有漏洞加密)。由于此限制,所有的提供者供应商都必须获得美国政府的出口批准。供应商需要向 Sun Microsystems, Inc. 申请证书,以表明符合出口法。随后,供应商即可通过电子方式签署提供者并提供包含证书的软件。

在出口审批过程中,加密的强度决定可以使用软件的国家/地区。美国政府为美国制造的加密产品定义了两种出口类别:

如果您的提供者已获非零售批准,即说明该提供者符合零售批准条件。通过禁止某些调用程序(如 IPsec)使用提供者,可以获得零售批准。在这种情况下,Sun 为受限使用和无限制使用提供了两种不同的证书。可以在证书申请过程(申请提供者签署证书)中指明这种情况。此外,还必须生成和签署特殊的激活文件,并将其与提供者一同提供。请参见生成要零售出口的激活文件

对用户级提供者应用程序打包

用户级加密提供者应用程序的第三方开发者需要完成以下过程:

  1. 从 Sun Microsystems, Inc 获取证书。然后签署库。请参见向提供者中添加签名

  2. 随软件包一起提供证书。证书必须置于 /etc/crypto/certs 目录中。

  3. pkcs11conf 类添加到 pkginfo 文件的 CLASSES 字符串中。应该添加以下行:

    CLASS=none pkcs11conf
  4. etc/crypto 目录中创建输入文件 pkcs11.conf

    用户级提供者的输入文件名为 pkcs11.conf。此文件指定提供者的路径。pkcs11.conf 对该项使用以下语法:

    filename
    

    该项为文件的绝对路径,如 /opt/lib/$ISA/myProviderApp.so。运行 pkgadd 时会将此文件添加到配置文件中。请注意路径名中的 $ISA 表达式。根据需要,$ISA 指向应用程序的 32 位版本或 64 位版本。

  5. 将以下行添加到软件包的原型文件中:

    e pkcs11conf etc/crypto/pkcs11conf 0644 root sys

对内核级提供者模块打包

内核级加密提供者模块的第三方开发者可以完成以下过程:

  1. 从 Sun Microsystems, Inc 获取证书。然后,签署内核软件模块或设备驱动程序。请参见向提供者中添加签名

  2. 随软件包一起提供证书。证书应该置于 /etc/crypto/certs 目录中。

  3. kcfconf 类添加到 pkginfo 文件的 CLASSES 字符串中。 应该添加以下行:

    CLASS=none kcfconf
  4. /etc/crypto 目录中创建输入文件 kcf.conf。此文件用于将软件和硬件插件添加到内核配置文件中。

    • 如果提供者是具有加密机制的内核软件模块,请对该项使用以下语法:

      provider-name:supportedlist=mech1,mech2,...
      provider-name

      内核软件模块的基本名称

      mech*

      列表中的加密机制的名称

      以下项是内核软件模块的示例:

      des:supportedlist=CKM_DES_CBC,CKM_DES_ECB,CKM_DES_CFB
    • 如果提供者是加密机制(如加速器卡)的设备驱动程序,则对该项使用以下语法:

      driver_names=devicedriver1,devicedriver2,...
      devicedriver*

      加密设备的设备驱动程序名称。

      以下项是设备驱动程序的示例:

      driver_names=dca