把券商或交易所连接到 App 安全吗?
券商和交易所连接是怎么工作的(OAuth、Plaid、API 密钥),"只读"真正应该意味着什么,以及连接前要检查的清单。
作者:Sonar team阅读约 7 分钟
只要连接是只读的,而且你不交出密码或能交易、能提币的密钥,把券商或交易所连接到 App 是可以做到安全的。看三点:你是在自己机构的页面上登录(通过 OAuth 或 Plaid 这类服务),而不是在 App 里的表单输入密码;交易所 API 密钥只有查询权限;你可以随时撤销访问。如果一个 App 要求的权限超出显示组合所需,就不要连接。
没有零风险的连接。了解每种方式怎么运作、该检查什么,会很有帮助。
App 连接账户的三种方式
1. 交出用户名和密码
早期的聚合服务会要你的登录信息,然后替你登录(俗称"屏幕抓取")。这样能用,但 App 就握有一套能在该账户里做任何事的登录信息。美国金融业监管局(FINRA)在投资者警示《Know Before You Share》中解释了把登录信息交给数据聚合商的风险。
行业正在远离这种做法。美国消费者金融保护局(CFPB)关于个人金融数据权利的规则制定,讨论的就是消费者如何用比交出密码更安全的方式共享金融数据。
2. 基于令牌的连接(OAuth 和 Plaid)
使用 OAuth 时,你会被引导到券商自己的登录页面。在那里登录并批准 App 能看到的范围后,券商会给 App 一个仅限于该范围的令牌。App 永远看不到你的密码,你通常也可以在账户的安全设置里撤销令牌。
Plaid 这类服务为许多 App 充当中间方:你选择机构,在 Plaid 或机构的页面上登录,App 就能访问它所申请的数据类型。Plaid 在数据处理方式和安全页面中介绍了它的做法。
3. API 密钥(加密货币交易所)
加密货币交易所允许创建权限明确的 API 密钥。你在交易所创建密钥、选好权限,再粘贴到 App 里。
这里权限最关键:
- Coinbase 的密钥有不同权限级别。它关于授权的文档把 View 描述为访问不会把资金转出账户的接口,而 Trade 和 Transfer 则允许下单和转出资金。
- Kraken 把资金(查询、充值、提现)、订单与交易(查询、创建或修改、撤销)和数据的权限分开,详见 Kraken 的指南《How to create an API key》。
投资组合管理工具只需要读取:余额和交易记录。它永远不应该需要交易、提现、转账或充值权限。
"只读"应该意味着什么
"只读"只有在被强制执行时才有意义。问问自己:
- App 会检查密钥权限吗? 会拒绝能交易或提现的密钥,还是只是客气地请你创建一个查询密钥?
- 之后还会再检查吗? 密钥创建后,权限是可以改的。
- 对券商,申请的是哪些数据类型? 持仓和交易记录就足够了,不需要资金划转。
连接任何账户之前的检查清单
- 在哪里登录? 在券商网站、Plaid 页面或交易所本身,而不是 App 里的表单。
- 密钥或连接有什么权限? 只能查询。不能交易、提现、转账或充值。
- 登录信息怎么保存? 看是否静态加密,以及谁能访问是否说明清楚。
- 能撤销访问吗? 在 App 里和在券商或交易所那边都要能。
- 敏感操作需要两步验证吗? 比如连接券商账户。
- 我的数据会怎样? 会被出售或用于广告吗?断开连接或注销账户后会删除吗?
- App 有没有说明它做不到什么? 明确写着"我们无法交易或转移你的资金"是好迹象。模糊的安全口号代替不了具体说明。
- 能进一步限制密钥吗? 有些交易所允许把密钥限定在特定 IP 或单个子账户。
怎样创建只读的交易所密钥
Sonar 不需要密钥:交易所通过 Plaid 连接。如果其他应用要求提供密钥,以下是通用步骤;菜单名称会变,请以交易所当前的帮助页面为准。
- 打开账户设置里的 API 页面。
- 新建一个密钥,起一个容易辨认的名字,比如 App 的名字。
- 只勾选余额和交易记录的查询权限。
- 交易、提现、转账、充值都不要勾选。
- 如果可以,把密钥限定到单个子账户或 IP 白名单。
- 把密钥和密文直接粘贴到 App 里,不要存在笔记或邮件中。
- 不再使用这个 App 时,在交易所删除密钥。
Sonar 怎样连接账户
Sonar 在设计上就是只读的。具体来说:
- 钱包只通过公开地址连接。Sonar 从不索要私钥或助记词。参见如何通过地址安全地追踪加密货币钱包。
- 交易所(例如 Coinbase 或 Kraken)在 Plaid 提供支持时,和券商一样通过 Plaid 连接。Sonar 不接受交易所 API 密钥,因此不存在需要创建、保存或可能泄露的密钥。
- 券商账户在 Starter、Standard 和 Premium 方案中通过 Plaid 连接,只读取投资数据:持仓、交易、分红和费用。你在 Plaid 或券商的页面上登录,所以密码永远不会到达 Sonar。连接券商或交易所需要在 Sonar 账户上开启两步验证,删除连接会同时撤销 Sonar 在 Plaid 的访问。可用的机构取决于 Plaid 在你所在地区的覆盖情况。参见券商账户组合追踪。
- 你的数据不会被出售,也不会用于广告。断开一个账户会删除它的数据并撤销访问。
安全页面列出了 Sonar 保存什么、从不保存什么,以及如何报告漏洞。各方案可连接的账户数量见价格页面。
即使只读,仍然存在的风险
只读访问消除了最大的风险,即有人用你的权限交易或提现,但不是全部风险:
- 隐私。 App 能看到你的持仓和历史。选择说明自己保存什么、不出售数据的服务。
- App 的数据泄露可能暴露它保存的内容。加密的凭据和尽量少的数据能降低影响。
- 钓鱼。 仿冒的 App 或交易所网站会诱导你登录。输入登录信息前先看清地址栏。
- 被遗忘的高权限密钥。 定期检查并删除交易所上不再使用的 API 密钥。
常见问题
投资组合 App 会偷我的钱吗?
真正只读的连接做不到。只有查询权限的 API 密钥、钱包公开地址、仅限投资数据的券商连接,都无法下单或提现。风险来自那些要求交易或提现权限、密码或助记词的 App。
Plaid 安全吗?
许多金融 App 都在用 Plaid,使用时你是在 Plaid 或机构的页面上登录,而不是把密码交给 App。和任何服务一样,看看 App 申请了哪些数据,读一读它的隐私政策。Plaid 在安全页面公开了它的做法。
应该把 API 密钥的密文交给 App 吗?
只交出只读密钥,而且只交给说明了保存方式的 App。永远不要把有交易或提现权限的密钥交给追踪工具。
怀疑密钥泄露了怎么办?
立即在交易所删除它;如果还想保持连接,再新建一个只读密钥。检查账户最近的活动和安全设置。
一定要连接账户吗?
不一定。你也可以导入 CSV 或手动录入持仓。参见如何把交易记录导出为 CSV。
相关页面
- 安全:从设计上只读我们能看到什么、不能动什么、保存什么,以及如何保护。
- 美国券商账户投资组合追踪,只读连接通过 Plaid 以只读方式连接美国券商账户,查看股票、ETF 和基金,以及交易、股息和成本价,每 6 小时同步一次。
- Coinbase 投资组合追踪,通过 Plaid 只读连接把 Coinbase 和钱包、其他交易所、股票放在一起追踪。付费套餐可通过 Plaid 连接,也可以导入 CSV。无需 API 密钥,也没有任何交易权限。
- 如何通过地址安全地追踪加密货币钱包只用公开地址追踪 Ethereum、Solana、Bitcoin 等网络上的钱包。地址会暴露什么、哪些信息绝不能给别人,以及怎样避开骗局。