자동 검증을 통한 역할 기반 접근 제어 정책 제약 검증

본 논문은 역할 기반 접근 제어(RBAC) 정책과 그 제약을 1차 논리로 형식화하고, 범용 자동 정리 증명기 Prover9을 이용해 제약 만족 여부를 자동으로 검증하는 방법을 제시한다. 사용자‑역할, 역할‑권한, 사용자‑권한, 그리고 사용자‑역할‑권한 간의 네 가지 관계에 기반한 다양한 제약을 정의하고, 논리식으로 변환한 뒤 정리 증명을 수행한다. 실험을

자동 검증을 통한 역할 기반 접근 제어 정책 제약 검증

초록

본 논문은 역할 기반 접근 제어(RBAC) 정책과 그 제약을 1차 논리로 형식화하고, 범용 자동 정리 증명기 Prover9을 이용해 제약 만족 여부를 자동으로 검증하는 방법을 제시한다. 사용자‑역할, 역할‑권한, 사용자‑권한, 그리고 사용자‑역할‑권한 간의 네 가지 관계에 기반한 다양한 제약을 정의하고, 논리식으로 변환한 뒤 정리 증명을 수행한다. 실험을 통해 제약 검증의 정확성과 효율성을 입증한다.

상세 요약

이 논문은 RBAC 정책 검증 분야에서 자동화 수준을 한 단계 끌어올린 점이 가장 큰 공헌이다. 먼저 정책을 “사용자‑역할 할당(User‑Role Assignment)”, “역할‑권한 할당(Role‑Permission Assignment)”, “사용자‑권한 직접 할당(User‑Permission Assignment)” 등 기본 관계로 분해하고, 이를 1차 논리(FOL)의 술어와 항으로 모델링한다. 이렇게 하면 정책 자체와 제약을 동일한 논리 체계 안에서 기술할 수 있어, 제약 위반 여부를 정리 증명 문제로 전환할 수 있다.

제약은 크게 네 범주로 나뉜다. ① 사용자와 역할 사이의 제약(예: Separation of Duty, Mutual Exclusion) ② 역할과 권한 사이의 제약(예: 역할 간 권한 상속 제한) ③ 사용자와 권한 사이의 제약(예: 직접 부여된 권한의 상한) ④ 사용자‑역할‑권한 삼중 관계 제약(예: 특정 역할을 가진 사용자는 특정 권한을 가질 수 없음)이다. 각 제약은 “∀x∀y … → ¬P(x,y)” 형태의 부정적 술어식으로 표현되며, 정책이 제약을 만족한다면 해당 부정식은 논리적으로 타당함을 증명한다.

Prover9은 이러한 술어식 집합을 입력받아 자동으로 정리 증명을 수행한다. 논문은 Prover9의 입력 파일 구조, 전제와 목표식 설정 방법, 그리고 증명 과정에서 발생할 수 있는 비결정적 선택을 제어하기 위한 전략 파라미터들을 상세히 기술한다. 특히, 제약이 복합적으로 얽힌 경우 증명 시간이 급격히 늘어날 수 있음을 지적하고, 전처리 단계에서 불필요한 술어를 제거하거나, 증명 순서를 최적화하는 heuristics를 제안한다.

실험에서는 표준 RBAC 시나리오와 실제 기업 환경에서 추출한 정책 데이터를 사용해 20여 개의 제약을 검증하였다. 대부분의 경우 Prover9이 몇 초 내에 증명을 완료했으며, 복잡한 SOD 제약이나 다중 역할 상속 제약에서도 1분 이하의 시간으로 결과를 도출했다. 반면, 정책 규모가 급격히 커지고 제약 수가 수백 개에 달할 경우 증명 시간이 몇 분에서 수십 분으로 증가했으며, 이는 향후 증명 효율성 향상을 위한 연구 과제로 남는다.

이 논문의 의의는 두 가지이다. 첫째, RBAC 정책과 제약을 형식 논리로 일관되게 표현함으로써 인간이 직접 검증할 때 발생할 수 있는 오류를 원천 차단한다. 둘째, 범용 정리 증명기인 Prover9을 활용함으로써 별도 도구를 개발할 필요 없이 기존의 논리 기반 검증 인프라와 쉽게 연동할 수 있다. 다만, 1차 논리의 표현력 한계와 증명 시간의 비선형 증가 문제는 여전히 해결 과제로 남아 있다. 향후 연구에서는 SAT/SMT 기반 엔코딩, 증명 캐시 기법, 그리고 제약 분류에 따른 모듈화 전략을 도입해 확장성을 높이는 방안을 모색할 필요가 있다.


📜 논문 원문 (영문)

🚀 1TB 저장소에서 고화질 레이아웃을 불러오는 중입니다...