最近在对接信用卡业务,由于项目紧迫,我只对客户的卡片等信息进行了一个双向 DES 加密。但是只要知道密钥,或者代码泄露了。黑客就可以还原得到人家的信用卡信息了。
我想了想,暂时没找到比较好的存储方式。好像没有什么办法可以只有客户可以查看?但是我可以登录客户账户啊。
临时想到一个办法,就是在用户当前电脑本地存储记录一个 密钥。 同时提交保存卡片时勾选 本电脑记录? 但是这样会出现卡片信息还原失败的情况。
1
dzdh 2021-09-24 16:32:28 +08:00
使用用户密码进行 aes 加密,支付时需输入密码解密。
如果使用三方服务的话如 stripe 和 paypal 会返回 card_token 的 |
2
AS4694lAS4808 2021-09-24 16:42:15 +08:00 via Android 1
同支持 stripe 或者 paypal,能省很多事。
非要自己存的话,代码里肯定不能出现明文。 如果私有部署,可以用 docker 部署,然后 base64 后的密钥用 docker secret 作为环境变量管理。 在公有云上部署,可以使用托管的密钥服务,更安全。 私有部署也可以使用公有云的密钥托管服务,限定访问服务的 ip (一般公司专线的 ip 都比较固定),这样即使公有云访问密钥泄露,非法持有者在非法 ip 下也无法访问密钥。 |
3
zpfhbyx 2021-09-24 16:51:50 +08:00 2
自己内部挂个加密机的服务, 所有的加解密都在加密机内 用户密码或者二级密码做部分秘钥, 通过传业务代码(配置加密 key)+用户自定义的二级密码 进行数据解密或者加密 加密机只允许内网访问 并且只开放 api 端口, 加密机黑盒 代码或者被脱裤也解不开,除非业务代码+加密机+数据库同时泄露
|
4
ccming 2021-09-24 17:00:53 +08:00 via iPhone
压根就不要存这些信息
|
5
Felldeadbird OP @dzdh 第一版我就是这么干。然后老板说不行。
@AS4694lAS4808 我也推荐过 stripe 。但是老板说 费率高,然后找了很传统的企业。。本来可以不保存的。但是老板说保存会体验好。 @ccming 本来是不保存的。但是老板说对手也有,我们也要搞。 |
6
66450146 2021-09-24 19:27:34 +08:00 1
1. 随便保存下来,泄漏了再想办法。
2. 按照 PCI 标准实现: https://www.pcisecuritystandards.org/pci_security/maintaining_payment_security 3. 在 1 和 2 之间,选择一部分 PCI 标准实现。 标准里面的内容都是行业里面的专家积累了多年经验写下来可能出现的问题,比自己想强多了 |
7
zdndk598 2021-09-25 07:16:28 +08:00 via iPhone
不能保存 传统公司也会给你发卡片 token 他们会存 和你没关系
|
8
dzdh 2021-09-26 11:17:07 +08:00
那方便问一下你们现在的费率嘛
|
9
Felldeadbird OP @dzdh stripe 因为没执行。所以账号按照默认费率。PP 听财务好像是 2.9% ?
|
10
Felldeadbird OP @dzdh 另外对接的一家老牌信用卡交易中心,听说费率比 PP 更低。有多低我就不知道了。
|
11
dzdh 2021-09-27 00:33:56 +08:00
@Felldeadbird
stripe 是 2.9% + 固定 0.3 paypal 是 https://www.paypal.com/us/webapps/mpp/merchant-fees#fixed-fees-commercialtrans |
12
julyclyde 2021-09-27 17:24:05 +08:00
可以找银行卡检测中心做 pcidss 认证
他们到时候会给出合规整改建议的 |