安全说明
本文介绍 PKPK 的安全架构,包括数据隔离、加密存储、JWT 认证等安全机制。
安全说明
本文介绍 PKPK 的安全架构,包括数据隔离、加密存储、JWT 认证等安全机制。
把钱包私钥交给一个第三方平台,安全问题自然是你最关心的。这篇文档会详细说明 PKPK 采取了哪些安全措施来保护你的数据和资产,以及在什么场景下可能存在风险。
私钥加密
你的钱包私钥采用 Fernet 对称加密(基于 AES-128)存储。绑定钱包时,服务器立即用加密密钥将私钥加密,然后把密文存入数据库。明文私钥不会被存储,也不会出现在任何日志中。
加密密钥存放在服务器的环境变量中(FERNET_KEY),和数据库完全隔离。这意味着单独攻破数据库无法获取私钥(拿到的只是密文),单独攻破服务器但无法访问数据库也无法获取私钥(没有密文可解密)。只有同时获取两者才构成威胁。
私钥只在策略需要下单时被短暂解密用于签名交易。签名完成后明文立即从内存中丢弃,不会在内存中长期驻留。
用户数据隔离
每个用户的数据完全隔离。所有数据库查询都强制带有用户 ID 过滤 - 这不是靠规范约束的,而是在代码层面强制执行的。用户 A 无论通过什么途径都无法查看或修改用户 B 的数据。管理员虽然有查看所有用户的权限(用于系统管理和支持),但同样不应该也不需要查看用户的私钥。
认证和授权
所有 API 请求需要携带有效的 JWT token。登录流程是: 在 Dashboard 输入 Telegram 用户名,服务器通过 Bot 发送验证码,验证通过后签发 token。Token 中包含用户身份信息,有效期 24 小时。
每个 API 端点都会验证 token 的签名和有效期,然后从 token 中提取用户身份,用于后续的数据访问权限控制。生产环境强制使用 HTTPS 传输,防止 token 被中间人截获。
审计日志
关键操作(登录、钱包绑定/解绑、策略创建/启停、大额交易等)都会记录审计日志,包括操作时间、用户 ID 和操作类型。日志不包含敏感数据(如私钥明文),用于安全审计和问题排查。
你该怎么保护自己
即使平台的安全机制是可靠的,作为用户你也应该做好自己这一端的防护。
使用专用钱包是最重要的建议。不要把存放大额资金的主钱包绑定到任何第三方平台。创建一个专用钱包,只充入你愿意用来交易的金额。
不要在公共设备上登录 Dashboard。用完后记得退出。不要把 JWT token 分享给任何人。
确认 Bot 身份。绑定钱包时确保 Bot 用户名是 @pkpk_trade_bot,不要向其他 Bot 或个人发送私钥。
定期检查交易记录和余额。如果发现异常操作,立即停止所有策略、更换钱包。
如果最坏的情况发生了
如果服务器被入侵,PKPK 团队会第一时间通知所有用户,建议更换钱包,同时通过审计日志排查问题、修复漏洞。使用专用钱包的重要性在这种极端情况下尤为突出 - 你的损失上限就是专用钱包中的余额,而不是你全部的加密资产。
小结
安全是 PKPK 的核心设计原则。如果你对安全机制有疑问,欢迎联系我们。