MMR-Benchv1.0
English

安全模型 1.0

非目標本身就是規格的一部分。

只列出自己保護了什麼的安全模型,是廣告。這一份用同等的份量列出它拒絕主張的東西。

受保護的性質

  • 憑證負載完整性。
  • 相對於內含公鑰的簽署者真確性。
  • 來源檔案的精確同一性。
  • 正規化紀錄完整性。
  • 證據與安全決策完整性。
  • 重播可偵測性。

明確的非目標

以下每一項都不在主張範圍內,也不該從「簽章有效」推論出來。

  • 證明簽署者在現實世界中的身分。
  • 證明完整的 Excel 相容性。
  • 證明商業意圖或會計上的正確性。
  • 執行 VBA、Power Query、外部連結、動態陣列、LETLAMBDA
  • 以引擎意見不一致為由授權公式變更。
  • 在操作者自己把私鑰放在不安全的地方時保住那把私鑰。

測過的威脅情境

這些是實際跑過的,不是推理出來的。

  • 簽署後才修改負載。
  • 拿憑證去重播另一份不同的 XLSX。
  • 過期的 OOXML 快取值。
  • 公式漂移,且下游快取已經過期。
  • 錯誤的 MMR 運算子語意。
  • 外部引擎的 1904 日期系統不匹配。
  • 把語法正規化偽裝成原生支援。

最後一項是針對這個基準測試自己的威脅:一個默默把 Table[Column] 改寫成 A1 範圍的橋接器,會被讀成「外部引擎支援結構化參照」。協定把每一次轉換都記下來,就是為了讓這種讀法不成立。

私鑰

範例憑證是用一把臨時的釋出金鑰簽的,而且只釋出公鑰那一半。使用者要透過憑證 CLI 產生自己的金鑰對。

永不

如果操作者把私鑰放在不安全的地方,憑證救不了它。

一個簽章建立了什麼

這份負載確實由持有這把金鑰的人簽署,而且從那之後沒有變過。

並未建立

那個持有者是誰。把金鑰綁到現實世界身分,不在這個模型的範圍內。