跳到主要内容

安全模型

Pelago 全面的安全架构,保护支付、身份与数据安全。

安全概述

API 安全

身份认证

所有 API 请求都需要通过 API 密钥进行认证:

# 请求头中的 API 密钥
curl -X POST https://api.pelago.tech/v1/payments \
-H "Authorization: Bearer pk_live_xxxxx" \
-H "X-Api-Secret: sk_live_xxxxx"

请求签名

对于敏感操作,请求需要签名:

import crypto from 'crypto';

function signRequest(
method: string,
path: string,
body: object,
secret: string
): string {
const timestamp = Date.now().toString();
const payload = `${timestamp}.${method}.${path}.${JSON.stringify(body)}`;

return crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex');
}

// 在请求头中包含签名
const signature = signRequest('POST', '/v1/payments', body, apiSecret);
headers['X-Pelago-Signature'] = signature;
headers['X-Pelago-Timestamp'] = timestamp;

速率限制

计划请求/分钟突发
沙盒10020
入门500100
商业2000500
企业自定义自定义

零知识证明

隐私保护验证

ZKP 允许在不暴露底层数据的情况下证明事实:

支持的证明类型

证明可验证保持隐藏
余额范围拥有足够资金精确余额
年龄阈值年满 18/21出生日期
KYC 状态已验证个人详情
信用评分评分 > X精确分数

实现示例

// 为余额验证创建 ZKP
const proof = await pelago.zkp.createProof({
type: 'balance-threshold',
threshold: 100.00,
currency: 'USDC',
walletAddress: 'GXXXXX...'
});

// 验证证明
const isValid = await pelago.zkp.verifyProof(proof);
console.log('证明有效:', isValid); // true

数据加密

静态加密

  • AES-256-GCM 加密存储数据
  • 通过 HSM 管理密钥
  • 定期轮换密钥(90 天)

传输加密

  • 所有连接使用 TLS 1.3
  • 移动端 SDK 证书锁定
  • 长 max-age 的 HSTS

敏感数据处理

智能合约安全

审计报告

审计方日期范围状态
Trail of Bits2024-Q4核心合约✓ 通过
Certik2024-Q3PLP 合约✓ 通过
OpenZeppelin2024-Q2全面审计✓ 通过

多重签名控制

关键操作需要多个签名:

操作所需签名时间锁
合约升级4/748 小时
紧急暂停2/7立即
费率变更3/724 小时
钱包变更5/772 小时

熔断机制

自动保护机制:

// 简化的熔断器
contract PaymentContract {
uint256 public dailyLimit = 1_000_000e6; // $1M USDC
uint256 public dailyVolume;
uint256 public lastResetDay;

modifier withinLimits(uint256 amount) {
if (block.timestamp / 1 days > lastResetDay) {
dailyVolume = 0;
lastResetDay = block.timestamp / 1 days;
}
require(dailyVolume + amount <= dailyLimit, "Daily limit exceeded");
dailyVolume += amount;
_;
}
}

Webhook 安全

签名验证

务必验证 Webhook 签名:

import crypto from 'crypto';

function verifyWebhook(
payload: string,
signature: string,
secret: string
): boolean {
const expected = crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex');

return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expected)
);
}

// 在你的 Webhook 处理器中
app.post('/webhook', (req, res) => {
const signature = req.headers['x-pelago-signature'];
const isValid = verifyWebhook(
JSON.stringify(req.body),
signature,
process.env.WEBHOOK_SECRET
);

if (!isValid) {
return res.status(401).send('Invalid signature');
}

// 处理 Webhook...
});

Webhook IP 白名单

Pelago Webhook 请求来源于:

  • 34.102.xxx.xxx/24
  • 35.190.xxx.xxx/24

合规性

标准

标准状态
SOC 2 Type II已认证
GDPR合规
PCI DSSLevel 1
CCPA合规

数据驻留

  • 欧盟数据存储在欧盟区域
  • 美国数据存储在美国区域
  • 企业客户可自定义配置

事件响应

响应时间表

严重性响应时间解决目标
严重15 分钟4 小时
1 小时24 小时
4 小时72 小时
24 小时1 周

漏洞赏金计划

严重性奖励
严重最高 $500,000
最高 $100,000
最高 $25,000
最高 $5,000

漏洞报告邮箱:[email protected]

最佳实践

  1. 定期轮换 API 密钥(每 90 天)
  2. 环境隔离:沙盒与生产使用不同密钥
  3. 验证 Webhook:每个请求都应验证
  4. 监控日志:关注异常活动
  5. 最小权限原则:仅授予必要权限

下一步