我想用HSM(硬件安全模块)替换PostgreSQL加密功能“ pgp_sym_encrypt”和“ pgp_sym_decrypt”机制。我可以实现它以用HSM替换现有算法吗?
最佳答案
如果您的客户要求您付款,请您进行一些研究和研究,而不仅仅是问Stack Overflow。pgp_sym_
功能在contrib/pgcrypto/pgp-pgsql.c
中。它们是decrypt_internal
的包装,依次是pgp.h
中公开的和在pgp*.c
文件中实现的功能。
您会看到pgcrypto具有自己的OpenPGP实现。这意味着它没有将GnuPG用作库,因此不能简单地直接使用GnuPG对硬件安全模块的支持。
如果要支持HSM,则需要在pgcrypto
扩展名中自己实现。您也许可以使用libgcrypt
和GPGME
功能来帮助您,和/或使用OpenSSL中的功能。这取决于您使用的HSM。它可能只是一个可以满足您大部分需求的客户端库。
如果HSM的客户端库具有所需的功能,则可以使用PostgreSQL用户定义的函数包装该库并将其作为新的contrib模块公开给SQL,这可能会更简单。
无论哪种方式,您都必须进行大量阅读和大量研究。您将需要了解C编程语言并熟悉使用它。您将需要了解PostgreSQL中用户定义函数的工作方式。如果您无法管理这些工作,则需要将工作分包给从事此工作的人员,让他们访问有问题的HSM样本,并为他们支付时间。 (不,我不是去上班,我已经受够了)。
关于java - 具有HSM(硬件安全模块)的“pgp_sym_encrypt”和“pgp_sym_decrypt”机制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20567749/