安全
邊界就是架構本身,不是免責聲明。
質數資料集會招來一種顯而易見的誤用。MMRF 的回應不是一段使用條款,而是一個跑在資料層之前、直接拒絕十七個欄位名稱的守衛。
MMRF 是什麼
- 一個固定區間內質數之數學性質的公開資料集。
- 一個聚合查詢面:密度、分位數、直方圖、計數。
- 一份關於該資料集如何成立的治理與來源記錄。
它不會做什麼
- 接受任何形式的外部整數,包含 RSA modulus。
- 回傳因數、因數候選,或一組候選。
- 縮減搜尋範圍,或回答一個其價值就在於縮減範圍的問題。
- 回傳最近質數、精確質數列表,或原始質數記錄。
- 儲存或發布合數與其因數之間的關係。
- 暴露受控資料集。它們不會經由任何路徑抵達本站。
永遠不會存在的端點
- POST /factor
- POST /rsa
- POST /nearest-prime
- POST /candidate-range
- POST /target-query
- POST /raw-primes
- POST /source-factor
拒絕實際上如何運作
守衛在資料層被碰到之前就評估請求。被禁的欄位名稱會導致拒絕,理由中會指名該欄位,成本為 cost_units: 0,而 normalized_request 為 null——請求從未被正規化,因此下游沒有任何東西可供執行。
送出
{
"version": "MMRF-SQL-0.8",
"operation": "interval_density",
"shard_start": 0,
"shard_count": 1,
"rsa_modulus": "1000036000099"
}回傳
{
"status": "DENIED",
"decision": {
"allowed": false,
"decision": "DENY",
"reasons": [
"target_conditioned_or_factor_related_field_forbidden",
"forbidden_field:rsa_modulus"
],
"cost_units": 0,
"normalized_request": null
},
"audit": {
"event_id": "lake-query:ed5a56ba-…",
"event_hash_sha256": "1d60abd3c37dbb0d…"
}
}成本: 0讀取分片: 0
拒絕依然會產生一個帶自身雜湊的稽核事件。拒絕是被記錄的,不是被默默丟棄的——這正是讓一連串嘗試誤用的行為變得可見、而非不可見的原因。
組合規則
單一的聚合答案是安全的;要留意的是一長串精心挑選的答案。所以這個查詢面同時受三重限制:固定的操作允許清單、每個工作階段的查詢預算,以及單次查詢可觸及分片數的上限。此外也要求研究者不要用允許的操作去重建被禁的輸出。
最後這一條是請求,不是強制,而且是刻意這樣寫的。一份宣稱能強制它其實做不到的事的政策,比一份誠實說明機制到哪裡為止的政策更糟。
回報
如果你找到一種方法,能用允許的操作取得被禁的輸出,那就是本設計的缺陷,值得透過runtime 儲存庫回報。請描述該組合方式,而不要公開一組可用的查詢序列。