객체 기능 모델
Object-capability model![]() |
객체 기능 모델은 컴퓨터 보안 모델입니다.기능은 특정 개체에 대해 하나 이상의 작업을 수행할 수 있는 양도 가능한 권한을 나타냅니다.다음과 같은 조합으로 얻을 수 있습니다.
- 메시지로 송신할 수 있는(개체 참조 또는 보호된 포인터의 의미에서의) 불가항력 참조.
- 수행할 작업을 지정하는 메시지입니다.
보안 모델은 참조를 위조할 수 없는 것에 의존합니다.
- 오브젝트는 참조로 메시지를 보내는 것만으로 상호 작용할 수 있습니다.
- 참조는 다음 방법으로 얻을 수 있습니다.
- 초기 조건:설명되는 계산 세계의 초기 상태에서는 객체 A가 객체 B에 대한 참조를 이미 가지고 있을 수 있습니다.
- 부모:A가 B를 작성했을 경우, 그 시점에서 A는 새로 작성된B에 대한 유일한 참조를 취득합니다.
- 기부: A가 B를 만든다면, B는 A가 기부하기로 선택한 A의 레퍼런스 서브셋을 가지고 태어난다.
- 개요:A가 B와 C를 모두 참조하고 있는 경우, A는 C에 대한 참조를 포함한 메시지를 B에 송신할 수 있습니다.B는 후속 사용을 위해 그 참조를 유지할 수 있다.
객체 기능 모델에서는 모든 계산이 위의 규칙에 따라 수행됩니다.
캡슐화 또는 정보 숨김, 모듈화 및 관심사 분리 등 객체 지향 프로그래밍에 동기를 부여하는 이점은 기능 기반 [1][2]프로그래밍의 최소 권한 및 권한 분리 등의 보안 목표에 해당합니다.
객체 능력 모델은 Jack Dennis와 Earl C에 의해 처음 제안되었습니다.1966년 [3]밴 혼.
객체 지향 프로그래밍 언어의 허점
![]() |
일부 객체 기반 프로그래밍 언어(예: JavaScript, Java 및 C#)는 위의 규칙에 따르지 않는 방법으로 리소스에 액세스할 수 있는 방법을 제공합니다.이 방법에는 다음이 포함됩니다.
그러한 부인할 수 없는 권한의 사용은 객체 능력 모델의 조건을 위반한다.Caja와 Joe-E는 각각 JavaScript와 Java의 변형으로 이러한 허점을 제거하기 위해 제한을 가합니다.
오브젝트 기능의 이점
컴퓨터 사이언티스트 E.Dean Trivble은 객체 기능 모델에 비해 스마트 계약에서 ID 기반 액세스 제어는 동적으로 변화하는 권한을 잘 지원하지 않는다고 말했습니다.그는 자동차 [4]소유권을 양도하지 않고 발렛에게 차 열쇠를 주는 것과 자동차 소유권 모델을 비유했다.
객체 기능 시스템의 구조적 특성은 코드 설계의 모듈화를 선호하고 코드 구현에서 신뢰할 수 있는 캡슐화를 보장합니다.
이러한 구조적 특성은 객체 기능 프로그램 또는 운영 체제의 일부 보안 특성 분석을 용이하게 합니다.이들 중 일부(특히 정보 흐름 속성)는 객체의 동작을 결정하는 코드에 대한 지식이나 분석과는 무관하게 객체 참조 및 연결 수준에서 분석할 수 있습니다.그 결과, 이러한 보안 속성은 알려지지 않은 악성 코드를 포함하는 새로운 객체가 존재하는 경우 설정 및 유지할 수 있습니다.
이러한 구조적 속성은 기존 객체에 대한 액세스를 관리하는 두 가지 규칙에서 비롯됩니다.
- 1) 객체 A는 객체 A가 B에 대한 참조를 보유하고 있는 경우에만 메시지를 B에 보낼 수 있다.
- 2) 객체 A는 객체 A가 C에 대한 참조를 포함한 메시지를 수신해야 C에 대한 참조를 얻을 수 있다.
이들 2가지 규칙의 결과로서 오브젝트는 기존의 참조 체인을 통해서만 다른 오브젝트에 대한 참조를 얻을 수 있다.즉, 「접속만이 접속을 낳는다」라고 하는 것입니다.
- 객체 능력 시스템
- 이 문서에서 설명하는 원칙을 구현하는 계산 시스템입니다.
- 물건
- 개체에는 로컬 상태와 동작이 있습니다.이 의미에서의 오브젝트는 액세스 제어 문헌에서 사용되는 의미에서의 오브젝트이자 오브젝트이다.
- 언급
- 단일 개체를 명확하게 지정하고 해당 개체에 메시지를 보낼 수 있는 권한을 제공하는 허용할 수 없는 통신 채널(보호된 포인터, 불투명 주소).
- 메세지
- 참조용으로 송신되는 것.시스템에 따라서는 메시지 자체가 퍼스트클래스 오브젝트일 수도 있고 아닐 수도 있습니다.
- 부탁한다
- 메시지가 참조로 전송되는 작업입니다.메시지가 수신되면 수신자는 메시지에 포함된 참조에 액세스할 수 있습니다.
- 감쇠
- 오브젝트 기능 시스템의 공통 설계 패턴: 오브젝트의 참조를 지정하면 읽기 전용 액세스만 허용하거나 취소를 허용하는 등 특정 보안 제한이 있는 프록시 오브젝트에 대해 다른 참조를 만듭니다.프록시 개체는 수신된 메시지에 대해 보안 검사를 수행하고 허용된 메시지를 전달합니다.딥 감쇠는 원래 감쇠된 물체를 통해 얻은 물체에 대해 동일한 감쇠가 과도적으로 적용되는 경우를 말한다(일반적으로 "막" 사용).
실장
"기능 시스템"으로 기술된 거의 모든 과거 시스템은 객체 기능 시스템으로 모델링될 수 있습니다(단, "기능"이라는 용어의 일부 사용은 POSIX "기능"과 같이 모델과 일치하지 않습니다).
KeyKOS, EROS, Integrity([dubious ]운영체제), CapROS, Coyotos, seL4, OKL4 및 Fiasco.OC는 객체 기능 모델을 구현하는 안전한 운영 체제입니다.
오브젝트 기능을 구현하는 언어
- 제1막 (1981)
- 에덴(1985년)
- 에메랄드(1987년),
- Trusty Scheme(1992)
- W7(1995년)
- 줄(1996년),
- Original-E(1997),
- Oz-E(2005년),
- Joe-E(2005년),
- CaPerl (2006년)
- Emily (2006)
- Caja (2007년~2021년)
- 몬테 (2008년 ~ 현재)
- 포니 (2014년 ~ 현재)[4]
- 와이번 (2012년 ~ 현재)
- 뉴스피크 (2007년 ~ 현재)
- Hacklang (2021-현재)
- 롤랑 (2018-현재)
「 」를 참조해 주세요.
- 기능 기반 보안
- 기능 기반 어드레싱
- 배우 모델
레퍼런스
- ^ Miller, Mark Samuel (May 2006). "Robust Composition: Towards a Unified Approach to Access Control and Concurrency Control". erights.org. Baltimore, Maryland. Retrieved 28 July 2013.
- ^ Mark S. Miller; Ka-Ping Yee; Jonathan S. Shapiro (2003). "Capability Myths Demolished" (PDF). Technical Report SRL2003-02. Systems Research Lab, Johns Hopkins University.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말) - ^ [1] 인용: J.B. 데니스, E.C. 밴 혼"멀티프로그래밍 계산을 위한 프로그래밍 의미론"ACM의 통신, 9(3): 143-155, 1966년 3월.
- ^ a b Lutsch, Felix (26 August 2019). "Agoric Q&A with Dean Tribble". Chorus One.
- ^ Henry Lieberman (June 1981). "A Preview of Act 1". MIT AI memo 625.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말) - ^ Henry Lieberman (June 1981). "Thinking About Lots of Things at Once without Getting Confused: Parallelism in Act 1". MIT AI memo 626.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말)