KR20090018616A - 컴퓨터 자원 액세스 제어 정책을 구현하는 방법, 컴퓨터 자원 액세스 제어 및 보안 정책을 구현하는 시스템, 및 컴퓨터 판독가능 매체 - Google Patents

컴퓨터 자원 액세스 제어 정책을 구현하는 방법, 컴퓨터 자원 액세스 제어 및 보안 정책을 구현하는 시스템, 및 컴퓨터 판독가능 매체 Download PDF

Info

Publication number
KR20090018616A
KR20090018616A KR1020087028817A KR20087028817A KR20090018616A KR 20090018616 A KR20090018616 A KR 20090018616A KR 1020087028817 A KR1020087028817 A KR 1020087028817A KR 20087028817 A KR20087028817 A KR 20087028817A KR 20090018616 A KR20090018616 A KR 20090018616A
Authority
KR
South Korea
Prior art keywords
access
access control
control policy
policy
computer
Prior art date
Application number
KR1020087028817A
Other languages
English (en)
Other versions
KR101354850B1 (ko
Inventor
무두크리쉬난 파라마시밤
찰스 에프. 로즈 3세
데이브 엠. 맥퍼슨
라자 파사니벨 페루말
사트야지트 나드
폴 제이. 리츠
라빈드라 나드 팬드야
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20090018616A publication Critical patent/KR20090018616A/ko
Application granted granted Critical
Publication of KR101354850B1 publication Critical patent/KR101354850B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Storage Device Security (AREA)

Abstract

액세스 검사 메카니즘으로부터의 액세스 제어 정책을 추상화하는 것은, 액세스 검사 메카니즘에 의해 가능하게 되는 것보다, 의미를 갖는 선언적 모델을 사용하여 정책을 더 다채롭게 표현할 수 있게 해준다. 게다가, 액세스 제어 정책을 추상화하는 것은 다수의 액세스 검사 메카니즘을 통해 정책을 일률적으로 표현하는 것을 가능하게 해준다. 액세스를 제공하는 액세스 검사 메카니즘과 무관하게, 정책 선언문 자체로부터 작성된 액세스 질의에 대한 증명과 같은 추론(누가 어떤 자원에 액세스 권한을 갖는지 등)이 제공된다. 액세스가 감사되고, 액세스 제어 정책에 기초하여 액세스에 대한 정책-기반 추론이 제공된다.
Figure P1020087028817
보안 정책, 액세스 검사, 추상화, 감사, 정책-기반 추론

Description

컴퓨터 자원 액세스 제어 정책을 구현하는 방법, 컴퓨터 자원 액세스 제어 및 보안 정책을 구현하는 시스템, 및 컴퓨터 판독가능 매체{ABSTRACTING SECURITY POLICY FROM, AND TRANSFORMING TO, NATIVE REPRESENTATIONS OF ACCESS CHECK MECHANISMS}
보안 정책 구성은 통상적으로 "일방적"이며, 의도가 구성된 경우, 구성된 것으로부터 의도를 질의 및 파악하는 것은 불가능하지는 않더라도 극도로 어렵다. 표현할 수 있는 것이 표현해야만 하는 것에 미치지 못하는 경우가 아주 많다. 의도가 상세한 구성과 밀접하게 연계되어 있는 경우 의도의 변경이 극히 어렵다. 그에 부가하여, 종래의 액세스 검사 메카니즘이 유용한 시절은 지났는데, 왜냐하면 구성된 정책들이 쉽게 마이그레이션될 수 없는 경우가 많기 때문이다. 시스템을 분석하기 위해, 모든 액세스가 충실히 감사되고 구성된 보안 정책에 구현되어 있는 것과 같은 의도와 모순되지 않도록 주의를 기울여야만 하는데, 이는 사람의 노력을 상당히 요한다. 그 결과, 사용자는 이하의 문제점들에 봉착하게 된다.
1. 관리 도메인(administrative domain)에 걸쳐 분산되어 있는 다수의 파일 서버에 시행될 수 있는 액세스 제어 정책을 중앙에서 정의할 방법이 없음
2. 각각의 애플리케이션에서의 권한 부여 평가 메카니즘과 무관하게 다수의 애플리케이션에 대한 액세스 제어 정책을 중앙에서 정의할 방법이 없음
3. 관리 도메인에 걸쳐 분산되어 있는 자원들에 대한 감사 데이터 수집 정책을 중앙에서 정의할 일률적인 방법이 없음
4. 정의된 액세스 제어 정책을 위반하는 액세스를 식별할 방법이 없음
5. 정의된 액세스 제어 정책과 권한 부여 평가 메카니즘의 거동 간에 일관성이 있는지를 자동 검사할 방법이 없음
6. 공통의 권한 부여 정책을 적용하기 위해 정책 저장소(policy store) 및 애플리케이션에 걸쳐 있는 자원을 그룹화할 방법이 없음
7. 자원에 관한 권한의 위임을 지원하고 권한 부여 정책을 명시하는 비지니스 친화적인 사용자 경험(UX)이 없음
8. 개인의 사용 권한을 다른 주체들(principals)에 위임하는 쉬운 메카니즘 또는 엄격히 제약된 방식으로 주체들 간에 관리 부담을 공유하는 메카니즘이 없음
문제의 근원은 액세스 검사 메카니즘에 본질적인 것과 별도로 정책 의도의 명시적인 보호가 없다는 것이다. 정책은 한가지 목적을 위해, 즉 액세스 검사 메카니즘이 이 정책을 사용하여 액세스를 허용해야만 하는지를 지시하기 위해 구성된다. 이러한 경우, 정책의 표현이 액세스 검사의 수행을 최적화하는 쪽으로 치우쳐져 있지만, 이러한 최적화가 중요하다는 것은 부인하기 어렵다. 그렇지만, 그 대가는 구성된 것의 의미를 알아내는 것이 극히 어렵다는 것이다. 다수의 서로 다른 부분들이 동일한 또는 유사한 접근 제어 목록(access control list, ACL) 구성을 갖는 경우와 같은 동질적인 환경에서조차도, 동일한 정책이 이들 부분 모두에 적용되었는지를 체계적으로 판별하고 따라서 그 정책에 숨어 있는 의도를 되살리는 일 이 쉽지 않고 종종 불가능하다. 이질적인 환경은 이 문제를 더욱 악화시킨다. 정책이 온통 액세스 검사 구현의 기본적인 표현들로 되어 있을 때, 그 기본적인 제어 메카니즘에서 구성된 것으로부터 추상적 정책을 추출할 가능성이 거의 없다. 정책 의도 자체가 독립적으로 지속되고 관리되지 않기 때문에, 기초가 되는 액세스 검사 메카니즘이 가능하게 해주는 것보다 더 풍부하게 무언가를 표현한다는 것은 불가능하다. 이것이 의미하는 바는 의도와 이 의도를 기본적인 정책 구성 형식으로 구현한 것 간에 큰 차이가 있게 된다는 것이다.
따라서, 종래 기술의 단점들을 해결하는 프로세스 및 시스템이 필요하다.
이 요약은 이하에서 상세한 설명에 더 기술되는 선택된 개념들을 간략화된 형태로 소개하기 위해 제공된 것이다. 이 요약은 청구된 발명 대상의 주요 특징들 또는 필수적인 특징들을 확인하기 위한 것이 아니며 청구된 발명 대상의 범위를 정하는 데 보조 수단으로 사용되기 위한 것도 아니다.
상기한 종래 기술의 단점들을 고려하여, 보안 정책을 액세스 검사 메카니즘의 기본적인 표현들로부터 추상화하고 그 표현들로 변환하는 것이 제공된다. 몇가지 실시예들에서, 컴퓨터 자원 액세스 제어 정책을 구현하는 방법은 액세스 검사 메카니즘으로부터 액세스 제어 정책을 추상화하는 단계를 포함한다. 액세스 검사 메카니즘은 액세스 제어 정책보다 더 제한되어 있을 수 있는 기본적인 정책 표현 능력을 갖는다. 또한, 컴퓨터 자원 액세스 보안 정책을 구현하는 시스템은 자원 액세스를 감사하는 수단, 및 (액세스 제어 정책에 따라) 특정의 감사된 액세스가 허용된 이유를 제공하는 수단을 포함한다. 제공되는 이유는, 액세스 제어 정책보다 더 제한된 정책 표현 능력을 갖는 액세스 검사 메카니즘과 무관하게, 액세스 제어 정책 자체로부터 작성된다.
이하에서 본 발명의 다른 이점들 및 특징들에 대해 설명한다.
도 1은 보안 정책을 액세스 검사 메카니즘의 기본적인 표현들로부터 추상화하고 그 표현들로 변환하는 것과 관련하여 사용하기에 적합한 예시적인 컴퓨팅 장치를 나타낸 블록도.
도 2는 보안 정책을 액세스 검사 메카니즘의 기본적인 표현들로부터 추상화하고 그 표현들로 변환하는 것을 수행하기 위해 많은 컴퓨터화된 프로세스들이 구현될 수 있는 예시적인 네트워크화된 컴퓨팅 환경을 나타낸 도면.
도 3은 예시적인 보안 정책을 사용하여 허가의 표현을 계산하는 것을 나타낸 블록도.
도 4는 위임을 가능하게 해주는 부가의 예시적인 보안 정책을 사용하여 허가의 표현을 계산하는 것을 나타낸 블록도.
도 5는 예시적인 결정된 허가를 액세스 검사 메카니즘의 표현에 삽입하는 것을 나타낸 블록도.
도 6은 예시적인 액세스 및 감사 이벤트로부터 얻어진 증명을 제공하는 것을 나타낸 블록도.
도 7은 보안 정책을 액세스 검사 메카니즘의 기본적인 예시적인 표현들로부 터 추상화하고 그 표현들로 변환하는 것을 구현하는 예시적인 시스템을 나타낸 블록도.
보안 정책을 액세스 검사 메카니즘의 기본적인 표현들로부터 추상화하고 그 표현들로 변환하는 것에 대해 첨부 도면을 참조하여 더 설명한다.
본 발명의 다양한 실시예에 대한 철저한 이해를 제공하기 위해 어떤 구체적인 상세가 이하의 설명 및 도면에 기술되어 있다. 본 발명의 다양한 실시예들을 쓸데없이 불명료하게 하는 것을 피하기 위해 컴퓨팅 및 소프트웨어 기술과 종종 연관되어 있는 어떤 공지의 상세는 이하의 설명에 기술되어 있지 않다. 게다가, 당업자라면 이하에 기술되는 상세 중 하나 이상이 없어도 본 발명의 다른 실시예들을 실시할 수 있다는 것을 잘 알 것이다. 마지막으로, 다양한 방법들이 이하의 설명에서 단계 및 순서를 참조하여 기술되어 있지만, 이 설명은 그 자체로서 본 발명의 실시예들의 명확한 구현을 제공하기 위한 것이며, 단계 및 단계의 순서가 본 발명을 실시하는 데 필수적인 것으로 보아서는 안된다.
예시적인 컴퓨팅 환경
도 1을 참조하면, 상기한 프로세스들을 구현하는 것과 관련하여 사용하기에 적합한 예시적인 컴퓨팅 장치를 나타낸 블록도가 도시되어 있다. 예를 들어, 보안 정책을 액세스 검사 메카니즘의 기본적인 표현들로부터 추상화하고 그 표현들로 변환하는 프로세스 및 방법을 수행하는 컴퓨터 실행가능 명령어는 도 1에 도시된 컴퓨팅 환경에 존재하고 및/또는 실행될 수 있다. 컴퓨팅 시스템 환경(220)은 적합 한 컴퓨팅 환경의 일례에 불과하며, 본 발명의 용도 또는 기능성의 범위에 관해 어떤 제한을 암시하고자 하는 것이 아니다. 컴퓨팅 환경(220)이 예시적인 운영 환경(220)에 도시된 컴포넌트들 중 임의의 하나 또는 그 컴포넌트들의 임의의 조합과 관련하여 어떤 의존성 또는 요구사항을 갖는 것으로 해석되어서는 안된다. 예를 들어, 컴퓨터 게임 콘솔은 또한 상기한 프로세스들을 구현하는 것과 관련하여 사용하기 위한 이하에 기술되는 것과 같은 항목들을 포함할 수 있다.
본 발명의 측면들은 많은 기타 범용 또는 전용 컴퓨팅 시스템 환경 또는 구성에서 동작할 수 있다. 본 발명에서 사용하는 데 적합할 수 있는 잘 알려진 컴퓨팅 시스템, 환경 및/또는 구성의 예로는 퍼스널 컴퓨터, 서버 컴퓨터, 핸드-헬드 또는 랩톱 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 시스템, 셋톱 박스, 프로그램가능 가전제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기 시스템들이나 장치들 중 임의의 것을 포함하는 분산 컴퓨팅 환경, 기타 등등이 있지만 이에 제한되는 것은 아니다.
본 발명의 측면들은 일반적으로 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령어와 관련하여 구현될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 본 발명의 측면들은 또한 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 메모리 저장 장치를 비롯한 로컬 및 원격 컴퓨터 저장 매체 둘다에 위치할 수 있다.
본 발명의 측면들을 구현하는 예시적인 시스템은 컴퓨터(241) 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(241)의 컴포넌트들은 처리 장치(259), 시스템 메모리(222), 및 시스템 메모리를 비롯한 각종 시스템 컴포넌트들을 처리 장치(259)에 연결시키는 시스템 버스(221)를 포함할 수 있지만 이에 제한되는 것은 아니다. 시스템 버스(221)는 메모리 버스 또는 메모리 컨트롤러, 주변 장치 버스, 및 각종 버스 아키텍처 중 임의의 것을 이용하는 로컬 버스를 비롯한 몇몇 유형의 버스 구조 중 어느 것이라도 될 수 있다. 예로서, 이러한 아키텍처는 ISA(industry standard architecture) 버스, MCA(micro channel architecture) 버스, EISA(Enhanced ISA) 버스, VESA(video electronics standard association) 로컬 버스, 메자닌 버스(mezzanine bus)로도 알려진 PCI(peripheral component interconnect) 버스는 물론, PCI의 뒤를 이은 PCI-Express 표준 등을 포함하지만 이에 제한되는 것은 아니다.
컴퓨터(241)는 통상적으로 각종 컴퓨터 판독가능 매체를 포함한다. 컴퓨터(241)에 의해 액세스 가능한 매체는 그 어떤 것이든지 컴퓨터 판독가능 매체가 될 수 있고, 이러한 컴퓨터 판독가능 매체는 휘발성 및 비휘발성 매체, 이동식 및 비이동식 매체를 포함한다. 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함하지만 이에 제한되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체 둘다를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광 디스크 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 컴퓨터(241)에 의해 액세스될 수 있고 원하는 정보를 저장하는 데 사용될 수 있는 임의의 기타 매체를 포함하지만 이에 제한되는 것은 아니다. 통신 매체는 통상적으로 반송파(carrier wave) 또는 기타 전송 메커니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터 등을 구현하고 모든 정보 전달 매체를 포함한다. "피변조 데이터 신호"라는 용어는, 신호 내에 정보를 인코딩하도록 그 신호의 특성들 중 하나 이상을 설정 또는 변경시킨 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 배선 접속(direct-wired connection)과 같은 유선 매체, 그리고 음향, RF, 적외선, 기타 무선 매체와 같은 무선 매체를 포함하지만, 이에 한정되지 않는다. 상술된 매체들 중 임의의 것의 조합도 컴퓨터 판독가능 매체의 영역 안에 포함되는 것으로 보아야 한다.
시스템 메모리(222)는 판독 전용 메모리(ROM)(223) 및 랜덤 액세스 메모리(RAM)(260)와 같은 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 시동 중과 같은 때에, 컴퓨터(241) 내의 구성요소들 사이의 정보 전송을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(BIOS)(224)은 통상적으로 ROM(223)에 저장되어 있다. RAM(260)은 통상적으로 처리 장치(259)가 즉시 액세스 할 수 있고 및/또는 현재 처리하고 있는 데이터 및/또는 프로그램 모듈을 포함한다. 예로서, 도 1은 운영 체제(225), 애플리케이션 프로그램(226), 기타 프로그램 모듈(227), 및 프로그램 데이터(228)를 도시하고 있지만 이에 제한되는 것은 아니다.
컴퓨터(241)는 또한 기타 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장 매체를 포함할 수 있다. 단지 예로서, 도 1은 비이동식·비휘발성 자기 매체에 기록을 하거나 그로부터 판독을 하는 하드 디스크 드라이브(238), 이동식·비휘발성 자기 디스크(254)에 기록을 하거나 그로부터 판독을 하는 자기 디스크 드라이브(239), 및 CD-ROM 또는 기타 광 매체 등의 이동식·비휘발성 광 디스크(253)에 기록을 하거나 그로부터 판독을 하는 광 디스크 드라이브(240)를 도시하고 있다. 예시적인 운영 환경에서 사용될 수 있는 기타 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장 매체로는 자기 테이프 카세트, 플래시 메모리 카드, DVD, 디지털 비디오 테이프, 고상(solid state) RAM, 고상 ROM 등이 있지만 이에 제한되는 것은 아니다. 하드 디스크 드라이브(238)는 통상적으로 인터페이스(234)와 같은 비이동식 메모리 인터페이스를 통해 시스템 버스(221)에 접속되고, 자기 디스크 드라이브(239) 및 광 디스크 드라이브(240)는 통상적으로 인터페이스(235)와 같은 이동식 메모리 인터페이스에 의해 시스템 버스(221)에 접속된다.
위에서 설명되고 도 1에 도시된 드라이브들 및 이들과 관련된 컴퓨터 저장 매체는, 컴퓨터(241)에 대한 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 기타 데이터를 저장한다. 도 1에서, 예를 들어, 하드 디스크 드라이브(238)는 운영 체제(258), 애플리케이션 프로그램(257), 기타 프로그램 모듈(256), 및 프로그램 데이터(255)를 저장하는 것으로 도시되어 있다. 여기서 주의할 점은 이들 컴 포넌트가 운영 체제(225), 애플리케이션 프로그램(226), 기타 프로그램 모듈(227), 및 프로그램 데이터(228)와 동일하거나 그와 다를 수 있다는 것이다. 이에 관해, 운영 체제(258), 애플리케이션 프로그램(257), 기타 프로그램 모듈(256) 및 프로그램 데이터(255)에 다른 번호가 부여되어 있다는 것은 적어도 이들이 다른 사본(copy)이라는 것을 나타내기 위한 것이다. 사용자는 키보드(251), 및 통상 마우스, 트랙볼(trackball) 또는 터치 패드라고 하는 포인팅 장치(252) 등의 입력 장치를 통해 명령 및 정보를 컴퓨터(241)에 입력할 수 있다. 다른 입력 장치(도시 생략)로는 마이크, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이들 및 기타 입력 장치는 종종 시스템 버스에 결합된 사용자 입력 인터페이스(236)를 통해 처리 장치(259)에 접속되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus) 등의 다른 인터페이스 및 버스 구조에 의해 접속될 수도 있다. 모니터(242) 또는 다른 유형의 디스플레이 장치도 비보안 또는 보안 비디오 인터페이스(232) 등의 인터페이스를 통해 시스템 버스(221)에 접속된다. 예시적인 보안 비디오 표준은 HDMI(High-Definition Multimedia Interface) 표준이다. 모니터 외에, 컴퓨터는 스피커(244) 및 프린터(243) 등의 기타 주변 출력 장치를 포함할 수 있고, 이들은 출력 주변장치 인터페이스(233)를 통해 접속될 수 있다.
컴퓨터(241)는 원격 컴퓨터(246)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 사용하여 네트워크화된 환경에서 동작할 수 있다. 원격 컴퓨터(246)는 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치 또는 기타 통상의 네트워크 노드일 수 있고, 통상적으로 컴퓨터(241)와 관련하여 상술된 구성요소들의 대부분 또는 그 전부를 포함하지만, 도 1에는 메모리 저장 장치(247)만이 도시되어 있다. 도 1에 도시된 논리적 접속으로는 LAN(245) 및 WAN(249)이 있지만, 기타 네트워크를 포함할 수도 있다. 이러한 네트워킹 환경은 사무실, 전사적 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷, 및 인터넷에서 일반적인 것이다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(241)는 네트워크 인터페이스 또는 어댑터(237)를 통해 LAN(245)에 접속된다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(241)는 통상적으로 인터넷과 같은 WAN(249)을 통해 통신을 설정하기 위한 모뎀(250) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(250)은 사용자 입력 인터페이스(236) 또는 기타 적절한 메커니즘을 통해 시스템 버스(221)에 접속될 수 있다. 네트워크화된 환경에서, 컴퓨터(241) 또는 그의 일부와 관련하여 기술된 프로그램 모듈은 원격 메모리 저장 장치에 저장될 수 있다. 예로서, 도 1은 원격 애플리케이션 프로그램(248)이 원격 컴퓨터(247)에 있는 것으로 도시하고 있지만 이에 제한되는 것은 아니다. 도시된 네트워크 접속은 예시적인 것이며 이 컴퓨터들 사이에 통신 링크를 설정하는 기타 수단이 사용될 수 있다는 것을 이해할 것이다.
본 명세서에 기술된 다양한 기술들이 하드웨어 또는 소프트웨어 또는, 적절한 경우, 이 둘의 조합과 관련하여 구현될 수 있다는 것을 잘 알 것이다. 따라서, 본 발명의 방법 및 장치, 또는 그의 어떤 측면 또는 일부분이 유형 매체(플로피 디 스켓, CD-ROM, 하드 드라이브, 또는 임의의 다른 기계-판독가능 저장 매체 등)에 구현된 프로그램 코드(즉, 명령어)의 형태로 되어 있을 수 있으며, 이 프로그램 코드가 컴퓨터 등의 기계에 로드되어 실행될 때, 이 기계는 본 발명을 실시하는 장치가 된다. 프로그램가능 컴퓨터 상에서 프로그램 코드를 실행하는 경우에, 컴퓨팅 장치는 일반적으로 프로세서, 프로세서에 의해 판독가능한 저장 매체(휘발성 및 비휘발성 메모리 및/또는 저장 요소를 포함함), 적어도 하나의 입력 장치, 및 적어도 하나의 출력 장치를 포함한다. 하나 이상의 프로그램은 본 발명과 관련하여 기술된 프로세스들을, 예를 들어, API, 재사용가능 컨트롤, 기타 등등을 사용하여 구현 또는 이용할 수 있다. 이러한 프로그램들은 양호하게는 컴퓨터 시스템과 통신하기 위해 고수준의 절차적 또는 객체 지향 프로그래밍 언어로 구현된다. 그렇지만, 프로그램(들)은, 원하는 경우, 어셈블리어 또는 기계어로 구현될 수 있다. 어쨋든, 이 언어는 컴파일된 또는 인터프리트된 언어일 수 있으며 하드웨어 구현과 결합될 수 있다.
예시적인 실시예들이 하나 이상의 독립형 컴퓨터 시스템과 관련하여 본 발명의 측면들을 이용하는 것에 관한 것일 수 있지만, 본 발명은 그에 한정되지 않으며 오히려 네트워크 또는 분산 컴퓨팅 환경과 같은 어떤 컴퓨팅 환경에서도 구현될 수 있다. 또한, 본 발명의 측면들은 복수의 처리 칩 또는 장치에서 또는 이들에 걸쳐 구현될 수 있고, 이와 유사하게 복수의 장치들에 걸쳐 저장이 행해질 수 있다. 이러한 장치들은 퍼스널 컴퓨터, 네트워크 서버, 핸드헬드 장치, 수퍼컴퓨터, 또는 자동차 및 항공기 등의 다른 시스템에 통합된 컴퓨터를 포함할 수 있다.
도 1에 제공된 일반적인 프레임워크에 따라 구축될 수 있는 다양한 컴퓨팅 환경을 고려하여, 본 명세서에 제공된 시스템 및 방법은 결코 특정의 컴퓨팅 아키텍처에 한정되는 것으로 해석되어서는 안된다. 그 대신에, 본 발명은 어떤 하나의 실시예에 한정되어서는 안되며 오히려 첨부된 청구항들에 따라 폭 및 범위가 해석되어야만 한다.
그 다음에, 도 2를 참조하면, 많은 컴퓨터화된 프로세스들이 상기한 프로세스들을 수행하도록 구현될 수 있는 예시적인 네트워크화된 컴퓨팅 환경이 도시되어 있다. 예를 들어, 병렬 컴퓨팅은 보안 정책을 액세스 검사 메카니즘의 기본적인 표현들로부터 추상화하고 그 표현들로 변환하는 것을 사용 및/또는 구현하는 도 2의 네트워크 상의 다양한 클라이언트들을 갖는 이러한 네트워크화된 환경의 일부일 수 있다. 당업자라면 네트워크가 분산 컴퓨팅 환경에서 임의의 컴퓨터 또는 기타 클라이언트나 서버 장치를 접속시킬 수 있다는 것을 잘 알 것이다. 이 점에서, 다수의 처리 유닛, 메모리 유닛, 또는 저장 유닛 그리고 동시에 행해지는 다수의 애플리케이션 및 프로세스를 갖는 어떤 컴퓨터 시스템 또는 환경이라도 본 명세서에 제공된 시스템 및 방법과 관련하여 사용하기에 적당한 것으로 생각된다.
분산 컴퓨팅은 컴퓨팅 장치들 및 시스템들 간의 교환에 의해 컴퓨터 자원 및 서비스의 공유를 제공한다. 이들 자원 및 서비스는 파일의 정보 교환, 캐쉬 저장 및 디스크 저장을 포함한다. 분산 컴퓨팅은 네트워크 접속을 이용하여, 클라이언트들이 그들의 총합적 능력을 이용하여 기업 전체에 이득을 줄 수 있게 해준다. 이 점에서, 다양한 장치들은 본 명세서에 기술된 프로세스들을 포함할 수 있는 애 플리케이션, 객체, 또는 자원을 가질 수 있다.
도 2는 예시적인 네트워크화된 컴퓨팅 환경, 즉 분산 컴퓨팅 환경의 개략도를 제공한다. 이 환경은 컴퓨팅 장치(271, 272, 276, 277)는 물론 객체(273, 274, 275), 그리고 데이터베이스(278)를 포함한다. 이들 개체(271, 272, 273, 274, 275, 276, 277, 278) 각각은 프로그램, 메서드, 데이터 저장소, 프로그램가능 로직, 기타 등등을 포함하거나 이들을 사용할 수 있다. 이들 개체(271, 272, 273, 274, 275, 276, 277, 278)는 PDA, 오디오/비디오 장치, MP3 플레이어, 퍼스널 컴퓨터, 기타 등등의 동일한 또는 서로 다른 장치들의 일부분들에 걸쳐 있을 수 있다. 각각의 개체(271, 272, 273, 274, 275, 276, 277, 278)는 통신 네트워크(270)를 통해 다른 개체(271, 272, 273, 274, 275, 276, 277, 278)와 통신을 할 수 있다. 이 점에서, 어떤 개체라도 데이터베이스(278) 또는 기타 저장 요소의 유지보수 및 갱신을 책임질 수 있다.
이 네트워크(270)는 그 자체가 도 2의 시스템에 서비스를 제공하는 다른 컴퓨팅 개체들을 포함할 수 있고, 또한 그 자체가 다수의 상호 접속된 네트워크를 나타낼 수 있다. 본 발명의 한 측면에 따르면, 각각의 개체(271, 272, 273, 274, 275, 276, 277, 278)는 다른 개체(271, 272, 273, 274, 275, 276, 277, 278) 중 하나 이상에 서비스를 요청하기 위해 API 또는 기타 객체, 소프트웨어, 펌웨어 및/또는 하드웨어를 사용할 수 있는 개별 함수 프로그램 모듈을 포함할 수 있다.
또한, 객체(275 등)가 다른 컴퓨팅 장치(276) 상에서 호스팅될 수 있다는 것을 잘 알 것이다. 따라서, 도시된 물리적 환경이 접속된 장치들을 컴퓨터로서 나 타낼 수 있지만, 이와 같이 나타내는 것은 단지 예시적인 것에 불과하고 물리적 환경이 다른 대안으로서 PDA, 텔레비전, MP3 플레이어, 기타 등등의 다양한 디지털 장치와, 인터페이스, COM 객체, 기타 등등의 소프트웨어 객체를 포함하는 것으로 도시되거나 기술될 수 있다.
분산 컴퓨팅 환경을 지원하는 다양한 시스템, 컴포넌트, 및 네트워크 구성이 있다. 예를 들어, 컴퓨팅 시스템은 유선 또는 무선 시스템에 의해, 로컬 네트워크나 널리 분산된 네트워크에 의해 서로 접속될 수 있다. 현재, 많은 네트워크들이 인터넷에 연결되어 있으며, 이 인터넷은 널리 분산된 컴퓨팅의 기반구조를 제공하고 많은 서로 다른 네트워크를 포함한다. 이러한 기반구조는, 인터넷에 연결되어 있든 그렇지 않든 간에, 본 명세서에 제공된 시스템 및 방법과 관련하여 사용될 수 있다.
네트워크 기반구조는 클라이언트/서버, 피어-투-피어, 또는 복합 아키텍처 등의 다수의 네트워크 토폴로지를 가능하게 해줄 수 있다. "클라이언트"란 그와 관련이 없는 다른 부류 또는 그룹의 서비스를 사용하는 부류 또는 그룹의 구성원을 말한다. 컴퓨팅에서, 클라이언트는 다른 프로그램에 의해 제공되는 서비스를 요청하는 프로세스, 즉 간략히 말하면 일련의 명령어 또는 태스크이다. 클라이언트 프로세스는 다른 프로그램 또는 서비스 자체에 관한 동작 상세를 "알" 필요없이 요청된 서비스를 이용한다. 클라이언트/서버 아키텍처에서, 특히 네트워크화된 시스템에서, 클라이언트는 보통 다른 컴퓨터, 예를 들어, 서버에 의해 제공되는 공유 네트워크 자원에 액세스하는 컴퓨터이다. 도 2의 예에서, 개체(271, 272, 273, 274, 275, 276, 277, 278)는, 상황에 따라, 클라이언트, 서버, 또는 둘다로 간주될 수 있다.
서버는 통상적으로 인터넷 등의 원격 또는 로컬 네트워크를 통해 액세스가능한 원격 컴퓨터 시스템이지만, 꼭 그럴 필요는 없다. 클라이언트 프로세스는 제1 컴퓨터 시스템에서 작동 중일 수 있고, 서버 프로세스는 제2 컴퓨터 시스템에서 작동 중일 수 있으며, 통신 매체를 통해 서로 통신을 함으로써 분산형 기능을 제공하고 다수의 클라이언트들이 서버의 정보-수집 능력을 이용할 수 있게 해준다. 소프트웨어 객체는 다수의 컴퓨팅 장치 또는 개체에 걸쳐 분산되어 있을 수 있다.
클라이언트(들) 및 서버(들)는 프로토콜 계층(들)에 의해 제공되는 기능을 이용하여 서로 통신을 한다. 예를 들어, HTTP(HyperText Transfer Protocol)는 월드 와이드 웹(WWW), 즉 "웹"과 관련하여 사용되는 통상적인 프로토콜이다. 일반적으로, 서버 또는 클라이언트 컴퓨터를 서로 간에 식별하는 데 IP(Internet Protocol) 주소 등의 컴퓨터 네트워크 주소 또는 URL(Universal Resource Locator) 등의 기타 참조가 사용될 수 있다. 네트워크 주소는 URL 주소라고도 할 수 있다. 통신 매체를 통해 통신이 제공될 수 있다. 예를 들어, 클라이언트(들) 및 서버(들)는 대용량 통신을 위해 TCP/IP 접속(들)을 통해 서로 연결될 수 있다.
도 2에 제공된 일반적인 프레임워크에 따라 구축될 수 있는 다양한 컴퓨팅 환경 및 도 2의 환경과 같은 네트워크 환경에서의 컴퓨팅에서 일어날 수 있는 추가적인 다양성을 고려하여, 본 명세서에 제공되는 시스템 및 방법은 결코 특정의 컴퓨팅 아키텍처 또는 운영 체제로 제한되는 것으로 해석되어서는 안된다. 그 대신 에, 본 발명은 하나의 실시예에 한정되지 않고, 오히려 첨부된 청구항들에 따라 폭 및 범위가 해석되어야만 한다.
추상화 및 액세스 검사 메카니즘
소프트웨어 개발부터 유사성을 끌어내어, 고수준 언어에 포함된 추상화의 등장으로 소프트웨어의 관리가 (비교적) 더 간단하게 되었다. 어셈블리와 같은 하드웨어에 가까운 언어로만 개발된 대규모 소프트웨어 프로젝트는 생각조차 하기 힘들다. 대부분의 최근의 프로그램은 기초가 되는 실행 환경을 그다지 고려하지 않고 작성되며 의미를 유지하기 위해 컴파일러에 의존한다. 컴파일러 최적화(compiler optimization)와 같은 저수준 코드의 다양한 변환은 원래의 고수준 의도를 되살리는 것을 불가능하게 만들 수 있다. 그 자체로서, 프로그램의 의미는 그의 실행 환경과 무관한 모델에 존재한다. 프로그램을 실제로 실행할 필요없이 프로그램에 의해 어떤 일이 일어나는지의 많은 측면들을 질의하고 이해할 수 있다[물론, 튜링-완전 언어(Turing-complete language)로 작성된 프로그램에서는 모든 측면이 그러한 것은 아님].
보안 정책에서도 유사한 처리가 용납된다. 현재, 보안 정책 표현 메카니즘은 대체로 독립적인 데이터이며, 특히 표현력이 풍부하다. 간단한 논리적 모델, 언어 또는 추상화조차도 의도를 관리하는 데 일익을 담당한다. 보안 정책은 프로그래밍 언어의 표현성을 필요로 하지 않으며, 정책 선언문의 작성을 가능하게 해주는 충분한 의미만을 필요로 한다. 1차적인 목표는 액세스 검사 메카니즘과 무관하게 정책의 의미가 구별가능해야만 한다는 것이다. 이 점에서 볼 때, 본 명세서에 기술된 보안 정책 관리는 보안 정책과 액세스 검사 메카니즘 간의 이러한 독립성에 유용한 것으로 밝혀졌다. 그렇게 하기 위해, 액세스 제어에서 널리 쓰이는 선언문(statement) 및 어써션(assertion) 형태를 표현할 수 있게 해주는 언어가 사용되고, 그 언어로 된 표현으로 추론을 하는 기능, 즉 질의, 논리 계산을 수행하고 증명을 유도하는 기능이 제공된다.
언어는, 액세스 검사 메카니즘과 무관한, 표현이 풍부한 정책 모델 또는 정책 언어이고, 그 의미를 파악하기에 충분히 풍부하다. 유의할 점은 이하의 특성들을 갖는 언어라면 어느 것이라도 적합할 수 있다는 것이다.
표현성:
a. 주체를 자원에 매핑하고 주체를 속성 또는 프로퍼티(프로퍼티 값을 포함함)에 매핑하는 어써션을 명시할 수 있음
b. 누가 이러한 어써션을 작성했는지를 명시할 수 있음
c. 다른 주체들이 다른(또는 유사한) 어써션을 작성한 것에 입각하여 어써션을 명시할 수 있음. 이들은 아주 구체적인 것부터 아주 일반적인 것까지 있을 수 있음
d. 표현성 프리미티브(expressiveness primitive)를 사용하여 고수준 정책 구조를 작성할 수 있음. 즉, 이 프리미티브는 그의 표현 범위가 그다지 제약되어 있지 않음
선언적 의미 및 단조성:
a. 어써션을 작성하여 결합하고 이들이 처리되는 순서와 상관없이 동일한 일 련의 결론을 유도하는 것이 가능하다.
b. 정책 선언문으로부터 작성된 "증명"으로 결론을 입증하는 것이 가능하다.
c. 기존의 어써션으로부터 도출된 결론과 모순되지 않고 새로운 어써션 또는 규칙을 추가하는 것이 가능하다. 규칙의 취소가 허용될 수 있다.
계산 용이성:
a. 높은 성능으로 선언적 어써션의 결론을 계산할 수 있다.
b. 감사 추적의 분석 및 질의가 높은 성능으로 행해진다.
백엔드 액세스 검사 메카니즘(또는 백엔드의 어떤 원하는 일부)의 프리미티브(즉, 액세스를 허용하는 결정을 하기 위해 기존의 액세스 검사 메카니즘에 의해 소비되는 데이터)가 식별된다. 이들 프리미티브의 예로는 역할 정의 및 역할 배정(권한 부여 관리자(AzMan) 및 ASP.NET), 권한 관리 라이센스(RMS, IPP), ACL(파일 공유, 방화벽, 기타)가 있다.
이들 프리미티브는 이어서 정책 언어로 된 서술문으로 간주된다. 예를 들어, ACL 내의 접근 제어 엔트리(access control entry, ACE)는 서술문 "chuckr can read foo.txt"에 대응할 수 있다. AzMan 애플리케이션의 경우, 다른 예는 "chuckr is in the role developer"일 수 있다. 서로 다른 액세스 검사 메카니즘에 따라 많은 이러한 프리미티브가 있을 수 있다. 이들 프리미티브를 허가(permit)라고 한다.
이어서, 선언적 정책의 결정된 허가가 계산된다. 적용성의 범위에 따라, 효율성을 위해, 결정된 허가를 계산하기 위해 고려될 필요가 있는 정책의 일부분을 식별하기 위해 발견적 학습법이 사용될 수 있지만, 본 발명은 그에 한정되지 않는다. 정책이 무효로 될 때마다 허가가 재작성되는 것으로 가정한다. 적절한 기본적인 액세스 검사 메카니즘를 구성하는 데 결정된 허가가 사용된다. 액세스 요청이 행해질 때, 액세스 검사는 이들 구성을 사용한다.
액세스가 행해질 때 감사 이벤트가 생성되고, 이들은 정책-위주의 감사 정보가 얻어지는 정책 모델 추상화에서 표현된 정책과 모순되지 않는다. 그에 부가하여, 정책이 어떤 액세스를 허용하고 또 왜 허용하는지를 이해하기 위해 액세스 검사 메카니즘과 무관하게 정책에 관해 질의가 행해질 수 있다.
예시적인 시나리오
이하의 예는 의도와 구현을 분리하는 것 및 저수준 액세스 검사 메카니즘에서 의도의 의미를 구성하는 것을 나타내고 있다.
이하의 예는 아주 제한된 표현 능력을 갖는 시스템에서 자유재량 액세스 제어 시스템을 모델링하는 것을 나타낸 것이다. 구체적으로는, 액세스 검사 메카니즘이 표현할 수 있는 유일한 정보는 특정의 주체가 특정의 자원에 대해 어떤 동작을 수행할 수 있는지이다. 유의할 점은, 이 예에서, 소유자가 누구인지를 기록하는 기능조차 없는 것으로 가정한다는 것이다. 상기한 성질의 선언문은 시스템에 의해 말로 표현된 것으로 취급된다. 시스템 자체는 키를 사용하여 식별 또는 모델링될 수 있다.
그 다음에 도 3을 참조하면, 이하의 예시적인 보안 정책을 사용하여 허가의 표현을 계산하는 것을 나타낸 블록도가 도시되어 있다.
이탤릭체의 선언문은 액세스 제어 시스템에서는 표현할 수 없지만 정책 모델에서는 표현될 수 있는 것들이다. 이들 선언문은 정책(301)에 숨어 있는 의도를 반영한다. 이탤릭체가 아닌 선언문은 액세스 제어 시스템에서 표현가능하고 구현이 처리할 수 있는 것들이다. 이들이 "허가"(303)이다.
목표는 정책 선언문[즉, 이탤릭체의 선언문(301)]으로부터 액세스 제어 시스템에서 표현될 수 있는 것[즉, 이탤릭체가 아닌 선언문(303)]을 결정하는 것이다.
이하의 정책 규칙(301)은 이상의 방식을 따른 것이다.
Figure 112008081232109-PCT00001
이하의 정보(305)를 알고 있는 것으로 가정한다.
Figure 112008081232109-PCT00002
이상으로부터, 이하의 허가(303)를 논리적으로 결론(307)짓는 것이 가능하다.
Figure 112008081232109-PCT00003
그에 부가하여, 소유자는 이 기능의 전부 또는 그 일부를 그가 선택하는 누구에게라도 위임할 수 있다. 그 다음에 도 4를 참조하면, 위임에 관한 부가의 예시적인 보안 정책을 사용하여 허가의 표현을 계산하는 것을 나타낸 블록도가 도시 되어 있다. 정책(301)의 이하의 선언문(401)은 이 예에서 foo.txt에 대한 읽기 권한(read permission)을 Bob에게 제공하는 기능을 위임하려는 Peter의 의도를 표현하고 있다.
Figure 112008081232109-PCT00004
이하의 부가 정보(405)를 알고 있는 것으로 가정하자
Figure 112008081232109-PCT00005
다음과 같이 논리적으로 결론짓는 것(307)이 가능하다.
Figure 112008081232109-PCT00006
이어서, 다음과 같은 허가(403)를 논리적으로 결론짓는 것(307)이 가능하다.
Figure 112008081232109-PCT00007
그 다음에 도 5를 참조하면, 예시적인 결정된 허가를 액세스 검사 메카니즘의 표현에 삽입하는 것을 나타낸 블록도가 도시되어 있다. 보안 정책(301)을 구현하기 위해 액세스 검사 메카니즘의 표현(503)에 삽입(501)되는 것은 이들 이탤릭체가 아닌 선언문(403, 303)(즉, 허가)이다.
그 다음에 도 6을 참조하면, 예시적인 액세스 및 감사 이벤트로부터 얻어지는 증명을 제공하는 것을 나타낸 블록도가 도시되어 있다. Tom이 foo.txt을 읽고(601) 대응하는 감사 이벤트가 생성(603)되는 것으로 가정하자. 정책 선언문(301)을 사용하여 Tom이 foo.txt를 읽을 수 있기 위한 완성된 추론이 계산된다(605).
즉, 정책 선언문(301) 자체로부터 작성된 다음과 같은 증명이 제공된다(605).
Figure 112008081232109-PCT00008
이상의 해법은 기본적인 액세스 검사 메카니즘(503)에서의 구성과 전혀 무관하다. 이는 무엇이 왜 일어났는지의 진정한 정책 감사 추적이고 정책 선언문(301) 자체로부터 체계적으로 계산된다. 이들 감사 추적 및 정책 선언문은 물론 타임 스탬프, 선언문이 만들어진 장소, 기타 등등의 광범위한 추가 정보로 보강될 수 있다.
그 다음에 도 7을 참조하면, 보안 정책을 액세스 검사 메카니즘의 기본적인 표현들로부터 추상화하고 그 표현들로 변환하는 것을 구현하는 예시적인 시스템을 나타내는 블록도가 도시되어 있다. 유의할 점은 도 7이 한가지 가능한 구현 형태를 나타낸 것이며 동일한 또는 유사한 결과를 제공하는 다른 것들이 가능하고 또 생각되고 있다는 것이다.
위임을 지원하는 RBAC(role based access control, 역할 기반 접근 제어) 메카니즘(701)은 적당한 정책-위주 사용자 인터페이스(703)를 통해 사용자에게 노출된다. 정책을 구성하는 사용자는 사용자가 보거나 구성할 수 있는 정책의 측면들만을 본다. 이러한 정책이 구성되면, 시스템의 심장부인 핵심 정책 모델(core policy model)(705)에서 그의 의미가 파악된다.
핵심 정책 모델(705)은 다음과 같은 목적으로 사용된다.
Figure 112008081232109-PCT00009
이질적인 관점들을 통해 구성되었을 수 있는 일률적인 정책 질의를 지원하는 모든 정책에 대한 공통의 표현으로서 역할함
Figure 112008081232109-PCT00010
사용자 경험 및 사용자 관점을 주도함(예를 들어, 관리자가 그의 권한을 보조자에게 위임한 결과, 보조자의 사용자 경험이 그의 새로운 관리 권한을 반영하기 위해 변하게 됨)
Figure 112008081232109-PCT00011
액세스 검사 메카니즘(예를 들어, ACL 및 AzMan 역할)(707)에 적당한 형식으로 허가의 표현을 계산할 수 있음
Figure 112008081232109-PCT00012
정책이 액세스에 어떻게 대응했는지를 결정하기 위해 노출된 감사 모델(711)의 정책을 사용하여 감사 이벤트(709)로서 표명된 액세스를 합리화함
상기 특징들 대부분을 갖는 시스템은 사실상 저수준의 액세스 검사 메카니즘들(713) 중 어느 것도 변경하지 않고 세밀한 위임 기능들을, 예를 들어, AzMan 역할 및 ACL에 추가한다.
끝으로, 액세스 검사 메카니즘으로부터 액세스 제어 정책을 추상화하는 것은 액세스 검사 메카니즘에 의해 가능하게 되는 것보다 (의미를 갖는 선언형 모델 또는 명령형 모델을 사용하여) 정책의 더 풍부한 표현을 가능하게 해준다. 누가 어떤 자원에 대한 액세스 권한이 있는지 등의 액세스 질의를 위한 증명과 같은 추론이, 액세스를 제공하는 액세스 검사 메카니즘과 무관하게, 정책 선언문 자체로서 작성된다. "what-if" 기능은 액세스 검사 구성을 실제로 변경하는 일 없이 정책을 변경하는 것의 영향을 이해하기 위해 정책을 질의한다. 하나의 정책 선언문 세트로부터 논리적 결론을 계산한 결과로서 다수의 액세스 검사 메카니즘을 통해 권한이 구성된다. 액세스가 감사되고, 액세스 및 정책과 상충되는 액세스 시도를 식별하기 위해 정책-기반 추론이 제공된다. 이것은 정책이 지나치게 애매할지도 모르는 경우 문제를 해결하는 데 도움을 줄 수 있으며, 이 경우 감사가 정책의 결함을 찾아내는 데 도움이 될 수 있다. 이는 또한 조사자(기업 및 공무원 둘다)가 사악한 목적을 위해 누가 자기의 접근 권한을 사용했는지를 결정할 수 있게 해주는 과학 수사 기반의 추적을 생성한다.
본 명세서에 기술된 다양한 시스템, 방법 및 기술은 하드웨어 또는 소프트웨어, 또는 적절한 경우, 이 둘의 조합으로 구현될 수 있다. 따라서, 본 발명의 방법 및 장치, 또는 그의 어떤 측면 또는 일부분이 유형 매체(플로피 디스켓, CD-ROM, 하드 드라이브, 또는 임의의 다른 기계-판독가능 저장 매체 등)에 구현된 프로그램 코드(즉, 명령어)의 형태로 되어 있을 수 있으며, 이 프로그램 코드가 컴퓨터 등의 기계에 로드되어 실행될 때, 이 기계는 본 발명을 실시하는 장치가 된다. 프로그램가능 컴퓨터 상에서 프로그램 코드를 실행하는 경우에, 컴퓨터는 일반적으로 프로세서, 프로세서에 의해 판독가능한 저장 매체(휘발성 및 비휘발성 메모리 및/또는 저장 요소를 포함함), 적어도 하나의 입력 장치, 및 적어도 하나의 출력 장치를 포함한다. 하나 이상의 프로그램은 양호하게는 컴퓨터 시스템과 통신하기 위해 고수준의 절차적 또는 객체 지향 프로그래밍 언어로 구현된다. 그렇지만, 프 로그램(들)은, 원하는 경우, 어셈블리어 또는 기계어로 구현될 수 있다. 어쨋든, 이 언어는 컴파일된 또는 인터프리트된 언어일 수 있으며 하드웨어 구현과 결합될 수 있다.
본 발명의 방법 및 장치는 또한 어떤 전송 매체를 통해(예를 들어, 전선 또는 케이블을 통해, 광 섬유를 통해, 또는 임의의 다른 전송 형태를 통해) 전송되는 프로그램 코드의 형태로 구현될 수 있으며, 프로그램 코드가 기계(EEPROM, 게이트 어레이, PLD(programmable logic device), 클라이언트 컴퓨터, 비디오 레코더, 기타 등등)에 의해 수신되고 로드되어 실행될 때, 이 기계가 본 발명을 실시하는 장치가 된다. 범용 프로세서 상에서 구현될 때, 프로그램 코드는 본 발명의 인덱싱 기능을 수행하는 동작을 하는 독자적인 장치를 제공하기 위해 프로세서와 결합된다.
본 발명이 여러 도면의 양호한 실시예들과 관련하여 기술되어 있지만, 다른 유사한 실시예들이 사용될 수 있거나 본 발명을 벗어나지 않고 본 발명의 동일 기능을 수행하기 위해 상기한 실시예에 여러 수정 및 추가가 행해질 수 있다는 것을 잘 알 것이다. 게다가, 강조해야 할 점은, 특히 무선 네트워크 장치의 수가 계속하여 증가하고 있기 때문에, 핸드헬드 장치 운영 체제 및 기타 애플리케이션-관련 하드웨어/소프트웨어 인터페이스 시스템을 비롯한 다양한 컴퓨터 플랫폼이 본 명세서에서 생각되고 있다는 것이다. 따라서, 본 발명은 단 하나의 실시예에 한정되는 것이 아니라 첨부된 청구항들에 따라 폭 및 범위가 해석되어야만 한다.
마지막으로, 본 명세서에 기술된 실시예들은 다른 프로세서 아키텍처, 컴퓨 터-기반 시스템 또는 시스템 가상화에서 사용하기 위해 개조될 수 있고, 이러한 실시예는 본 명세서에 기술된 내용에 의해 명백히 예상되는 것이며, 따라서 본 발명은 본 명세서에 기술된 구체적인 실시예에 한정되지 않으며 그 대신에 가장 넓게 해석되어야만 한다.

