工學博士學位論文 - dspace.inha.ac.kr로그램의 운영 중에 생기는 많은...

126

Upload: others

Post on 07-Feb-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

  • 工學博士學位論文工學博士學位論文工學博士學位論文工學博士學位論文

    XML XML XML XML 문서문서문서문서 소스를소스를소스를소스를 위한위한위한위한 효율적인효율적인효율적인효율적인 접근접근접근접근 제어제어제어제어 관리관리관리관리

    시스템시스템시스템시스템

    Efficient Access Control Management System for XML

    Document Sources

    2002002002007777年年年年 8888月月月月

    仁荷大學校仁荷大學校仁荷大學校仁荷大學校 大學院大學院大學院大學院

    情報情報情報情報工學科工學科工學科工學科

    趙趙趙趙 先先先先 文文文文

  • 工學博士學位論文

    XML 문서 소스를 위한 효율적인 접근 제어 관리

    시스템

    Efficient Access Control Management System for XML

    Document Sources

    2007年 8月

    仁荷大學校 大學院

    情報工學科

    趙 先 文

  • 工學博士學位論文

    XML 문서 소스를 위한 효율적인 접근 제어 관리

    시스템

    Efficient Access Control Management System for XML

    Document Sources

    2007年 8月

    指導敎授 柳 元 熙

    이 論文을 博士學位 論文으로 提出함.

    仁荷大學校 大學院

    情報工學科

    趙 先 文

  • 이 論文을 趙先文의 博士學位 論文으로 認定함

    2007年 8月 日

    主審

    副審

    委員

    委員

    委員

  • i

    요 약

    XML은 SGML에서의 복잡성을 제거하고 HTML에서의 고정된 태그의 한

    계에서 벗어나 사용자가 문서 구조를 정의할 수 있게 한다. 또한 스스로 의미

    있는 정보를 기술할 수 있는 장점을 이용해 기업체의 데이터베이스나 응용 프

    로그램의 운영 중에 생기는 많은 데이터들에 대한 정보 교환 형태의 표준 데

    이터 타입을 제공한다. 이에 대용량 XML 데이터의 효율적인 관리와 보안의

    필요성이 점차 중요시되고 있어 XML에 관한 안전한 접근 제어 기법을 개발하

    는 일이 필요하다.

    기존의 접근 제어는 HTML의 근본적인 한계 때문에 정보 구조와 의미론

    을 충분히 고려하지 못하였다. 또한 XML 문서에 대한 접근 제어는 읽기 실행

    만을 제공하며, 복잡한 권한의 평가 과정 때문에 시스템 성능이 저하되는 문

    제점이 존재한다. 따라서 XML 접근 제어 기법을 위해 보다 단순하고 효율적

    인 평가 엔진(evaluation engine)에 관한 연구 방법이 필요하다.

    이러한 문제점을 해결하기 위해 본 논문에서는 미세 접근 제어가 가능한

    XACMS(XML Access Control Management System)를 설계하고 구축한다.

    이를 위해 HTML 문서에 대해 고안된 것보다 미세한 XML 접근 제어 정책을

    정의한다. 접근 제어 시스템을 개발함에 있어 어떤 권한부여를 명세하고 어떤

    접근 제어를 실행해야 하는가와 관련하여 XML 문서 권한부여 주체와 객체 정

    책에 관하여 기술한다. 또한 단일 XML 문서나 DTD에 대해서도 권한부여를

    명세할 수 있다. 보안을 위한 XML 접근 권한부여의 정책을 제안하고 효율적

    인 문서 관리를 위한 권한부여 전파 규칙과 XML 접근 제어 알고리즘을 기술

    한다. XML 문서를 위한 XACMS를 제안하고, DTD 및 각각의 XML 문서와 관

    련된 권한부여 시트 사용을 도입한다.

  • ii

    XACMS는 아주 미세한 접근 보호 수준을 지원할 만큼 유연하다. XML 문

    서 검색에 있어서 사용자가 XML 문서의 특정 항목에만 접근할 수 있도록 권

    한을 부여함으로써, 사용자의 권한 범위에 해당하는 데이터만을 제공한다. 이

    를 위해서는 XML 문서로부터 사용자의 권한에 따라 권한이 허용되지 않는 부

    분은 제거하고 접근이 허가된 부분만을 전달한다. XACMS는 특정 XML 문서

    에서 누가 어떤 접근 권한을 실행할 것인가를 고려하면서 조직 전반에 걸친

    정책 관리자와 단일 문서 작성자의 요구를 원만하게 조정한다. 그러므로 기존

    접근 제어에서 복잡하고 반복적으로 수행되었던 권한 평가의 비용을 감소시킬

    수 있다.

    제안한 XACMS는 XML 문서와 구조의 변경이 허용하는 환경에서도 지원

    된다. 또한 XML 문서는 보통 웹 사이트 기반으로 사용되고 있으므로 기존의

    웹 서버에 확장도 가능하다. 실험 결과, XACMS는 기존의 접근 제어 기술에서

    복잡한 권한의 평가 과정으로 시스템 성능이 저하되는 문제점을 개선시켰다.

    따라서 본 논문에서 제안한 XACMS가 기존의 접근 제어 방법보다 향상되었음

    을 보여주었다.

  • iii

    ABSTRACT

    XML as a simplified dialect of SGML overcomes the limitations of

    HTML with a fixed set of tags and thereby allows its users to define their

    own document structures. In addition, this provides standardized data

    types taking a form of exchanging data generated during managing

    databases or operating applications in enterprises, by taking advantage of

    its merit that it can describe meaningful information by itself. Accordingly

    since there are increasing needs for the efficient management and security

    of the massive volume of XML data, it is necessary to develop a secure

    access control mechanism for XML.

    The existing access control has not taken information structures and

    semantics into full account due to the fundamental limitations of HTML. In

    addition, access control for XML documents allows only read operations,,,,

    and there exists the problem of slowing down system performance due to

    the complex authorization evaluation process. Therefore in order to

    develop a XML access control technique, research on more simple and

    efficient evaluation engines are required.

    In order to resolve this problem, this paper designs and builds a

    XACMS(XML Access Control Management System) which is capable of

    making fined-grained access control. For this, it makes more fined-

    grained access control policies for XML documents than ones designed for

    HTML documents. And then, in developing an access control system, it

    describes the subject and object policies of authorization for XML

    document on which authorization levels should be specified and which

    access control should be performed. In addition, it is possible to specify

  • iv

    authorization constraints for a single XML document and/or DTD. It

    proposes access authorization policies for XML documents for security,

    and describes authorization propagation rules and algorithms for XML

    access control. And also this paper introduces the use of authorization

    sheets related to DTD and each XML document, proposing the XACMS for

    XML documents.

    The XACMS is recognized by its flexibility, featuring its capability of

    supporting very fined-grained access protection levels. This provides data

    only corresponding to its users' authority levels by authorizing them to

    access only the specific items of XML documents when they're searching

    XML documents. In order to do this, the XACMS eliminates certain parts of

    documents which are inaccessible and transmits parts accessible

    depending on its users' authority levels. It adjusts smoothly the needs of

    the policy manager of an overall organization and a single document

    creator, taking owner of access authority for particular XML documents

    into consideration. Therefore this system can reduce authorization

    evaluation costs increased by complex and repetitive authorization

    evaluation practices in the existing access control mechanism.

    The proposed XACMS can be used in the environment which XML

    documents and structures maybe changed. In addition since XML

    documents are used on the basis of normal web sites, it can be expanded

    to existing web servers. As the result of experiments, the XACMS can

    alleviate the problem of slowing down system performance due to the

    complex authorization evaluation process in the existing access control

    techniques. Therefore this result indicated that the XACMS proposed in

    this paper are an improved system compared to existing access control

    practices.

  • v

    목목목목 차차차차

    요 약....................................................................................................................i

    ABSTRACT.......................................................................................................iii

    제 1 장 서 론.................................................................................................. 1

    1.1 연구 배경 ............................................................................................. 1

    1.2 연구 범위 및 구성 ............................................................................... 8

    제 2 장 관련 연구 .......................................................................................... 12

    2.1 XML................................................................................................... 12

    2.2 DOM 기술 .......................................................................................... 19

    2.3 XML 기반 접근 제어 ......................................................................... 22

    2.4 DOM 기반의 XML 접근 제어 ............................................................ 32

    제 3 장 XML 문서들을 위한 접근 제어 정책 설계 ....................................... 42

    3.1 XML 접근 제어 정의 ......................................................................... 42

    3.2 XML 문서 권한부여 주체 정책.......................................................... 46

    3.3 XML 문서 보안 권한부여 객체 정책 ................................................. 50

    3.4 안전한 접근 권한부여의 명세화 ........................................................ 53

    제 4 장 효율적인 문서 관리를 위한 접근 권한부여 메커니즘....................... 59

    4.1 권한부여 전파 규칙 정책................................................................... 59

    4.2 XML 접근 제어 관리 알고리즘.......................................................... 64

    4.3 접근 제어 시스템 비교 ...................................................................... 71

    제 5 장 XML 접근 제어 시스템의 설계 및 실험 ........................................... 75

    5.1 접근 제어 시스템의 설계................................................................... 75

    5.2 접근 제어 평가 고찰 ......................................................................... 89

    5.3 접근 제어 성능 평가 ......................................................................... 94

    제 6 장 결론 및 향후 연구과제.................................................................... 100

    참 고 문 헌 ................................................................................................... 103

  • vi

    그림 목차

    [그림 2-1] XML 문서의 예............................................................................ 13

    [그림 2-2] [그림 2-1]의 문서 그래프 표현 ................................................. 15

    [그림 2-3] [그림 2-1]의 DTD의 예............................................................. 16

    [그림 2-4] [그림 2-3]의 DTD 그래프 표현 ................................................ 18

    [그림 2-5] DOM으로 표현한 XML 구성 요소............................................... 20

    [그림 2-6] DOM을 이용한 XML 문서 처리 과정 ......................................... 21

    [그림 2-7] XACL 코드의 규칙 1 .................................................................. 23

    [그림 2-8] XACL 코드의 규칙 2 .................................................................. 24

    [그림 2-9] XML 문서 트리 표현 ................................................................... 25

    [그림 2-10] XML 주체 시트.......................................................................... 26

    [그림 2-11] XACML 문맥 ............................................................................. 33

    [그림 2-12] XML 정책 언어 모델 ................................................................. 34

    [그림 2-13] 계층별 XML 보안 기술 ............................................................. 35

    [그림 2-14] XML의 접근 제어 과정 ............................................................. 35

    [그림 2-15] 접근 제어 목록.......................................................................... 36

    [그림 2-16] XML 문서들에 관한 접근 제어 ................................................. 39

    [그림 2-17] DTD 검사 과정 예 .................................................................... 40

    [그림 3-1] XML 문서의 인스턴스 ................................................................. 44

    [그림 3-2] XML 문서에 대한 권한 타입 ....................................................... 45

    [그림 3-3] XML 문서 내의 요소 권한 타입의 계층 구조............................. 45

    [그림 3-4] (a) 사용자 그룹, (b) IP, (c) 심볼릭 이름 .................................... 49

    [그림 3-5] X 대학교 조직의 예..................................................................... 54

  • vii

    [그림 4-1] 정책 기반의 예제 ........................................................................ 62

    [그림 4-2] XML 권한부여 시트 구문 ............................................................ 70

    [그림 5-1] XML 문서 보안을 위한 접근 제어 관리 시스템 구조................. 76

    [그림 5-2] 테스트 XML 문서........................................................................ 77

    [그림 5-3] [그림 5-2] XML 문서의 DTD.................................................... 77

    [그림 5-4] [그림 5-3]의 DTD 트리............................................................. 78

    [그림 5-5] XACMS에 접근하기 위한 사용자의 접근 정보 ........................... 80

    [그림 5-6] 사용자와 그룹 표현 ..................................................................... 80

    [그림 5-7] XML 문서 접근 제어 방법 .......................................................... 81

    [그림 5-8] XML 형식의 권한부여 설정......................................................... 84

    [그림 5-9] XML 문서 권한부여 설정 결과 1................................................ 85

    [그림 5-10] XML 문서 권한부여 설정 결과 2 ............................................. 85

    [그림 5-11] [그림 5-2]에 XML 문서 요소를 추가...................................... 87

    [그림 5-12] XML 문서 권한부여 설정 결과 3 ............................................. 87

    [그림 5-13] XACMS의 프로그램 ................................................................... 89

    [그림 5-14] 접근 가능성 비율 ...................................................................... 95

    [그림 5-15] 주체에 관한 변화 노드.............................................................. 96

    [그림 5-16] XML 질의 예 ............................................................................. 98

    [그림 5-17] 접근 제어에 대한 평가.............................................................. 98

  • viii

    표 목차

    [표 4-1] 접근 제어 시스템 비교 ................................................................... 72

    [표 5-1] 매개 변수 표현 ............................................................................... 97

    [표 5-2] XML 문서 크기와 매개 변수에 따른 실행 시간(ms) ..................... 97

    알고리즘 목차

    [알고리즘 4-1] XML 접근 제어 관리 알고리즘 ............................................ 65

    [알고리즘 4-2] 접근 제어 초기화 레이블링 알고리즘 .................................. 66

    [알고리즘 4-3] 권한 설정과 충돌 해결 알고리즘 ......................................... 67

    [알고리즘 4-4] 문서 제거 알고리즘 .............................................................. 69

  • 1

    제 1 장 서 론

    1.1 연구 배경

    컴퓨터 기술의 발전과 인터넷의 급속한 확산에 따라 사용자들은

    전자문서로부터 많은 정보를 얻을 수 있다. 따라서 기존의 전자문서에 포함된

    많은 정보를 효율적으로 관리하는 것은 매우 중요한 문제가 되었다. 다양하고

    방대한 양의 정보를 저장하고 관리하여 사용자의 요구 조건에 맞는 정보를

    빠르게 검색하고 유용한 정보를 제공하는 것이 정보 사회의 발전에 중요하다.

    XML(eXtensible Markup Language)은 인터넷상에서 논문, 의학, 경영 등

    복잡하고 구조화된 문서자료의 저장, 관리, 검색을 용이하게 할 수 있을 뿐만

    아니라 전자상거래, 전자 도서관, 가상대학 등의 핵심 응용 시스템의 구축에서

    중요한 역할을 하고 있다. XML은 SGML(Standard Generalized Markup

    Language)에 기반을 둔 단순하고 매우 유연성 있는 텍스트 타입이다. 인터넷

    상에서의 데이터 교환 및 표현의 표준으로 사용된 이후, 많은 새로운

    데이터들이 XML 타입으로 작성되고, 기존의 데이터들이 XML 타입으로

    변환되어 현재는 XML 형태의 데이터 양이 크게 증가하고 있다[Bray00].

    XML은 스스로 의미 있는 정보를 기술할 수 있는 장점을 이용해 기업체의

    데이터베이스나 응용 프로그램의 운영중에 생기는 많은 데이터들에 대한 정보

    교환 형태의 표준 데이터 타입을 제공할 수 있다. 따라서 상세 정보와 의미를

    정의하고 기술할 필요가 있는 컴포넌트 명세나 문서 관리 시스템 등에 매우

    적합하다.

    웹 상에서 정보가 XML 형태로 작성되고 변환됨에 따라 대용량 XML

  • 2

    데이터의 효율적인 관리와 보안의 필요성이 점차 중요하게 인식되고 있다. 웹

    환경에서 정보는 공용의 네트워크상에서 분산되고 공유되기 때문에 민감한

    정보에 대한 권한이 없는 사용자의 접근, 침입, 정보 위조와 같은

    공격으로부터 안전하지 못하다.

    기존 XML 문서의 정보 보호 기술에 관한 연구와 상용 제품들은 주로

    전송 계층 보안 프로토콜과 같은 낮은 수준의 보안을 사용하였다. 또한,

    정보에 대한 접근 제어(Access Control)도 대부분이 HTML 문서에 대한

    것이었다. 이는 파일 단위의 접근 제어로써 XML의 주된 장점인 정보의

    의미에 따른 접근 제어를 다룰 수 없었다. 이에 XML의 장점을 잘 적용한

    접근 제어 방법 연구가 필요하게 되었다[DVPS0a, DVPS0b, GaBr01, KuHa00,

    Savi01].

    XML 문서의 보안에 관한 연구는 XML 문서에 대한 전자서명 생성과

    검증 기능을 지원하는 XML 전자서명(XML Signature)[BBF02a], XML 문서에

    대한 암호화 및 복호화 기능을 제공하는 XML 암호화(XML Encryption)

    [ImDS02], 공개 키 등록과 위치와 검증을 위한 XML 키 관리(XKMS; XML

    Key Management Specification)[BBF02b] 등 다양한 보안 방식을 정의하고

    있다.

    XML 전자서명은 XML을 비롯한 디지털 콘텐츠 등 다양한 형태의

    전자문서에 대해 XML 형태의 전자서명을 생성하고 검증할 수 있는 XML

    기반의 전자서명 기법이며, 전자문서에 대한 인증, 무결성, 부인봉쇄 등의

    정보보호 기능을 제공해 줄 수 있다. XML 전자서명은 다수의 리소스에 대한

    전자서명을 한꺼번에 처리하여 하나의 전자서명 문서로 나타낼 수 있으며

    XML 문서에 대해서는 문서 전체에 대한 전자서명뿐만 아니라 XML 문서의

    특정 부분에 대해서도 전자서명을 할 수 있어 효율적인 처리가

  • 3

    가능하다[XMLs01, BBF02a, W3C02a].

    XML 암호화는 XML 문서 내용이 의도된 사용자에게만 구별 가능하고 그

    외의 사람들에게는 알기 힘들도록 XML 문서를 암호화하는 방법을 사용한다.

    W3C XML 암호화 작업 그룹은 XML 문서와 그 일부분을 포함한 디지털

    콘텐츠를 암/복호화하는 절차를 개발하고, 정보들과 암호화된 내용을 의도된

    사용자만이 복호화하고 표시하기 위한 XML 구문을 정의했다. XML 암호화는

    전달되는 정보뿐 아니라 저장된 정보에 대해서도 기밀성을 제공한다[XMLe02,

    ImDS02, W3C02b].

    XML 전자서명, XML 암호화 등은 많은 부분에서 공개키 기반

    구조(Public Key Infrastructure, PKI)에 의존하고 있는데 기존의 PKI를

    이용하기 위해서는 복잡한 데이터 구조나 API를 구현해야 한다. 이를

    웹서비스를 통해 해결하고 이용하게 하는 것이 XKMS의 기능이다[BBF02b,

    W3C02c, XMLK04]. XKMS는 W3C에 의하여 주도적으로 표준화가 진행되고

    있는 XML 키 관리이다. XKMS는 키의 등록, 키 정보의 해결이나 유효성 검증

    등 XML 기반의 공개키 관리를 위한 서비스 인터페이스와 프로토콜을

    정의하고 있다.

    보안을 필요로 하는 정보에 대한 초창기 연구는 접근 제어 정책 권한의

    관리자에 의해 객체에 대한 접근 권한이 정해지는 임의적 접근 제어(DAC:

    Discretionary Access Control)[Sand93], 정보의 보안 수준과 사용자의 보안

    등급에 따라 접근을 제어하는 강제적 접근 제어(MAC: Mandatory Access

    Control)[Sand93], 역할과 해당 역할의 권한을 정의하는 역할 기반 접근

    제어(RBAC: Role-Based Access Control)[SECF96]로 나눌 수 있다. 이러한

    정책을 실현하기 위한 접근 제어 메커니즘으로는 권한 주체(사용자)에 대해

    권한이 부여된 객체들의 목록으로 표현하는 접근 제어 목록, 권한 객체에

  • 4

    대해 접근이 허가된 주체들의 목록으로 표현하는 자격 목록 등이 있다.

    [SECF96]에서는 문서의 일부가 아닌 전체 문서에 대한 접근을

    허가하거나 거부하도록 하는 것에 초점을 둔 기본적인 시스템이다. 이

    시스템은 역할을 부여하는 사용자에 대한 정의와 역할 정보, 역할 계층 등

    정보를 하나의 설정 파일에 모두 포함하여 사용자에 대한 변경이나 역할

    정보에 대한 변경이 발생시 설정 파일을 일일이 재구성하여야 한다는 단점을

    가지고 있다.

    초기 권한부여 기반 접근 제어를 지원하는 몇 가지 프로젝트가

    실행되었다[SaBJ96]. 그러나 아파치 1.2 이상은 개별 파일을 보호하지만,

    파일의 부분에 대한 권한부여를 명세하지는 못한다. 그러므로 XML이

    제공하는 것과 유사한 의미론 문맥(semantic context) 중 지원할 수 있는

    것은 아무 것도 없으며, 시스템은 여전히 제한적이다.

    EIT SHTTP 스키마[ReSc99] 같은 몇몇 접근법은 보안 관련 HTML

    태그화를 사용하여 문서 내 권한부여를 명시적으로 나타낸다. 모든 문서에는

    그 문서에 대한 권한부여를 나타내는 관련 보안 태그가 있을 것이다. 이것은

    보다 강력한 접근 제어 메커니즘을 구성하기 위한 올바른 방향인 것 같지만,

    HTML의 근본적인 한계로 인해 이러한 제안은 정보 구조와 의미론을 충분히

    고려할 수 없다.

    기존의 데이터베이스에서 사용자에게 접근 권한을 부여하는 것과

    마찬가지로 XML 문서를 대상으로 한 검색에 있어서도, 사용자가 XML 문서의

    특정 항목에만 접근할 수 있도록 권한을 부여함으로써, 사용자의 권한 범위에

    해당하는 데이터만을 제공하는 기능이 필요하다. 이를 위해서는 사용자의

    접근 권한을 관리할 수 있어야 하며, 사용자가 XML 문서에 접근할 때 권한에

    따라 제어할 수 있어야 한다. 쉬운 방법은 권한에 따라 사용자별로 별도의

  • 5

    문서를 보유하는 것이나, 이는 기억 장소의 낭비와 문서의 중복에 따른 문서

    변경의 어려움이 있으므로, 하나의 문서로부터 사용자의 권한에 따라 권한이

    없는 부분은 제거하고 접근이 허가된 부분만을 전달하는 것이 필요하다.

    XML 문서의 접근 제어와 문서를 변경하는 방법은 XML 문서를

    파싱(parsing)하여 사용한다. 파싱하여 접근하는 기술은 세가지가 존재한다.

    첫째, 정규식(Regular Expression)을 이용하여 패턴 구조에 따른

    접근방법이다.

    둘째, XML 프로세서가 제공하는 자체 API를 이용한 문서의 접근 및 변경

    방법이다.

    셋째, 표준화된 API를 이용한 문서의 접근 및 변경 방법이다.

    정규식을 그대로 표현하여 수행하는 파싱은 단순한 XML 문서의 경우

    파싱을 쉽게할 수 있고, 파싱 속도가 빠른 이점이 있다. 그러나 이는 단일

    DTD에 대한 응용프로그래밍이며 다른 DTD에 대해서는 재사용할 수 없고,

    정규식을 지원하지 않는 프로그래밍 언어로는 이를 처리하기 어렵다는 등의

    문제점이 존재한다. 따라서 XML 프로세서는 여러 DTD에 대한 XML 문서의

    파싱을 위해 보다 특별하고 일반화된 방법을 제공할 수 있어야 하며

    프로세서에 대한 접근은 API를 이용하도록 해야 한다. API는 프로세서에 따라

    자체 API를 제공하는 방법과 표준화된 API를 제공하는 방법이 있다. 대표적인

    API는 SAX(Simple API for XML)[Megg99, SAX00]와 DOM(Document

    Object Model)[DOM02]이 있다.

    SAX는 객체 모델 기반이 아닌 이벤트 시퀀스로 XML 문서의 정보에

    접근하는 이벤트 기반의 XML 분석을 위한 표준 인터페이스이다. SAX는

    DOM과 달리 W3C 추천안이 아니다. SAX는 메모리 내에 문서 전체를 갖고

    있는 것이 아니므로, 구조나 내용에 따른 변경을 따로 만들어야 한다.

  • 6

    사용자는 문서의 모든 요소들을 조절할 수 없으므로 새로운 문서를 만들 수

    없다. DOM을 사용하는 목적은 어떠한 환경이나 애플리케이션에서도 사용할

    수 있는 표준 프로그래밍 인터페이스를 제공하는 데 있다. DOM API를

    사용해서 읽어 들인 XML 문서의 요소, 속성, 텍스트 내용을 추출한 후 XML

    문서를 변경한다. DOM은 XML 문서를 하나의 객체 모델로 인식하고 각

    객체를 인터페이스 개념으로 접근한다.

    접근 제어는 웹 데이터 관리에서 중대한 역할을 하여 데이터 서술에

    사용되는 언어, 검색과 브라우징 등 데이터에 대해 실행할 수 있는 타입의

    액션(action)들에 맞추어야 한다. 이러한 측면에서 XML과 관련한 접근 제어

    시스템 및 관련 기법을 개발하는 일이 중요하다. 이는 XML이 웹에서

    교환되는 정보를 제공하기 위한 언어로 사용되는 일이 증가하고 있기

    때문이다. 그러므로 XML 문서에 맞춘 접근 제어 정책을 명세하고 실행할 수

    있는 시스템과 기법이 강력하게 요구된다[JKKY05, JoYY05, JoY06a,

    JoY06b].

    XML 문서는 민감도가 다양한 정보를 포함하여 아주 작은 단위의 접근

    보호 수준을 지원해야 한다. 어떤 경우에는 여러 문서에 같은 접근 제어

    정책이 적용될 수 있고, 어떤 경우에는 같은 문서의 부분마다 다른 접근 제어

    정책이 적용될 수 있다. 접근 제어 기법은 아주 작은 단위의 보호 수준을

    지원할 만큼 충분히 유연해야 한다. 또한 기존의 웹 서버 기술의 확장이

    가능해야 한다. XML 문서는 보통 웹 사이트 기반으로 사용되고 있으므로

    기존의 웹서버에 XML 문서의 접근 제어 시스템을 확장할 수 있어야 한다.

    XML 문서가 항상 사전 정의된 문서 타입에 맞는 것은 아니다. 접근 제어

    정책은 문서 타입과 관련하여 명세될 가능성이 매우 높으므로 문서가 기존의

    접근 제어 정책에 의해 다루어지지 않는 상황을 적절하게 관리해야 한다.

  • 7

    웹에서는 문서 교환 및 수집 과정이 빈번할 수 있으므로 이러한 상황에

    적절히 대처할 수 있는 접근 제어가 요구된다.

    기존의 웹 기반의 접근 제어는 파일 단위나 파일의 부분에 권한을

    기술하는 것이 가능하다. 그러나 이런 방법은 XML 문서의 정보 의미에

    기반한 접근이나 요소와 같이 아주 작은 단위의 접근이 불가능하다. 이러한

    접근 제어 모델[DVPS0b, GaBr01, KuHa00]들은 DOM 트리를 이용하여 XML

    문서와 DTD의 요소에 접근 권한을 설정한다. 설정된 접근 권한 정보에 의해

    사용자의 XML 데이터 접근을 제어한다.

    [DVPS0b]은 XML 문서에 대한 접근 제어 모델을 제안하였다. 그러나

    이들은 XML 문서를 읽기 위한 의미론에 보다 치중해 있다. 더구나 복사

    정책은 상당히 복잡하다. 또한 이들은 단지 언어가 아닌 행동 모델을

    제시하고 있을 뿐이다.

    [GaBr01]은 권한부여 방법을 다양하게 정의하였다. 그러나 이 모델은

    모든 종류의 요소를 보호할 수 있는 가능성을 제공하지 않는다. 더구나 XML

    문서의 접근 제어는 읽기 연산만을 제공한다. 또한 거부 레이블링이 된

    요소에 대한 접근을 거부하는 레이블링 기법을 적용하는 것은 거부된 요소의

    하위 요소 역시 접근을 거부하게 하므로 데이터의 이용성에 한계가 있다.

    [KuHa00]은 조건부 액션 개념을 전통적 권한부여 의미론으로

    통합함으로써 보다 유연성 있는 권한부여를 할 수 있도록 하였다. 그러나

    완전하게 XPath 언어를 활용하지 않았다. 또한 접근 제어 시스템에서는

    권한의 평가 과정이 복잡하고 응답시간이 느린 단점이 있다. 그 이유는

    레이블링 과정과 DTD 검증 과정에서 XML 문서의 파싱 작업과 DOM 트리의

    반복적인 검색 때문이다.

    기존의 접근 제어 모델은 XML에 대한 모델과 마찬가지로 데이터를

  • 8

    의미론적으로 구조화할 수 있는 언어를 기반으로 하지 않는다는 사실에서

    유도되는 큰 한계가 있다. 따라서 안전한 권한부여를 관리하는 일이 매우

    어렵다. 특히 문서의 부분에 접근하고자 할 경우 페이지를 수동으로 여러

    부분으로 나누어 서로 다른 권한을 부여해야 한다. 또한 XML 문서 접근

    제어는 각 연산에 따른 접근 제어 기법이 복잡하다. 권한부여 설정과 DTD

    검증 과정에서 XML 문서의 파싱 작업과 DOM 트리의 반복적인 검색 때문에

    많은 메모리를 사용하여 시스템 성능이 저하되는 문제점도 발생한다[BBCF00,

    BCFM00, BeFe02, DVPS0a, DVPS0b, HaKu02, GaBr01, Savi01].

    XML 기반 접근 제어는 인터넷상의 접근 제어 서비스를 위해 서로 다른

    환경에서 일관되게 적용될 수 있는 권한부여 정책을 제공하고 정책을 통하여

    기존의 다양한 환경에 상호운영이 가능하도록 해야 한다. 본 연구는 XML

    문서를 위한 미세한 접근 제어 시스템 개념을 제안하면서, 문서에 대한

    권한부여를 나타내는 DTD 및 각각의 XML 문서와 관련된 권한부여 시트

    사용을 도입한다. 각각의 권한부여가 바로 XML 문서이므로 접근 제어 기법은

    XML 자체의 능력을 활용하고 있다. 따라서 안전한 XML 접근 권한부여

    기법을 위한 보다 단순하고 효율적인 접근 제어 관리 시스템에 관한 연구가

    필요하다.

    1.2 연구 범위 및 구성

    본 연구의 목적은 XML 자체의 능력을 활용하여 XML 문서 접근을 위한

    권한부여와 효율적인 문서 관리를 위한 메커니즘을 정의하고 설계하여 접근

    제어 관리 시스템을 구축하는 것이다. 보안 마크업은 XML 요소의 아주 작은

  • 9

    단위에서 인스턴스와 스키마 수준의 허가를 제공하는 데 사용할 수 있다. 본

    논문의 보안 마크업은 예외를 지원하면서 접속 허가 및 거부에 대한 지원뿐

    아니라 사용자 ID와 관련 그룹 멤버십 등 다양한 보호 요구사항을 쉽게

    표현할 수 있게 한다. 권한부여에서 서술한 요구사항을 실행하면 각

    의뢰자에게 문서를 보여주며 여기에는 의뢰자가 봐도 되는 정보만 포함된다.

    본 논문의 XACMS(XML Access Control Management System)는 특정 XML

    문서에서 누가 어떤 접근 권한을 행사할 것인가를 고려하면서 조직 전반에

    걸친 정책 관리자와 단일 문서 작성자의 요구를 원만하게 조정하는 것이다.

    본 논문의 주체 개념은 식별 번호와 위치로 구성되어 있다. 식별 번호에는

    그룹이나 조직 멤버십에 대한 정보가 포함될 수 있다. 객체의 아주 작은

    단위의 접근 보호 수준은 XML 문서 내의 단일 요소나 속성만큼 정교할 수

    있다. 본 논문은 데이터 종속 조건을 포함하고 있으며, 제한적 조건 같은

    다른 실행 조건을 쉽게 추가할 수 있도록 개방적이고 확장이 가능한

    시스템이다. 본 연구의 범위는 다음과 같이 요약될 수 있다.

    첫째, XML 문서는 민감도가 다양한 정보를 포함하여 아주 작은 단위의

    접근 보호 수준을 지원해야 한다는 사실과 XML 문서가 항상 사전 정의된

    문서 타입에 맞는 것은 아니라는 사실이다. XML 문서에 관해서도 단순한

    권한 시스템(허가와 거부)을 넘어서 좀 더 유연하게 정책을 기술하고 선택할

    수 있는 XML 접근 제어 방법을 고려한다.

    둘째, 기존 XML 문서의 접근 제어는 읽기만을 제공하며 쓰기 연산은

    제한적인 변경만을 허가하고 있다. XML 문서가 웹에서의 표준이 되면서 쓰기

    연산이 이용될 것이다. 이에 따른 다양한 쓰기와 쓰기 수행에 뒤따르는

    DTD의 변경에 관한 안전한 접근 권한부여 정책을 제안한다.

    셋째, 기존의 접근 제어는 사용자가 XML 문서들을 요청하면 먼저 DOM

  • 10

    트리를 얻기 위한 XML 문서들을 파싱한다. 파싱 후 XML 문서들과 권한

    데이터베이스의 권한을 참조하여 DOM 트리의 요소에 접근 허가 혹은 거부를

    의미하는 값을 설정한다. 그러나 DOM 트리의 모든 요소에 접근 권한을

    설정하기 위한 반복적인 트리의 검색으로 많은 메모리가 사용된다. 그러므로

    XML 문서의 접근 제어에서 권한의 평가 과정이 복잡하고 응답시간이 느린

    단점을 가지고 있다. 그래서 보다 효율적인 권한 평가와 빠른 응답시간을

    보장할 수 있는 XML 문서 접근 권한부여 전파 정책을 제안한다.

    넷째, 본 논문은 HTTP 접속을 통해 사용자가 요청하는 XML 문서

    보기의 신속한 온라인 처리를 보장하는 접근 제어 관리 알고리즘을 제안한다.

    제안된 접근 제어 시스템은 XML 데이터에 대한 정교한 접근을 정의할 만큼

    강력하고 XML 문서의 서버 사이드 보안 프로세서 설계를 다소 수월하게

    만든다.

    본 논문의 구성은 다음과 같이 구성된다.

    제 2장에서는 관련 연구로서 XML 문서의 기본 구성과 DTD에 관하여

    그래프로 설명하고 기본적인 개념을 서술한다. API 기술로서 DOM을 이용하여

    사용자가 문서의 조작, 변경, 접근할 수 있는 API를 설명한다. 또한 XML

    기반 접근 제어의 기술과 기존의 접근 제어에 관한 문제점을 서술하고, DOM

    기반 XML 접근 제어의 문제점과 접근 제어를 위한 요구사항을 정리하여 접근

    제어 연구의 필요성을 서술한다.

    제 3장에서는 기존의 접근 제어 문제점을 개선하기 위한 XML 접근

    제어를 정의 한다. 그리고 접근 제어 시스템을 개발하려면 어떤 권한부여를

    명세하고 어떤 접근 제어를 실행해야 하는가와 관련하여 XML 문서 권한부여

    주체 정책 및 권한부여 객체에 관하여 정의한다. 안전한 보안을 위한 XML

  • 11

    접근 권한부여의 명세 기법을 6-튜플로 서술한다.

    제 4장에서는 효율적인 문서 관리를 위한 접근 권한부여 전파 규칙을

    기술한다. 또한 기존의 접근 제어의 문제를 해결할 수 있는 XML 접근 제어

    관리 알고리즘을 제안하여 기술한다.

    제 5장에서는 XACMS 구조와 접근 제어 요청 평가를 기술한다. 그리고

    XML 접근 제어를 위한 XACMS의 실험을 통하여 평가 및 고찰한다.

    끝으로 제 6장에서는 본 논문의 결론을 제시하고 향후 연구 계획을

    기술한다.

  • 12

    제 2 장 관련 연구

    본 장에서는 XML 문서의 기본 구성과 DTD에 관하여 그래프로 설명하고

    기본적인 개념을 서술한다. 그리고 API 기술로서 DOM을 이용하여 사용자가

    문서의 조작, 변경, 접근할 수 있는 API를 설명한다. 또한 XML 기반 접근

    제어로 기존의 XACL, XrML에 관한 문제점을 서술한다. 추가로 DOM 기반의

    XML 접근 제어의 문제점과 접근 제어를 위한 요구사항을 정리하여 서술한다.

    2.1 XML

    XML 문서의 기본 구성은 요소(element)이다. 요소는 깊이에 관계없이

    내포될 수 있으며 하위 요소를 포함할 수도 있다. 요소는 두 태그에 의해

    한계가 정해진 문서의 부분을 포함한다. 요소의 시작 부분에 있는 타입의 시작 태그와 요소의 끝부분에 있는 타입의 종료

    태그, 타입의 빈 요소도 가능하다. 회사 부서에 관한 정보가

    들어 있는 XML 문서의 예는 [그림 2-1]과 같다. 이 문서는 생산 부서

    사원들의 이름, 주소, 이력서, 급여, 의료 기록을 제공한다. 사원마다 문서는

    관리자에 관한 정보도 기록하고 있다. 이 그림에서 부서 요소는 문서 요소 즉

    문서의 모든 요소를 담고 있는 가장 바깥쪽 요소의 예이다. 사원, 주소,

    이메일은 XML 문서의 계층 구조에서 깊이가 다른 요소들의 예이다. 주소

    요소는 거리, 전화번호, 이메일 요소가 들어 있다는 점에서 하위 요소가 있는

    요소의 예이다. 거리는 텍스트가 들어 있는 요소의 예이고 이메일은 빈

  • 13

    요소의 예이다.

    . . .

    . . .

    SunMoon

    Jo

    Inha University 253 YongHyun Dong, Nam Ku,

    Incheon, Korea

    032 860 1441

    032 867 1441

    . . .

    . . .

    . . .

    . . .

    150만원

    . . .

    . . .

    . . .

    [그림 2-1] XML 문서의 예

    속성은 이름 = 값 형태로 되어 있다. 여기서 이름은 레이블이고, 값은

  • 14

    인용 문자열, 요소의 시작 태그 내에 열거되어 있다. 속성은 요소 식별자나

    문서의 다른 요소와의 링크(단일 대상을 가리키는 IDREF 타입의 속성이나

    여러 대상을 가리키는 IDREFS)이다. 또는 요소에 대한 추가 정보를 명세할

    수 있도록 타입이 다양할 수 있다. 예를 들어, [그림 2-1]과 관련하여 사원과

    관리자 사이에 존재하는 관계는 그 값이 사원 관리자의 ID인 사원 요소에서

    관리자라고 지명된 IDREF 속성에 따라 만든다.

    논문[DFFL99, MiZo98]에서의 연구를 기반으로 XML 문서와 DTD를

    형식에 맞게 서술한다. ℒℇ

    는 요소 식별자 집합이고, 레이블(Label)은 요소

    태크와 속성 이름, 값(Value)은 속성과 요소 값의 집합이다.

    [정의 2-1] XML문서

    XML 문서는 튜플(tuple) d = (Vd, v d, Ed, ØEd)이다. 여기에서,

    =V d VVa

    d

    e

    d∪ 는 요소와 속성을 나타내는 노드의 집합이다. 각각의 v

    ∈ ve

    d 는 연관된 요소 식별자 idv ∈ ℒℇ

    가진다. 여기에서 각각의 V ∈

    va

    d 는 값 val ∈ V 값을 연관하여 가진다;

    v d는 문서 요소(문서 root에서 호출)를 나타내는 노드이다;

    =E d ⊆∪ EE aded VV dd × 는 에지(edges)의 집합이다. 여기서 e ∈

    Ee

    d 는 요소-하위 요소 관계 또는 IDREF(s) 속성으로 인하여 요소 사이에

    링크, 그리고 e ∈ Ea

    d 는 요소-속성 관계를 에지로 표현한다;

    ØEd : Ed → Label는 에지 레이블링 함수이다.

    [그림 2-2]는 [그림 2-1]의 XML 문서를 그래프로 표현한 것이다. XML

  • 15

    문서는 요소와 속성 및 이들 사이의 에지 관계를 나타내는 레이블으로 구성된

    그래프로 표현한다. ID 속성 값일 수 있는 요소 식별자가 들어 있는 요소를

    나타내는 노드는 시스템에 의해 자동적으로 생성될 수 있다. 이는 ID 타입의

    속성이 정의되지 않을 경우이다. 속성을 나타내는 노드는 해당 값과 함께

    원으로 표시된다. 단순성 면에서 요소의 데이터 내용은 이름이 내용이고, 값이

    요소 데이터 내용 자체인 요소의 특수한 속성으로 표시된다.

    [그림 2-2] [그림 2-1]의 문서 그래프 표현

    그래프에는 요소-속성과 요소-하위 요소 관계를 나타내는 에지와

    IDREF(다른 요소의 ID를 참조하기 위한 속성) 타입의 속성에 의해 도입된

  • 16

    요소들 간의 링크를 표시하는 링크 에지가 들어있다. 에지는 목적지

    노드(destination node)의 태그(요소나 속성)로 레이블되고 실선으로 표시되는

    반면, 링크 에지는 해당 IDREF 속성명으로 레이블되고 점선으로 표시된다.

    ]>

    [그림 2-3] [그림 2-1]의 DTD의 예

    XML 문서에는 문서 타입 선언이 추가되어 XML 문서가 따라야 할

    규칙을 명세한다. 이러한 규칙은 일괄적으로 문서 타입 정의(DTD)라고 한다.

    예를 들면, [그림 2-3]은 [그림 2-2]의 문서에 대한 DTD를 보여준다.

    DTD는 두 부분(요소 선언과 속성 목록 선언)으로 이루어져 있다. 요소 선언

    부분은 문서에 들어 있는 요소들의 구조를 명세한다. 특히 요소의 경우에는

  • 17

    그 하위 요소와 순서, 임의의 선택인지 여부(‘?’), 더 나타낼지 여부(일반적인

    의미로 ‘*’ or ‘+’), 하위 요소들이 서로 대체할 수 있는지 여부(‘|’), 데이터

    내용 타입을 명세한다. 타입은 내용이 허가되지 않을 경우는 EMPTY(빈

    태그로 사용됨을 지정), 모든 종류의 내용이 허가될 경우는 ANY(태그의

    형식에 구애 받지 않고 어떤 형식도 올 수 있는 태그), 데이터 내용만 허가될

    경우는 #PCDATA(Parsed Character Data)이다. 속성 목록 선언 부분은 명칭,

    타입, 선택 절(선택 속성을 나타내기 위한 #IMPLIED, 필수 속성을 나타내기

    위한 #REQUIRED), 그리고 디폴트 값과 관련하여 요소마다 그 속성 목록을

    명세한다.

    ℒℇ t는 DTD 요소 식별자 집합이고, “Label*”을 {*, +, ?}의 부호와

    레이블에서 이름의 연결을 통해 얻은 문자열의 집합이다. “Type”은 타입의

    집합이라 한다: Type={EMPTY, ANY, #PCDATA, ID, IDREF, IDREFS,

    CDATA}. DTD의 개념은 다음과 같이 정의한다.

    [정의 2-2] 문서 타입 정의(DTD)

    문서 타입 정의는 튜플 t = (Vt, v t, Et, ØE t)이다. 여기에서,

    =V t VVa

    t

    e

    t∪ 는 요소와 속성 타입을 나타내는 노드의 집합이고,

    각각의 ν ∈ ve

    t는 연관된 DTD 요소 식별자 idt ∈ ℒ

    ℇt 가진다. ν ∈

    va

    t 는 타입 t ∈ type을 가진다;

    v t는 모든 DTD 요소(DTD root에서 호출)를 나타내는 노드이다;

    ⊆E t VV tt × 는 에지의 집합이라 할 때, 여기서 e ∈ Et 는 요소-하위

    요소 또는 요소-속성 관계를 나타낸다;

    ØEt : Et →Label* ∪ {union, content}는 에지 레이블링 함수이다.

  • 18

    [그림 2-4] [그림 2-3]의 DTD 그래프 표현

    [그림 2-4]는 [그림 2-3]의 DTD를 그래프로 나타낸 것이다. DTD는

    요소가 흰색 원으로 표시되고 속성 타입이 회색 원으로 표시되는 그래프로

    표시된다. DTD 그래프에서 "*"나 "+"뒤에 나오는 에지 레이블은 반복 가능한

    요소를 나타낸다. "?"뒤에 나오는 에지 레이블은 선택 요소를 나타낸다.

    DTD에서 해당 요소의 선택적 하위 요소 중의 선택을 나타내기 위해 에지

    레이블 합집합을 도입한다. 합집합 레이블 에지는 요소를 나타내는 노드와

    선택적 하위 요소를 나타내는 모든 노드에 연결되는 선택을 나타내는 노드를

    연결한다. 요소는 그래프에서 노드로 표시되므로 요소와 노드라는 용어를

    구별 없이 사용한다. 또한 IDREF(S; IDREF와 비슷하나 여러 속성 값을

    스페이스로 구분) 속성을 링크라 부른다. XML 소스에는 몇몇 문서와 DTD가

    포함될 수 있다. 특히 XML 소스에서는 두 종류의 문서를 찾아볼 수 있는데,

    유효한 문서와 잘 구성된(well-formed: 올바른 구조와 구문을 사용하고 있는

  • 19

    것) 문서이다. well-formed 문서는 XML의 문법 규칙을 잘 따르는

    문서이다[W3C98]. 유효한 문서(valid document)는 해당 DTD에 부합되는

    문서이다. 따라서 유효한 문서는 소스에 있는 해당 DTD의 인스턴스라고

    생각할 수 있다.

    2.2 DOM 기술

    DOM(Document Object Model)은 HTML 문서 및 XML 문서와 같이

    인터넷 문서에 대하여 문서의 내용 및 구조를 객체로 표현하고 객체를 핸들링

    할 수 있다. 즉, 동적으로 문서의 내용과 구조, 스타일을 바꿀 수 있게 하는

    플랫폼에 독립적이고 언어 중립적인 인터페이스이다. DOM 워킹 그룹은

    DOM을 지원하는 인터페이스의 개발에 있으며 인터페이스를 이용하여

    사용자들이 일관된 방법으로 웹 문서(HTML, XML)에 대한 접근을 제공하게

    하는 것이 워킹 그룹의 목적이다. DOM 수준 1은 XML 및 HTML 문서에

    대하여 항해하거나 조작하는 기능이 주된 내용이다. 즉, 수준 1은

    오브젝트(태그)와 문서를 조작하고 접근하여 사용할 수 있는 인터페이스를

    정의한 것으로 파싱된 HTML이나 XML 문서의 내용을 손실 없이 표현할 수

    있으며, HTML 4.0, XML 1.0을 지원하고, 문서의 계층적 구조를 생성할 수

    있다. 상위 수준의 API(Application Programming Interface)가 쉽게 사용될

    수 있도록 확장이 용이하게 설계되었다. 수준 2에서는 스타일 시트를 적용한

    객체 모델을 지원하고, 문서에 스타일 정보를 조작하는 기능을 정의한다. 또한

    문서에 대한 풍부한 질의 기능과 이벤트 모델에 대한 정의 기능도 포함한다.

    수준 2 이상의 DOM에서는 원도우즈 환경에서 사용 가능한 사용자

    인터페이스를 기술하는 것도 포함한다. 이를 이용하여 사용자는 문서의

  • 20

    DTD를 조작하는 기능과 보안 수준까지 정의한다. 즉, DOM 수준 2이상이

    되면 문서의 스타일, 문서내의 이벤트 및 문서의 구조, 문서 내용, 문서의

    보안 수준 설정 등과 같은 문서의 모든 것에 대하여 DOM을 이용하여,

    사용자가 정의, 조작, 변경, 접근할 수 있는 API가 설계된다[DOM02,

    MLSA02].

    [그림 2-5]은 XML 문서를 DOM으로 처리하기 위해 XML의 주요 구성

    요소이다. 각각의 노드는 계층구조를 가지고 있는데 자식 노드를 가질 수

    있는 노드가 모두 같은 것은 아니다. XML DOM 구조의 최상위 노드로 문서가

    되면 자식 요소로 처리 명령 노드와 문서 타입 노드, 그리고 주석 노드를

    가진다. 최상위 노드는 자식 요소 이외에 속성 노드 목록을 가진다. 다음으로

    문서의 내용을 이루는 요소를 가진다. 문서를 구성하는 최상위 요소와 자식

    요소들로 XML 문서의 실례를 구성한다. 자식 요소를 구성할 수 있는

    요소들은 엔티티 참조 노드, CDATA 노드, 요소 노드, 처리 명령 노드, 텍스트

    노드, 주석 노드이다.

    [그림 2-5] DOM으로 표현한 XML 구성 요소

  • 21

    [그림 2-6] DOM을 이용한 XML 문서 처리 과정

    DOM을 사용하는 목적은 어떠한 환경이나 애플리케이션에서도 사용할

    수 있는 표준 프로그래밍 인터페이스를 제공하는 데 있다. 따라서 DOM은

    대부분의 프로그래밍 언어에서 사용할 수 있게 설계되었다. [그림 2-6]은

    DOM을 이용한 XML 문서 처리 과정을 표현한 것이다.

    [그림 2-6]에서 XML 문서 처리 과정을 설명하면,

    1. XML 문서를 조작하기 위해 XML 문서를 읽어 들인다.

    2. XML 파서로 XML 문서를 문서 트리 구조로 변환하다.

    3. DOM API를 사용해서 읽어 들인 XML 문서의 요소, 속성, 텍스트

    내용을 추출한 후 XML 문서를 조작한다.

    4. 조작한 XML 문서를 애플리케이션에 따라서 생성, 수정, 삭제한 후

    결과 문서를 만든다.

    DOM은 트리 조작과 관련한 프로그램을 라이브러리 형태로 작성해서

    개발자가 공유하게 한다. 따라서 트리 조작 라이브러리가 갖추어야 할 조건에

    대해서 명세해야 하며, 이러한 조건을 명세한 규약이 DOM 규약이다. DOM의

  • 22

    자료 구조에서 각각의 노드는 객체로 표현한다. DOM은 XML 문서를 메모리로

    읽어 들여 트리 형태로 변환 및 조작한다. 즉 DOM은 XML 문서를 하나의

    객체 모델로 인식하고 각 객체를 인터페이스 개념으로 접근하는 것이다. 객체

    모델은 객체를 크게 속성과 메소드로 구분할 수 있으며, 인터페이스는 객체의

    복잡한 내부 구현을 외부 애플리케이션에서 신경 쓰지 않게 간단한 속성과

    메소드로 정의해서 사용할 수 있도록 한다.

    2.3 XML 기반 접근 제어

    XACL(XML Access Control Language)은 어떤 주체가 어떤 XML 문서에

    대해 어떤 액션을 수행할 권한이 있는가를 명세할 수 있도록 한다. 또한 정책

    작성자가 조건과 의무를 명세한다. 조건은 평가에서 “ True ”와 “ False ”를

    판명하는 불울 논리식이다. 조건은 일시적(temporal), 위치 종속, 데이터 의존,

    시스템 특수한 제한 등 권한부여에 한정한다. 조건부 제한의 일례로 접근은

    근무 시간에만 허가할 수 있다. 의무는 특정 접근 결정에 대해 수행해야 할

    액션을 말한다. 의무는 XACL 내의 조건부 액션이라 한다

    XPath[W3C01] 식을 통해 명세되는 XML 문서에 개별 XML 요소만큼

    아주 작은 단위의 보호를 가질 수 있다. XPath는 귀납적으로 XML 목표

    문서의 모든 서브트리에 접근하거나 일정한 데이터 조건을 충족시키는 특정

    요소들에 접근한다. 이러한 XML 요소들은 몇몇 속성 값을 제한함으로써

    명세되고 부합된다. 그러나 XACL은 확장이 불가능하므로 주체, XML 문서,

    액션 등을 명세할 수 있는 추가 속성을 정의할 수 없는 문제점을 가지고 있다.

    또한 한 정책은 항상 정확히 한 목표 XML 문서와 관계가 있다. 정책 계층을

    정의할 수는 없으며, 정책 조합은 언어에 의해 지원되지 않는다.

  • 23

    XACL은 두 가지 주요 부분으로 구성되는데, 접근 평가 모듈과 요구 실행

    모듈로 구성된다. 접근 평가 모듈은 해당 접근 요구에 적합한 정책을 찾고

    조건부 실행뿐 아니라 접근 결정을 한다. 요구 실행 모듈은 목표 문서를

    적절하게 업데이트하거나 접근 결정이 ‘허가’일 경우 문서를 접근 의뢰자에게

    보기를 제공한다. [그림 2-7]의 규칙 1과 [그림 2-8]의 규칙 2는 XACL의

    예제를 설명하고 있다.

    patient

    eq

    ./patient/patient-number

    [그림 2-7] XACL 코드의 규칙 1

  • 24

    의뢰자 문맥과 같을 경우 주체, XML 문서, 실행이 정책과 부합되고,

    정의된 조건이 “True”라고 평가할 경우에만 규칙은 “True”라고 평가한다.

    [그림 2-7]에서 요소에서 compareStr 기능을 이용하여 목표 문서에

    있는 요소와 주체의 환자-수를 비교한다. XACL은 주체를 항상

    , , 이라는 세 가지 요소로 정의하므로 주체가 환자 그룹에

    속할 경우 uid가 환자-수에 부합되어야 한다는 전제 조건이 있다. 요청을

    제시하는 주체의 uid는 getUid 기능으로 추출할 수 있다.

    physician

    [그림 2-8] XACL 코드의 규칙 2

    규칙 2는 규칙 1에서 이미 설명과 유사하다. 요소는 규칙 1에 대한

    XACL 마크업으로 정의된 요소에 추가될 수 있을 뿐이다.

    요소는 요소를 명세한다. 이것은 단지 목표 문서의 요소

    내의 요소와 관계가 있다. 요소 내에서는 명세된 객체에 대해

    허가되는 실행과 주체에 관한 정보가 들어 있는 요소를 명세한다.

    요소는 의뢰자가 의사 그룹에 속해야 한다. 두 가지 요소는

  • 25

    읽기와 쓰기 허가를 명세한다. 쓰기 연산은 여기에 부속된 추가

    요소로서 쓰기 접근이 허가되면 쓰기 연산 후 접근을 도입해야

    한다고 제시 하였다.

    [GaBr01]은 XML 문서에 접근을 제한하는 모델이다. 이 논문에서는

    XML 문서를 트리로 표현하였다. 트리 노드는 다른 타입들(요소, 속성, 텍스트,

    코멘트 등)로 구성된다. 사용자는 접속 이름으로 사용할 수 있는 식별자를

    가지고 있다. 주체 계층은 XML 주체 시트에 개별적으로 표시된다.

    [그림 2-9] XML 문서 트리 표현

    [그림 2-9]와 같이 XML 문서는 단지 하나의 의료 기록을 포함하고 있는

    파일을 의미한다. XML은 [그림 2-9]에 있는 트리에 의해서 나타내질 수 있다.

    “/” 뒤에 있는 노드는 요소 노드이다. “@” 뒤에 있는 노드는 속성 노드이다.

    “text()” 뒤에 있는 노드는 테스트 노드이다. 다음은 XPath의 예이다.

  • 26

    sooyoung

    hyunju

    jungmin

    minji

    [그림 2-10] XML 주체 시트

  • 27

    경로 /files/record는 파일의 요소(child)인 각각의 기록 요소를 주소로

    지정한다. 경로 /files//text()는 파일의 요소(자손)인 각각의 텍스트 노드

    주소를 지정한다. 경로 ../@*는 모든 요소의 주소를 기록 요소로 지정한다.

    [GaBr01]은 권한부여 규칙을 4-튜플로 구성하였다. 권한부여 규칙은

    주체의 집합, 객체의 집합, 접근, 우선권으로 구성된다.

    객체는 XML 주체 시트의 요소 주체와 관련하여 주체의 위치 경로로 표현하고

    있는 객체의 XPath 트리 노드이다. 접근에 대한 값은 허가와 거부 중

    하나이다. 우선권은 선택 사항이다. 디폴트 우선권은 0이다.

    [그림 2-10]은 XML 주체 시트 문서로서 주체 계층을 네 명의

    사용자들로 기술하고 있다. 직원, 환자, 가족이라는 세 그룹이 있다. 직원

    그룹은 다시 세 가지의 하위 그룹으로 나뉘어 진다. 세 가지의 하위 그룹은

    의사, 간호사, 비서이다. 가족 그룹은 단지 sunmoon 가족의 하위 그룹만을

    포함한다. XML 주체 시트에 등록되어있는 사용자는 주체 요소와 관련된 위치

    경로로 선택된다.

    이 모델에서 권한 부여 규칙이 가지는 의미는 노드의 타입과는 상관이

    없이 표현했다. 만약 노드 n으로의 접근에 대한 승인이 사용자에게

    주어진다면 사용자는 n이 서브 트리를 볼 수 있도록 허가한다. 만약 노드

    n으로 접근에 대한 거부가 사용자에게 주어진다면 사용자는 n이 서브 트리를

    볼 수 있는 것에 대하여 거부한다. 다음 아래에 있는 디폴트 병원 정책은

    XML 권한부여 시트의 예이다. 이 시트는 [그림 2-9]에 있는 문서를

    적용하는 것이며, [그림 2-10]에서 XML 주체 시트를 참조하고 있다.

  • 28

    [GaBr01]에서는 권한 부여의 의미론을 다양한 것으로 정의하였다.

    그러나 이 모델은 모든 종류의 노드를 보호할 수 있는 가능성을 제공하지

    않는다. 더구나 충돌 해결 정책은 복잡하다. 즉, 의미론은 보호를 받는 객체에

    따라서 다양해진다는 것을 의미한다. 또한 XML 문서의 접근 제어는 읽기

    연산만을 제공하고, 접근 제어 시스템의 구현에서 권한의 평가 과정이

    복잡하고 응답시간이 느린 단점이 있다.

    [KuHa00]은 조건부 액션 개념을 전통적 권한부여 의미론으로

    통합함으로써 보다 유연성 있는 권한부여 결정을 하도록 하였다. 조건부의

    권한 부여 규칙은 사용자에게 자신의 요청이 권한 부여를 받게 되거나 혹은

    시스템이 특정 보안 액션을 취하게 하는 규칙이다. 조건부 권한부여 모델은

    다음과 같다.

    정의 1: 권한부여 정책은 7-튜플로 표현된다.

  • 29

    object는 디렉터리 경로식과 같은 목표물의 자원을 이용한다. subject는

    권한부여 프로세서로부터의 출력물인 사용자 id와 같은 정보를 이용한다.

    action은 목표물에 허가된 접근 모드이다(주체가 목표 요소 및 그 아래의 어떤

    하위 트리에 속성 타입과 값을 삭제할 수 있도록 허가). permission은 접속이

    허가되는지 혹은 거부되는지 여부를 가리키는 기호이다. 조건부 액션

    (provisional_action)은 권한부여 정책에 확장된 의미론을 부가하는 데

    사용되는 일련의 함수이다. 문맥(context)은 요청이 발생하는 시간, 요청이

    시작된 장소이다. 논리식(formula)은 2진수 값 즉 참 또는 거짓으로 평가된다.

    이 식은 권한부여 요청에 적합한 권한부여를 선택하는 평가함수로 사용된다.

    정의 2: 권한부여 요청은 4-튜플로 구성된다.

    정의 3: 권한부여 결정은 6-튜플로 구성된다.

    이 논문에서는 개별적으로 속성 혹은 테스트 노드를 보호하는 가능성을

    제공하지 않는다. 또한 완전하게 XPath 언어를 활용하지 않는다. 접근 제어

    시스템에서는 권한의 평가 과정이 복잡하고 응답시간이 느린 단점이 있다. 그

    이유는 레이블링 과정과 DTD 검증 과정에서 XML 문서의 파싱 작업과 DOM

    트리의 반복적인 검색 때문이다.

    [LIPS03]은 갱신 연산을 지원하는 XML 모델을 제안하기 위해 XML

    갱신 연산자를 정의했고, 이를 접근 제어 모델에 포함시켰다. 접근 제어에

    갱신 연산자를 추가하면서 발생하는 성능상의 문제점을 해결하기 위해 새로운

    액션 타입을 정의했다. 액션 타입은 R 타입, U 타입, D 타입, E 타입 등 4개의

    타입으로 분류된다. 접근 제어 모델에서는 접근 제어의 과정을 2단계로

    나누었다. 이와 같이 접근 제어의 과정을 2단계로 나눔으로써, 1단계에서

  • 30

    거부되는 연산자들로 인한 불필요한 작업이 제거할 수 있다고 하였다.

    그러나 이 논문에서는 환경을 가정하여 연구하였다. 예를 들면, XML의

    엘리먼트 사이에 의미적 종속성은 없다. 또한 검색보다는 갱신 질의가 매우

    빈번하게 발생한다. 이 논문에 문제점은 검색 질의에 대해서 오버헤드가 많이

    발생한다. 또한 복사 정책은 상당히 복잡하고, 완전하게 XPath 언어를

    활용하지 않는다. 그리고 이 논문은 단지 언어가 아닌 행동 모델을 제시하고

    있을 뿐이다.

    XrML[CoGu01]은 디지털 자원 활용에 대한 권리와 조건을 표현하기

    위한 XML 기반이다. XrML은 직접적인 방식으로 다양한 작업 흐름 단계에서

    단순한 권리와 복잡한 권리를 모두 표현할 수 있다는 점에서 포괄적이다.

    또한 여러 분야로 확장되고 적용될 수 있다는 점에서 보편적이다. XrML은

    디지털 서명을 이용하여 확실성을 다루는 메커니즘을 지원하여 XPath를 통한

    패턴 매칭 뿐 아니라, 신뢰 수준도 명세하고 있다. 이것은 몇 가지 부분으로

    분리되는데, 코어 스키마, 표준 확장 스키마, 내용 확장 스키마 및 기타

    도메인 명세 확장이다. 코어 스키마는 XrML 2.0의 중심부에서 의미론을

    정의한다. 표준 확장 스키마는 코어 스키마에 포함되지는 않았지만

    일반적으로 대표적인 XrML 활용 시나리오에 적용되는 개념을 처리한다. 내용

    명세 확장 스키마는 서적, 음악, 비디오 같은 자료의 디지털 컨텐츠와 관련된

    권리 관리 개념을 정의한다.

    XrML에서 가장 핵심적인 요소는 인가, 허가, 주역(principal), 권리, XML

    문서, 조건이다. 코어 스키마는 주역, 권리, 조건을 추상적으로 정의 하였다.

    인가는 XrML 2.0에서 최상위 구성 요소로서 허가를 수용하는 역할을 한다.

    여기에는 인가를 제공하고 또한 인가에 디지털로 서명할 수 있는 주역 식별

    같은 추가 정보가 될 수도 있다. 허가는 인가 요소 내의 요소로서 주역에

  • 31

    권한을 부여하는 데 이용된다. 이러한 권한 부여는 XML 문서에 대한 권리와

    주역에 권한을 부여하기 위해 충족되어야 할 추가 조건을 정의한다. 주역은

    권리 승인 대상이 될 수 있는 주체에 부합한다. 주역은 공용/개인 키

    쌍(public/private key pair)이나 기타 신원 식별 기술을 보유하고 있으며

    유효한 여러 자격 증명으로 신원을 확인할 수 있다. 권리는 주역이 실행할 수

    있는 실행이나 액션을 정의한다. 권리는 주역이 다른 권리를 제기하거나,

    취소하거나, 위임하거나, 획득할 권한을 부여 받을 수 있다는 점에서 다른

    권리와 관계가 있다고 할 수 있다. XML 문서는 주역에 권리를 허가할 수

    있는 객체이다. XML 문서에는 디지털 작업과 서비스나 응용이 있다. 조건은

    XML 문서와 관련하여 정의된 권리의 실행에 대한 추가 제약을 명세하는 데

    이용된다.

    그러나 XrML은 본 논문의 XML 문서 접근을 위한 보안 요구사항을

    고려하고자 할 때, 다음과 같은 문제가 있다.

    첫째, XrML은 주체의 그룹 구성원 같은 매우 단순한 특성을 투명하게

    표현하는 데 어려움이 있으며 목표 문서의 요소가 요구 제기자의 특정 속성과

    부합되어야 한다는 제약이 있다.

    둘째, XrML은 정책 작성자로 하여금 디지털 서명을 통한 인가서 발행자

    인증 같은 많은 세부 사항들을 다루게 한다. 의무는 지원되지만 규약에

    수반된 복잡성의 상당 부분은 XrML 내에서 직접적으로 다루어야하는 문제가

    있다.

    셋째, XrML은 전자 서적, 오디오, 비디오 파일 같은 정적 자원을

    다루는데 더 적합한 반면, 수정 가능한 XML 문서와 같은 동적 자원을 다루는

    데에는 어려움이 있다.

    XrML은 보안 정책이 아니라 인가를 표현하기에 적합하다. 이론적으로는

  • 32

    인가 내에서 같은 개념을 고안할 수 있지만, 그렇게 할 때에는 보안 정책으로

    이용할 때보다 더 많은 어려움에 직면한다. 인가는 복잡한 조건부 평가와

    계획이 아니라 주로 사용자에게 허가되는 단순한 권리를 표현하는 데

    사용된다.

    2.4 DOM 기반의 XML 접근 제어

    XACML에서 정의하고 있는 부분은 [그림 2-11]에서 어두운 부분으로

    정책 언어와 응답과 요청임을 알 수 있다. 또한, 요청 언어의 문맥으로 들어온

    요청을 정책 언어로 기술된 정책 기준으로 처리하고 다시 응답 언어로 그

    결과를 생성하는 정책 결정 부분(PDP)으로 기술되어 있다[OASI02,

    XACM03]. 어떤 접근 제어 어플리케이션이 XACML과 호환된다고 하면

    요청하는 문맥이 XACML의 요청 언어로 기술되고, 응답 받은 XACML로

    기술된 문맥을 이해할 수 있음을 뜻한다. 호환되지 않는 접근 제어

    어플리케이션이라면 요청과 접근 문맥을 XACML 요청과 응답 언어로 기술된

    문맥으로 바꿀 수 있는 변환이 필요하다.

    XACML은 정책 언어와 요청/응답 언어로 구성되어 있다. 정책 언어는

    가장 기본이 되는 규칙, 여러 규칙들을 포함하는 정책 및 정책들의 집합인

    정책작업으로 구성된다. [그림 2-12]와 같이 정책 언어에 대한 XML 스키마를

    구조도로 표현한 것이다. [그림 2-12]에서 규칙, 정책, 및 정책작업은 객체,

    자원, 동작으로 정의된 목표을 포함하고 있다. 목표는 PDP에서 요청 문맥을

    읽고 결정을 함에 있어서 요청 문맥의 객체, 자원 및 동작의 내용을 각 규칙,

    정책, 정책에 있는 목표의 내용인 객체, 자원, 동작과 비교하여, 적정한 규칙,

  • 33

    정책 및 정책작업등을 찾는 데에 사용된다. 예를 들어, 어떤 사용자가 특정

    자원에 대해 접근을 요청을 하기 위해 요청 문맥에 객체(사용자 대한 정보),

    자원(요청하는 자원의 정보), 그리고 동작(자원을 가지고 하는 액션)을

    기술하여 보내고, PDP는 요청 문맥상의 이러한 정보들과 일치하는 규칙, 정책

    혹은 정책작업을 찾아내는 것이다. 이렇게 요청 문맥에 해당하는 규칙을 규칙

    조합 알고리즘을 통하여 결과를 나타낸다. 정책의 경우에는 정책 조합

    알고리즘이 따로 있어 요청 문맥에 해당하는 정책의 결과를 조합하여 그

    결과를 나타내고 응답 문맥에 넣는다.

    [그림 2-11] XACML 문맥

    그러나 특정 규칙의 목표가 요청 문맥에 해당되더라도 규칙에 포함되어

    있는 조건에 어긋나면 요청 문맥에 대한 규칙의 결과는 비적용으로 된다.

    규칙이 요청 문맥에 해당되고 조건을 만족하면 규칙의 결과는 규칙 요소 안에

    있는 효과에 정의된 허가나 거부가 된다. 요청 문맥에 대한 정책에 대한

    평가는 규칙에 대한 평가보다 매우 복잡하다. 정책 안에는 많은 규칙들이

    존재할 수 있으며 이 규칙들의 결과를 어떤 규칙 조합 알고리즘에

  • 34

    적용하는가에 따라 결과가 달라지기 때문이다.

    [그림 2-12] XML 정책 언어 모델

    XACML 문맥을 구성하는 하나의 요소는 의무조항이다. 의무조항은

    정책에 포함되는 항목이며, 의무 조항을 포함한 한 정책의 평가가 자원에

    대한 특정 동작을 허가하더라도 의무조항을 실행하지 않거나 의무조항을

  • 35

    이행할 수 없다면 그 정책에 대한 결과는 거부가 된다.

    현재 XML 보안 기술은 사용자 인증 및 데이터의 기밀성, 사용자 키

    관리, 접근 제어 부분에 대해서 논의되고 있으며 다른 정보 보호 분야에 대한

    연구도 계속 진행되고 있다. [그림 2-13]과 같이 Infrastructure 부분과

    Application 두 부분으로 나눈 계층별 XML 보안 기술을 나타낸다.

    [그림 2-13] 계층별 XML 보안 기술

    [그림 2-14] XML의 접근 제어 과정

  • 36

    [그림 2-14]는 XML의 접근 제어 과정을 설명하고 있다. 권한 정보는

    주체가 접근할 수 있는 혹은 접근할 수 없는 객체에 대한 정보이다. 권한

    정보는 일반적으로 접근 제어 목록과 접근 제어 행렬로 표현된다[CFMS95].

    접근 제어 목록은 객체에 대한 주체들의 접근 허가가 명세된 목록이다.

    보안 정책은 접근을 허가하고 거부할 것인가에 대한 원칙을 정의하고

    있다. 이러한 보안 정책은 접근을 허가하는 조건이나 방법을 사용자의 접근

    요청의 부분적인 허가와 권한이 없는 데이터의 여과에 대한 내용도 포함하고

    있다.

    권한부여 규칙은 XML 문서에 대한 보안 정책의 표현이다. 보안 관리자는

    보안에 대한 요구사항과 정책을 권한부여 규칙들로 변환한다. 이러한

    권한부여 규칙은 일반적인 사용자나 객체에 대한 권한을 부여할 때 사용한다.

    또한 동일한 객체에 관하여 여러 사용자들의 권한 충돌이 발생할 때도

    이용된다.

    전파 정책은 동일한 요소에 서로 다른 권한이 설정되어 있을 경우,

    충돌이 생긴 권한들 사이의 우선 순위를 결정하여 권한을 설정하기 위한

    방법이다[JaSS97].

    [그림 2-15] 접근 제어 목록

  • 37

    [그림 2-15]는 유닉스 시스템에서 사용되고 있는 접근 제어 목록의 예를

    보여주고 있다. 접근 제어는 학생 정보 파일에 대한 권한 정보가 기술되어

    있다. 학생 정보 파일에 대하여 sunmoon은 읽기 권한만을 가지고 있다.

    minji는 읽고, 쓰기 권한을 가지고 있다. sunmoon의 읽고, 쓰기에 대한 요청이

    있는 경우 읽기 요청은 허가되는 반면 쓰기 요청은 거부된다. jungmin은 학생

    정보에 대한 접근 권한이 없기 때문에 읽기, 쓰기에 대한 요청 모두 거부된다.

    기존의 웹 기반의 접근 제어는 파일 단위에 권한을 기술하는데 가능한다.

    그러나 XML 문서의 특징인 정보의 의미에 따라 처리하기 위한 정보 의미에

    기반한 접근과 요소와 같이 아주 작은 단위의 보호 수준의 접근이

    불가능하다. 따라서 XML 문서의 접근 제어를 위한 요구사항을 정리해 보면

    다음과 같다[BBCF00, BCFM00, DVPS0a, Savi01, ZhPS03, Vime02].

    다양한 조직 수준에서의 권한이 지원되어야 한다. 조직의 특성에 따라,

    같은 문서에 대한 조직의 권한이 다를 수 있기 때문에 다양한

    계층에서의 권한 지정이 필요하다.

    기존의 웹 서버 기술의 확장이 가능해야 한다. XML 문서는 보통 웹

    사이트 기반으로 사용되고 있으므로 기존의 웹서버에 XML 문서의

    접근 제어 시스템을 확장할 수 있어야 한다.

    XML 문서가 갖는 특징으로 인하여 XML 문서는 보안 수준이 각각

    다른 요소를 포함할 수 있으므로 이를 만족하는 보안 계층이

    지원되어야 한다. 이러한 요구사항을 만족시키기 위해서는 XML

    문서를 위한 접근 제어 시스템은 미세한 보안 정책을 적용할 수 있는

    유연성을 가져야 한다. 즉, XML 문서에 대한 접근 제어 정책은 완전한

    XML 문서뿐만 아니라, 해당 문서가 포함하는 최상위 노드, 요소, 하위

    요소, 속성 및 링크로 연결된 외부 문서에 대하여 접근 제어 정책이

  • 38

    전파되어, 해당 정책이 즉시 적용될 수 있도록 권한에 부합하는

    접근이 수행될 수 있어야 한다.

    접근 제어 시스템의 연산이 수행되는 것이 사용자에게 투명하여야

    하며 요청자가 보는 문서중 어느 문서에 권한이 주어지지 않아

    거부되었는지 알 수 없어야 한다.

    다중 사용자 환경에서는 동일한 스키마를 기반으로 생성된 인스턴스

    문서에 대하여 사용자별 접근 제어가 반드시 필요하다. 즉, 동일한

    스키마를 따라 생성된 인스턴스 문서의 정보는 동일한 역할을 부여

    받은 사용자 별로 다른 접근 제어를 수행할 수 있는 메커니즘이

    필요하다.

    XML 문서는 항상 미리 정의된 문서 형태로 구성될 수 없다는 점으로

    사용자의 요청에 따라 반환되어야 하는 문서 포맷은 사전 정의 없이

    적절한 접근 제어의 적용이 가능한 메커니즘과 이를 지원하는 동적인

    접근 제어가 필요하다.

    사용자의 인증과정이 기존의 기술들과 쉽게 통합되어야 한다.

    [그림 2-16]은 XML 문서를 위한 접근 제어의 구조를 보여준다.

    사용자는 시스템의 자원을 접근하기 위하여 접근 요청을 하고, 시스템은 요청

    한 사용자가 합법적인 사용자인지 인증과정을 거친 후, ACDF(Access Control

    Decision Function)에서 요청한 XML 문서와 접근 제어 정책의 정보를

    참조하여 요청을 승낙할 것인지 거부할 것인지를 결정한다. 이 결정은

    ACEF(Access Control Enforce Function)에 보내지고, 해당 XML 문서에

    대한 연산을 수행하고 읽기를 요청한 경우에는, 사용자가 읽도록 권한이

    주어진 정보만으로 해당 XML 문서를 가공하여 사용자에게 보낸다[KuHa00].

  • 39

    [그림 2-16] XML 문서들에 관한 접근 제어

    현재 XML의 권한 접근 기법 중 많은 연구가 이루어지고 있는 묵시적

    권한 기법은 상위 구성요소에 한 번의 권한 부여로 하위 구성요소에 권한을

    부여하는 효과를 가지는 장점이 있다. 그러나 권한을 가지고 구성요소에 접근

    할 경우나 권한을 추가로 부여하는 경우, 상위 구성요소와 충돌의 유무를

    판별하는 권한 체크 시간의 오버헤드가 크다는 단점이 있다. 반면에 명시적

    권한 기법은 각각의 구성요소 마다 권한의 정보를 저장하는 기법으로 묵시적

    권한 기법에 비하여 저장 공간의 오버헤드가 있지만, 각 구성 요소가 권한의

    정보를 가지고 있으므로 빠른 접근 제어를 수행한다. 묵시적 권한 기법보다는

    권한 체크의 시간이 작으므로 권한 체크가 자주 발생하는 응용분야에

    적용하면 권한 체크 시간의 오버헤드를 감소시킬 수 있다.

    [그림 2-17]과 같은 DTD 검증과정이 이루어진다. 여기서 사용자가

    DOM 트리에 있는 Sun 노드를 삭제하기 위해 XML 문서에 접근 요청하면

    [그림 2-17]과 같이 처리할 수 있다.

    문서의 변환 과정을 보면, XML 문서를 보기 위한 요청을 한다. 모든

  • 40

    XML 문서와 해당 DTD에는 접근 권한 정보가 XML 접근이라는 문서에

    명세되어 있다. DOM 트리를 얻기 위해 XML 문서의 파싱 작업을 수행하고,

    DTD와 XML 문서의 접근 제어에 기초하여 DOM 트리의 노드에 접근 허가,

    거부를 의미하는 부호 값을 설정한다. DOM 트리의 노드에 권한을 설정하는

    작업을 레이블링이라 한다. 레이블링된 DOM 트리에서 부호 값이 거부로

    설정된 노드는 제거하고, 허가로 설정된 노드만을 XML 타입으로 사용자에게

    반환한다[DVPS0a, DVPS0b, IBMT00, Savi01, KuHa00, GaBro1]. 이때 DOM

    트리에서 노드가 제거된 XML 문서는 DTD에 유효하지 않을 수 있는 문제가

    발생되지만, DOM 트리에서 노드가 제거되더라도 기존의 DTD를 유지할 수

    있다.

    [그림 2-17] DTD 검사 과정 예

    DOM 트리에서 노드가 제거된 XML 문서는 DTD에 유효하지 않을 수

    있는 문제를 해결(DTD에 설정된 모든 요소와 속성을 optional로 설정)하기

    위해 DOM 트리에서 노드가 제거되더라도 기존의 DTD를 유지할 수 있게

    하였다[DVS0b]. 그러나 이 방법은 구조 정보를 상실하게 되어 의미적 충돌

    문제를 발생한다. 문서의 구조를 유지하기 위해 레이블링 기법을 사용하는데,

  • 41

    이 방법의 문제는 거부 레이블링이 된 구조 정보와 데이터의 존재를 보여주게

    되어 기밀성에 위배되는 문제가 있다[DVPS0a, DVPS0b, KuHa00]. 또한 거부

    레이블링이 된 노드에 대한 접근을 금지하는 레이블링 기법을 적용하는 것은

    금지된 노드의 하부 노드 역시 접근을 금지하게 하므로 데이터의 이용성에

    한계가 있다[GaBr01].

    접근 제어 모델은 DOM 트리와 관계형 테이블 데이터 구조의 차이로

    인해 XML 데이터가 저장된 관계형 테이블에 적용하기가 어렵다[BeCF01].

    관계형 데이터베이스는 키를 제외한 테이터들은 상호 독립적이나 XML

    데이터가 저장된 관계형 테이블은 DOM 트리에서 유지되었던 데이터들의

    부모 자식 관계를 테이블 간 또는 테이블 내에서 유지하고 있다. XML의 트리

    구조 속성 때문에 XML 데이터가 저장된 관계형 테이블의 접근 제어는 한

    요소에 대해 또는 요소와 그 하부구조에 속하는 데이터들에 대해 동시에

    정의하기도 한다. 관계형 테이터베이스에서는 데이터의 키와 애트리뷰트

    이름으로 데이터를 검색할 수 있다. 그러므로 사용자가 XML 질의문을 SQL로

    변환해야 하는 어려운 작업이 있다. 데이터베이스 내의 테이블의 내용과 구조

    XML의 계층구조를 유지하기 위한 메타 데이터, XML 문서와 테이블 사이의

    매핑 정보까지 갱신해야 하는 오버헤드도 존재한다.

  • 42

    제 3 장 XML 문서들을 위한 접근 제어

    정책 설계

    본 장은 기존의 접근 제어 문제점을 개선하기 위한 안전한 접근 제어를

    정의한다. 접근 제어 시스템을 개발하려면 어떤 권한부여를 명세하고 어떤

    접근 제어를 실행해야 하는가와 관련하여 XML 문서 권한부여 주체 정책 및

    권한부여 객체 정책이 필요하다. 권한부여는 단일 XML 문서나 DTD에 대해

    명세할 수 있다. 권한부여 타입 간의 우선 순위를 높은 것부터 제안하고,

    안전한 보안을 위한 XML 접근 권한부여의 명세 기법을 6-튜플(subject,

    object, action, altg, sign, type)로 기술한다.

    3.1 XML 접근 제어 정의

    전자상거래와 같은 분야의 경우 타인에게 공개하지 않아야 하는 개인

    정보 등에 대한 보안이 필요하며, 이에 따라 문서에 대한 접근 관리가

    요구된다. 따라서 문서를 생성할 때 문서의 내용에 대해서 사용자들에게 접근

    권한을 부여하고 접근 권한을 소유하는 사용자만 문서의 특정 내용에 접근할

    수 있도록 접근 권한 관리가 필요하다. 즉, 기존의 데이터베이스에서

    사용자에게 접근 권한을 부여하는 것과 마찬가지로 XML 문서를 대상으로 한

    검색에 있어서도, 사용자가 XML 문서의 특정 항목에만 접근할 수 있도록

    권한을 부여함으로써, 사용자의 권한 범위에 해당하는 데이터만을 제공하는

  • 43

    기능이 필요하다. 이를 위해서는 사용자의 접근 권한을 관리할 수 있어야

    하며, 사용자가 XML 문서에 접근할 때 권한에 따라 제어할 수 있어야 한다.

    쉬운 방법은 권한에 따라 사용자별로 별도의 문서를 보유하는 것이다. 그러나

    이는 기억 장소의 낭비와 문서의 중복에 따른 문서 변경의 어려움이 있으므로,

    하나의 문서로부터 사용자의 권한에 따라 권한이 없는 부분은 제거하고

    접근이 허가된 부분만을 전달하는 것이 필요하다.

    보안을 필요로 하는 정보에 대한 초창기 연구는 접근 제어 정책 권한의

    관리자에 의해 객체에 대한 접근 권한이 정해지는 임의적 접근 제어(DAC:

    Discretionary Access Control)[Sand93], 정보의 보안 수준과 사용자의 보안

    등급에 따라 접근을 제어하는 강제적 접근 제어(MAC: Mandatory Access

    Control)[Sand93], 그리고 역할과 해당 역할의 권한을 정의하는 역할 기반

    접근 제어(RBAC: Role-Based Access Control)[SCFY96]로 나눌 수

    있다[SCFY96]. 이러한 정책을 실현하기 위한 접근 제어 메커니즘으로는,

    권한 주체와 권한 객체 사이의 권한 관계를 매트릭스로 표현하는 접근 제어

    행렬(Access Control Matrix)[Lamp74], 권한 주체에 대해 권한이 부여된

    객체들의 목록으로 표현하는 접근 제어 목록, 권한 객체에 대해 접근이

    허가된 주체들의 목록으로 표현하는 자격 목록 등이 있다.

    XML 문서 권한 타입은 XML 문서에 대한 권한 타입과 XML 문서내의

    요소에 대한 권한 타입으로 정의한다. XML 문서 최상위 요소는 하나만 가질

    수 있지만 하위 요소는 여러 개의 계층 구조를 가질 수 있다. 최상위 요소에

    속한 하위 요소 중 하나의 그룹을 인스턴스라고 한다. [그림 3-1]과 같이

    최상위 요소는 이고, 인스턴스는 3개로 구성된다. XML 문서에

    대한 권한 타입은 [정의 3-1]과 같이 본 논문에서 정의하여 사용한다.

  • 44

    [그림 3-1] XML 문서의 인스턴스

    [정의 3-1] XML 문서에 대한 권한 타입

    Define Read(DR): XML 문서의 정의 부분을 읽을 수 있다.

    Instance Read(IR): 인스턴스 문서를 읽을 수 있다.

    Instance Generate(IG): 인스턴스 문서를 생성할 수 있다.

    Instance Write(IW): 인스턴스 문서를 읽고 생성할 수 있을 뿐만 아니

    라 생성한 인스턴스 문서에 대한 수정도 가능하다.

    인스턴스 문서에 대한 권한 타입은 상호 결합된 형태로 존재하고 이를

    계층구조로 표현할 수 있다. [그림 3-2]는 본 논문에서 정의한 인스턴스

  • 45

    문서의 권한 타입을 계층 구조로 나타낸 것이다. [그림 3-2]에서 IW 권한의

    소유자는 IG와 IR 권한도 묵시적으로 소유하는 것을 보여주고 있다.

    [그림 3-2] XML 문서에 대한 권한 타입

    [정의 3-2] XML 문서 내의 요소에 대한 권한 타입

    Element Read(ER): 요소의 데이터를 읽을 수 있다.

    Element Write(EW): 요소의 데이터를 읽고 수정할 수 있