SuperAPI AI 工具集

pci-compliance

安全与审计

查看项目

更新于 10-16 07:30

技能介绍

用途

PCI Compliance 技能用于帮助在支付处理与持卡人数据处理场景中实现 PCI DSS(Payment Card Industry Data Security Standard,支付卡行业数据安全标准)合规要求。其目标是通过规范的数据处理方式、令牌化与加密手段,降低持卡人数据暴露风险,并帮助缩减 PCI 合规范围。该技能适用于构建支付处理系统、处理信用卡信息、实现安全支付流程、开展 PCI 合规审计、缩减 PCI 合规范围、实现令牌化与加密、准备 PCI DSS 评估等场景。

主要能力

PCI DSS 十二项核心要求

技能按六大类别组织 PCI DSS 的 12 项核心要求:

  1. 构建与维护安全网络:安装并维护防火墙配置;不使用厂商默认密码。
  2. 保护持卡人数据:保护存储的持卡人数据;加密公共网络上传输的持卡人数据。
  3. 维护漏洞管理:保护系统免受恶意软件侵害;开发并维护安全的系统与应用。
  4. 实施强访问控制:按业务需要知悉原则限制对持卡人数据的访问;识别并验证对系统组件的访问;限制对持卡人数据的物理访问。
  5. 监控与测试网络:跟踪并监控对网络资源和持卡人数据的所有访问;定期测试安全系统与流程。
  6. 维护信息安全政策:维护一项针对信息安全的政策。

合规级别

技能列出四个合规级别:

  • Level 1:每年超过 600 万笔交易(需要年度 ROC)。
  • Level 2:每年 100 万至 600 万笔交易(年度 SAQ)。
  • Level 3:每年 2 万至 100 万笔电子商务交易。
  • Level 4:每年少于 2 万笔电子商务交易或总计少于 100 万笔交易。

数据最小化

技能明确区分禁止存储与可加密存储的数据:

禁止存储(PROHIBITED_DATA):磁道数据(Magnetic stripe data)、卡验证码/值(CVV)、PIN 或 PIN 块。

可加密存储(ALLOWED_DATA):主账号(PAN,即卡号)、持卡人姓名、卡有效期、服务代码。

技能提供 PaymentData 类示例,包含日志脱敏(sanitize_log,对 PAN 做掩码并移除禁止字段)与禁止存储校验(validate_no_prohibited_storage,若存在禁止字段则抛出 SecurityError)。

令牌化

技能展示两类令牌化方式:

  1. 使用支付处理方令牌(以 Stripe 为例):强调创建支付方式令牌只能在客户端通过 Stripe.js 完成,绝不将卡详情发送到服务器;服务端仅凭令牌扣款;存储支付方式时仅保存 customer_id 和 payment_method_id,绝不存储实际卡详情。
  2. 自定义令牌化(高级):TokenVault 类示例,使用 secrets.token_urlsafe 生成安全随机令牌,使用 Fernet 加密卡数据并建立令牌到密文的映射,提供 tokenize、detokenize、delete_token 方法。

加密

  • 静态数据:EncryptedStorage 类示例,使用 AES-256-GCM(cryptography 库的 AESGCM),以 256 位密钥(32 字节)、随机 nonce(12 字节)加密与解密。
  • 传输中数据:始终使用 TLS 1.2 或更高版本,示例包括将 SESSION_COOKIE_SECURE 设为 True、SESSION_COOKIE_HTTPONLY 设为 True、SESSION_COOKIE_SAMESITE 设为 Strict,以及通过 flask_talisman 的 Talisman(app, force_https=True) 强制 HTTPS。

使用方式

技能以 Python 代码示例为主要呈现形式,涵盖数据处理、令牌化与加密三类模式。更详细的模板与完整示例位于 references/details.md,需阅读该文件获取完整模式库。技能本身不提供安装命令,资料中暂未提供具体安装方式。

适用场景

  • 构建支付处理系统或实现安全支付流程。
  • 处理信用卡信息并需要降低数据暴露风险。
  • 开展 PCI 合规审计或准备 PCI DSS 评估。
  • 通过令牌化与加密缩减 PCI 合规范围。

限制

资料未说明该技能的具体运行环境、依赖版本、支持的支付处理方范围、许可方式或价格信息,这些内容暂未提供。合规级别中的 ROC 与 SAQ 仅列出名称,资料未展开其含义与申请流程。