TW Market Data信任中心

信任,由架構保證。

資料安全是我們的產品基礎。從來源、傳輸到治理,每一層的控制都由架構本身落實,並能通過企業級的資安審查。

我們沒有任何第三方認證——沒有 SOC 2、沒有 ISO 27001。下面是我們拿得出來的東西:可下載的簽章證據、逐條標註缺口的自評,以及一份寫明自己不主張什麼的監理對照。

總覽

資料安全是我們的產品基礎。從來源、傳輸到治理,每一層的控制都由架構本身落實,並能通過企業級的資安審查。

Point-in-time 是結構決定的:每一列揭露資料都帶著市場最早可能知道它的日期,因此依該欄過濾的回測,看不到尚未存在的數字。涵蓋缺口是被回報出來,而不是被補起來。

看詳細 →

標準與框架

本站實作的開放標準與工具。由我們實作——不是認證,也不代表這些專案為我們背書。

  • OpenSSF
    OpenSSF
  • CycloneDX
    CycloneDX
  • OWASP
    OWASP
  • Sigstore
    Sigstore
  • SLSA
    SLSA
  • IETF
    IETF

文件

報告

  • 軟體物料清單

產品安全

  • 最小權限內部存取

    最小權限原則,並將唯讀監控角色與應用程式憑證分離,使可觀測性不附帶寫入權限。

  • 逐金鑰授權,每次請求解析

  • 資料 checkpoint 簽章(ed25519 Merkle)

    可以。每一份已發布的快照都承諾一個經密碼學簽章的 Merkle 檢核點,透過四個公開的 proof 端點提供,並由買方自行執行的純標準庫腳本驗證。誠實邊界:它證明的是完整性與來源,不是語意正確性,也不是計算發生時點的證明。

  • 稽核日誌——不防竄改

    每次請求都有紀錄,但寫得進那些列的資料庫使用者也改得掉(ASVS V7.2)。

資料安全

  • 傳輸加密

    TLS,經 Qualys SSL Labs 於四個端點評為 A+:已啟用 HSTS、僅提供 TLS 1.2 與 1.3、拒絕 1.0 與 1.1、無 RC4、全面 forward secrecy。任何人都能對我們重跑這項測試。

  • 每日異地備份

    每日加密異地備份至 Cloudflare R2。

  • 還原演練,實際執行過(2026-08-15)

    有——曾以真實金鑰執行還原演練,而非對假檔案的紙上作業。該紀錄連同日期與實測耗時,列於信任中心的動態。

  • 封存完整性已驗——pg_restore --list,252 個資料表(2026-08-27)

應用程式安全

  • 弱點回報

  • SBOM 已公開

  • 相依掃描——每週排程、資訊性(pip-audit、osv-scanner、Dependabot)

  • 已知未修相依,公開揭露

    有:截至 2026-08-19 約有 16 條依賴套件 CVE 未處理,皆不在處理客戶憑證的路徑上。我們公布數量而不公布清單——數量無法被攻擊者利用,逐條列舉則可以。與其讓這一題有個漂亮的答案,我們寧可揭露一個不好看的數字。

Agent / MCP 安全

  • 威脅模型逐條對照實作

  • 工具輸出有型別與 schema 驗證

  • 自由文字刻意不消毒

    紀錄帶的是主管機關與公司的原文。竄改它們會毀掉這份資料的用途,因此緩解屬於消費端。

基礎設施

  • 託管

    自架,使資料主權保留在我們手上而非託管平台:運算位於 Contabo 日本機房,邊緣由 Cloudflare 提供 WAF 與 DDoS 防護。

  • 監控

    外部狀態頁(Uptime Kuma),加上內部 Prometheus 與 Grafana,涵蓋路由延遲、排程作業成功率、資料新鮮度與資料庫健康度。

  • 環境隔離

    正式環境與 preview 部署分離,憑證亦分別授權。該邊界的正式文件尚未撰寫。

營運持續

  • 復原點

    每日快照,因此最壞情況約損失 24 小時。這是誠實的數字,也是在 point-in-time 還原上線後會改善的那一個。

  • 事件揭露

    於公開狀態頁具名揭露,含原因、影響與時間區間——並包含未取樣的時段。這個慣例早於本文件;先前中斷事件的說明目前就在該頁上。

  • 正式災復計畫——尚未撰寫

    還原演練已執行並量測;書面計畫尚未產出。演練是證據,文件還不存在。

