본문 바로가기

IT 살이/03. 관리 - 보안 관리

[연재] 2. 보안 정책 평가( 권한 풀이)프로세스

2. 정책 평가 / 권한 부여 프로세스

어셈블리가 어디서 왔고, 누가 만들었는지에 대한 정보를 어셈블리의 증거(evidences)라고 한다. 이런 어셈블리가 제시하는 증거들을 근거로 해서 어셈블리가 부여받을 수 있는 권한 집합(permission set)을 결정하게 되는데, 이런 과정을 정책 평가(policy evaluation)라고 한다. 대신에 달봉이는 권한 풀이(permission resolving)라는 말로도 표현한다.

증거들을 근거로 해서 어셈블리의 권한을 결정할 수 있으려면, 증거별 권한(permission)을 평가, 부여할 수 있는 정책이 PC에 정의되어 있어야 할 것이다. 이런 정의를 보안 정책(security policy)라고 하며 보안 정책에 대한 내용은 .config 파일에 XML 포맷으로 담겨져 있다. 이런 보안 정책 파일에는 쉽게 말하면 "어느 URL에서 온 어셈블리에는 어떤 권한을 부여할 것이고 그리고 어떤 공개키를 갖는 어셈블리에는 어떤 권한을 부여할 것이다"등등의 내용이 들어 있다. 이런 정책 평가 구조를 나타내면 다음과 같을 것이다. 

증거와 보안정책

입력되는 어셈블리의 증거들과 보안정책을 바탕으로 해서 어셈블리의 권한을 결정하는 과정을 앞에서 말한 것처럼 어셈블리 이름풀이(assembly permission resolving)이라 했고, 이것을 담당하는 CLR의 시스템을 어셈블리 권한풀이기(permission resolver, 정책 평가기 policy evaluator)라고 부르겠다. 그림에서 권한 풀이기는 어셈블리들에 대한 증거들을 입력받아서 결과적으로 어셈블리에 대한 권한을 결과물로 내놓는 블랙박스로 표현하고 있다.

권한 풀이 과정을 다시 순차적으로 그려보면 다음과 같다.

어셈블리 권한풀이 과정

권한풀이 과정을 하나씩 알아가 보자.