如何使用PAM360中的自定义加密(加密和解密)?
默认情况下,PAM360使用 AES-256 对称加密算法加密所有密码和其它敏感信息,并且仅将这些加密数据存储在密码数据库中。 主加密密钥是自动生成的,对于每个安装都是独一无二的。 使用该方法,整个加密和解密方法都写在PAM360类文件中。因此,密钥生成和加密逻辑都由 PAM360来处理。
除了默认的加密技术之外,PAM360还提供一个使用自定义加密(即加密和加密) 的选项。例如,可以通过调用我们Java接口“PAM360EncryptDecrypt” 的setter 和 getter 方法,实现使用自有的密钥和加密逻辑执行加密和解密。
重要说明:-在配置自定义加密之前,请备份PAM360整个安装文件夹。 如果数据库服务器是在不同的计算机上配置的,请确保PAM360的数据库也有相应的备份。如果配置过程中出现任何问题,做到可以有备份进行恢复。 此外,请就以下方面采取必要的措施:
个人密码管理:
如果组织中的用户使用了PAM360中的"个人密码管理"功能,需要注意的是,因为该功能要求用户指定加密密钥,而该密钥并不存储在PAM360 中,在配置自定义加密时,这些数据最终将丢失,且无法恢复。因此,在配置自定义加密之前,必须建议用户在个人密码部分使用"导出密码"选项,导出其所有的个人密码。
在现有PAM360中实现自定义加密的步骤
关于如何在PAM360中配置自定义加密,以及编写并实现以自己的加密逻辑运行的加密方法,参考以下步骤:
第 1 步:编写自己的实现类
您需要首先编写自己的类,实现接口 PAM360EncryptDecrypt.java的功能。
有关接口 PAM360EncryptDecrypt,请参阅javadoc了解更多详细信息。
注意:
- 类中的generateCryptographicKey()方法无论在何时被调用时,都应生成并返回一个新的32bit密钥,而getPam32BitKey()无论在何时被调用时,应返回上个生成的32bit密钥。
- getMSSQLMasterKey()应返回数据库的主加密密钥,该密钥在设置MSSQL Always-On集群作为后台数据库时使用。如果返回的值为空或空字符串,那么集群级别的“切换操作”将无法处理。
第 2 步:归集实现类
现在,将实现类转换为SampleEncryption.jar 并将其放置到<PAM360 Installation Folder>/lib目录下
第 3 步:停止PAM360服务
如果PAM360正在运行,请停止它的服务
第 4 步:执行迁移加密脚本
- 停止并卸载备服务。
- 在主服务器上执行migrateCryptography.bat,配置自定义加密
- 接下来,安装 PAM360 的全新备实例。
- 现在,重新配置高可用性/故障转移服务。 HAPack.zip 或 FOSPack.zip 将包含自定义加密的jar文件。
场景1:未配置高可用性/故障转移服务
执行主目录bin文件夹下的MigrateCryptography.bat,并采用实现类作为参数。
调用举例:MigrateCryptography.bat com.org.crypto.SampleEncryptDecrypt
场景2:在配置了高可用性/故障转移服务的情况下
如果在PAM360中配置了高可用性或故障转移服务,则执行脚本的步骤是:
第 5 步:将自定义加密添加到 PAM360ED 文件
执行脚本后,打开PAM360主目录conf文件夹下的文件pam360ed.conf,在文件中,查找 EDCLASS 并在它下面添加一条新的条目,如下:
EDCLASS=com.adventnet.passtrix.ed.PAM360EncryptDecryptImpl
EDJARS=MyOwnEncDecImpl1.jar,MyOwnEncDecImpl2.jar
在上面的条目中, MyOwnEncDecImpl1.jar , MyOwnEncDecImpl2.jar 是加密jar示例。 根据需要重命名jar 文件名称,多个jar文件,以逗号分隔。 如果您使用的是第三方的jars,请在您的实现类后首先指定它。
第 6 步:启动 PAM360 服务
完成上述步骤后,您需要启动 PAM360 使之生效。