我正在尝试起草一种安全的方式来加密(动态地,从应用程序调用它)并使用 AES-256 解密敏感信息(信用卡)。
目标平台是:
猫/等/发布
Solaris 10 10/09 s10s_u8wos_08a SPARC
最佳解决方案是能够将密钥保存在密钥库中,并使用 encrpyt/decrypt(与 UUENCODE 配对,以便可以将生成的加密字符串保存在普通 DB 字段中)。
我们已经使用 AES-128(使用基本 Solaris 安装的现成版本)成功测试了整个链,并且我们知道我们需要使用正确的 Solaris 软件包升级目标环境才能获得 AES-256 [SUNWcry 软件包 - 未捆绑的 Solaris 数据加密工具包]。
我不知道如何让“加密”访问密钥库中的密钥。Oracle 文档提到“-K”作为命令行参数(注意,这是一个大写K)这样做(见这里,例如),但“-K”开关似乎在我们的测试机器上不可用。
这可能吗?这与特定的 Solaris 版本相关吗?如果没有,我们可以通过安装其他东西来获得它吗?(我们还没有安装加密包来获得 AES-256,所以不知道它是否会“免费”提供)。
答案1
我看到评论说这个问题已经为你解决了,但我觉得有必要联系另一位 Solaris 用户。
encrypt
和命令decrypt
由 SUNWcsu 软件包提供,而不是由 SUNWcrypt 软件包提供。
该-K
选项包含在 Solaris 11 中。
如果您可以编写代码,那么另一个选择可能是推出自己的解决方案。这是一个例子:
http://blogs.oracle.com/sprack/entry/using_solaris_softtoken_keystore
或者使用另一种解决方案,基于加密的 ZFS 文件系统来保护密钥库或数据,或两者。这是一个例子:
如果您将加密/解密密钥(-k key
而不是-K keystore
)存储在加密文件系统上,则您的应用程序堆栈可以使用当前encrypt
/decrypt
二进制文件来完成您的工作。
或者,直接推出 Solaris 11,它将在下周推出 GA。:)