Security

你的資金,永遠在你自己手上

自動化交易 SaaS 的最大致命傷是 API key 集中託管的單點失靈。這頁說明 TVSBot 怎麼設計避開這個風險,以及你可以如何驗證。

🔓
非託管
平台從不持有你的錢。資金始終在你交易所帳戶,我們只能傳訊號 + 下單。
🔐
Fernet 加密
你 API key 用 AES-128-CBC 加密儲存,金鑰存 Fly secrets,連我們資料庫也讀不到明文。
🛑
綁定時檢查提幣權限
綁定 Binance、OKX、Bitget 的 key 時,系統會向交易所查詢權限,開了提幣(Withdraw)就拒絕綁定。Bybit、BingX、Gate.io 目前無法自動檢查,請你自行確認沒有勾選提幣。

為什麼我們要特別寫這頁

2022 年 12 月,加密自動交易最大品牌 3Commas 發生史上最嚴重的 API key 外洩事件。當時他們託管 超過 100 萬把 交易所 API key,外洩約 10 萬把,鏈上分析師 ZachXBT 驗證 44 名受害者損失 $14.8M、總被盜估計約 $22M。CEO 起初否認,後公開承認,請求 Binance / OKX / KuCoin 撤銷 key — 因為 key 屬於別人的平台,3Commas 無法單方修復。

這事件揭露了一個結構性問題:「託管型 bot 平台」的單一資料庫一旦被打穿,所有用戶資金同時暴露。TVSBot 的設計從第一天起就為了避開這個失靈模式。

我們的架構是什麼

1. Fernet AES-128-CBC 加密儲存

你的 API key + secret 一進資料庫就用 Fernet 對稱加密 包起來。Fernet 是 Python cryptography 函式庫提供的 AEAD scheme(含 AES-128-CBC + HMAC-SHA256),業界廣泛使用。

加密金鑰 FERNET_MASTER_KEY 存在 Fly secrets,**不會進 git,不會進 DB backup,不會存任何 log**。

GitHub 開源 PoC(部分):app/services/crypto.py 可審核。

2. 綁定時檢查提幣權限

綁定新 key 時,我們會呼叫交易所的權限查詢 API(Binance、OKX、Bitget)。帶有提幣(Withdraw)權限的 key 會被拒絕綁定;查詢失敗也不會放行,會請你稍後重試。Bybit、BingX、Gate.io 目前無法自動查詢,請自行確認。已經綁定的 key 在你按「檢查」時會重新查詢,若發現提幣權限,會在 API Keys 頁顯示警告。

只要 key 沒有提幣權限,即使 key 被偷,攻擊者也無法提幣轉走你的資金 — 只能下單交易,最壞情況是 wash trade 損失少量手續費。

3. IP 白名單:我們目前給不出固定 IP,請不要啟用

各交易所 API 都支援 IP 白名單,理論上是很好的一層防護。但老實說:TVSBot 的後端跑在 Fly.io 的共用出口上,沒有固定的對外 IP,所以我們給不出一個能讓你填進白名單的位址 —— 填了只會讓下單被交易所拒絕。在我們買到固定出口 IP 之前,請不要啟用白名單,改用「只勾 Trade、不勾提幣 + 開在子帳戶」來限縮風險。有了固定 IP 我們會直接顯示在 API Keys 頁上。

4. 訊號不經 secret URL

每個用戶的 webhook URL 帶獨立 token,payload 內另帶 secret 雙重驗證。一個外洩無法繞過另一個。

我們承諾的透明度

  • 事件揭露:任何安全事件 72 小時內公開揭露,包含影響範圍、技術原因、修復狀況。
  • 加密實作公開:我們不靠 obscurity 安全。加密演算法、key derivation、儲存方式都列在這頁。
  • 第三方稽核(規劃中):2026 Q3 安排第一次外部安全稽核。
  • Bug bounty(規劃中):見下方獨立區塊。

Bug Bounty 計畫

歡迎 ethical security researchers 回報漏洞。我們提供合理獎勵。

範圍(in scope)

  • tvsbot.com 及子網域
  • 後端 API(api.tvsbot.com)
  • Webhook 端點(防 replay / spoofing)
  • API key 加密儲存與解密路徑
  • 權限提升 / IDOR / SQLi / XSS

範圍外(out of scope)

  • DDoS / 流量類攻擊
  • 純社交工程
  • 第三方服務(Stripe / Supabase / Fly)— 直接回報給該廠商
  • 已知問題 / 既有揭露

獎勵級距(USD,視嚴重度)

Critical(任意用戶資金損失)$500 – $2000
High(API key 外洩 / 權限提升)$200 – $500
Medium(IDOR / 邊界繞過)$50 – $200
Low(資訊洩漏 / 配置錯誤)名譽榜上榜

如何回報

兩種方式都會收到。我們承諾 48 小時內初步回覆。

方式 2:用表單預組信件

填表單會自動組好結構化的信件,打開你的 email app 等你按送出。

⚠️ 請勿利用漏洞影響其他用戶。第一次回報的 researcher 優先獎勵。獎金以 USDT TRC20 或 PayPal 支付。

跟託管型平台的對比

面向TVSBot(非託管)託管型 bot
資金持有你交易所帳戶平台代為持有
DB 被打穿的後果加密 key 攻擊者拿不到明文 + 綁定時擋掉有提幣權限的 key100 萬把 key 同時暴露(3Commas 2022)
提幣風險綁定時拒絕有提幣權限的 key(Bybit / BingX / Gate.io 需自行確認)若有 Withdraw 權限,鏈上一筆轉走
平台跑路風險你重設 API key 就完事資金回不來
加密透明度演算法 / key derivation 公開多數不公開實作

進一步閱讀