-1

我正在建立一个网站,该网站将有一个与 mollie API 配合使用的支付系统。特别是网站需要向用户发送他们订购产品的付款链接。为实现该功能,mollie 需要使用 api 密钥进行身份验证。所以我需要将 api 密钥安全地存储在某个地方。

所以我的想法是在管理员注册他的 api 密钥 (CMS) 时使用 AES 对称密码加密。通过这种加密,我只需要一个密钥来解密和加密 api 密钥。我正在考虑使用管理员的纯文本密码作为密钥,因为我不存储这个值(我对密码进行哈希处理)所以它只有在管理员输入他的密码时才可用。因此,当管理员想要向用户发送付款时,网站会询问他的密码。

所以我的问题是:这是存储 api 密钥的安全方式吗?

对不起我的英语不好,这不是我的母语。

4

1 回答 1

2

第一的。API 机密和密码具有不同的生命周期(密钥轮换和密码更改策略),并且可能具有不同的复杂性要求。

其次,管理员的明文密码不应该用于除了登录管理员之外的任何其他用途。不要把所有的鸡蛋都放在一个篮子里——你想限制损害的范围,以防一个秘密被泄露。

您最好为 API 密钥加密/解密创建一个单独的秘密,并将其存储在一些秘密管理中,例如 Vault、AWS 秘密等。

如果您想完全避免存储 API 密钥,并且管理员只需记住它就可以了,那么您可以让管理员手动输入密钥,例如第二个密码,但无论如何,结合起来都是不好的做法使用管理员的登录密码。

于 2020-02-23T02:00:40.310 回答