Ауторизација се спроводи помоћу два основна концепта:
- листе контроле приступа – ACL (Access Control Lists) листе
- листе додељених права – C (Capatibilities) листе
Листе контроле приступа и листе додељених права изведене су из Лампсонове матрице контроле приступа. У Лампсоновој матрици субјекти (корисници) индексирају редове, а објекти (ресурси) индексирају колоне.
У табели r
представља читање (read), w
писање (write) и х
извршење (execute).
ACL дефинишу права приступа објекту по колонама. На пример, за податке о осигурању важи:ACL(Insurance data)={(Bob,---),(Alice,rw),(Sam,rw),(Accounting program,rw)}
C дефинишу права приступа субјекту по редовима. На пример, за Алису важи:C(Alice)={(OS,rx),(Accounting program,rx),(Accounting data,r),(Insurance data,rw),(Payroll data,rw)}
Проблем са контролом приступа провером података у матрици може бити брзина, јер пре приступа било ком ресурсу система треба извршити проверу. Ако систем има 1000 корисника и 1000 ресурса, то би значило да сваки пут треба вршити проверу над милион уноса. Због тога се користе ACL или C листе.
Размотрите једну класичну ситуацију (збуњени изасланик):
Систем има два ресурса: компајлер и фајл Рачуни. Компајлер може да мења фајл Рачуни. Корисник Алиса може да користи компајлер, али не може да мења фајл Рачуни. Лампсонова матрица изгледала би овако:
Компајлер | Фајл Рачуни | |
Алиса | x | — |
Компајлер | rx | rw |
Алиса покреће компајлер над програмом који поседује команде за измену фајла Рачуни. Компајлер је збуњен. Алиси није дозвољено да мења фајл Рачуни, али он ради у складу са својим правима. Измениће фајл Рачуни.
Овај проблем се не решава ACL листом, али се лако решава C листом – компајлер је требао да провери C листу Aлисе.
ACL листе су добре када корисници сами управљају својим фајловима. Код ACL заштита је оријентисана према подацима, а права приступа се лако мењају у односу на ресурсе. У пракси се више користе ACL листе него С листе.
Код С листи права се лако мењају у односу на кориснике. Такође се лако додају и бришу корисници и лакше се решава проблем збуњеног изасланика. Међутим, С листе су теже за имплементацију од ACL листи.