Claims (20)

  1. 컴퓨터 자원 액세스 제어 정책을 구현하는 방법으로서,
    액세스 검사 메카니즘들로부터 액세스 제어 정책을 추상화하는 단계를 포함하며,
    상기 액세스 검사 메카니즘들은 상기 액세스 제어 정책과 같거나 그보다 더 제한된 정책 표현 능력을 가지고 있는 것인, 컴퓨터 자원 액세스 제어 정책을 구현하는 방법.
  2. 제1항에 있어서, 액세스 제어 정책 선언문으로부터 논리적 결론을 계산하는 단계, 및
    상기 계산된 논리적 결론에 기초하여 적어도 하나의 액세스 검사 메카니즘을 통해 권한을 구성하는 단계를 더 포함하는, 컴퓨터 자원 액세스 제어 정책을 구현하는 방법.
  3. 제2항에 있어서, 상기 권한은 다수의 액세스 검사 메카니즘을 통해 구성되는 것인, 컴퓨터 자원 액세스 제어 정책을 구현하는 방법.
  4. 제3항에 있어서, 자원에의 액세스에 관한 질의를 수신하는 단계, 및
    상기 액세스 제어 정책에 따라, 상기 질의의 결과를 이 특정의 결과가 제공 된 이유들과 함께 제공하는 단계 - 상기 이유들은 상기 액세스 검사 메카니즘과 무관하게 상기 액세스 제어 정책 자체로부터 작성됨 - 를 더 포함하는, 컴퓨터 자원 액세스 제어 정책을 구현하는 방법.
  5. 제4항에 있어서, 상기 액세스 제어 정책을 변경하는 것의 영향을 알아보기 위해 상기 액세스 제어 정책에 질의를 하는 단계, 및
    상기 액세스 검사의 구성을 변경하는 일 없이 상기 액세스 제어 정책을 변경하는 것의 상기 영향을 상세히 기술하는 정보를 제공하는 단계를 더 포함하는, 컴퓨터 자원 액세스 제어 정책을 구현하는 방법.
  6. 제5항에 있어서, 자원 액세스를 감사하는 단계, 및
    상기 액세스 제어 정책에 따라, 특정의 감사된 액세스가 허용된 이유를 제공하는 단계 - 상기 이유는 상기 액세스 검사 메카니즘과 무관하게 상기 액세스 제어 정책 자체로부터 작성됨 - 를 더 포함하는, 컴퓨터 자원 액세스 제어 정책을 구현하는 방법.
  7. 제1항의 단계들을 수행하는 명령어들을 갖는 컴퓨터 판독가능 매체.
  8. 제2항의 단계들을 수행하는 명령어들을 갖는 컴퓨터 판독가능 매체.
  9. 제3항의 단계들을 수행하는 명령어들을 갖는 컴퓨터 판독가능 매체.
  10. 제4항의 단계들을 수행하는 명령어들을 갖는 컴퓨터 판독가능 매체.
  11. 제5항의 단계들을 수행하는 명령어들을 갖는 컴퓨터 판독가능 매체.
  12. 제6항의 단계들을 수행하는 명령어들을 갖는 컴퓨터 판독가능 매체.
  13. 컴퓨터 자원 액세스 제어 정책을 구현하는 시스템으로서,
    액세스 검사 메카니즘들로부터 액세스 제어 정책을 추상화하는 수단을 포함하며,
    상기 액세스 검사 메카니즘들은 상기 액세스 제어 정책과 같거나 그보다 더 제한된 정책 표현 능력을 가지고 있는 것인, 컴퓨터 자원 액세스 제어 정책을 구현하는 시스템.
  14. 제13항에 있어서, 액세스 제어 정책 선언문으로부터 논리적 결론을 계산하는 수단, 및
    상기 계산된 논리적 결론에 기초하여 적어도 하나의 액세스 검사 메카니즘을 통해 권한을 구성하는 수단을 더 포함하는, 컴퓨터 자원 액세스 제어 정책을 구현하는 시스템.
  15. 제14항에 있어서, 상기 권한은 다수의 액세스 검사 메카니즘을 통해 구성되는 것인, 컴퓨터 자원 액세스 제어 정책을 구현하는 시스템.
  16. 제15항에 있어서, 자원에의 액세스에 관한 질의를 수신하는 수단, 및
    상기 액세스 제어 정책에 따라, 상기 질의의 결과를 이 특정의 결과가 제공된 이유들과 함께 제공하는 수단 - 상기 이유들은 상기 액세스 검사 메카니즘과 무관하게 상기 액세스 제어 정책 자체로부터 작성됨 - 을 더 포함하는, 컴퓨터 자원 액세스 제어 정책을 구현하는 시스템.
  17. 제16항에 있어서, 상기 액세스 제어 정책을 변경하는 것의 영향을 알아보기 위해 상기 액세스 제어 정책에 질의를 하는 수단, 및
    상기 액세스 검사의 구성을 변경하는 일 없이 상기 액세스 제어 정책을 변경하는 것의 상기 영향을 상세히 기술하는 정보를 제공하는 수단을 더 포함하는, 컴퓨터 자원 액세스 제어 정책을 구현하는 시스템.
  18. 제5항에 있어서, 자원 액세스를 감사하는 수단, 및
    상기 액세스 제어 정책에 따라, 특정의 감사된 액세스가 허용된 이유를 제공하는 수단 - 상기 이유는 상기 액세스 검사 메카니즘과 무관하게 상기 액세스 제어 정책 자체로부터 작성됨 - 을 더 포함하는, 컴퓨터 자원 액세스 제어 정책을 구현 하는 시스템.
  19. 컴퓨터 자원 액세스 보안 정책을 구현하는 시스템으로서,
    자원 액세스를 감사하는 수단, 및
    상기 액세스 제어 정책에 따라, 특정의 감사된 액세스가 허용된 이유를 제공하는 수단 - 상기 이유는 상기 액세스 제어 정책보다 더 제한된 정책 표현 능력을 갖는 액세스 검사 메카니즘과 무관하게 상기 액세스 제어 정책 자체로부터 작성됨 - 을 더 포함하는, 컴퓨터 자원 액세스 보안 정책을 구현하는 시스템.
  20. 제19항에 있어서, 상기 액세스 검사 메카니즘과 무관하게, 상기 액세스 제어 정책 자체에 기초하여 상기 액세스 보안 정책과 상충되는 자원 액세스 시도를 식별하는 수단을 더 포함하는, 컴퓨터 자원 액세스 보안 정책을 구현하는 시스템.
