iT邦幫忙

2023 iThome 鐵人賽

DAY 20
0
Security

資訊安全之加密理論大雜燴系列 第 20

Day 20 授權的小概念

  • 分享至 

  • xImage
  •  

授權簡單來說就是規範哪些使用者可以做什麼

每個使用者的權限都可以被記錄在一個矩陣中

| | OS | 會計軟體 | 會計資料 | 保險資料 | 薪資資料 |
| | --- | --- | --- | --- | --- |
| Bob | rx | rx | r | --- | --- |
| Alice | rx | rx | r | rw | rw |
| Sam | rwx | rwx | r | rw | rw |
| 會計軟體 | rx | rx | rw | rw | r |

可以做的三個動作分別為
x:執行
r:讀取
w:寫入

我們可以看到Bob有權限讀取和寫入OS,但他不能碰到任何薪資資料

注意到會計軟體也算是權限劃分的主體,我們可以設計讓會計資料只能由會計軟體所寫入,讓資料更好管理

不過用以上矩陣做權限管理有一些缺點,

例如一個系統可能有成千上萬個使用者,該矩陣就會變得相當龐大,在每一次動作執行前都必須檢查此龐大的矩陣將造成系統很大負擔

因此比較合理的方法是將此矩陣切割,做成一小塊一小塊的資訊
每次動作執行只需檢查一小部分的矩陣即可

第一種切割方法是按著行來切,每一行獨自存成一筆檔案檔案記錄每個人的權限
這些檔案們被稱作ACL(access control list)

例如以上保險資料的ACL可能長這樣:
(Bob, ---), (Alice, rw), (Sam, rw), (會計軟體, rw)

這些ACL可以像便利貼一樣貼給每一項資源,一但該資源被呼叫,他就會檢查手上的便利貼以及呼叫的來源,藉此管控權限


第二種切割方式可依照列來切,每一個檔案即紀錄該名使用者能對資源的操作
這些檔案被稱作C-list(capabilities)

如Alice的C-list可能長這樣:
(OS, rx), (會計軟體, rx), (會計資料, r), (保險資料, rw), (薪資資料, rw)

相較於ACL分發給資源,這些C-list則是像票券一樣分發給使用者,讓每個使用者憑藉自己的C-list向資源呼叫

混亂代理人

考慮以下權限矩陣

| |編譯器|機密程式|
| |---|---|
|Alice| x| -|
|編譯器|rx|rw|

這個系統中有兩項資源:編譯器、以及攸關Alice性命的機密程式

編譯器有權限讀取寫入資料,例如Alice可以呼叫編譯器並提供程式名稱,該編譯器便可以讀取該程式並輸出程式的debug資訊

如此一來,Alice如果提供編譯器機密程式的名稱,代理Alice的編譯器會不知道該依據自己的權限還是依據呼叫者的權限,因而產生混亂

使用ACL來管理會發現很難(不是辦不到)避免混亂代理人問題

C-list的話就很方便,可以設計成Alice每次呼叫編譯器都必須提供自己的C-list,此時編譯器便可依據該權限行事

也因此,依照C-list設計的系統安全性較高


不過即使C-list可以處理混亂代理人問題,實務上是ACL較廣為使用:
一來權限的設計是以保護資料為主,可以很簡單地在檔案這端新增或移除使用者
二來C-list實踐起來較複雜,ACL則比較直覺


上一篇
Day 19 有關密碼的計算
下一篇
Day 21 網路簡介
系列文
資訊安全之加密理論大雜燴30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言