在資訊安全領域,Lattice-based 模型是強制存取控制(MAC)的數學基礎,透過偏序關係定義安全等級,確保資訊流方向符合政策規範,有效防止越權存取。
什麼是 Lattice-based 模型?
Lattice-based 模型由 Denning(1976)正式提出,以偏序集(Partially Ordered Set)描述安全等級之間的支配關係。每個安全等級由「機密層級」與「類別集合」組成,例如 (Secret, {Finance, HR})。模型的核心操作有兩個:最高上界(LUB, Least Upper Bound)取兩個等級的最寬鬆上限,最低下界(GLB, Greatest Lower Bound)取兩個等級的最嚴格下限。資訊只能從低等級流向高等級(No Read Up / No Write Down),形成封閉的安全格(Security Lattice)。
LUB 與 GLB 如何強制安全資訊流?
存取決策的核心在於比較主體(Subject)安全等級與客體(Object)安全等級。讀取操作:主體等級必須支配(dominates)客體等級,即 SC(Subject) ≥ SC(Object);寫入操作:客體等級必須支配主體等級,即 SC(Object) ≥ SC(Subject)。以 LUB 計算複合操作的輸出等級,例如主體同時讀取 (Confidential, {HR}) 與 (Secret, {Finance}),其輸出資訊的等級為兩者的 LUB,即 (Secret, {Finance, HR}),防止隱通道洩漏。GLB 則用於多方寫入情境,計算安全下界以確保最低保護門檻。
# 安全等級以 (level, categories) 表示
def lub(a, b):
return (max(a[0], b[0]), a[1] | b[1])
def glb(a, b):
return (min(a[0], b[0]), a[1] & b[1])
def can_read(subject, obj):
return subject[0] >= obj[0] and obj[1].issubset(subject[1])
💡 重點整理
- 偏序關係定義等級支配(dominance),是所有存取判斷的數學基礎。
- LUB 決定複合資訊輸出的最高安全等級,防止資訊降級洩漏。
- GLB 計算多輸入情境的最低安全下界,確保最嚴格保護門檻。
- Bell-LaPadula 模型即以 Lattice 為基礎實作機密性控制。
Lattice-based 模型以嚴謹的數學結構支撐強制存取控制,LUB 與 GLB 共同確保資訊流向可驗證、可形式化證明,是設計高保證安全系統的不可或缺基礎。
📚 參考文獻
- Denning, D. E. (1976). A Lattice Model of Secure Information Flow. Communications of the ACM, 19(5), 236–243. https://dl.acm.org/doi/10.1145/360051.360056
- Bell, D. E., & LaPadula, L. J. (1973). Secure Computer Systems: Mathematical Foundations. MITRE Corporation Technical Report. NIST SP 800 系列相關資源
- NIST SP 800-162: Guide to Attribute Based Access Control (ABAC) Definition and Considerations. https://csrc.nist.gov/publications/detail/sp/800-162/final