KR1020087028817A 2006-06-02 2007-05-31 컴퓨터 자원 액세스 제어 정책을 구현하는 방법, 컴퓨터 자원 액세스 제어 및 보안 정책을 구현하는 시스템, 및 컴퓨터 판독가능 매체 KR101354850B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/445,778 2006-06-02
US11/445,778 US7882539B2 (en) 2006-06-02 2006-06-02 Abstracting security policy from, and transforming to, native representations of access check mechanisms
PCT/US2007/012877 WO2008018944A2 (en) 2006-06-02 2007-05-31 Abstracting security policy from, and transforming to, native representations of access check mechanisms

Publications (2)

Publication Number Publication Date
KR20090018616A true KR20090018616A (ko) 2009-02-20
KR101354850B1 KR101354850B1 (ko) 2014-01-22

Family

ID=38791934

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087028817A KR101354850B1 (ko) 2006-06-02 2007-05-31 컴퓨터 자원 액세스 제어 정책을 구현하는 방법, 컴퓨터 자원 액세스 제어 및 보안 정책을 구현하는 시스템, 및 컴퓨터 판독가능 매체

Country Status (9)

Country Link
US (1) US7882539B2 (ko)
EP (1) EP2025092B1 (ko)
JP (1) JP5097200B2 (ko)
KR (1) KR101354850B1 (ko)
CN (1) CN101461177B (ko)
BR (1) BRPI0712605A2 (ko)
MX (1) MX2008015222A (ko)
RU (1) RU2447497C2 (ko)
WO (1) WO2008018944A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200075230A (ko) * 2018-12-18 2020-06-26 동명대학교산학협력단 Ict기반 설비데이터 수집 장치

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060218394A1 (en) * 2005-03-28 2006-09-28 Yang Dung C Organizational role-based controlled access management system
US20080066169A1 (en) * 2006-09-08 2008-03-13 Microsoft Corporation Fact Qualifiers in Security Scenarios
US20080065899A1 (en) * 2006-09-08 2008-03-13 Microsoft Corporation Variable Expressions in Security Assertions
US20080066158A1 (en) * 2006-09-08 2008-03-13 Microsoft Corporation Authorization Decisions with Principal Attributes
US7814534B2 (en) 2006-09-08 2010-10-12 Microsoft Corporation Auditing authorization decisions
US8201215B2 (en) * 2006-09-08 2012-06-12 Microsoft Corporation Controlling the delegation of rights
US8095969B2 (en) * 2006-09-08 2012-01-10 Microsoft Corporation Security assertion revocation
US8060931B2 (en) 2006-09-08 2011-11-15 Microsoft Corporation Security authorization queries
US20080066147A1 (en) * 2006-09-11 2008-03-13 Microsoft Corporation Composable Security Policies
US8656503B2 (en) * 2006-09-11 2014-02-18 Microsoft Corporation Security language translations with logic resolution
US8938783B2 (en) * 2006-09-11 2015-01-20 Microsoft Corporation Security language expressions for logic resolution
US8544105B2 (en) * 2007-12-24 2013-09-24 Qualcomm Incorporated Method and apparatus for managing policies for time-based licenses on mobile devices
US20120246738A1 (en) * 2011-03-21 2012-09-27 Microsoft Corporation Resource Sharing and Isolation in Role Based Access
US9756022B2 (en) 2014-08-29 2017-09-05 Box, Inc. Enhanced remote key management for an enterprise in a cloud-based environment
US8819820B2 (en) 2012-11-19 2014-08-26 International Business Machines Corporation Security capability reference model for goal-based gap analysis
US10574442B2 (en) 2014-08-29 2020-02-25 Box, Inc. Enhanced remote key management for an enterprise in a cloud-based environment
US9531757B2 (en) * 2015-01-20 2016-12-27 Cisco Technology, Inc. Management of security policies across multiple security products
US9401933B1 (en) 2015-01-20 2016-07-26 Cisco Technology, Inc. Classification of security policies across multiple security products
US9906520B2 (en) 2015-12-02 2018-02-27 International Business Machines Corporation Multi-user authentication
US10511631B2 (en) * 2017-01-25 2019-12-17 Microsoft Technology Licensing, Llc Safe data access through any data channel
US10944793B2 (en) * 2017-06-29 2021-03-09 Juniper Networks, Inc. Rules-based network security policy modification
US11271969B2 (en) * 2017-09-28 2022-03-08 Oracle International Corporation Rest-based declarative policy management
US11599683B2 (en) 2019-11-18 2023-03-07 Microstrategy Incorporated Enforcing authorization policies for computing devices

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5566328A (en) * 1995-01-23 1996-10-15 Tandem Computers Incorporated Reconstructing directory pathnames from file handles in a computer system
US5913218A (en) * 1995-11-06 1999-06-15 Sun Microsystems, Inc System and method for retrieving and updating configuration parameter values for application programs in a computer network
US7821926B2 (en) * 1997-03-10 2010-10-26 Sonicwall, Inc. Generalized policy server
GB2329044B (en) * 1997-09-05 2002-10-09 Ibm Data retrieval system
US6463470B1 (en) 1998-10-26 2002-10-08 Cisco Technology, Inc. Method and apparatus of storing policies for policy-based management of quality of service treatments of network data traffic flows
US6427123B1 (en) * 1999-02-18 2002-07-30 Oracle Corporation Hierarchical indexing for accessing hierarchically organized information in a relational system
GB9912494D0 (en) * 1999-05-28 1999-07-28 Hewlett Packard Co Configuring computer systems
WO2001041039A2 (en) 1999-12-02 2001-06-07 Secure Computing Corporation Security management system in an heterogenous network environment
US6915435B1 (en) * 2000-02-09 2005-07-05 Sun Microsystems, Inc. Method and system for managing information retention
JP3992427B2 (ja) * 2000-08-01 2007-10-17 株式会社日立製作所 ファイルシステム
JP3899795B2 (ja) * 2000-09-21 2007-03-28 日本電気株式会社 ファイル管理システムおよび方法
US7216125B2 (en) * 2002-09-17 2007-05-08 International Business Machines Corporation Methods and apparatus for pre-filtered access control in computing systems
US20040148272A1 (en) * 2003-01-29 2004-07-29 Raman Balan Sethu Logical pathname as a reference mechanism for data
JP4320195B2 (ja) * 2003-03-19 2009-08-26 株式会社日立製作所 ファイルストレージサービスシステム、ファイル管理装置、ファイル管理方法、id指定型nasサーバ、および、ファイル読出方法
US7284010B2 (en) * 2003-10-23 2007-10-16 Microsoft Corporation System and method for storing and retrieving a field of a user defined type outside of a database store in which the type is defined
US7849320B2 (en) * 2003-11-25 2010-12-07 Hewlett-Packard Development Company, L.P. Method and system for establishing a consistent password policy
JP2005332049A (ja) * 2004-05-18 2005-12-02 Nippon Telegr & Teleph Corp <Ntt> ポリシ変換方法、ポリシ移行方法およびポリシ評価方法
JP4341517B2 (ja) * 2004-06-21 2009-10-07 日本電気株式会社 セキュリティポリシー管理システム、セキュリティポリシー管理方法およびプログラム
US20060161444A1 (en) * 2005-01-18 2006-07-20 Microsoft Corporation Methods for standards management
RU50325U1 (ru) * 2005-06-17 2005-12-27 Закрытое Акционерное Общество "Интервэйл" Система осуществления многофакторной строгой аутентификации держателя банковской карты с использованием мобильного телефона в среде мобильной связи при осуществлении межбанковских финансовых транзакций в международной платежной системе, по протоколу спецификации 3-d secure
US8972449B2 (en) * 2005-12-29 2015-03-03 Nextlabs, Inc. Preventing conflicts of interests between two or more groups
US7305374B2 (en) * 2006-01-26 2007-12-04 International Business Machines Corporation Method, system and program product for automated testing of changes to externalized rules

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200075230A (ko) * 2018-12-18 2020-06-26 동명대학교산학협력단 Ict기반 설비데이터 수집 장치

