프로그래밍[Univ]/컴퓨터보안

[컴퓨터보안] Access Control part 2. Authorization

Cloud Travel 2013. 5. 11. 23:04

* Authorization

 - 접근 제어 : 접근 범위를 제한(Resource 분배 문제)

 - 보호 받아야 할 시스템의 데이터와 자원에 대해서 행해지는 동작을 규제

 - Access control = Authorization + Authentication 이지만, Authorization만을 Access Control이라고 부르기도 한다.

 - 목적 : 데이터와 자원에 손상을 입히는 동작을 제어하기 위해서.

 

  주체 : 동작을 수행하는 대상

  객체 : 주체가 접근하는 대상

  reference monitor : 접근을 허락하거나 거부

  Access permission : 접근 제어 정책


* 접근 제어 행렬 (Access Control Matrix)

 - Lampson's Access control matrix

  > 주체를 열에 객체를 행에 표시

  

 - 주체와 객체가 커지게 되면 행렬을 유지하는데 어려움이 발생하게 된다. : 비효율적

 ⓐ Access Control Lists(ACLs)

  - 특정 객체에 따른 주체들의 권한을 저장한다.

  - ACL(Program 1) = {(Alice,x), (Bob,rx)}

 ⓑ C-Lists(Capabilities Lists, 권한 행렬)

  - 한 사용자에 할당된 각 자원의 권한을 열거한다.

  - C-Lists(Alice) = {(OS,rx),(Program1, x), (Program2, rwx), user data(w)}

 - 특정 프로그램에 대한 접근 제어에는 C-Lists가 유리하다.

 - ACLs는 지속적으로 사용자 정보가 기준이 되어 효율이 떨어지게 된다.


* 권한 위임과 혼돈

 

 - 객체이면서 주체가 되는 대상이 존재한다.(위 예의 Compiler)

 - 이를 이용해 간접적으로 권한을 넘어선 행동이 가능하게 된다.

  >  Alice가 Compiler를 이용해 Data를 손대려고 한다.

 - 이를 방지하기 위해 특정 주체가 사용하는 객체는 주체의 권한을 부여 받는다.

  > Alice가 Compiler를 사용하면 Compiler는 Alice의 권한을 적용받아 Data에 접근을 할 수 없게된다.

 - ACLs는 이와 같은 상황을 대비하기가 힘들다.

 - C-Lists는 ACLs에 비해 보다 효율적인 Solution을 제공한다.


* ACLs vs C-Lists

 - ACLs

  > 사용자 관점에서 파일 관리가 쉽다

  > 데이터 중심의 보호이다.

  > 자원에 대한 권리 변경이 쉽다.

  > 구현이 쉽다.

 - C-Lists

  > 권한 위임을 더쉽게 처리가 가능하다 > 대리 혼돈(권한 위임)문제를 피하기 쉽다.

  > 사용자를 쉽게 추가/삭제가 가능하다.

  > 구현이 어렵다

 - 현재는 C-Lists사용을 권고하고 있다.