数据加密在支付系统中的工作原理
付款系统运行最敏感的数据-PAN(卡号),有效期,CVV/CVC,3-DS令牌,银行详细信息,钱包ID。他们的泄漏包括罚款,银行/PSP的商人召回以及直接的财务损失。保护是分层构建的:链路加密(TLS),存储加密和/或令牌化,严格的密钥管理和硬件信任模块(HSM)。下面-安全的整个"管道"用简单的语言。
基本砖块
对称密码学
算法:AES-GCM/CTR/CBC(事实上的标准-AES-GCM)。
优点:高速,紧凑型钥匙。
缺点:您需要安全地协商密钥和IV/nonce。
非对称密码学
算法:RSA-2048/3072,ECC(P-256/384,Ed 25519)。
用途:密钥交换/包装,签名,PKI, TLS证书。
优点:不需要事先共享秘密。
缺点:比对称加密慢。
Идея Perfect Forward Secrecy (PFS)
会话密钥由effemer ECDHE协商。即使服务器私有密钥曾经泄漏,过去的会话仍然无法加密。
加密"在路上": TLS 1。2/1.3
1.握手(TLS握手):客户端和服务器同意版本/密码,服务器出示证书(PKI),交换临时密钥(ECDHE)→会话对称密钥诞生。
2.数据:通过AEAD模式(AES-GCM/ChaCha20-Poly1305)进行身份验证。
3.优化:TLS 1。3减少回合,保持恢复;0-RTT谨慎使用(仅限等效查询)。
4.付款人的做法:我们禁止SSLv3/TLS1。0/1.1,包括TLS1。2/1.3、OCSP stapling, HSTS,严格的安全头条。
"存储"加密: at rest
备选方桉
完整卷/DB加密(TDE):快速输入,防止对介质的"冷"访问,但不防止通过受损应用程序泄漏。
按位/字段级别(FLE):加密各个字段(PAN、IBAN)。颗粒化,但在实现和索引化方面更难。
格式保护加密(FPE):当需要视图"16位数字为16位数字"时很有用。
令牌化:PAN被令牌取代(无意义的字符串);真正的PAN在增强的保护下存储在token vault中。付款/退货时使用令牌→商人不处理"原始"卡。
一个关键的想法
在存储中,重要性不是"哪种算法",而是密钥位于何处以及谁可以进行分解。所以……
密钥管理: KMS、HSM和信封
密钥层次结构(envelope encryption)
Root/KEK(密钥加密密钥):高保护级别,存储并在HSM中执行。
DEK(数据加密密钥):加密特定数据/批次/表;由KEC加密。
轮换:KEK/DEK计划内和计划外(事件)轮换的法规;密码元数据中指定密钥版本。
HSM (Hardware Security Module)
经过认证的硬件模块(例如FIPS 140-2/3),用于存储和执行内部密钥操作。
不向外发出私人钥匙,支持使用限制/政策,审核。
用于:密钥生成、DEK包裹、服务器密钥3-DS、EMV密钥、PIN操作、消息签名。
KMS
集中密钥策略、验证、访问、日志和API。
在与HSM的结合中,实现了envelope加密和自动旋转。
卡标准和行业特点
PCI DSS(和最小化逻辑)
主要思路:不存储CVV,最小化PAN处理区域(scope)。
在可能的情况下-在Hosted Fields/Iframe PSP上输入PAN →商人无法访问原始数据。
Logs, backaps, dumps-与prod相同的规则:掩码、加密、回避。
EMV, PIN и POS
EMV芯片/联系人:地图/终端级别的密码,防克隆魔术师带。
PIN单元和ISO 9564: PIN从pin pad加密到处理,可与HSM (pin translation,关键区域)配合使用。
DUKPT (Derived Unique Key Per Transaction):在POS上,每笔付款都使用BDK衍生的唯一密钥加密→损害一条消息不会拉动其他消息。
PCI P2PE:认证的"端到端"加密方案,从点对点到解密提供商。
3-D Secure (2.x)
卡持卡人的身份验证→小于炸药/冲锋枪。
密码学用于消息签名,服务器ACS/DS/3DS密钥交换;私钥通常在HSM中。
标准数据保护体系结构
选项A(具有PSP的在线商人):- 浏览器→ HTTPS →主机PSP(PAN不属于商人)。
- PSP返回支付令牌。
- 商品的DB存储令牌+最后4位数字和BIN(用于UX和规则)。
- 退货/重播-仅通过令牌。
- 秘密/密钥在KMS中,私钥TLS/3-DS在HSM中。
- 应用程序↔ API是TLS/mTLS。
- 敏感字段是FLE/FPE或令牌化;vault是隔离的。
- 仅通过具有"四眼"的服务角色访问排毒,通过HSM访问操作。
- Pin-pad → DUKPT/P2PE →处理。
- 终端加载密钥是通过受保护的关键喷射器/HSM。
- 日志化,防扰器设备保护。
轮换、审计和事件
按键轮换:有计划(X个月一次)和事件(损害)。新的KEK下的DEK rewrap不解密用户数据。
不变期刊:谁以及何时访问排毒/密钥;签名日志。
Runbook的罪名:立竿见影的revoke/rotate,证书重发,API密钥块,合作伙伴通知,回顾。
常见错误以及如何避免错误
1."我们正在加密DB,这意味着一切。"
没有。受损的应用程序将数据读取为打开。需要令牌/FLE和最小权利原则。
2.CVV存储。
你不能。CVV从未存储过,甚至没有加密(通过PCI DSS)。
3.数据旁边的密钥。
你不能。密钥在KMS/HSM中,访问-通过角色,最低特权,个别帐户。
4.没有轮换/版本。
始终将密钥转换,将"key_version"存储在密文元数据中。
5.TLS仅在外围。
加密CDN/WAF后面和数据计划内(servis→servis, webhooks)。
6.标记化"用于物种"。
如果任何服务都可以使用detokenize,则不是保护。限制到狭窄的圈子并审核呼叫。
7.不负责任的备份/分析卸载。
加密和掩蔽应扩展到备份,狙击,BI店面,徽标。
实施支票清单(简短)
运河
TLS 1.2/1.3、PFS、mTLS用于内部和网络手册、HSTS、严格的安全头条。
存储功能
PAN令牌,CVV存储禁令。
关键字段的FLE/FPE;TDE作为基础层。
钥匙
KMS+HSM,envelope加密(KEK/DEK),轮换/版本,不变日志。
体系结构
主机场/PSP SDK,PCI区域最小化。
角色/网络分离,零信任,秘密-仅通过秘密经理。
业务活动
Pentest/Red团队的外围和业务逻辑。
DLP/CTI李子监测,员工培训。
Runbook на compromise: revoke/rotate/notify.
迷你常见问题
什么是PAN最好的: 加密或令牌化?
在产品中,是令牌化(最大限度地减少scope)。在vault中-使用HSM/KMS加密。
付款域是否需要EV证书?
没有约束力。更重要的是正确的TLS配置文件,mTLS,HSM中的密钥和纪律。
TLS 1中是否可以使用0-RTT。3用于付款?
对于偶然的GET-是的。对于开机自检,最好关闭或限制。
如何存储"最后4"和BIN?
与PAN分开;如果正确隔离,这些数据不是敏感数据,但要遵守逻辑/BI中的掩码。
付款系统中的加密不是单个拨号器,而是生态系统:链路中的TLS/PFS,存储中的令牌化和/或FLE,通过KMS+HSM进行严格的密钥管理,行业标准(PCI DSS,EMV,3-DS),轮换和审核。这种多层体系结构使得卡数据泄露的可能性极小,使审计更容易通过,最重要的是,它保留了银行,支付合作伙伴和用户的信任。