05. Access Control
Access Control
ITU-T Recommendation X.800์ด ์ ์ํ access control(์ ๊ทผ ์ ์ด)
resource์ ๋ฌด๋จ ์ฌ์ฉ ๋ฐฉ์ง๋ฅผ ํฌํจํ์ฌ, ์น์ธ๋์ง ์์ ๋ฐฉ์์ผ๋ก resource๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋ฐฉ์งํ๋ ๊ฒ
Access Control Principles
RFC 2828์ด ์ ์ํ computer security(์ปดํจํฐ ๋ณด์)
์ปดํจํฐ ์์คํ ์์ ๋ณด์ ์๋น์ค๋ฅผ ๊ตฌํํ๊ณ ๋ณด์ฆํ๋ ์กฐ์น, ํนํ ์ ๊ทผ ์ ์ด ์๋น์ค๋ฅผ ๋ณด์ฆํ๋ ์กฐ์น
Relationship Among Access Control and Other Security Functions
- access control์ authentication(์ธ์ฆ) ๋ฐ audit(๊ฐ์ฌ)๊ณผ ๋ฐ์ ํ๊ฒ ๊ด๋ จ
- ์ธ์ฆ์ ์ฌ์ฉ์์ ์ ์์ ํ์ธํ๊ณ , access control์ ํ์ธ๋ ์ฌ์ฉ์๊ฐ ํน์ resource์ ์ ๊ทผํ ์ ์๋์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์
- Auditing ๊ธฐ๋ฅ์ ์ ๊ทผ ์๋๋ฅผ ๊ธฐ๋กํ์ฌ ๋ณด์ policy ์ค์ ์ฌ๋ถ๋ฅผ ํ์ธํ๊ณ ์นจ์ ์ ํ์ง
Access Control Policies
- Discretionary Access Control(์์ ์ ๊ทผ ์ ์ด, DAC): resource์ ์์ ์๊ฐ ๋ค๋ฅธ subject์ ๋ํ ์ ๊ทผ ๊ถํ์ ์ค์
- Mandatory Access Control(๊ฐ์ ์ ๊ทผ ์ ์ด, MAC): ์์คํ ์ ๋ฐ์ policy์ ๋ฐ๋ผ ์ ๊ทผ ๊ถํ์ด ์ค์์์ ๊ด๋ฆฌ๋จ.
- Role-Based Access Control(role ๊ธฐ๋ฐ ์ ๊ทผ ์ ์ด, RBAC): ์ฌ์ฉ์์ ์กฐ์ง ๋ด role์ ๋ฐ๋ผ ์ ๊ทผ ๊ถํ์ ๋ถ์ฌ
Access Control Requirements
- Reliable input(์ ๋ขฐ ๊ฐ๋ฅํ ์ ๋ ฅ)
- Support for fine and coarse specifications(์ธ๋ฐํ๊ณ ํฌ๊ด์ ์ธ ๋ช ์ธ ์ง์)
- Least privilege(์ต์ ๊ถํ)
- Separation of duty(์ง๋ฌด ๋ถ๋ฆฌ)
- ํ๋์ ์์ ์ ์๋ฃํ๊ธฐ ์ํด ๋ ๋ช ์ด์์ด ํ์
- Open and closed policies(๊ฐ๋ฐฉ ๋ฐ ํ์ policy)
- Policy combinations and conflict resolution(policy ์กฐํฉ ๋ฐ ์ถฉ๋ ํด๊ฒฐ)
- Administrative policies(๊ด๋ฆฌ policy)
- policy ๊ฐ๋ฐ ์ ์ฐจ ๋ฑ...
Access Control Basic Elements
- Subject(์ฃผ์ฒด): object์ ์ ๊ทผํ ์ ์๋ entity
- process(process)์ ๊ฐ๋ ๊ณผ ๋์ผ
- ์ผ๋ฐ์ ์ผ๋ก ์์ ์ด ์์ํ ํ๋์ ๋ํด ์ฑ ์์ด ์์.
- ์ข ์ข owner(์์ ์), group(๊ทธ๋ฃน), world(์๋)์ ์ธ ๊ฐ์ง class๋ฅผ ๊ฐ์ง.
- Object(๊ฐ์ฒด): ์ ๊ทผ์ด control๋๋ resource(์์)
- ์ ๋ณด๋ฅผ ํฌํจ and/or ์์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ entity
- ๋ณดํธ๋ access control์ด ์๋ํ๋ ํ๊ฒฝ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง.
- Access right(์ ๊ทผ ๊ถํ): subject๊ฐ object์ ์ ๊ทผํ๋ ๋ฐฉ์์ ๊ธฐ์
- ์: read(์ฝ๊ธฐ), write(์ฐ๊ธฐ), execute(์คํ), delete(์ญ์ ), create(์์ฑ), search(๊ฒ์)
Mandatory Access Control
- MAC(๊ฐ์ ์ ๊ทผ ์ ์ด)๋ ๋ ์ ํ์ ์ธ ๋ฐฉ์
- ์์ ๊ถ๊ณผ ๊ด๊ณ์์ด ์ฌ์ฉ์๊ฐ ํ์ผ์ ๋ํ ๊ถํ์ ์ ์ํ๋ ๊ฒ์ ํ์ฉํ์ง ์์.
- ๋์ , ๋ณด์ ๊ฒฐ์ ์ central policy administrator(์ค์ policy ๊ด๋ฆฌ์)์ ์ํด ์ด๋ฃจ์ด์ง.
- ๊ฐ ๋ณด์ ๊ท์น์ ์ ๊ทผ์ ์๋ํ๋ ๋น์ฌ์๋ฅผ ๋ํ๋ด๋ subject, ์ ๊ทผ ๋์ resource๋ฅผ ๊ฐ๋ฆฌํค๋ object, ๊ทธ๋ฆฌ๊ณ ํด๋น resource์ ์ ๊ทผํ ์ ์๋ ๋ฒ์๋ฅผ ์ ์ํ๋ ์ผ๋ จ์ ๊ถํ์ผ๋ก ๊ตฌ์ฑ๋จ.
- SELinux(Security-Enhanced Linux)๋ MAC์ ํตํฉํจ.
SELinux and MAC
- ๋ชจ๋ process์ ์์คํ resource๋ SELinux context(SELinux ์ปจํ ์คํธ, ๋๋ SELinux ๋ ์ด๋ธ)๋ผ๋ ํน๋ณํ ๋ณด์ ๋ ์ด๋ธ์ ๊ฐ์ง.
- SELinux policy์ ์ด context๋ฅผ ์ผ๋ จ์ ๊ท์น์์ ์ฌ์ฉํ์ฌ process๊ฐ ์๋ก ๋ฐ ๋ค์ํ ์์คํ resource๊ณผ ์ํธ ์์ฉํ๋ ๋ฐฉ์์ ์ ์ํจ.
- ๊ธฐ๋ณธ์ ์ผ๋ก, policy์ ๊ท์น์ด ๋ช ์์ ์ผ๋ก ์ ๊ทผ์ ํ์ฉํ์ง ์๋ ํ ์ด๋ ํ ์ํธ ์์ฉ๋ ํ์ฉํ์ง ์์.
- SELinux context๋ user(์ฌ์ฉ์), role(role), type(์ ํ), security level(๋ณด์ ์์ค) ๋ฑ ์ฌ๋ฌ field๋ฅผ ๊ฐ์ง.
- ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ policy ๊ท์น์ด ์ ์ฒด SELinux context๊ฐ ์๋ SELinux ์ ํ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ SELinux ์ ํ ์ ๋ณด๊ฐ SELinux policy์์ ๊ฐ์ฅ ์ค์ํ ์ ์์.
Discretionary Access Control (DAC)
- ํ entity๊ฐ ๋ค๋ฅธ entity์๊ฒ ์ผ๋ถ resource์ ์ ๊ทผํ ์ ์๋๋ก ํ์ฉํ๋ ๋ฐฉ์
- ์ข
์ข
access matrix(์ ๊ทผ ํ๋ ฌ)์ ์ฌ์ฉํ์ฌ ์ ๊ณต๋จ.
- ํ ์ฐจ์์ resource์ ๋ํ ๋ฐ์ดํฐ ์ ๊ทผ์ ์๋ํ ์ ์๋ ์๋ณ๋ subject๋ก ๊ตฌ์ฑ๋จ.
- ๋ค๋ฅธ ์ฐจ์์ ์ ๊ทผ๋ ์ ์๋ object๋ฅผ ๋์ดํจ.
- ํ๋ ฌ์ ๊ฐ ํญ๋ชฉ์ ํน์ subject๊ฐ ํน์ object์ ๋ํด ๊ฐ๋ ์ ๊ทผ ๊ถํ์ ๋ํ๋.
Access Matrix
- ํ์ subject(์ฌ์ฉ์, process)๋ฅผ ๋ํ๋ด๊ณ ์ด์ object(ํ์ผ, ์ฅ์น)๋ฅผ ๋ํ๋.
- ํ๋ ฌ์ ๊ฐ ์ ๋ subject ๊ฐ object ์ ๋ํด ๊ฐ์ง ์ ์๋ ์ ๊ทผ ๊ถํ(์: ์ฝ๊ธฐ, ์ฐ๊ธฐ, ์์ )์ ๋ช ์ํจ.
Example of Access Control Structures
- Access matrix(์ ๊ทผ ํ๋ ฌ): subject์ object ๊ฐ์ ๋ชจ๋ ๊ถํ์ ํ๋ก ๋ํ๋.
- Access Control Lists(์ ๊ทผ ์ ์ด ๋ชฉ๋ก, ACLs): object ์ค์ฌ. ๊ฐ object์ ๋ํด ์ด๋ค subject๊ฐ ์ด๋ค ๊ถํ์ ๊ฐ๋์ง ๋ชฉ๋ก์ผ๋ก ๊ด๋ฆฌ (access matrix์ ์ด์ ํด๋น)
- Capability Lists(๋ฅ๋ ฅ ๋ชฉ๋ก): subject ์ค์ฌ. ๊ฐ subject๊ฐ ์ด๋ค object์ ๋ํด ์ด๋ค ๊ถํ์ ๊ฐ๋์ง ๋ชฉ๋ก์ผ๋ก ๊ด๋ฆฌ (access matrix์ ํ์ ํด๋น)
Extended Access Control Matrix
- ๊ธฐ์กด access matrix์ ํ์ฅํ์ฌ ์กฐ๊ฑด๋ถ access control์ ํฌํจํ ์ ์์.
- ์๋ฅผ ๋ค์ด, ํน์ subject๊ฐ object์ ๋ํ ๊ถํ์ ๋ค๋ฅธ subject์๊ฒ copy(๋ณต์ฌ)ํ๊ฑฐ๋ owner(์์ ๊ถ)๋ฅผ ์ด์ ํ๋ ๊ถํ, ๋๋ ์ ๊ทผ์ Audit(๊ฐ์ฌ)ํ๋ ๊ถํ ๋ฑ์ ์ถ๊ฐ๋ก ๋ช ์.
Access Control Function
- ์ฌ์ฉ์๊ฐ object์ ๋ํ ์ ๊ทผ์ ์์ฒญํ๋ฉด, Access Control Function(์ ๊ทผ ์ ์ด ํจ์)์ด ์์ฒญ์ ๊ฐ๋ก์ฑ.
- ์ด function์ Access Control Policy์ ์ฐธ์กฐํ์ฌ ์์ฒญ์ grantํ ์ง denyํ ์ง ๊ฒฐ์ ํจ.
- ๊ฒฐ์ ๊ฒฐ๊ณผ๋ Audit File์ ๊ธฐ๋ก๋ ์ ์์.
Table 4.2 Access Control System Commands
| ๋ช ๋ น | ์ค๋ช |
|---|---|
grant(subject, right, object) | subject์๊ฒ object์ ๋ํ ๊ถํ์ ๋ถ์ฌ |
revoke(subject, right, object) | subject๋ก๋ถํฐ object์ ๋ํ ๊ถํ์ ํ์ |
create(subject, object) | subject๊ฐ object๋ฅผ ์์ฑ. ์์ฑ์๋ ์์ ์๊ฐ ๋จ. |
delete(subject, object) | subject๊ฐ object๋ฅผ ์ญ์ . ์์ ์๋ง ๊ฐ๋ฅ. |
read(subject, attribute, object) | subject๊ฐ object์ ์์ฑ์ ์ฝ์. |
write(subject, attribute, object) | subject๊ฐ object์ ์์ฑ์ ๋ณ๊ฒฝ. ์์ ์๋ง ๊ฐ๋ฅ. |
Protection Domains
- object์ ๊ทธ object์ ๋ํ ์ ๊ทผ ๊ถํ์ ์งํฉ
- protection domains(๋ณดํธ ๋๋ฉ์ธ)๊ณผ ๋ฅ๋ ฅ์ ์ฐ๊ด์ํฌ ๋ ๋ ํฐ ์ ์ฐ์ฑ์ ์ ๊ณต
- Access matrix ์ธก๋ฉด์์, ํ ํ์ ๋ณดํธ ๋๋ฉ์ธ์ ์ ์ํจ.
- ์ฌ์ฉ์๋ ์์ ์ ์ ๊ทผ ๊ถํ์ ์ผ๋ถ๋ฅผ ๊ฐ์ง process๋ฅผ ์์ฑํ ์ ์์.
- process์ ๋๋ฉ์ธ ๊ฐ์ ์ฐ๊ด์ ์ ์ ์ด๊ฑฐ๋ ๋์ ์ผ ์ ์์.
- user mode(์ฌ์ฉ์ ๋ชจ๋)์์๋ ํน์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ด ์ฌ์ฉ์ผ๋ก๋ถํฐ ๋ณดํธ๋๋ฉฐ ํน์ ๋ช ๋ น์ด๋ ์คํ๋ ์ ์์.
- kernel mode(์ปค๋ ๋ชจ๋)์์๋ ํน๊ถ ๋ช ๋ น์ด๊ฐ ์คํ๋ ์ ์์ผ๋ฉฐ ๋ณดํธ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ ๊ทผํ ์ ์์.
UNIX File Access Control
- UNIX ํ์ผ์ i-nodes(์์ด๋
ธ๋, index nodes)๋ฅผ ์ฌ์ฉํ์ฌ ๊ด๋ฆฌ๋จ.
- ํน์ ํ์ผ์ ํ์ํ ์ฃผ์ ์ ๋ณด๊ฐ ์๋ ์ ์ด ๊ตฌ์กฐ
- ์ฌ๋ฌ ํ์ผ ์ด๋ฆ์ด ๋จ์ผ inode์ ์ฐ๊ด๋ ์ ์์.
- ํ์ฑ inode๋ ์ ํํ ํ๋์ ํ์ผ๊ณผ ์ฐ๊ด๋จ.
- ํ์ผ ์์ฑ, ๊ถํ ๋ฐ ์ ์ด ์ ๋ณด๋ inode์ ์ ์ฅ๋จ.
- ๋์คํฌ์๋ ํ์ผ ์์คํ ์ ๋ชจ๋ ํ์ผ์ inode๋ฅผ ํฌํจํ๋ inode ํ ์ด๋ธ ๋๋ inode ๋ชฉ๋ก์ด ์์.
- ํ์ผ์ด ์ด๋ฆฌ๋ฉด ํด๋น inode๊ฐ ์ฃผ ๋ฉ๋ชจ๋ฆฌ๋ก ๊ฐ์ ธ์์ ธ ๋ฉ๋ชจ๋ฆฌ ์์ฃผ inode ํ ์ด๋ธ์ ์ ์ฅ๋จ.
- directory๋ ๊ณ์ธต์ ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ๊ตฌ์ฑ๋จ.
- ํ์ผ ๋ฐ/๋๋ ๋ค๋ฅธ directory๋ฅผ ํฌํจํ ์ ์์.
- ํ์ผ ์ด๋ฆ๊ณผ ์ฐ๊ด๋ inode๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ๋ฅผ ํฌํจํจ.
- user ID(๊ณ ์ ์ฌ์ฉ์ ์๋ณ ๋ฒํธ, ์ฌ์ฉ์ ID)
- ๊ทธ๋ฃน ID๋ก ์๋ณ๋๋ ์ฃผ ๊ทธ๋ฃน์ ๋ฉค๋ฒ
- ํน์ ๊ทธ๋ฃน์ ์ํจ.
- 12๊ฐ์ ๋ณดํธ ๋นํธ
- ํ์ผ์ ์์ ์, ๊ทธ๋ฃน ๋ฉค๋ฒ, ๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ๋ชจ๋ ์ฌ์ฉ์์ ๋ํ ์ฝ๊ธฐ, ์ฐ๊ธฐ, ์คํ ๊ถํ์ ๋ช ์
- ์์ ์ ID, ๊ทธ๋ฃน ID, ๋ณดํธ ๋นํธ๋ ํ์ผ์ inode์ ์ผ๋ถ์.
Traditional UNIX File Access Control
- "set user ID"(SetUID)
- "set group ID"(SetGID)
- ์์คํ ์ด access control decision์ ๋ด๋ฆด ๋ ์ค์ ์ฌ์ฉ์์ ๊ถํ์ ๋ํ์ฌ ํ์ผ ์์ ์/๊ทธ๋ฃน์ ๊ถํ์ ์ผ์์ ์ผ๋ก ์ฌ์ฉํจ.
- ํน๊ถ ํ๋ก๊ทธ๋จ์ด ์ผ๋ฐ์ ์ผ๋ก ์ ๊ทผํ ์ ์๋ ํ์ผ/resource์ ์ ๊ทผํ ์ ์๊ฒ ํจ.
- Sticky bit(์คํฐํค ๋นํธ)
- directory์ ์ ์ฉ๋ ๋, ํด๋น directory ๋ด์ ํ์ผ ์์ ์๋ง์ด ํ์ผ์ ์ฌ๋ช ๋ช , ์ด๋ ๋๋ ์ญ์ ํ ์ ์๋๋ก ์ง์ ํ๋ ๊ฒ
/tmpdirectory๋ ๋๊ตฌ๋ ํ์ผ์ ์์ฑํ๊ณ ์ญ์ ๊ฐ๋ฅํ๋ฐ, linux๋ฅผ ๊ณต๋์ผ๋ก ์ฌ๋ฌ ์ฌ์ฉ๊ณผ ์ฌ์ฉํ ๋ quater๊ฐ ์ ํด์ ธ ์๋๋ฐ, tmp directory๋ system reboot๋ ๋ ๋ค ์ญ์ ๋จ.f1๋ผ๋ ํ์ผ์ ์์ฑํ๋๋ฐ, ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ ํ์ผ์ ์ญ์ ํ ์ ์๋๋ก ํด์ผ ํ๋๋ฐ,rwx๋ก ๋์ด ์์ผ๋ ๋๊ตฌ๋ directory ๋ด์ฉ์ ๋ณ๊ฒฝ ๊ฐ๋ฅํจ. ํ์ง๋ง ๊ทธ๋ ๊ฒ ํ๋ฉด ์ ๋๋ฏ๋ก sticky bit๊ฐ ์ค์ ๋ directory๋ ํด๋น ํ์ผ์ owner๋ง rename, move, deleteํ ์ ์์.
- Superuser(์ํผ์ ์ ): ๋ชจ๋ ๊ฒ์ ๋ค ํ ์ ์๋ ์ฌ์ฉ์
- ์ผ๋ฐ์ ์ธ access control ์ ํ์์ ์ ์ธ๋จ.
- ์์คํ ์ ๋ฐ์ ๊ฑธ์น ์ ๊ทผ ๊ถํ์ ๊ฐ์ง.
Access Control Lists (ACLs) in UNIX
- Modern UNIX ์์คํ
์ ACL๋ supportํจ.
- FreeBSD, OpenBSD, Linux, Solaris ๋ฑ์์
- FreeBSD
setfacl๋ช ๋ น์ UNIX ์ฌ์ฉ์ ID ๋ฐ ๊ทธ๋ฃน์ ๋ชฉ๋ก์ ํ ๋นํจ.- ํ์ผ์ ์์์ ์์ ์ฌ์ฉ์ ๋ฐ ๊ทธ๋ฃน์ ์ฐ๊ด์ํฌ ์ ์์.
- ์ฝ๊ธฐ, ์ฐ๊ธฐ, ์คํ ๋ณดํธ ๋นํธ
- ํ์ผ์ด ACL์ ๊ฐ์ง ํ์๋ ์์.
- ํ์ผ์ ํ์ฅ ACL์ด ์๋์ง ์ฌ๋ถ๋ฅผ ๋ํ๋ด๋ ์ถ๊ฐ ๋ณดํธ ๋นํธ๋ฅผ ํฌํจํจ.
- process๊ฐ ํ์ผ ์์คํ
object์ ์ ๊ทผ์ ์์ฒญํ ๋ ๋ ๋จ๊ณ๊ฐ ์ํ๋จ.
- ๊ฐ์ฅ ์ ์ ํ ACL์ ์ ํ (์์ ์, ์ง์ ๋ ์ฌ์ฉ์, ์์ ๊ทธ๋ฃน/์ง์ ๋ ๊ทธ๋ฃน, ๊ธฐํ)
- ์ผ์นํ๋ ํญ๋ชฉ์ ์ถฉ๋ถํ ๊ถํ์ด ํฌํจ๋์ด ์๋์ง ํ์ธ
- ํน์ ํ์ผ์ ์ญ์ ๊ถํ์ ์์ directory์ ๋ํ write ๊ถํ์.
Role-Based Access Control (RBAC)
- ์ฌ์ฉ์๋ role(์ญํ )์ ํ ๋น๋ฐ๊ณ , role์ resources์ ํ ๋น๋ฐ๋ ๊ตฌ์กฐ
- user-role, role-resources ๊ด๊ณ๋ฅผ ํตํด access control์ ๊ด๋ฆฌ
- ์ฌ์ฉ์๋ session(์ธ์ ) ๋ด์์ ํน์ role์ ํ์ฑํํ์ฌ ํด๋น role์ ๋ถ์ฌ๋ ๊ถํ์ ํ์ฌ
Role-Based Access Control Models
- RBAC๋ ์ฌ๋ฌ ๋ชจ๋ธ๋ก ๊ตฌ์ฑ๋๋ฉฐ, ๊ณ์ธต์ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง ์ ์์.
- Core RBAC(ํต์ฌ RBAC): user, role, permission, session์ ๊ธฐ๋ณธ ์์๋ฅผ ์ ์
- Hierarchical RBAC(๊ณ์ธต์ RBAC): role ๊ฐ์ ์์ ๊ด๊ณ๋ฅผ ์ง์ํ์ฌ ๊ถํ ๊ด๋ฆฌ์ ํจ์จ์ฑ์ ๋์.
- Static Separation of Duty RBAC(์ ์ ์ง๋ฌด ๋ถ๋ฆฌ RBAC): ์ํธ ๋ฐฐํ์ ์ธ role์ ์ ์ํ์ฌ ์ดํด ์์ถฉ์ ๋ฐฉ์งํจ.
- Dynamic Separation of Duty RBAC(๋์ ์ง๋ฌด ๋ถ๋ฆฌ RBAC): ํ session ๋ด์์ ํ์ฑํ๋ ์ ์๋ role๋ค์ ์ ํํจ.
Constraints
- ์กฐ์ง์ ํ์ ๋ฐ ๋ณด์ policy์ ํน์์ฑ์ RBAC๋ฅผ ์ ์ฉํ๋ ์๋จ์ ์ ๊ณต
- Role ๊ฐ์ ์ ์๋ ๊ด๊ณ ๋๋ role๊ณผ ๊ด๋ จ๋ ์กฐ๊ฑด
- ์ ํ
- Mutually exclusive roles(์ํธ ๋ฐฐํ์ ์ญํ )
- ์ฌ์ฉ์๋ (์ธ์ ๋์ ๋๋ ์ ์ ์ผ๋ก) ์งํฉ ๋ด์ ํ role์๋ง ํ ๋น๋ ์ ์์.
- ๋ชจ๋ ๊ถํ(์ ๊ทผ ๊ถํ)์ ์งํฉ ๋ด์ ํ role์๋ง ๋ถ์ฌ๋ ์ ์์.
- Cardinality
- role๊ณผ ๊ด๋ จํ์ฌ maximum number๋ฅผ ์ค์
- Prerequisite roles(์ ํ ์กฐ๊ฑด ์ญํ )
- ์ฌ์ฉ์๊ฐ ํน์ ๋ค๋ฅธ role์ ์ด๋ฏธ ํ ๋น๋ ๊ฒฝ์ฐ์๋ง ํน์ role์ ํ ๋น๋ ์ ์์์ ์ง์
- Mutually exclusive roles(์ํธ ๋ฐฐํ์ ์ญํ )
NIST RBAC Model
- SSD: Static separation of duty
- DSD: Dynamic separation of duty
Basic Definitions
- Object
- ํ์ผ, ํ๋ฆฐํฐ, ํฐ๋ฏธ๋, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ ์ฝ๋ ๋ฑ access control์ ๋์์ด ๋๋ ๋ชจ๋ ์์คํ resource
- Operation(์ฐ์ฐ)
- ํ๋ก๊ทธ๋จ์ ์คํ ๊ฐ๋ฅํ ์ด๋ฏธ์ง๋ก, ํธ์ถ ์ ์ฌ์ฉ์๋ฅผ ์ํด ์ผ๋ถ ๊ธฐ๋ฅ์ ์คํ
- Permission(๊ถํ)
- ํ๋ ์ด์์ RBAC ๋ณดํธ object์ ๋ํด ์ฐ์ฐ์ ์ํํ๋ ๊ฒ์ ๋ํ ํ์ฉ, ์น์ธ
Core RBAC
- Administrative functions(๊ด๋ฆฌ ๊ธฐ๋ฅ)
- ์ฌ์ฉ์ ์งํฉ์์ ์ฌ์ฉ์ ์ถ๊ฐ ๋ฐ ์ญ์
- role ์งํฉ์์ role ์ถ๊ฐ ๋ฐ ์ญ์
- user-to-role ํ ๋น ์ธ์คํด์ค ์์ฑ ๋ฐ ์ญ์
- permission-to-role ํ ๋น ์ธ์คํด์ค ์์ฑ ๋ฐ ์ญ์
- Supporting system functions(์ง์ ์์คํ
๊ธฐ๋ฅ)
- ๊ธฐ๋ณธ ํ์ฑ role ์งํฉ์ผ๋ก ์ฌ์ฉ์ session ์์ฑ
- session์ ํ์ฑ role ์ถ๊ฐ
- session์์ role ์ญ์
- session subject๊ฐ ์์ฒญ๋ ์ฐ์ฐ์ object์ ๋ํด ์ํํ ๊ถํ์ด ์๋์ง ํ์ธ
- Review functions(๊ฒํ ๊ธฐ๋ฅ)
- ๊ด๋ฆฌ์๊ฐ role assignment๋ permission assignment๋ฅผ ํ์ธํ๊ณ ๊ด๋ฆฌํ ์ ์๊ฒ ํ๋ ๊ธฐ๋ฅ
- ๋ชจ๋ธ์ ๋ชจ๋ ์์์ ๊ทธ ๊ด๊ณ๋ฅผ ์์ ํ์ง ์๊ณ ๋ณผ ์ ์๊ฒ ํจ.
Hierarchical RBAC
- General role hierarchies: ์์์ partial ordering์ ํ์ฉ
- Limited role hierarchies: tree ๊ตฌ์กฐ๋ฅผ ์ฑํํ์ฌ cycle์ด ๋ฐ์ํ์ง ์๋๋ก ํจ
Static Separation of Duty Relations (SSD)
- ํ ์ฌ์ฉ์๊ฐ ์งํฉ ๋ด์ ํ role์ ํ ๋น๋๋ฉด, ํด๋น ์งํฉ์ ๋ค๋ฅธ ์ด๋ค role์๋ ํ ๋น๋ ์ ์๋๋ก ํ๋ ์ํธ ๋ฐฐํ์ ์ธ role ์งํฉ์ ์ ์๋ฅผ ๊ฐ๋ฅํ๊ฒ ํจ.
- role ์งํฉ์ ์นด๋๋๋ฆฌํฐ ์ ์ฝ์ ๋ ์ ์์.
- (role set, n) ์ ํํ๋ก ์ ์๋๋ฉฐ, ์ด๋ค ์ฌ์ฉ์๋ ํด๋น role ์งํฉ์์ n๊ฐ ์ด์์ role์ ํ ๋น๋์ง ์์.
- role ์งํฉ ์์ฑ ๋ฐ ์ญ์ , role ๋ฉค๋ฒ ์ถ๊ฐ ๋ฐ ์ญ์ ๋ฅผ ์ํ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ํฌํจํจ.
- ๊ธฐ์กด SSD ์งํฉ์ ์์ฑ์ ๋ณด๊ธฐ ์ํ ๊ฒํ ๊ธฐ๋ฅ์ ํฌํจํจ.
Dynamic Separation of Duty Relations (DSD)
- ์ฌ์ฉ์์๊ฒ ๊ฐ์ฉํ ๊ถํ์ ์ ํํจ.
- ์ฌ์ฉ์ session ๋ด์์ ๋๋ session ๊ฐ์ ํ์ฑํ๋ ์ ์๋ role์ ์ ์ฝ์ ๋ .
- ์ ์ฝ์ (role set, n) ์์ผ๋ก ์ ์๋๋ฉฐ, ์ฌ๊ธฐ์ n์ ์์ฐ์ ์ด๊ณ , ์ด๋ค ์ฌ์ฉ์ session๋ role ์งํฉ์์ n๊ฐ ์ด์์ role์ ํ์ฑํํ ์ ์๋ ์์ฑ์ ๊ฐ์ง.
- ๊ด๋ฆฌ์๊ฐ ์ฌ์ฉ์์ ๋ํด ์๋ก ๋ค๋ฅธ, ๊ฒน์น์ง ์๋ ์๊ฐ๋์ ํน์ ๋ฅ๋ ฅ์ ์ง์ ํ ์ ์๊ฒ ํจ.
- DSD ๊ด๊ณ๋ฅผ ์ ์ํ๊ณ ๋ณด๊ธฐ ์ํ ๊ด๋ฆฌ ๋ฐ ๊ฒํ ๊ธฐ๋ฅ์ ํฌํจํจ.
Example of Access Control Administration
- HR ๋ถ์: ์ฌ์ฉ์ ์ง์ ๊ฐ ID์ ๋ํ์ฌ role์ ์ ์ํ๊ณ , role์ ๋ํด์ ๊ฐ ์ฌ์ฉ์๋ฅผ ํน์ role์ assign
- ๋ฐ๋ผ์, ํ๋์ ์ฌ์ฉ์๊ฐ ์ฌ๋ฌ role์ assign๋ ์ ์์.
- Application ๊ด๋ฆฌ์: ์ด๋ค application์ด ์ด๋ค access ๊ถํ์ ๊ฐ๋์ง ์ ์
- Authorization ๊ด๋ฆฌ์: ์ด๋ค role์ด ์ด๋ค application์ ์ ๊ทผํ ์ ์๋์ง ์ ์
- RBAC ํ๊ฒฝ์์๋ ๊ด๋ฆฌ role์ด user-to-role ํ ๋น ๋ฐ permission-to-role ํ ๋น์ ๊ด๋ฆฌํจ.
- ์๋ฅผ ๋ค์ด, '์ฌ์ฉ์ ๊ด๋ฆฌ์' role์ ์ฌ์ฉ์์๊ฒ role์ ํ ๋นํ๊ณ , '๊ถํ ๊ด๋ฆฌ์' role์ role์ ๊ถํ์ ํ ๋นํ๋ ์์ ์ ์ํํจ.
Attribute-based Access Control (ABAC)
- ์์ฑ์ ํจ๊ป ๊ฒฐํฉํ๋ policy์ ๊ธฐ๋ฐ
- ์ฌ์ฉ์ ์์ฑ, resource ์์ฑ, ํ๊ฒฝ ์์ฑ ๋ฑ
- ์: ๋์ด, role, ์งํจ ๋ฑ / ์ฝ๊ธฐ, ์ญ์ , view ๋ฑ / object type ๋ฑ
- ๋ค์ํ ์์ฑ์ ํ๊ฐํ ์ ์๋ ๋ณต์กํ Boolean rule set์ ํํํ ์ ์์.
- ์:
- policy: ๊ด๋ฆฌ์๋ ์์ ์ ์ง์ญ ๋ด์ transaction์ ๋ณผ ์ ์์.
- policy:
user.role == manager์ธ ์ฌ์ฉ์๋user.region == transaction.region์ธ ๊ฒฝ์ฐtable == TRANSACTIONSํ ์ด๋ธ์ ๋ํดaction == SELECT์์ ์ ์ํํ ์ ์์.
