訪問控制 —— 概述

在計算機系統(tǒng)中訪問控制(Access Control),又稱授權(authorization),是指決定一個主體(subject,如用戶、進程等)是否能夠在客體(object,如文件、系統(tǒng)資源等)上執(zhí)行某些操作(讀、寫、執(zhí)行等)的過程。

1 相關概念

下面是一些訪問控制和計算機安全方面比較常用的一些概念:

  • 權限(permission)
    在客體上執(zhí)行操作的權力
  • 訪問控制模型(Access Control Model)
    訪問控制模型定義了主體、客體、操作和權限之間的關系
  • 訪問控制策略(Access Control Policy)
    基于訪問控制模型、定義了主體、客體、權限等關系的規(guī)則集合。

2 常見模型

不同的安全模型有不同的應用場合和使用場景。因此在一個實際的應用系統(tǒng)中,往往是幾種模型共同使用來保證系統(tǒng)的安全。下面介紹目前使用非常普遍的幾種訪問控制模型:

2.1 自主訪問控制模型(DAC,Discretionary Access Control)

自主訪問控制機制中數(shù)據(jù)的擁有者可以任意修改或授予此數(shù)據(jù)相應的權限。

傳統(tǒng)的Linux、Windows都采用這種機制,比如某用戶對于其所有的文件或目錄可以隨意設定其用戶/組/其他所有者的讀/寫/執(zhí)行權限。

2.2 強制訪問控制模型(MAC,Mandatory Access Control)

強制訪問控制機制中不允許數(shù)據(jù)的擁有者隨意修改或授予此對象相應的權限,而是通過強制的方式為每個對象分別授予權限。

SELinux即采用這種機制,該機制主要通過安全級來實現(xiàn)。

2.3 基于角色的訪問控制模型(Role-Based Access Control,RBAC)

此模型中對系統(tǒng)操作的各種權限不是直接授予具體的用戶,而是在用戶集合與權限集合之間建立一個角色集合,每一種角色對應一組相應的權限。一旦用戶被分配了適當?shù)慕巧螅撚脩艟蛽碛写私巧乃胁僮鳈嘞蕖?/p>

這樣做的好處是,不必在每次創(chuàng)建用戶時都進行分配權限的操作,只要分配用戶相應的角色即可,而且角色的權限變更比用戶的權限變更要少得多,這樣將簡化用戶的權限管理,減少系統(tǒng)的開銷。
SELinux中也用到了此模型的相關概念。

注:MAC 和 DAC 不是互斥的。如在Linux中DAC 是最基本的安全模型,是Linux中必不可少的訪問控制機制是,而 MAC 是構建在 DAC 之上的加強安全機制,屬于可內容。在Linux系統(tǒng)中,訪問前系統(tǒng)通常都是先做 DAC 檢查, 如果沒有通過則操作直接失敗;如果通過 DAC檢查并且系統(tǒng)支持 MAC 模塊,再做 MAC 權限檢查。

3 Linux權限控制

Linux是在訪問控制方面最有代表性的操作系統(tǒng),在Linux中所有的操作實質都是在進行進程訪問文件的操作,訪問文件需要先取得相應的訪問權限,而訪問權限是通過 Linux 系統(tǒng)中的安全模型獲得的。從傳統(tǒng)的Linux權DAC模型,到后來的基于MAC和RBAC的SELinux機制,Linux中很好地實現(xiàn)了上面的三種訪問控制模型。

這里只介紹DAC模型,后面會專門講述SELinux機制。

3.1 Linux DAC

在Linux中DAC的核心是進程理論上所擁有的權限與執(zhí)行它的用戶的權限相同,可以通過對用戶/組及其所屬進程對文件(Linux中一切資源皆文件)訪問賦予一定的權限來實現(xiàn)基本的訪問控制。

Linux系統(tǒng)中文件是MAC模型中的客體,用戶/組及其所屬進程是MAC模型中的主體。客體的訪問權限有讀、寫和執(zhí)行三種,訪問主體有文件所有者、同組用戶和其他用戶三種。


參考文獻

1 Romuald Thion. Access Control Model. University of Lyon.
2 https://evolllution.com/opinions/cybersecurity-access-control

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容