Preventing the creation of covert channels in concurrency control is the most important issue in the database security, i.e., ensuring secret information keep secret to unauthorized users while controlling concurrent transactions. Developing secure concurrency control mechanisms, however, often incurs additional problems, such as the starvation of high transactions and the possibility of non-serializable schedule due to the existence of low transactions. We, in this thesis, propose a secure multiversion concurrency control algorithm based on the concepts of a C-set and a T-lock. The main objective of our algorithm is to make the high security level transactions free from starvation while a serializable schedule is produced. Our algorithm improves the availability of multilevel secure database (MLS/DB) by resolving the starvation problem of high security level transactions when low security level transactions have the highest priority in their execution. We also show that our algorithm satisfies the security and correctness requirements.'
사회가 다양화 복잡해지면서 조직에서 관리해야 하는 정보의 양은 홍수같이 쏟아지고 있다. 이러한 정보 중에는 그 성격에 따라 조직의 운용에 치명적인 영향을 미칠 수 있을 수도 있다. 따라서 조직의 운용에 필요한 정보를 중요도에 따라 다양하게 분류 함으로써 정보의 오용과 남용을 예방해야 할 필요성은 자명하게 된다. 정보를 그 중요도에 따라 보안 등급(security level)을 부여하고, 각 등급별 별개의 시스템으로 관리할 수 있겠지만, 그에 따른 관리적 비용적 측면에서 볼 때에는 효율적이지 못하다. 따라서 분류된 정보를 하나의 데이타베이스 시스템에서 관리하며, 서로 다른 보안등급 사용자들의 이러한 정보에 대한 접근을 통제할 수 있는 다단계 보안 데이타베이스 (multilevel secure database)에 관한 연구가 많이 진행되고 있다.
다단계 보안 데이터베이스에는 몇 가지의 해결되어져야 할 현안을 갖고 있다. 그 중 다단계 보안 트랜잭션(multilevel secure transaction)의 수행을 통제하는데 있어서 데이타의 무결성 유지는 물론 보안측면에서 다른 문제들이 발생하여 오히려 역기능으로 작용할 수 있는 여지를 남기게 된다. 이와 같은 문제들은 비밀 정보 통로(covert channel)의 생성, 상위 트랜잭션의 기아현상 (starvation), 비 직렬화(non-serializable) 스케줄의 생성 및 판독 이상(retrieval anomaly) 등으로 정리될 수 있다.
본 논문에서는 멀티 버전(multiversion)을 이용하여 제반 문제들을 해결할 수 있는 동시성 제어 기법을 제안한다. 제안한 기법에서는 다단계 보안 트랜잭션이 접근할 수 있는 버전의 가시성을 통제할 수 있는 T-잠금(T-lock)을 정의하고 있다. T-잠금은 다단계 보안 트랜잭션들의 충돌관계로부터 유도된다. 서로 다른 보안등급을 갖는 다단계 보안 트랜잭션들이 데이터 객체에 수행하게 될 연산 유형에 따라 읽기 집합(read set)과 쓰기 집합(write set)을 이용하여 트랜잭션들 사이의 충돌관계를 상충 트랜잭션 집합(conflict transaction set)을 이용하여 파악한다. 먼저 스케줄러에게 제출되었던 하위 트랜잭션이 늦게 수행을 시작할 때 상위 트랜잭션보다 높은 우선 순위를 갖고 수행을 하게 된다. 이 때 생성되는 버전은 그 타임스탬프가 빠르므로 상위 트랜잭션은 그 새로운 버전을 읽을 가능성을 갖고 있다. 이러한 상황에서 낮은 보안등급의 트랜잭션이 생성하는 새로운 버전에 T-잠금을 설정하게 된다. 상위 트랜잭션으로 하여금 T-잠금이 설정된 버전을 읽을 수 없게 하면 상위 트랜잭션은 판독 이상문제를 일으키지 않게 되며, 단일판 직렬 스케줄(one-copy serial schedule)을 생성한다. 결과적으로 하위 트랜잭션은 우선순위를 갖고 수행을 하게 되므로 비밀 정보 통로의 생성이 예방되며, 상위 트랜잭션은 버전에 의한 기아 현상에서 벗어날 수 있게 된다.
제안하는 알고리즘은 보안에 관련된 문제(비밀 정보 통로의 생성)를 해결할 수 있게 되었다. 또한 적용할 수 있는 보안등급의 수에 구에 받지 않고 다단계 보안 데이터베이스를 운영할 수 있게 되었다. 모든 트랜잭션에게는 멀티버전 데이터를 적용할 때의 판독 이상에 의한 기아현상을 해결하여 각 트랜잭션의 수행을 보장함으로 성능의 향상까지 기대할 수 있다. 그러나 하나의 데이터 객체에 대해 다수의 버전이 존재하는 멀티버전을 관리하는 비용에 대한 세밀한 평가가 요구되며, 또한 보안요구가 강화될수록 그 요구를 충족하는 메카니즘으로 인한 시스템의 성능 요구 및 제한사항 등에 대한 비교평가가 수반되어야 할 것이다. 따라서 이등을 위한 분석 및 비교 모델의 개발이 필요시 된다고 할 것이다.