有没有办法可以将 RSA 密钥对与 PGP 一起使用?我的意思是我有 2048 长度的密钥对,我想用它来加密和解密数据。但我所发现的只是 PGP 使用了一些密钥环和一些 pgp 密钥。而且我还没有找到任何地方为什么它们不同?为什么我要问的是我需要将密钥存储在 HSM 中,但我不能用 PGP 密钥来做到这一点。环顾四周,也没有在谷歌上找到任何关于此的内容。
任何人都可以向我解释或分享一些链接。
有没有办法可以将 RSA 密钥对与 PGP 一起使用?我的意思是我有 2048 长度的密钥对,我想用它来加密和解密数据。但我所发现的只是 PGP 使用了一些密钥环和一些 pgp 密钥。而且我还没有找到任何地方为什么它们不同?为什么我要问的是我需要将密钥存储在 HSM 中,但我不能用 PGP 密钥来做到这一点。环顾四周,也没有在谷歌上找到任何关于此的内容。
任何人都可以向我解释或分享一些链接。
PGP 的作用在OpenPGP标准中有所描述。在 OpenPGP 中,“密钥环”是“以 OpenPGP 描述的格式编码的公钥和/或私钥”的一些术语。
OpenPGP 描述密钥环格式的密钥类型包括 RSA 密钥。没有任何基本问题会阻止 OpenPGP 实现使用存储在 HSM 中的 RSA 私钥。但实际上,名为GnuPG的免费 OpenPGP 实现本身并不支持这一点——但gnupg-pkcs11项目可能会有所帮助:它允许集成提供 PKCS#11 驱动程序的加密设备(几乎所有 HSM 都这样做)进入 GnuPG 世界。
将现有的“PGP 密钥”(即当前存储为 OpenPGP 格式文件的 RSA 私钥)导入HSM 不一定是一个好主意:HSM 是一种昂贵的设备,旨在永远不允许私钥存在在 HSM 的防篡改硬件之外。如果密钥是导入的,那么它确实/确实存在于外部世界的某个地方,这使得使用 HSM 的合理性大大降低。
我不知道 PGP,但 GPG 可以使用智能卡(有时更有趣,PKCS#11 USB-Tokens)来保护私钥:
http://www.gnupg.org/howtos/card-howto/en/smartcard-howto-single.html
如果您不放心使用 HSM,则应考虑使用带有专用键盘的 HSM。否则保护几乎没有用。
您可能还想提请您的 IT 安全部门注意: http ://secgroup.ext.dsi.unive.it/projects/security-apis/pkcs11-security/tookan/
他们在 ACM CCS 2010 上有一篇论文解释了这个问题。
除了 PGP 密钥之外,您不能在 PGP 中使用任何东西。某些功能也适用于证书和 S/MIME 密钥,但不是全部(例如,附加解密密钥不起作用)。我希望你没有在不知道的情况下购买它。
您可以在 PGP 中设置密钥生成时的 RSA 算法,并在 PGP Universal 中将 RSA 算法设置为策略设置:
在组织中实施 PGP 电子邮件加密的一些经验教训
如果您使用的是 RSA 证书,那么您应该使用由 openssl 支持的 cms(从 PCCS#7 和 s/mime 演变而来)。http://www.openssl.org/docs/apps/cms.html
要签署和加密文件:
openssl cms –encrypt –text –in compressed-file.txt –out encrypted-file.txt public-key.pem
接下来我们对文件内容进行签名:
openssl cms –sign –text –in encrypted-file.zip –signer certificate.pem –inkey certtificate.key –out signed-file.txt
验证和解密:
openssl cms –verify –in file –signer certificate.pem
如果验证成功,则可以解密文件内容。
openssl cms –decrypt –in file –inkey private-key.pem –out decrypted-file