風險概況

資料型態
公開市場揭露
個人資料
第三方依賴
有——託管、邊緣/CDN、物件儲存、郵件
復原點目標
最多 24 小時

我們未達成的部分

取自 ASVS 5.0 L2 自評。一張全綠的對照表沒有資訊量,有價值的是這三列。

V14.2已知漏洞尚未清乾淨

部分

相依掃描為每週排程——pip-audit、osv-scanner 與 Dependabot——且為資訊性:它回報,不擋 build。缺口在於它掃到的東西。未修的相依 CVE 仍然存在,數量與日期公開在 G2 而不是被總結掉,且都不在處理客戶憑證的路徑上。

V7.2稽核日誌不防竄改

部分

每次請求都有紀錄,但寫得進那些列的同一個資料庫使用者也改得掉。既有的 Merkle checkpoint 機制可以延伸過去涵蓋它們,目前尚未延伸。

V4.3兩個 id 空間都是字串

部分

曾有一次授權檢查收到 catalog id,而它認的是 dataset slug。介面對上了、識別碼沒對上,結果回 200——失敗看起來完全正常。已修,但沒有結構性防護擋住下一次:兩個 id 空間仍然都是字串,真正的修法是型別而不是補丁。

軟體物料清單:143 個元件,CycloneDX 1.5。

標準與框架

我們實作或對齊的標準,逐條寫明今天提供了什麼、還沒提供什麼。這些是自評的對齊,不是認證,也沒有任何人稽核過。實測日 2026-08-21。

標準狀態實際提供
Signed Tree Head (STH), §3.2已提供/v2/proof/checkpoints 的 sth_envelope:sth_version=twmd-sth/v1,內含 merkle_root、leaf_count、algo,並由 Ed25519 簽章。
Merkle leaf hash with 0x00 prefix, §2.1已提供sha256(0x00 ‖ canonical_row_bytes),canonicaliser 與 query_id 用的是同一個。
Interior node hash with 0x01 prefix, §2.1已提供sha256(0x01 ‖ left ‖ right)。兩個前綴就是阻止內部節點被當成葉節點呈現的機制。
Merkle Audit Path / inclusion proof, §2.1.1已提供/v2/proof/inclusion,需帶 dataset 與該資料集的列鍵;每個「資料集 checkpoint」都附一個真的 row_key_example。
Log ID / log public key, §4.1已提供/v2/proof/public-key 提供 Ed25519 PEM;每筆 checkpoint 以 signed_by=ed25519:<keyid> 指名用的是哪一把。
Odd-node handling (CVE-2012-2459)已提供落單的節點原樣晉級,不複製。複製會讓兩組不同的葉節點共用同一個根。
Merkle Consistency Proof, §2.1.2已提供/v2/proof/consistency(proof_version twmd-consistency/v2),帶 first 與 second 兩個樹大小。它證明的是 META-LOG——已發布 tree head 的那份日誌——在 first 這個大小時是 second 的前綴:沒有任何先前發布的 head 被移除、重排或改寫。
Scope of that consistency proof尚未提供它涵蓋的是已發布 head 的日誌,不是每個資料集自己的那棵樹——後者依 row key 排序,是另一種性質。端點自己的 does_not_claim 就是這麼寫的。
Timestamp in the STH, §3.2已提供刻意沒有。簽章見證不了自己的時間。
Public log, gossip protocol, independent auditors尚未提供不適用。這是逐資料集的快照 checkpoint,不是一個有第三方稽核者的公開 append-only log。
W3C PROV-O (provenance as JSON-LD)已提供已提供:GET /v2/proof/provenance?dataset=<key> 回傳 W3C PROV-O JSON-LD,免金鑰。圖中每個實體帶著自己的 merkle_root 與可解析的驗證網址。沒有已發布 checkpoint 的資料集回 200 但無圖——不存在的鍵也是同一個回應,API 不區分。
PROV-O on the read endpoints (?format=prov-jsonld)尚未提供尚未提供,且明確拒絕。
C2PA sidecar manifests尚未提供尚未提供。

監理對照

TWMD 是資料與驗證層,不是合規顧問。這張表說的是:當機構要滿足某一條 sound practice 時,TWMD 交到它手上的證據原語是什麼。義務在機構,證據在我們。

先講 TWMD 在這封函裡的位置:我們是 §VII 意義下的「第三方資料供應商」,不是「符合 SR 26-2」的機構。該函的義務對象是受監理機構,供應商沒有可以「符合」的條文;我們提供的是機構用來交代資料的證據。

適用邊界也要先講清楚:SR 26-2 管的是「模型」,而生成式與 agentic AI 明文在其範圍之外,由機構既有的風險管理實務治理。所以一個為 agent 而生的產品,本來就不在它的適用範圍內。

但審查委員會會用 SR 11-7 以來的肌肉記憶來問資料題——資料適足性、血緣、變更管理。規格書、實測時效與缺口聲明就是現成的資料適足性文件。

SR 26-2 強調依規模與複雜度成比例,所以這張表對在台股有部位的外資分支與量化基金最相關。

實務狀態依據 / 限制
1. Strategic direction and oversight已達成資料側的事實表與已公開的自評問卷,讓治理層引用「agent 用的是什麼資料、可驗證到什麼程度」時有文件可指。
2. Governance and accountability部分組織角色(owner / member / read-only),帳單與資料分離、讀取與鑄造分離;金鑰歸組織所有並記錄建立者。授權判斷 fail-closed。角色管的是儀表板與憑證,不是資料請求:金鑰在 API 主機認證,本身不帶組織角色。成員目前由我們依請求加入,尚無自助邀請流程。
3. Incorporation of AI risks into the risk management framework部分每個資料集一張 Gebru 格式規格書(組成、更新頻率、實測時效、PIT 語意、已記載缺口、授權),由登錄表組成而非逐集撰寫。13 個資料集被分級為帶有回測陷阱,而它們的缺口聲明文字尚未撰寫完成、尚未上線。規格書會在這種情況下明說「本資料集依規則必須附上缺口聲明,而登錄表裡還沒有寫入」,而不是保持沉默。
4. Organisational adaptability未建置勘誤與承接機制:錯誤不抹除,用新的承諾修正舊的承諾。設計已核可,尚未實作。
5. Materiality and risk assessment已達成逐資料集的更新頻率與實測時效,以及登錄表對「有排程產生者」與「符合自身頻率」的區分——評估需要輸入,這些是機器可讀的輸入。
6. Selection已達成公開的免金鑰驗證器與自驗頁:買方不必信任我們也能在自己的終端機驗證我們的宣稱。
7. Data governance已達成這是主戰場。簽章的 Merkle 快照與 RFC 6962 式元日誌(append-only,含 consistency proof);as_of point-in-time 過濾防止 look-ahead;每個 checkpoint 自帶 does_not_prove 說明它證明不了什麼。
8. Explainability and transparency部分引用鏈到列,加上可回放的查詢編號——「這個結論是從哪一列資料來的」可以被機器重放。查詢回放走 MCP 層;PROV-O 格式輸出尚未建置。
9. Performance management已達成防洩漏題庫:148 題,其中 40 題在被問到的日期尚未公開。它證明的事情很尖銳——傳統準確率無法分辨誠實的 agent 與忽略時間閘門的 agent,兩者都是 100%,只有洩漏率分得出來。
10. Human oversight已達成抽查要能成立,前提是抽到的那一筆可以被驗證。公開的 proof 端點與獨立驗證器讓抽樣監督成為可行的做法,而不必逐筆人工閱讀。
11. Cyber and ICT risk management部分資料出處控制是我們的本業:每一列都能對應到一份簽章快照與一個官方來源角色。簽章的 MCP 工具清單(治 tool poisoning)已發布於 /v2/proof/tool-manifest,含簽章與 surface_hash;2026-08-26 實測其 34 項工具與線上伺服器 tools/list 完全一致。驗證這一步仍在客戶端:我們發布可對照的 manifest,但無法代為執行比對。
12. Third-party risk management部分我們自己就是這一條要管的第三方。可驗證性把「信任第三方」降級成「驗證第三方」,這是我們能對這一條做出的實質貢獻。SLA 與 DPA 範本仍在草擬;關站資料可攜條款尚未定案。

實測日 2026-08-21。

總覽

資料完整性

我們回傳的每個數字都錨定於一個時間點,並附帶其來源軌跡。這是回測站得住腳、以及數字在數個月後仍可被稽核的前提。

  • Point-in-time 完整性

    查詢接受 as-of 日期。對於本質上非 point-in-time safe 的資料集,資料列以揭露日期而非事件日期選取,因此查詢回傳的是該時點已公開的內容,不含其後才發布的資訊。每個資料集皆明確宣告自身的 point-in-time 屬性。

    各資料集的涵蓋範圍與 point-in-time 屬性
  • 逐回應的來源軌跡

    回應在頂層帶有來源角色與資料血緣:官方上游、涉及的端點、底層資料表,以及資料本身的 as-of 日期。任一數字皆可追溯至源頭,無須提出支援請求。

    資料如何蒐集、正規化與查核
  • 可重現性

    Point-in-time 查詢的可重現性來自其結構本身。事後發布的更正帶有自身的揭露日期,因此僅在該日期之後的 as-of 查詢中出現,不會修改已經給出的答案。數個月後以相同 as-of 日期執行相同查詢,回傳相同的資料列。

資安

以下控制措施以資安問卷所要求的細節層級陳述,且其中多數無須我們配合即可從外部確認。

  • 傳輸加密,端到端

    邊緣採用 HTTPS 並啟用 HSTS,邊緣至來源主機之間亦以 TLS 連線並強制驗證憑證——鎖頭圖示背後不存在明文連線。每個回應皆帶 Content-Security-Policy、X-Frame-Options、X-Content-Type-Options、Referrer-Policy 與 Permissions-Policy。

  • 資料庫隔離

    Postgres 執行於私有容器網路,未發布任何連接埠,僅能由應用程式經內網存取。不存在對外監聽埠,因此也沒有需要維護、或可能設定錯誤的白名單。

  • 濫用防護綁定不可偽造的識別

    登入、passkey 與裝置授權端點皆施行每帳號與每來源的速率限制。來源以邊緣提供的連線位址識別,而非用戶端自行填寫的轉送標頭,因此偽造標頭無法取得新的額度。

可靠性

可用性經量測、連同其空缺一併公開,並以實際執行過的還原作業為後盾。

  • 功能性監控

    每小時的檢查實際操作功能,而非探測回應碼:登入執行真實的工作階段建立、更新與刪除;以免金鑰方式讀取一筆資料集;實際執行發鑰服務;agent 端點完成一次交握。「網站回應 200、登入卻失效」屬於本設計能偵測到的故障。

    系統狀態
  • 歷史紀錄

    可用性每小時取樣,並以公開紀錄呈現,包含未取樣的時段——那些顯示為空缺,而非正常時間。事件公告載明原因、影響與起訖時間。

    歷史紀錄與事件
  • 備份與復原

    資料庫每日匯出至異地物件儲存,並保留多個世代。2026-08-15,自每日匯出檔進行的邏輯還原於 1,816 秒(約 30 分鐘)內完成。該數字描述的是邏輯還原,而非熱備援切換。復原點受備份週期限制,因此最多為 24 小時。

Agent 治理

連接本平台的 agent 能做什麼,取決於它被給予的介面,而非它被要求遵守的政策。

  • 唯讀介面

    我們開放的工具用於列出資料集、說明其語意、查詢資料與尋找關聯,每一個都是讀取。沒有任何工具可下單、動用資金或變更帳務狀態——並非以設定關閉,而是介面上並不存在。

    完整工具清單
  • 人為授權

    CLI 或 agent 對帳號採取行動之前,須由人在已認證的瀏覽器工作階段中核准。該核准以雜湊綁定至該工作階段——絕不儲存權杖本身——因此事後可歸屬。核准與拒絕皆為終局狀態。

    授權步驟
  • 稽核紀錄

    每次 API 呼叫皆寫入一筆紀錄:帳號、金鑰、資料集、端點與方法、狀態碼、延遲與時間戳,並以 request id 串接。計費由該帳本推導而非另行計數,因此收費金額與所記錄的活動不會分歧。

子處理者

公司用途地區
CloudflareCDN、WAF 與 TLS 終端全球邊緣節點
Cloudflare R2異地資料庫備份物件儲存
Contabo專用伺服器主機代管日本
Polar訂閱與付款見其條款
Resend交易性電子郵件見其條款
Google登入 (OAuth),以及經同意後的網站分析全球