跳到主要内容

安全控件流程-自动初始化商户

· 阅读需 10 分钟
UtcPay 开发
UtcPay 开发
UtcPay 开发团队

本文介绍了一个完整的安全控件流程,涵盖转账操作、签名验证、支付流程以及服务安全和稳定性提升,旨在确保交易过程的安全和系统的高可用性。

一、商户系统与后台系统的转账操作流程

  1. 加密转账请求信息

    在商户系统向后台系统发送转账请求时,使用加密算法保护转账数据(如地址、金额、币种等),确保信息的安全。

  2. 请求钱包签名

    后台系统将转账请求传递给 Web3 钱包插件,钱包插件会进行多签操作并返回签名。

  3. 签名验证

    后台系统收到签名后,将其提交至安全控件 Web 端。安全控件通过服务端生成签名,并验证后台系统与服务端签名一致。

  4. 通过钱包执行转账

    安全控件 Web 端验证签名成功后,指示 Web3 钱包插件执行转账并上链。

  5. 获取交易哈希

    Web3 钱包完成交易并返回交易哈希,安全控件 Web 端获取哈希并保存。

  6. 回调交易状态

    安全控件 Web 端根据两种方式之一回调后台系统,更新交易哈希记录:

    • 直接通过 Web 端回调更新状态。
    • 安全控件服务端代为回调,后台系统根据哈希状态进行更新。
  7. 交易状态检查

    后台系统检查交易哈希的状态,并更新交易状态记录。


二、安全控件签名流程

  1. 商户数据初始化

    后台系统审批商户时,记录商户信息(商户 ID、冷/热合约地址等),并提供查询和删除接口给安全控件。

  2. 安全控件数据存储

    安全控件请求后台的查询接口获取商户数据,存储为 JSON 文件,并向后台请求删除旧数据。

  3. 定时任务同步数据

    使用 cron 定时任务定期请求安全控件接口,自动更新商户的初始化数据。


三、全链路安全

  1. 服务器安全

    使用入侵检测系统和防火墙保护服务器,避免受到外部攻击。

  2. 加密通信

    使用 HTTPS 和加密算法确保所有数据在传输过程中的安全性。

  3. 防重放攻击

    利用区块链的机制,通过时间戳、nonce 或链上唯一标识符来防止重放攻击,确保每个交易请求在区块链上都是唯一且不可重复的。

  4. 服务监控与预警

    定期检测系统健康状态,若出现异常及时告警并修复。


四、支付流程

  1. 加密支付链接

    商户系统生成支付链接时,使用签名加密参数,确保支付链接的合法性和安全性。

  2. 支付信息验证

    在用户提交支付时,验证支付信息的签名和参数,确保请求来自合法商户。

  3. 支付回调验证

    在支付完成后,商户系统再次验证回调中的支付数据,确保支付状态的准确性。

  4. 支付接口控制

    设置 IP 限制和访问频率限制,防止接口被滥用。


五、Docker 部署与 Web 部署

  1. 简化 Docker 部署

    提供 Docker 镜像和配置文件,使商户能够轻松通过 Docker Compose 或 Kubernetes 部署服务。

  2. Java Web 支持

    Web 端应用支持在 Tomcat 等常见 Java Web 服务器上运行,确保兼容性。

  3. 服务自动扩展

    配置负载均衡和自动扩展,确保在流量高峰时服务能够扩展并保持稳定。


六、API 安全性

  1. 签名验证

    所有 API 请求需要使用签名机制,确保请求的合法性。

  2. 加密数据传输

    所有 API 数据传输都使用 HTTPS 协议进行加密,确保数据不被篡改。

  3. 访问控制

    限制 IP 地址访问和设置请求频率,防止恶意请求滥用接口。

  4. 日志记录与审计

    对所有 API 调用进行日志记录,并定期审计,确保操作可追溯。