0

我想用 HSM(硬件安全模块)替换 PostgreSQL 加密函数 'pgp_sym_encrypt' 和 'pgp_sym_decrypt' 机制。我可以实现它以用 HSM 替换现有算法吗?

4

2 回答 2

1

如果您的客户付钱让您找到这一点,那么您最好进行一些研究并进行研究,而不仅仅是询问 Stack Overflow。

pgp_sym_函数在contrib/pgcrypto/pgp-pgsql.c. 它们是 的包装器decrypt_internal,反过来又围绕在文件中公开pgp.h和实现的pgp*.c功能。

你会看到 pgcrypto 有它自己的 OpenPGP 实现。这意味着它没有使用 GnuPG 作为库,因此不能简单地直接使用 GnuPG 对硬件安全模块的支持。

如果您想要支持 HSM,则需要在pgcrypto扩展中自己实现它。您可以使用libgcryptGPGME功能来帮助您,和/或 OpenSSL 中的功能。这取决于您使用的 HSM;它可能只是一个客户端库,可以满足您的大部分需求。

如果您的 HSM 有一个具有您想要的功能的客户端库,那么使用 PostgreSQL 用户定义的函数包装它并将其作为新的 contrib 模块公开给 SQL 可能会更简单。

无论哪种方式,您都必须进行大量阅读和大量研究。您将需要了解 C 编程语言并能够自如地使用它。您将需要了解 PostgreSQL 中用户定义的函数是如何工作的。如果您无法管理其中任何一项,则需要将工作分包给执行此操作的人,让他们访问相关 HSM 的样本,并支付他们的时间。(不,我不是为了工作而钓鱼,我已经有太多了)。

于 2013-12-14T03:28:46.530 回答
0

许多 HSM 可以编程,其中一些无疑是图灵完备的,并且有足够的内存来执行您的加密功能(无论是什么)。所以答案是“是”。

于 2013-12-14T01:39:32.147 回答