1.Access Control Matrix
![](https://velog.velcdn.com/images/hjee02018/post/53b9fc7a-d80c-427a-aafb-00b8e59464fb/image.JPG)
행 : Subjects (users)
열 : Objects (resources)
- subject와 object수가 많아지면 행렬의 크기도 매우 커지므로 공간을 효율적으로 관리해야함
- 비어있는 공간의 낭비가 많아지므로 사용자와 자원이 많은 실제 시스템에 사용하기에는 부적합
=> 이를 효과적으로 관리하기 위해 ACL과 CL을 사용
2. Access Control Lists (ACLs)
1) ACLs
-
Store access control matrix by column (열 기준, object중심)
![](https://velog.velcdn.com/images/hjee02018/post/3e4bad80-ab41-401b-b894-18f23f578509/image.jpg)
-
object별 접근 권한
-
사용자보다 자원의 개수가 더 많은 경우에 사용
-
Unix기반 OS에서 사용됨 (Linux, macOS)
2) ACL 방식의 장/단점
단점
ⓐ 자원 중심 행렬이기 때문에 사용자가 많고 지속적으로 변화하는 시스템에는 부적합
ⓑ 사용자간 권한을 일임할 수 있는 환경에서도 부적합
ⓒ 사용자가 가진 모든 접근 권한을 찾거나 or 탈퇴한 사용자의 권한을 박탈해야하는 경우에는 유리하지 않음
장점
ⓐ 구현이 간단함
3) Unix security
: ACL 기반이며, 16 bit로 권한을 저장
3. Capabilities (CL)
1) CL
- Store access control matrix by row(행 별, subject 중심)
![](https://velog.velcdn.com/images/hjee02018/post/11ed239b-49ca-44a5-8bf1-ae69ed5dfca5/image.jpg)
- subject별 접근 권한
- 사용자 중심의 접근 제어가 필요한 경우 사용
2) CL방식의 장/단점
장점
ⓐ Runtime security checking에 효과적
ⓑ 권한 위임이 ACL보다 쉬움
단점
ⓐ 하나의 파일에 대해 여러 사용자의 소유권 변경이 까다로움
4. ACLs vs Capabilities
![](https://velog.velcdn.com/images/hjee02018/post/43912119-c4a2-4fec-a97b-1f2bdd50b71a/image.jpg)
-
용어에서부터 감이 오겠지만 ACL의 경우 파일별 "접근 권한" 리스트를 통해 접근 제어를 실현하는 반면, CL의 경우 사용자별 "(접근이)가능한파일"리스트를 통해 접근 제어를 실현
-
ACL은 권한이 object 중심(by column)
-
CL은 subject 중심(by row)
※ 여기서 by-row와 by column은 access 권한 정보가 row(열)에 저장되엇는지 column(행)에 저장되었는지를 구분
5. Others
1) Browsers wrt Access Control
- 브라우저(Web Browser)는 웹 애플리케이션을 실행하는 환경으로, 웹 페이지의 표시 및 상호작용을 담당합니다. 브라우저는 웹 애플리케이션에서 실행되는 JavaScript 코드를 실행하고, 웹 페이지와 관련된 리소스를 로드하고 표시합니다.
- 브라우저는 웹 애플리케이션에서 발생하는 다양한 보안 및 접근 제어에 대한 기능을 제공합니다. 이를 브라우저의 웹 액세스 컨트롤(Web Access Control)이라고 합니다.
ⓐ same origin policy
브라우저에서 실행되는 JavaScript 코드가 웹 페이지를 로드한 출처(프로토콜, 도메인, 포트)와 동일한 출처에서만 액세스할 수 있도록 제한
ⓑ sandbox
모래밭, 즉 제한된 영역에서 프로그램을 실행하도록 제한하는 정책
ⓒ 쿠키 제한