Also Published As

Publication number Publication date
RU2008147369A (ru) 2010-06-10
WO2008018944A2 (en) 2008-02-14
JP5097200B2 (ja) 2012-12-12
KR101354850B1 (ko) 2014-01-22
MX2008015222A (es) 2008-12-12
BRPI0712605A2 (pt) 2012-08-14
RU2447497C2 (ru) 2012-04-10
EP2025092A2 (en) 2009-02-18
US20070283411A1 (en) 2007-12-06
CN101461177A (zh) 2009-06-17
EP2025092B1 (en) 2018-01-31
JP2009540397A (ja) 2009-11-19
CN101461177B (zh) 2013-02-13
US7882539B2 (en) 2011-02-01
EP2025092A4 (en) 2012-04-04
WO2008018944A3 (en) 2008-05-02

Similar Documents

Publication Publication Date Title
KR101354850B1 (ko) 컴퓨터 자원 액세스 제어 정책을 구현하는 방법, 컴퓨터 자원 액세스 제어 및 보안 정책을 구현하는 시스템, 및 컴퓨터 판독가능 매체
US7774830B2 (en) Access control policy engine controlling access to resource based on any of multiple received types of security tokens
JP5356221B2 (ja) 役割ベースのアクセス制御ポリシーの資源許可ポリシーへの変換
EP2502144B1 (en) Controlling resource access based on resource properties
Jaeger et al. Policy management using access control spaces
US8136146B2 (en) Secure audit log access for federation compliance
US7814534B2 (en) Auditing authorization decisions
Hu et al. Guidelines for access control system evaluation metrics
US9767301B2 (en) Context aware data protection
US20070039045A1 (en) Dual layered access control list
Sacco et al. An access control framework for the web of data
US20090012987A1 (en) Method and system for delivering role-appropriate policies
Pereira RBAC for high performance computing systems integration in grid computing and cloud computing
Ilhan et al. A performance analysis of the XACML decision process and the impact of caching
Belokosztolszki Role-based access control policy administration
Tari et al. Controlling aggregation in distributed object systems: A graph-based approach
Montemayor et al. Information visualization for rule-based resource access control
Harnoš et al. Analysis of current trends in the development of DSLs and the possibility of using them in the field of information security
Bijon Constraints for attribute based access control with application in cloud IaaS
Moore et al. Assessment of RLG trusted digital repository requirements
Luo et al. Modeling, conflict detection, and verification of a new virtualization role‐based access control framework
Sinnott et al. Towards a virtual anonymisation grid for unified access to remote clinical data
Indrakanti et al. On the design, implementation and application of an authorisation architecture for web services
Kim Ontology/data engineering based distributed simulation over service oriented architecture for network behavior analysis
Massonet et al. GridTrust—A Usage Control-Based Trust and Security Framework for Service-Based Grids

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee