信任,由架構保證。
資料安全是我們的產品基礎。從來源、傳輸到治理,每一層的控制都由架構本身落實,並能通過企業級的資安審查。
我們沒有任何第三方認證——沒有 SOC 2、沒有 ISO 27001。下面是我們拿得出來的東西:可下載的簽章證據、逐條標註缺口的自評,以及一份寫明自己不主張什麼的監理對照。
總覽
資料安全是我們的產品基礎。從來源、傳輸到治理,每一層的控制都由架構本身落實,並能通過企業級的資安審查。
Point-in-time 是結構決定的:每一列揭露資料都帶著市場最早可能知道它的日期,因此依該欄過濾的回測,看不到尚未存在的數字。涵蓋缺口是被回報出來,而不是被補起來。
看詳細 →標準與框架
本站實作的開放標準與工具。由我們實作——不是認證,也不代表這些專案為我們背書。
- OpenSSF
- CycloneDX
OWASP- Sigstore
- SLSA
- IETFIETF
報告
軟體物料清單
法務
子處理者
個人資料
否。TDCC 的持股資料是依持股級距彙總的分佈,不是任何個別持有人的身分。
未公開重大訊息
否。所有數列皆源自官方公開揭露。整個資料目錄中沒有任何內線來源或專家網路的成分。
產品安全
最小權限內部存取
最小權限原則,並將唯讀監控角色與應用程式憑證分離,使可觀測性不附帶寫入權限。
逐金鑰授權,每次請求解析
資料 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 能做什麼,取決於它被給予的介面,而非它被要求遵守的政策。
子處理者
| 公司 | 用途 | 地區 |
|---|---|---|
| Cloudflare | CDN、WAF 與 TLS 終端 | 全球邊緣節點 |
| Cloudflare R2 | 異地資料庫備份 | 物件儲存 |
| Contabo | 專用伺服器主機代管 | 日本 |
| Polar | 訂閱與付款 | 見其條款 |
| Resend | 交易性電子郵件 | 見其條款 |
| 登入 (OAuth),以及經同意後的網站分析 | 全球 |