KR102480035B1 - 블록체인 상의 동적 액세스 제어 - Google Patents

블록체인 상의 동적 액세스 제어 Download PDF

Info

Publication number
KR102480035B1
KR102480035B1 KR1020197004184A KR20197004184A KR102480035B1 KR 102480035 B1 KR102480035 B1 KR 102480035B1 KR 1020197004184 A KR1020197004184 A KR 1020197004184A KR 20197004184 A KR20197004184 A KR 20197004184A KR 102480035 B1 KR102480035 B1 KR 102480035B1
Authority
KR
South Korea
Prior art keywords
capability
sender
capabilities
target
blockchain
Prior art date
Application number
KR1020197004184A
Other languages
English (en)
Other versions
KR20190042567A (ko
Inventor
마크 스탬플스
풀 림바
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
Priority claimed from AU2016903450A external-priority patent/AU2016903450A0/en
Application filed by 커먼웰쓰 사이언티픽 앤드 인더스트리얼 리서치 오가니제이션 filed Critical 커먼웰쓰 사이언티픽 앤드 인더스트리얼 리서치 오가니제이션
Publication of KR20190042567A publication Critical patent/KR20190042567A/ko
Application granted granted Critical
Publication of KR102480035B1 publication Critical patent/KR102480035B1/ko

Links

Images

Classifications

    • 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
    • H04L9/3236Cryptographic 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 using cryptographic hash functions
    • 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
    • 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
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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
    • H04L9/321Cryptographic 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 involving a third party or a trusted authority
    • H04L9/3213Cryptographic 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 involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • 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
    • H04L9/3263Cryptographic 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 involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3265Cryptographic 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 involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate chains, trees or paths; Hierarchical trust model
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2145Inheriting rights or properties, e.g., propagation of permissions or restrictions within a hierarchy

Abstract

본 개시는 블록체인 시스템(180) 상에서 (동적 액세스 제어 인터페이스(150)를 통한) 능력들을 사용하여 동적 액세스 제어를 설명한다. 블록체인 데이터 구조는 암호적으로 함께 체인으로 연결되는, 블록들의 타임 스탬프 목록이다. 본 개시에서, 능력들은 (능력 스토리지(170)를 통해) 블록체인 시스템 상에 저장되고 따라서 액세스 전파가 공지된다. 이것은 새로운 트랜잭션을 기록함으로써 액세스의 철회를 달성가능하게 만들며, 이는 사실상 이전의 승인을 제거한다. 트랜잭션 이력에는 변화가 존재하지 않고 그 대신 새로운 트랜잭션은 능력의 현재 상태를 기록한다(170). 블록체인 시스템(180) 상의 일 예시적 구현은 이더리움에서 주어지며, 이는 "스마트 컨트랙트들"로 칭하여지는 프로그렘들이 트랜잭션들로서 실행되는 것을 허용한다.

Description

블록체인 상의 동적 액세스 제어
관련 출원들에 대한 교차 참조
본 출원은 2016년 8월 30일자로 출원된 호주 가특허 출원 번호 제2016903450호로부터의 우선권을 주장하며, 그 내용은 참조로 본원에 통합된다.
본 개시는 컴퓨터 보안 시스템들에서 사용하기 위한 블록체인 시스템 상의 동적 액세스 제어를 구현하기 위한 컴퓨터 구현 방법, 소프트웨어 및 시스템에 관한 것이다.
액세스 제어는 기업의 상이한 부서들 및 산업의 상이한 회사들에 걸친 제어된 정보 공유와 같은, 분산 시스템에서 보안의 중요한 특징이다. 회사의 상이한 부서들은 종종 상이한 정책들, 상이한 액세스 제어의 구현들을 갖고 레거시 시스템들(legacy systems)은 빈번히 상호 운용성에 대하여 문제들을 생성할 것이다.
대부분의 액세스 제어 시스템들에서, 개인에 대한 액세스 권한을 추적하는 것은 개인의 변화하는 역할들 및 부서 이동들로 인하여 어려울 수 있다. 게다가, 액세스 권한들을 추적하는 것은 액세스 제어 및 액세스 권한들이 상이한 시스템들에 의해 관리되는 경우 더욱 어렵게 된다. 액세스 권한들의 감사 추적(audit trail)이 사용될 수 있지만 그것은 상관시키기 어렵고 감사 추적의 복잡성이 보안 정책 모델들의 조합들로 인하여 증가한다. 분산 액세스 제어 시스템에서, 액세스 권한들의 제한은 액세스 권한들이 공지된 사용자들을 넘어서 확산되거나 누설될 수 있는 문제이다.
본 명세서에 포함되어 있는 문서들, 행위들, 재료들, 장치들, 물품들 등등의 임의의 논의는 이들 사안들 중 임의의 또는 전부가 그것이 본 출원의 각각의 청구항의 우선일 전에 존재함에 따라 종래 기술 기반의 일부를 형성하거나 본 개시와 관련된 분야에서 통상의 일반적인 지식이었다는 허가로서 해석되어서는 안된다.
본 명세서 전체에 걸쳐, 단어 "포함하다(comprise)", 또는 변형들 예컨대 "포함하다(comprises)" 또는 "포함하는(comprising)"은 명시된 요소, 정수 또는 단계, 또는 요소들, 정수들 또는 단계들의 그룹의 포함을 암시하지만, 임의의 다른 요소, 정수 또는 단계, 또는 요소들, 정수들 또는 단계들의 그룹의 배제를 암시하지 않는 것으로 이해될 것이다.
오브젝트에 대한 보안 기준이며, 블록체인 시스템 상에 저장되는 능력(capability)을 생성함으로써 동적 액세스 제어를 위한 컴퓨터 구현 방법에 있어서, 방법은:
(a) 오브젝트에 대한 능력을 생성하기 위한 요청을 센더로부터 수신하는 단계;
(b) 센더에 대해 오브젝트에 대한 능력의 존재를 결정하는 단계;
(c) 센더에 대해 오브젝트에 대한 능력이 존재하지 않는 것으로 결정되면 센더에 대해 오브젝트에 대한 능력을 생성하는 단계; 및
(d) 센더에 대해 오브젝트에 대한 능력을 블록체인 시스템 상에 저장하는 단계를 포함하며, 능력은 오브젝트에 대한 액세스 제어를 동적으로 결정하기 위해 사용될 수 있다.
이것은 수개의 이점들을 갖고 특히 감사 추적으로서 사용될 수 있는, 분산 원장으로 칭하여지는 계산상 안전한 부정조작방지(tamper-proof) 불변 데이터 스토리지 때문에 블록체인 시스템의 그것의 사용으로 인해 유리하다. 다른 이점들은 다양한 인가-위임 정책들 및 동적 액세스 제어를 허용하는 것을 포함한다. 동적 액세스 제어는 위임들의 전파를 선택적으로 허락 또는 제한하고 위임들을 철회하는 기능을 포함한다. 게다가, 능력들은 블록체인 상에 기록될 수 있고 따라서 액세스 전파는 공지된다. 이것은 액세스 권한들의 세부적인(fine-grained) 제어를 허용하며, 이는 액세스 권한들이 얼마나 세분화되어 있는지에 따라 컨퓨즈드 데퓨티 문제(Confused Deputy Problem)를 해결하는 것을 돕는다. 컨퓨즈드 데퓨티 문제는 하나의 목적을 위해 그것에 주어지는 액세스 권한들을 갖는 프로그램이 액세스 권한들의 원래 의도와 반대되는 일부 다른 목적을 위해 그들 액세스 권한들을 적용하고, 따라서 그것이 허락하지 않아야 하는 것을 허락할 때 발생한다. 이러한 문제의 고전적인 예는 로그 파일 및 과금 정보 파일을 포함하는, 디렉토리에 기록하는 것이 허용되는 프로그램을 수반한다. 프로그램은 그것이 디버깅 정보를 기록할 파일의 파라미터를 취한다. 그 다음, 사용자는 과금 정보 파일을 프로그램으로 제공할 수 있고 따라서 과금 정보를 중복 기재한다. 이것은 시스템 설계 동안에 의도되지 않았을 수 있지만, 프로그램이 필요한 액세스 권한들을 갖는 경우, 그것은 아마도 악의적인 또는 잘못된 사용자 제어 하에, 이러한 행동(action)을 수행할 수 있다. 본 발명은 그것이 이러한 문제를 극복하는 것을 도울 수 있음에 따라 이점이 있다.
방법은 성공 메시지를 센더에 송신하는 단계를 더 포함할 수 있다.
오브젝트에 대한 보안 기준이며, 블록체인 시스템 상에 저장되는 능력을 부여함으로써 동적 액세스 제어를 위한 컴퓨터 구현 방법에 있어서, 방법은:
(a) 타겟에 대해 오브젝트에 대한 능력을 부여하기 위한 요청을 센더로부터 수신하는 단계;
(b) 타겟에 대해 오브젝트에 대한 센더의 액세스 권한들을 결정하는 단계;
(c) 액세스 권한들이 오브젝트에 대한 능력이 타겟에 대해 부여되는 것을 허용하는지를 판단하는 단계; 및
(d) 타겟에 대해 오브젝트에 대한 능력을 블록체인 시스템 상에 저장하는 단계를 포함하며, 능력은 오브젝트 대한 액세스 제어를 동적으로 결정하기 위해 사용될 수 있다.
단계(c)는 능력이 오브젝트에 대해 부여되었는지를 판단하는 단계를 더 포함할 수 있다.
타겟에 대한 오브젝트의 능력은 센더에 대한 오브젝트의 능력의 서브세트일 수 있다.
비일시적 컴퓨터 판독가능 매체는 상기 방법에 따라 블록체인 상에 능력을 생성하기 위한 컴퓨터 판독가능 명령들을 갖는다.
오브젝트에 대한 보안 기준이며, 블록체인 시스템 상에 저장되는 능력을 생성함으로써 동적 액세스 제어를 위한 시스템에 있어서, 시스템은:
블록체인 상에서 실행되는 하나 이상의 스마트 컨트랙트 인스턴스들을 포함하며, 하나 이상의 스마트 컨트랙트 인스턴스들은:
(a) 오브젝트에 대한 능력을 생성하기 위한 요청을 센더로부터 수신하고;
(b) 센더에 대해 오브젝트에 대한 능력의 존재를 결정하고;
(c) 센더에 대해 오브젝트에 대한 능력이 존재하지 않는 것으로 결정되면 센더에 대해 오브젝트에 대한 능력을 생성하고;
(d) 센더에 대해 오브젝트에 대한 능력을 저장하되, 능력은 오브젝트에 대한 액세스 제어를 동적으로 결정하기 위해 사용될 수 있다.
오브젝트에 대한 보안 기준이며, 블록체인 상에 저장되는 능력을 부여함으로써 동적 액세스 제어를 위한 시스템에 있어서, 시스템은:
블록체인 상에서 실행되는 하나 이상의 스마트 컨트랙트 인스턴스들을 포함하며, 하나 이상의 스마트 컨트랙트 인스턴스들은:
(a) 타겟에 대해 오브젝트에 대한 능력을 부여하기 위한 요청을 센더로부터 수신하고;
(b) 타겟에 대해 오브젝트에 대한 센더의 액세스 권한들을 결정하고;
(c) 액세스 권한들이 오브젝트에 대한 능력이 타켓에 대해 부여되는 것을 허용하는지를 판단하고;
(d) 타겟에 대해 오브젝트에 대한 능력을 저장하되, 능력은 오브젝트에 대한 액세스 제어를 동적으로 결정하기 위해 사용될 수 있다.
오브젝트에 대한 보안 기준이며, 블록체인 시스템 상에 저장되는 능력을 삭제함으로써 동적 액세스 제어를 위한 컴퓨터 구현 방법에 있어서, 방법은:
(a) 오브젝트에 대한 능력을 삭제하기 위한 요청을 센더로부터 수신하는 단계;
(b) 센더에 대해 오브젝트에 대한 능력의 존재를 결정하는 단계;
(c) 센더에 대해 오브젝트에 대한 능력이 존재하는 것으로 결정되며 센더에 대해 오브젝트에 대한 능력을 삭제하는 단계를 포함한다.
오브젝트에 대한 보안 기준이며, 블록체인 시스템 상에 저장되는 능력을 철회함으로써 동적 액세스 제어를 위한 컴퓨터 구현 방법에 있어서, 방법은:
(a) 타겟에 대해 오브젝트에 대한 능력을 철회하기 위한 요청을 센더로부터 수신하는 단계;
(b) 타겟에 대해 오브젝트에 대한 센더의 액세스 권한들을 결정하는 단계;
(c) 액세스 권한들이 오브젝트에 대한 능력이 타켓에 대해 철회되는 것을 허용하는지를 판단하는 단계;
(d) 타겟에 대해 오브젝트에 대한 능력을 철회하는 단계를 포함한다.
컴퓨터 구현 방법은 능력이 마스터 능력이 아닌지를 판단하는 단계를 더 포함할 수 있다.
오브젝트에 대한 보안 기준이며, 블록체인 시스템 상에 저장되는 능력을 삭제함으로써 동적 액세스 제어를 위한 시스템에 있어서, 시스템은:
블록체인 상에서 실행되는 하나 이상의 스마트 컨트랙트 인스턴스들을 포함하며, 하나 이상의 스마트 컨트랙트 인스턴스들은:
(a) 오브젝트에 대한 능력을 삭제하기 위한 요청을 센더로부터 수신하고;
(b) 센더에 대해 오브젝트에 대한 능력의 존재를 결정하고;
(c) 센더에 대해 오브젝트에 대한 능력이 존재하는 것으로 결정되면 센더에 대해 오브젝트에 대한 능력을 삭제한다.
오브젝트에 대한 보안 기준이며, 블록체인 시스템 상에 저장되는 능력을 철회함으로써 동적 액세스 제어를 위한 시스템에 있어서, 시스템은:
블록체인 상에서 실행되는 하나 이상의 스마트 컨트랙트 인스턴스들을 포함하며, 하나 이상의 스마트 컨트랙트 인스턴스들은:
(a) 타겟에 대해 오브젝트의 능력을 철회하기 위한 요청을 센더로부터 수신하고;
(b) 타겟에 대해 오브젝트에 대한 센더의 액세스 권한들을 결정하고;
(c) 액세스 권한들이 오브젝트에 대한 능력이 타켓에 대해 철회되는 것을 허용하는지를 판단하고;
(d) 타겟에 대해 오브젝트에 대한 능력을 철회한다.
본 개시의 예들은 하기를 참조하여 설명될 것이다:
도 1은 일 예시적 응용 시나리오를 예시한다.
도 2는 능력(capability)을 생성하기 위한 컴퓨터 구현 방법을 예시한다.
도 3은 능력을 부여하기 위한 컴퓨터 구현 방법을 예시한다.
도 4는 능력을 삭제하기 위한 컴퓨터 구현 방법을 예시한다.
도 5는 능력을 철회하기 위한 컴퓨터 구현 방법을 예시한다.
도 6은 능력을 호출하기 위한 컴퓨터 구현 방법을 예시한다.
도 7은 일 예시적 센더(sender)를 예시한다.
본 발명은 일반적으로 블록체인 시스템 상에서 동적 액세스 제어를 구현하기 위한 방법, 소프트웨어 및 시스템에 관한 것이다. 본 개시에서, 스마트 컨트랙트들(smart contracts)의 무결성은 액세스 제어 로직 및 관리의 보안 처리를 보장한다. 스마트 컨트랙트들은 능력 동작들을 수행할 뿐만 아니라, 그 이력을 저장하기 위해 사용될 수 있는 많은 블록체인 시스템들의 계산 인프라의 일부를 형성한다.
본 개시에서, 능력들은 블록체인 시스템 상에서 구현되고 능력들에 대한 동작들은 트랜잭션들(transactions)로서 저장된다. 따라서, 블록체인은 능력들에 대한 모든 동작들의 실제적으로 변경 불가능하고 위조 불가능한 이력이 된다. 블록체인의 사본은 능력들의 현재 상태를 나타낸다. 일 예에서, 능력 레코드들은 스마트 컨트랙트 스토리지 공간에 저장된다. 이러한 스토리지 공간은 변수들을 포함하는 임의의 데이터 구조일 수 있다. 능력들에 대한 동작들은 능력 레코드들의 최신 상태들을 추적하기 위해 변수들을 수정한다. 동작들을 트리거하는 트랜잭션들은 능력 레코드들에 대한 변경들 및 수정들에 대한 감사 추적(audit trail)을 제공하기 위해 블록체인 상에 기록된다.
블록체인
블록체인은 피어 투 피어(peer-to-peer) 네트워크 내의 모든 노드들(nodes)에 의해 유지되는 공용 공유 원장(public shared ledger)이 되도록 설계되었다. 블록체인 시스템은 전통적인 은행 및 지불 시스템들과 같은 임의의 중앙 신뢰 기간에 의존하지 않는다. 그 대신, 신뢰성은 네트워크 내의 노드들 사이의 상호작용들로부터의 출현 속성(emergent property)으로서 달성된다. 블록체인의 전체 사본은 블록체인 네트워크 내에서 여태까지 실행된 모든 트랜잭션을 포함하며, 따라서 블록체인 상에서 거래하는 당사자(party)는 다른 당사자가 주장한 바와 같이 다른 당사자가 거래할 수 있다는 것을 높은 수준의 확실성으로 검증할 수 있다. 추가적인 결과는 블록체인이 위조 또는 해킹에 대해 입증할 수 있게 강건하다는 것이다. 이것의 하나의 중요한 결과는 돈의 트랜잭션을 위한 은행 또는 액세스 권한들의 트랜잭션을 위한 신뢰된 보안 프로그램과 같은, 신뢰된 제3자(third party)를 이용할 필요가 없다는 것이다.
개념으로서의 블록체인은 비트코인의 인프라에서 최초 정의되었다. 그 이후, 개념은 암호화폐 또는 토큰들 필요 없이 임의의 트랜잭션들을 검증 및 저장하기 위해 블록체인을 사용하는 분산 원장들(distributed ledgers)로 일반화되었다. 현재, 많은 암호화폐들은 그들 플랫폼의 기반으로 블록체인들을 사용한다. 인기 있는 블록체인 시스템들은 비트코인(Bitcoin) 및 이더리움(Ethereum)을 포함한다.
트랜잭션들
상기와 같이, 블록체인은 본질적으로 약정 프로토콜에 기초하여 시스템에 참여하는 모든 노드들에 의해 공유되는 트랜잭션들의 목록이다. 각각의 트랜잭션은 하나의 당사자의 어드레스로부터 다른 당사자의 어드레스로 특정 양의 디지털 자산의 전송을 나타낸다. 따라서, 어드레스는 은행 계좌와 유사하게 기능한다. 예를 들어, Alice는 블록체인 상에서 트랜잭션을 생성하고 그녀의 어드레스들 중에서 하나로부터 5 비트코인을 전송하고 출력으로서 Bob의 어드레스를 지정함으로써 5 비트코인을 Bob에게 지불할 수 있다.
블록체인들은 발생한 모든 트랜잭션들을 기록하고, 분산 원장으로 칭하여지는 변조방지 불변 데이터 스토리지를 제공한다. 참가 엔티티들의 전체 네트워크는 분산 원장에 포함되는 트랜잭션들에 대한 합의에 도달한다. 트랜잭션은 사용자가 거래하기를 원하는 모든 것을 본질적으로 나타낼 수 있는 인식 가능한 데이터 패키지이다. 많은 블록체인 시스템들에서, 데이터 패키지는 비트코인 또는 Ether와 같은 화폐 가치의 표시이지만, 그들은 또한 스마트 컨트랙트에서 함수 호출들의 파라미터들 및 결과들을 포함할 수 있다. 블록체인 시스템에서의 트랜잭션들의 무결성은 암호 기술들에 의해 보장된다. 통화 블록체인의 전체 사본을 포함하는 블록체인 시스템에 연결되고 이에 참여하는 컴퓨터는 '전체 노드'로 공지된다.
블록들
블록체인 시스템들에서, 트랜잭션들은 블록들로 집계된다. 각각의 블록은 해시(hash)로 칭하여지는, 이전 블록의 수학 함수 계산을 포함한다. 이러한 수학 함수 계산은 특정 트랜잭션이 주어지면 계산하기 쉽지만 특정 해시가 주어지면 반전시키는 것이 어렵다. 이것은 트랜잭션의 내용이 임의의 방식으로 수정되었는지 여부를 결정하는 수단을 나타낸다. 트랜잭션에 해시를 포함함으로써, 이것은 블록에 대해 이루어지는 임의의 변경들이 그러한 블록의 해시를 변경시킬 체인을 생성하며, 이는 다음 블록에서 재계산되고 저장되어야만 한다. 이것은 다음 블록의 해시를 변경시키며, 이는 또한 체인의 단부까지 그렇게 재계산되어야만 한다.
따라서, 각각의 블록은 또한 이전 블록에 대한 기준을 포함함으로써 이전 블록('부모' 블록)에 링크된다. 이것은 현재 블록으로부터 기원 블록(genesis block)으로 공지되는 맨 처음 블록으로 블록들의 체인을 생성하는 효과를 갖는다. 각각의 블록은 이전 블록의 해시가 달리 공지되지 않기 때문에 연대순으로 이전 블록 이후에 오도록 보장된다. 각각의 블록은 또한 그것 이후에 모든 블록이 또한 재생성되어야 하기 때문에 그것이 잠시 동안(전형적으로 비트코인에서, 이것은 평균적으로 60분 또는 6블록들) 체인에 있으면 수정하는 것이 계산상 비현실적이다. 이들 속성들은 블록체인 상의 능력과 관련되는 트랜잭션을 위조하기 어렵게 만드는 것이다.
스마트 컨트랙트들
블록체인 시스템의 스마트 컨트랙트들은 들의 법적 개념들을 복제하도록 의도된다. 즉, 컨트랙트들이 컨트랙트에 대한 당사자들에게 의무를 부과하는 상호 합의들인 경우, 스마트 컨트랙트는 트랜잭션 상에 의무들 또는 조건들을 자동으로 부과하는 방법이다.
비트코인 및 이더리움(및 대부분의 다른 블록체인 시스템들)은 트랜잭션들을 검증하기 위한 목적을 위해 스크립트들을 이용한다. 스마트 컨트랙트는 스크립트로서 구현될 수 있고 그것은 통상 트랜잭션이 검증되는 방식과 동일하게 동작하는 것이 가능하다. 이것은 비트코인이 채택한 사례이지만, 이것은 스크립트가 트랜잭션이 검증되도록 하기 위해 실행되어야 하기 때문에 상당히 상이하다. 이더리움에서, 스마트 컨트랙트들은 검증 트랜잭션과 다르다. 그 결과, 스마트 컨트랙트들은 컨트랙트를 개시하는 트랜잭션과 독립적으로 존재할 수 있다. 다른 차이들은 스마트 컨트랙트가 그것이 실행될 수 있기 전에 배포되어야 하고 일단 배포되면 스마트 컨트랙트가 명시적으로 종료되지 않는 한 실행될 것이라는 것을 포함한다. 비트코인 및 이더리움 둘 다에서, 스크립트는 컨트랙트가 자동으로 수행되기 위해 요구되는 모든 함수 호출들(op 코드들)을 포함한다. 두 블록체인 시스템들 상의 모든 노드는 스크립트를 실행한다.
블록체인 시스템들에서 스크립트들의 사용에 다수의 제한들이 존재한다. 비트코인에 대한 하나의 그러한 제한은 스크립팅 언어가 튜링 컴플리트(Turing-complete)가 아닌 것으로 간주된다는 것이다. 결과적으로, 비트코인 스크립트는 임의의 루프들을 생성하기 위해 사용되지 않는다. 이러한 제한은 공격자들이 DOS(Denial of Service) 타입의 공격으로서 그러한 행동(act)을 무한 루프하는 비트코인 시스템 상에서 스크립트를 실행하는 것을 방지할 수 있다. 대조적으로, 이더리움은 스마트 컨트랙트들을 작성하기 위한 내장된 튜링 컴플리트 스크립트 언어를 갖는다. 이더리움이 DOS 공격에 대한 가능성을 극복하는 방법은 통화로 거래하는 당사자들이 스크립트에 의해 요구되는 CPU 사이클들에 비례하여 수수료를 지불하도록 요구되는 것이다(이것은 이더리움에서 가스(Gas)로 공지됨). 따라서, 스크립트는 공격자가 스크립트를 실행하기 위해 지불할 무한대의 통화량을 필요로 함에 따라 무한 루프할 수 없다.
문헌에서, 용어 '스마트 컨트랙트'는 스마트 컨트랙트을 실행하기 위해 사용되는 코드 및 실제 실행한 또는 실행된 스마트 컨트랙트 둘 다를 언급하기 위해 상호 교환적으로 사용된다. 명료성을 위해, 본 개시에서, 용어 '프로세스 인스턴스(process instance)'는 스마트 컨트랙트에 의해 제공되는 실행, 및 서비스들을 언급한다. 용어 '스크립트'는 프로세스 인스턴스로서 실행될 수 있는 스마트 컨트랙트 코드를 언급한다.
현재의 개시는 실제 블록체인 자체(즉, 순차적으로 추가되는 블록들을 갖는 공용 공유 원장)를 언급하기 위해 용어 '블록체인'을 사용한다. 현재의 개시는 또한 블록체인 시스템 및 블록체인 네트워크와 관련하여 용어 블록체인을 사용한다. 용어 '블록체인 시스템'은 블록체인이 동작하게 만드는 모든 구성요소들을 언급하도록 의도된다. 이것은 블록체인 자체뿐만 아니라, 지갑, 코드, 트랜잭션들, 블록체인 네트워크를 포함한다. 본 개시에 사용되는 블록체인 시스템들의 예들은 비트코인 및 이더리움을 포함한다. 용어 블록체인 네트워크가 사용되는 경우(예를 들어, 이더리움 블록체인 네트워크), 이것은 인터넷과 같은 통신 네트워크를 통해 서로 통신할 수 있는 블록체인 코드를 실행시키는 컴퓨터들을 언급하도록 의도된다. 블록체인 네트워크의 컴퓨터들은 노드들로 언급되고, 전체 노드는 전체 블록체인의 사본을 포함하는 블록체인 네트워크의 컴퓨터이다.
다음은 예시적인 예이다. 그것은 이더리움의 사용을 설명하지만, 이것은 블록체인 시스템을 단순히 예시하도록 의도된다. 이것에 대한 주요 이유는 이더리움이 선천적으로 스마트 컨트랙트들을 지원한다는 것이다. 스마트 컨트랙트들은 이더리움 블록체인 상에서 오브젝트들(objects)을 보유하는 능력들로서 사용된다. 그들은 코드 함수들을 포함하고 다른 컨트랙트들과 상호작용하고, 새로운 컨트랙트들을 생성하고, 결정들을 내리고, 데이터를 저장하고, Ether를 다른 것들에 송신할 수 있다.
블록체인 구성요소들
현재의 개시는 블록체인 상의 3개의 별개 구성요소들을 언급한다. 이들 구성요소들은 하기와 같다:
동적 액세스 제어 인터페이스
이러한 구성요소는 블록체인 프로세스 실행을 외부 세계에 연결한다. 인터페이스는 센더(sender)가 호출하도록 외부 API(Application Programmable Interface) 기능들을 이용 가능하게 한다. 센더는 능력 동작을 개시하는 사용자 프로세스이다.
동작들
그 다음, 인터페이스로부터의 함수 호출들은 다음 동작들 '생성 능력(152)', '부여 능력(154)', '삭제 능력(156)', '철회 능력(158)' 및 '호출 능력(159)' 중 하나를 호출할 수 있다. 이들 동작들은 블록체인 상의 프로세스 인스턴스들(process instances)일 수 있다. 이들 프로세스 인스턴스들은 능력들을 생성, 부여, 삭제 및 철회하는 많은 프로세스 로직을 처리하고 또한 블록체인 상에 프로세스 상태를 저장할 수 있다.
스토리지 메니저
이것은 능력 데이터베이스와의 모든 상호 작용을 처리하는 구성요소이다. 상기 모든 동작들은 적어도 능력 데이터베이스에 대한 액세스를 필요로 하고, 또한 데이터베이스에 저장되는 데이터를 변경하는 것을 수반할 수 있다. 전형적으로, 스토리지 매니저는 블록체인에 추가되는 임의의 능력 트랜잭션들을 추적할 것이다.
오프-체인 구성요소들
3개의 주요 오프-체인 구성요소들이 시스템에 존재한다.
센더
상기와 같이, 센더는 능력 동작을 개시하는 사용자 프로세스이다.
오브젝트
능력 동작은 전형적으로 오브젝트와 관련하여 이루어진다. 전형적으로, 사용자는 오브젝트를 생성하고, 그 다음, 그러한 오브젝트에 대한 능력들을 다른 사용자들에게 부여한다. 오브젝트는 전형적으로 사용자 프로세스 또는 자원이고 임의의 사용자 프로세스 또는 컴퓨팅 자원의 종류일 수 있다. 오브젝트들은 문서들 또는 파일들과 같은 디지털 오브젝트들일 수 있거나, 오브젝트는 빌딩들 또는 장소들과 같은 물리 오브젝트들일 수 있다. 오브젝트들은 또한 컴퓨터 시스템들에 대한 전자 액세스일 수 있다. 컴퓨터 시스템 내에서, 오브젝트는 예를 들어 변수, 데이터 구조, 함수, 또는 방법일 수 있다. 그러나, 오브젝트는 또한 네트워크 자원, 예를 들어, 다른 컴퓨터, 네트워크 프린터 또는 스토리지와 같은 컴퓨터의 외부에 있을 수 있을 것이다. 오브젝트는 또한 그러한 오브젝트에 대한 고유 식별자로서의 역할을 하는 문자열과 같은 컴퓨팅 자원에 의해 표현되는 물리 오브젝트일 수 있을 것이다.
타겟
타겟은 센더의 능력 동작에 따라 능력들을 획득하거나 잃을 수 있는 사용자 프로세스이다.
예시적 시스템
도 1은 제안된 시스템의 일 예시적 예시이다. 이러한 시스템에서, Alice(110), Bob(112) 및 Carol(114)은 사용자들이다. 다수의 오프-체인 프로그램들이 존재한다: 센더(120), 타겟(130) 및 오브젝트(140). 상기와 같이, 센더는 통상적으로 능력 요청을 개시하는 프로그램이고, 타겟은 센더가 그들을 대신해 타겟 능력들을 교환하기를 희망하는 경우 선택적으로 지정된다. 전형적으로, 오브젝트는 센더(120) 또는 타겟(130)이 액세스를 추구하거나, 대안적으로, 이와 관련하여 하나 이상의 능력들이 부여되거나 수정되는 것이다.
블록체인 네트워크(180) 상에서, 다수의 스마트 컨트랙트들의 프로세스 인스턴스들이 존재한다. 동적 액세스 제어 인터페이스는 외부 API 호출들을 허용하는 스마트 컨트랙트의 프로세스 인스턴스이다. 또한, 다음 능력들에 대한 특정 동작들과 관련하여 다수의 스마트 컨트랙트들의 프로세스 인스턴스들이 존재한다: '생성 능력(152)', '부여 능력(154)', '삭제 능력(156)','철회 능력(158)' 및 '호출 능력(159)'. 또한, 스토리지 매니저로서 동작하는 스마트 컨트랙트의 프로세스 인스턴스가 존재하고 이러한 프로세스 인스턴스는 능력 스토리지(170) 프로세스 인스턴스와 상호작용한다.
이들 동작들 및 상기 동작들의 변형들은 더욱 정교한 동작들을 유도하기 위해 사용될 수 있다. 이것은 지지될 수 있는 상이한 종류의 권한들이 존재하는 경우 수행될 있다. 본 절에서 사용되는 능력은 단지 예시적인 표현이고 결코 권리들의 표현만은 아니다.
상기 언급된 바와 같이, 상기 개설된 '생성 능력(152)', '부여 능력(154)', '삭제 능력(156)','철회 능력(158)' 및 '호출 능력(159)'과 같은 동작들은 능력 레코드들의 최신 상태를 추적하기 위해 스마트 컨트랙트 스토리지 공간의 변수들을 수정한다. 동작들을 트리거하는 트랜잭션은 변경들 및 수정들에 대한 감사 추적을 능력 레코드들에 제공하기 위해 블록체인 상에 기록된다.
능력
능력들은 데이터에 대한 제어된 액세스의 의미를 설명하기 위한 기술로서 Dennis 및 Van Horn에 의해 제안되었다. 본 개시의 능력은 보안 오브젝트 기준이다. 능력은 시스템이 그러한 능력과 연관되는 그러한 오브젝트에 대한 일련의 특권들 또는 액세스 권한들을 유지하는 오브젝트에 대한 기준이다. 능력 기반 보안 모델에서, 보안 오브젝트 기준은 오브젝트 및 액세스 권한들 둘 다에 대한 기준이다. 액세스 권한들은 오브젝트에 대한 일련의 액세스 제한들이며, 여기서 액세스는 오브젝트를 입력하거나 사용하는 것을 포함할 수 있다. 능력들, 및 특히 액세스 능력들은 문서 및 파일들과 같은 디지털 오브젝트들뿐만 아니라, 빌딩 또는 장소들과 같은 물리 오브젝트들 및 컴퓨터 시스템들에 대한 전자 액세스와 관련될 수 있다.
능력은 그것이 한 당사자로부터 다른 당사자로(예컨대 센더 대 타겟 또는 사용자 프로세스 대 임의의 다른 사용자 프로세스로) 송신되거나 통신될 수 있다는 의미에서, 통신 가능하다. 능력은 임의의 다른 통신과 마찬가지로 데이터로서 통신될 수 있다. 이것은 사용자 프로세스가 능력의 소스가 비롯된 곳을 결정하는 것을 허용한다.
또한, 능력은 오브젝트 기준이 복제하기 쉽지 않거나 위조하는 것이 계산상 실행 불가능하도록 시스템이 보호를 제공한다는 점에서 안전하다. 본 개시에서, 보호는 블록체인 시스템의 사용에 의해 가능해진다. 보호된 오브젝트 기준들로서의 능력들은 일 실시예에서, 블록체인 시스템 상에서 능력을 실시하기 위해 블록체인 상에서 실행될 수 있는 스마트 컨트랙트의 특권 명령들의 사용을 통해서만 생성될 수 있다.
능력 기반 액세스 제어
능력 기반 액세스 제어 시스템은 사용자가 오브젝트를 해제하는 유효 능력을 소유하지 않으면 오브젝트들에 대한 액세스를 차단한다. 따라서, 오브젝트에 액세스하기 위해, 사용자는 능력을 사용해야만 한다. 그것은 개념적으로 잠긴 문을 갖는 룸 내의 오브젝트와 유사하며, 여기서 오브젝트에 액세스하기 원하는 사용자는 먼저 문을 해제하기 위해 유효 키를 필요로 한다.
능력 기반 액세스 제어는 능력의 소유에 기초함으로써, 키가 또한 사용자에게 할당되고 사용자에 의해 재분배될 수 있는 키 및 잠금 시나리오에서와 같이; 능력은 사용자들 사이에서 전파되거나 전달될 수 있다. 제한 문제는 능력의 누설이 존재할 때 발생하며, 이는 능력 전파를 제한하는 불능에서 기인한다.
능력을 소유하는 사용자 프로세스에는 그러한 능력에 대한 액세스 권한들에 의해 결정되는 바와 같은 특정 제한된 방식들로 오브젝트와 상호작용하는 기능이 주어질 수 있다. 액세스 권한들의 예들은 판독, 기록, 판독/기록, 및 허용되는 스토리지 위치들 또는 거부되는 스토리지 위치들을 포함한다.
이것은 일반적으로 계층 보호로서 동작하는 다른 보안 모델 타입들로부터 능력을 구분하며, 여기서 사용자 프로세스들에 주어지는 액세스 권한들의 층들이 존재한다. 계층 보호 모델에서, 가장 신뢰된 사용자 프로세스들에는 가장 많은 양의 액세스 권한들이 주어지고 가장 적게 신뢰된 사용자 프로세스들에는 가장 적은 양의 액세스 권한들이 주어진다. 이러한 타입들의 시스템들에서, 경로명과 같은 오브젝트에 대한 위조 가능한 기준은 액세스 권한들을 결정하기에 충분하지 않고, 액세스는 오브젝트에 대한 액세스를 요청하는 사용자 프로세스의 주변 권한(ambient authority)에 의존한다.
능력 생성
다음은 도 1에 예시된 바와 같은 예시적 시스템을 이용하기 위한 일 예시적 방법을 설명한다. Alice(110)는 센더 프로그램(120)에 액세스하고 Bob은 타겟 프로그램(130)에 액세스한다.
초기에, Alice(110)는 오브젝트(140)를 생성한다. 오브젝트의 소유자로서 Alice는 오브젝트에 대한 전체 액세스를 갖고, 따라서, 오브젝트에 대한 임의의 동작들을 수행할 자격이 있다. Alice의 센더 프로그램(120)은 먼저 오브젝트(140)에 대한 센더(120)의 능력을 생성하기 위해 동적 액세스 제어 인터페이스(150)의 API에 액세스한다.
도 2에 예시된 바와 같이, 동적 액세스 제어 인터페이스(150)는 오브젝트에 대한 능력을 생성하기 위한 요청을 센더로부터 수신한다(210). 그 다음, 동적 액세스 제어 인터페이스(150)는 생성 능력(152)을 호출한다. 생성 능력(152) 프로세스 인스턴스는 먼저 센더(120)에 대해 오브젝트에 대한 능력의 존재를 결정한다(220). 즉, 센더에 대해 오브젝트에 대한 하나의 능력만이 존재할 수 있어서 이러한 단계는 능력이 이미 생성되어 있지 않다는 것을 보장하는 것이다. 센더에 대해 오브젝트에 대한 능력의 존재는 그러한 능력이 스토리지 매니저(160)에 의해 저장되어 있는지를 조회함으로써 결정될 수 있다. 스토리지 매니저(160)는 하나 이상의 능력 스토리지(170)로부터 조회할 수 있다. 능력 스토리지(170)가 능력을 포함하지 않으면, 그 다음, 능력은 존재하지 않는 것으로 결정된다. 센더에 대해 오브젝트에 대한 능력이 존재하지 않는 것으로 결정되면, 그 다음, 생성 능력(152) 프로세스 인스턴스는 센더에 대해 오브젝트에 대한 능력을 생성할 수 있다.
센더에 대해 오브젝트에 대한 능력이 생성되었으면, 스토리지 매니저(160)는 능력을 저장할 수 있다. 능력의 데이터 구조는 오브젝트 및 권한들이 임의의 길이의 문자열인 (오브젝트, 권한, 유도)의 튜플(turple)로서 표현될 수 있다. 스토리지 매니저는 능력을 저장할 때 이러한 표현을 사용할 수 있다. 스토리지 매니저는 블록체인 상에 능력을 저장할 때 트랜잭션의 해시를 획득할 수 있다.
다음은 생성 능력을 위한 일 예시적 알고리즘이다:
Input : object
1 senderCaps = capsdb.get(msg.sender)
2 for all cap in senderCaps do
3 if cap.object == object then
4 return false
5 end if
6 end for
7 newCap = {object,"master",0x0}
8 senderCaps.push(newCap)
9 return true
부여 능력
초기에, Alice(110)는 Bob(112)을 신뢰하고, Alice(110)는 Bob(112)이 그녀의 오브젝트(140)에 대한 전체 액세스를 갖기를 희망한다. Alice는 오브젝트(140)에 대한 Bob의 액세스를 부여하려고 할 것이다. 시스템은 부여 능력 동작으로 이러한 시나리오를 처리한다.
도 3에 예시된 바와 같이, 동적 액세스 제어 인터페이스(150)는 타겟에 대해 오브젝트에 대한 능력을 부여하기 위한 요청을 센더로부터 수신한다(310). 그 다음, 동적 액세스 제어 인터페이스(150)는 부여 능력(154) 프로세스 인스턴스를 호출한다. 먼저, 부여 능력(154) 프로세스 인스턴스는 타겟(130)에 대해 오브젝트(140)에 대한 센더(120)의 액세스 권한들을 결정한다(320). 즉, 부여 능력 프로세스 인스턴스는 센더가 오브젝트에 대해 어떤 액세스 권한을 갖는지를 확인한다. 그 다음, 부여 능력 프로세스 인스턴스는 액세스 권한들이 오브젝트에 대한 능력이 타겟에 대해 부여되는 것을 허용하는지를 판단한다(330). 즉, 부여 능력 프로세스 인스턴스는 센더의 액세스 권한들이 센더가 오브젝트(140)에 대해 타겟(130)에 능력을 부여할 수 있게 하는지를 판단한다(330). 센더에 대해 오브젝트에 대한 능력이 부여되었으면 스토리지 매니저는 블록체인 상에 능력을 저장할 수 있다(340).
이러한 예에서, 단계들(320 및 330)은 동일한 프로세스 인스턴스에 의해 수행되지만, 그들은 상이한 프로세스 인스턴스들에 의해 수행될 수 있는 것이 가능하다. 실제로, 모든 예들에서와 같이, 단계들 각각은 하나의 프로세스 인스턴스 내에서 또는 다수의 프로세스 인스턴스들에 걸쳐 수행될 수 있을 것이다.
다음은 부여 능력을 위한 예시적 알고리즘이다:
Input: object,target,rights
1 senderCaps = capsdb.get(msg.sender)
2 for all cap in senderCaps do
3 if cap.object == object then
4 if ("master" in cap.rights) OR ("grant" in cap.rights) then
5 targetCaps <- capsdb.get(target)
6 if (("master"NOT in targetCaps) AND (rights != "master"))
7 newCap = {object,rights,msg.sender}
8 targetCaps.push(newCap)
9 end if
10 return true
11 end if
12 end if
13 end for
14 return false
삭제 능력
일부 지점에서 Alice(110)는 더 이상 Bob(112)과 오브젝트(140)를 공유할 임의의 필요성을 갖지 않는 경우가 있을 수 있다. 이러한 경우, Alice는 단순히 오브젝트(140)에 대한 능력을 삭제하기를 원할 수 있다.
도 4는 삭제 능력 동작을 위한 일 예시적 방법이다. 이러한 예에서, 동적 액세스 제어 인터페이스(150)는 오브젝트에 대한 능력을 삭제하기 위한 요청을 센더로부터 수신한다(410). 그 다음, 동적 액세스 제어 인터페이스(150)는 삭제 능력(156) 프로세스 인스턴스를 호출한다. 먼저, 삭제 능력(156) 프로세스 인스턴스는 센더에 대해 오브젝트에 대한 능력의 존재 및 소유를 결정한다(420). 즉, 삭제 능력 프로세스 인스턴스는 센더가 오브젝트에 대해 어떤 액세스 권한들을 갖는지 확인하고, 특히 그것은 센더가 소유자인지를 판단한다. 그 다음, 삭제 능력 프로세스 인스턴스는 액세스 권한들이 오브젝트에 대한 능력이 삭제되는 것을 허용하는지를 판단한다. 즉, 삭제 능력 프로세스 인스턴스는 센더의 액세스 권한들이 센더가 오브젝트(140)에 대한 능력을 삭세할 수 있게 하는지를 판단한다(430). 전형적으로, 센더가 오브젝트(140)의 소유자인 것으로 결정되면, 그 다음, 센더는 오브젝트에 대한 능력을 삭제할 수 있을 것이다. 그 이후, 스토리지 매니저는 능력을 삭제할 수 있다(440). 이것은 실제적으로 데이터베이스로부터 능력들을 제거하는 단계이다.
삭제 능력에 대한 일 예시적 알고리즘은 다음과 같다:
Input: object
1 senderCaps = capsdb.get(msg.sender)
2 for all cap in senderCaps do
3 if cap.object == object then
4 if ("master" in cap.rights) then
5 result=
revokeAHNonMasterCap (msg.sender,object)
6 if result then
7 senderCaps = senderCaps.remove(cap)
8 return true
9 end if
10 end if
11 end if
12 end for
13 return false
삭제 능력에 대한 제2 예시적 알고리즘은 다음과 같다:
Input: object
1 senderCaps = capsdb.get(msg.sender)
2 for all cap in senderCaps do
3 if (cap.object == object) && ("master" in cap.rights)
then
4 for all key in capsdb do
5 caps = capsdb.get(key)
6 for all c in caps do
7 if (c.object == object) && ("master"NOT in c.rights) then
8 caps = caps.remove(c)
9 end if
10 end for
11 end for
12 return true
13 end if
14 end for
15 return false
철회 능력
Alice(110) 및 Bob(112)이 사이가 멀어진 후에, Alice(110)는 더 이상 그녀의 오브젝트(140)에 액세스하는 Bob(112)을 신뢰하지 않는다. Alice는 오브젝트(140)에 대한 Bob의 액세스를 무효화하는 것을 원할 것이다. 불행하게도, Alice는 Bob에게 오브젝트에 대한 전체 액세스를 부여하였으며, 이는 Bob이 그러한 액세스를 그의 친구, Carol(114)에게 위임할 수 있다는 것을 의미한다. 이러한 경우, 액세스는 Alice의 인식을 넘어 전파하였다. 이것이 제한 문제로서 언급되는 것이다. 철회 능력(158) 동작은 Bob(112)으로부터 유도되는 모든 능력들을 철회 및 삭제함으로써 이러한 시나리오를 처리할 수 있다.
도 5는 철회 능력 동작에 대한 일 예시적 방법이다. 이러한 예에서, 동적 액세스 제어 인터페이스(150)는 오브젝트에 대한 능력을 철회하기 위한 요청을 센더로부터 수신한다(510). 그 다음, 동적 액세스 제어 인터페이스(150)는 철회 능력(158) 프로세스 인스턴스를 호출한다. 먼저, 철회 능력(158) 프로세스 인스턴스는 센더에 대해 오브젝트에 대한 능력의 존재 및 소유를 결정한다(520). 즉, 철회 능력 프로세스 인스턴스는 센더가 오브젝트에 대해 어떤 액세스 권한들을 갖는지를 확인하고, 특히 그것은 센더가 소유자인지를 판단한다.
그 다음, 철회 능력 프로세스 인스턴스는 오브젝트에 대해 센더에 대한 액세스 권한들이 타겟에 대해 오브젝트에 대한 능력이 철회되는 것을 허용하는지를 판단한다(530). 즉, 철회 능력 프로세스 인스턴스는 센더의 액세스 권한들이 센더가 타겟에 대해 오브젝트(140)에 대한 능력을 철회할 수 있게 하는지를 판단한다. 전형적으로, 센더가 오브젝트(140)의 소유자인 것으로 결정되는 경우, 그 다음, 센더는 오브젝트에 대한 능력을 철회할 수 있을 것이다. 그 후에, 스토리지 매니저는 능력을 제거할 수 있다(540). 이것은 데이터베이스로부터 능력을 제거하는 단계이다.
다음은 철회 능력에 대한 일 예시적 알고리즘이다:
Input: object,target,rights
1 senderCaps = capsdb.get(msg.sender)
2 for all cap in senderCaps do
3 if cap.object == object && (("master" in cap.rights) OR ("revoke" in cap.rights)) then
4 targetCaps = capsdb.get(target)
5 for all c in targetCaps do
6 if c.object == object then
7 if rights in c.rights then
8 targetCaps = targetCaps.remove(c)
9 end if
10 end if
11 end for
12 return true
13 end if
14 end for
15 return false
호출 능력
Bob(112)은 오브젝트(140)에 대한 활동을 수행하기를 원할 수 있다. 서비스 자원 소유자는 호출 능력 동작을 호출함으로써 Bob이 활동을 수행하도록 허용되는지를 체크할 것이다.
도 6은 호출 능력 동작에 대한 일 예시적 방법이다. 이러한 예에서, 동적 액세스 제어 인터페이스(150)는 오브젝트에 대한 능력을 호출하기 위한 요청을 센더로부터 수신한다(610). 그 다음, 동적 액세스 제어 인터페이스(150)는 호출 능력(159) 프로세스 인스턴스를 호출한다. 먼저, 호출 능력(159) 프로세스 인스턴스는 센더에 대해 오브젝트에 대한 능력의 존재 및 소유를 결정한다(620). 즉, 호출 능력 프로세스 인스턴스는 센더가 오브젝트에 대해 어떤 액세스 권한들을 갖는지를 확인하고, 특히 그것은 센더가 소유자인지를 판단한다.
그 다음, 호출 능력(159) 프로세스 인스턴스는 오브젝트에 대한 센더의 액세스 권한들이 타겟에 대한 오브젝트의 능력이 호출되는 것을 허용하는지를 판단한다(630). 즉, 호출 능력 프로세스 인스턴스는 센더의 액세스 권한들이 센더가 타겟에 대한 오브젝트(140)의 능력을 호출할 수 있게 하는지를 판단한다. 전형적으로, 센더가 오브젝트(140)의 소유자인 것으로 결정되면, 그 다음, 센더는 오브젝트에 대한 능력을 호출할 수 있을 것이다.
다음은 호출 능력에 대한 일 예시적 알고리즘이다:
Input: object,target,rights
1 targetCaps = capsdb.get(target)
2 for all cap in targetCaps do
3 if cap.object == object then
4 if rights in cap.rights then
5 return true
6 end if
7 end if
8 end for
9 return false
성공 및 실패 메시지들
상기 동작들 중 임의의 것에 있어서, 방법은 성공 또는 에러 메시지를 호출 프로세스 인스턴스 또는 센터에 다시 리턴하는 단계를 더 포함할 수 있다. 성공 메시지는 능력 동작이 정상적으로 완료되었다는 것을 나타내는 반면에, 에러 메시지는 능력 동작이 진행되지 않았다는 표시이다. 에러 메시지는 예를 들어 액세스 권한들이 동작이 진행되는 것을 허용하지 않았다는 것을 나타낼 수 있다. 예를 들어, 호출 능력에 대해 상기 설명된 바와 같은 방법에 후속으로, 호출 능력(159) 프로세스 인스턴스는 센더에 대해 오브젝트의 호출에 대한 성공 또는 에러 메시지를 리턴할 수 있다(640).
해시 값
상기 동작들 중 임의의 것에 있어서, 해시 값을 센더에 리턴하는 단계를 더 포함할 수 있다. 일 예에서, 해시 값은 Bob(112)에 대한 능력을 철회하는 트랜잭션이다. 그 다음, 해시 값은 블록체인에서 트랜잭션을 룩업(look-up)하기 위해 사용될 수 있다. 트랜잭션을 룩업하는 것은 트랜잭션 시간 또는 내용을 검사하거나 또는 능력 데이터베이스의 현재 상태를 결정하는 데 유용할 수 있다. 예를 들어, 트랜잭션 레코드는 www.blockchain.info와 같은 공개적으로 이용 가능한 시설을 사용하여 트랜잭션 식별자로서 트랜잭션의 해시를 사용하여 액세스될 수 있다.
해시를 생성하기 위해 사용되는 실제 해싱 알고리즘은 블록체인 시스템에 의존한다. 예를 들어, 트랜잭션의 해시는 256-비트의 정보 표현을 생성하기 위해 SHA-256 알고리즘을 사용하여 결정될 수 있다. SHA(Secure Hash Algorithm) 패밀리의 다른 알고리즘들을 포함하는, 다른 해시 알고리즘들이 사용될 수 있다는 것이 이해되어야 한다. 일부 특정 예들은 SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE128, SHAKE256을 포함하는, SHA-3 서브세트의 인스턴스들을 포함한다. 다른 해시 알고리즘들은 RIPEMD(RACE Integrity Primitives Evaluation Message Digest) 패밀리의 것들을 포함할 수 있다. 특정 예는 RIPEMD-160을 포함할 수 있다. 다른 해시 함수들은
Figure 112019014794492-pct00001
해시 함수 및 냅색 기반(knapsack-based) 해시 함수들을 기반으로 하는 패밀리들을 포함할 수 있다.
스마트 컨트랙트들 배치
일 예시적 블록체인 시스템인 이더리룸에서, 스마트 컨트랙트는 그것이 실행될 수 있기 전에 배치되어야 한다. 스마트 컨트랙트를 프로세스 인스턴스로서 배치하기 위해, 스크립트의 컴파일된 코드 및 ABI(Application Binary Interface)가 요구된다. ABI는 동적 액세스 제어 인터페이스(170)와 상호작용하는 방법을 정의한다. API가 이용될 소스 코드에 대한 인터페이스를 정의하는 반면에, ABI는 특정 아키텍처 상에서 2개 이상의 소프트웨어 피스들 사이의 하위 레벨 이진 인터페이스를 정의한다. ABI는 프로세스 인스턴스가 자신과 상호작용하는 방법, 프로세스 인스턴스가 이더리움 네트워크(150)와 상호작용하는 방법, 및 프로세스 인스턴스(170)가 임의의 코드 라이브러리들과 상호작용하는 방법을 정의한다. 스마트 컨트랙트 스크립트를 컴파일링할 때, 컴파일러는 전형적으로 컴파일된 코드 및 ABI 둘 다를 생성할 것이다. 센더(120) 및 타겟(140) 둘 다는 그것이 동적 액세스 제어 인터페이스(170)와 상호작용할 수 있도록 동적 액세스 제어 인터페이스(170)에 대한 ABI에 액세스할 수 있다.
예시적 센더
도 8에 도시된 센더(120)는 버스(704)를 통해 서로 통신하는 프로세서(702), 메모리(710), 네트워크 인터페이스 장치(706) 및 인터페이스 장치(707)를 포함한다. 메모리는 명령들(712, 714, 및 716) 및 도 1 내지 도 6을 참조하여 설명된 프로세스들에 대한 데이터를 저장하고, 프로세서는 프로세스들을 구현하기 위해 메모리로부터의 명령들을 수행한다.
프로세서(702)는 메모리(710) 상에 저장되는 명령들을 수행한다. 프로세서(702)는 오프-체인 인터페이스 장치(706)로부터의 처리에 대한 사용자(110)에 의한 입력을 수신한다. 프로세서(702)는 API 모듈(712)에 따라 명령을 결정한다. 명령은 동적 액세스 제어 인터페이스(150)와 통신하는 함수일 수 있다. 프로세서(702)는 오프-체인 네트워크(190) 상의 인터페이스(180)와 통신하기 위해 인터페이스 모듈(716)에 저장되는 명령들을 실행할 수 있다.
변형 구현들 및 응용들
능력 기반 액세스 제어는 컴퓨터 보안 시스템의 하나의 구성요소인 것으로 의도된다. 대부분의 컴퓨터 보안 시스템들은 일부 형태의 인증을 필요로 할 것이다. 인증은 본 개시에서 주어지는 예들에서 설명되는 이더리움들과 같은 기본(underlying) 블록체인 시스템에 의해 처리될 수 있다. 예를 들어, 사람의 어드레스와 연관되는 오브젝트가 존재할 수 있지만, 이러한 시스템은 사람이 정확하게 인증되고 올바른 사람이 그러한 어드레스와 연관되는 것으로 추정한다. 많은 인증의 변형들이 이러한 능력 기반 시스템과 사용될 수 있다는 점이 주목되어야 한다.
일 예시적 응용은 본 개시에서 설명되는 바와 같은 능력들을 이용하기 위해 블록체인 시스템과 상호작용하는 네트워크 파일 시스템이다. 이러한 방식으로, 사용자 프로세스에는 네트워크 파일 시스템에서 파일에 대한 판독 액세스의 능력이 부여될 수 있다. 사용자 프로세스는 파일에 대한 판독 액세스를 요청하고 능력을 파라미터로서 전달할 수 있다. 네트워크 파일 시스템은 사용자 프로세스가 파일에 대한 적절한 판독 액세스를 갖고 있다는 것을 보장하기 위해 호출 능력 함수를 호출할 수 있다.
추가 예시적 응용은 자원 제한들을 가질 수 있는 오브젝트에 대한 액세스의 실시간 모니터링에 관한 것이다. 즉, 본 개시에서의 접근의 사용은 능력의 활동이 추적될 수 있기 때문에 오브젝트들의 자원 사용을 모니터링하는 것이 가능할 수 있다는 것을 의미한다. 예를 들어, 20개의 사용자 프로세스들이 15개의 판독 동작들의 자원 제한을 갖는 오프젝트에 대한 주어진 판독 능력들에 대해 존재하는 경우, 이때, 사용자 프로세스들의 3/4만이 오브젝트를 액세스할 수 있다. 그 대신, 그것은 사용자 프로세스가 적절한 행동을 수행하거나, 대안적으로 액세스가 액세스를 요청하는 다른 사용자 프로세스에 통신될 수 있으면 오브젝트에 액세스하는 능력이 철회되고 재할당되는 15개의 고정된 제한을 부과하는 시스템일 수 있다. 이것은 사용자 프로세스가 일반적으로 액세스가 요구된 때 액세스를 요청하는 주변 권한 시스템과 대조적이다. 시스템은 사용자 프로세스가 액세스를 요청할 때 그것을 부여하거나 부정할 수 있다.
본 개시에서 설명되는 바와 같은 능력들은 특히 위임 액세스(delegating access)에 대해 적용 가능하다. 위임된 인가들은 많은 상황들에서 발생할 수 있다. 실제 예에서, 정부는 도로 규칙들을 생성하는 권한을 가질 수 있지만, 정부는 도로 규칙들의 실제 생성을 사람 또는 정부 기관에 위임할 수 있다. 위임된 사람은 정부에 주어진 것과 동일한 액세스 또는 그 미만의 액세스를 가질 수 있다. 예를 들어, 정부는 교통 규칙들을 생성하고 유지하기 위해 액세스할 수 있지만, 규칙들을 정기적으로 갱신하기 위해 정부 기관으로서의 도로 및 해양 서비스들(Roads and Maritime Services)에 액세스를 위임할 수 있다. 본 개시의 능력 접근은 그러한 응용을 구현하는 것을 간단하게 만든다.
블록체인 시스템에 대한 상기 능력 기반 액세스 제어는 자동화된 액세스 제어를 위해 사용될 수 있다. 자동화된 액세스 제어 중 하나의 형태는 센더 또는 특정 범주의 센더가 특정 능력들을 위임받을 수 있는 경우이다. 하나의 그러한 예는 장치들에 의해 수행되는 인증일 수 있다. 이러한 예에서, 물의 음용 품질의 품질 보증을 수행하는 수질 측정 장치와 같은 장치의 범주에는 도시의 물 공급에 걸쳐 물의 품질의 측정들을 기록하기 위해 (데이터베이스와 같은) 오브젝트에 대한 액세스가 주어질 수 있다. 장치가 물 측정 장치의 특정 범주인 것을 고려해 볼 때, 측정 데이터베이스에 액세스하기 위해 그러한 범주의 모든 물 측정 장치들에 위임되는 능력이 존재할 수 있다. 이것은 오브젝트에 대한 액세스 제어가 자동화될 수 있고, 장치가 수동 인가될 필요가 없음에 따라 유리하다.
상기 개시된 동작들에 대한 변형들은 다른 종류의 정책들을 지원할 수 있다. 그들 정책들은 위임을 포함하며, 여기서 능력은 다른 사용자에게 전송되거나 한 사용자로부터 다른 사용자 '상으로' 복제된다. 정책들은 또한 제1 사용자가 능력을 갖고 제2 사용자가 제1 사용자의 능력을 철회하는 능력을 가질 수 있는 철회 정책들을 포함한다. 정책들은 사용자 당 액세스보다 더욱 정교한 정책들을 더 포함한다. 예를 들어, 일부 문서들은 역할과 사용자들의 연관이 시스템에 의해 별도로 관리되는 특정 역할에 의해 액세스될 수 있다.
다수의 변형들 및/또는 수정들이 청구범위에 정의되는 바와 같은 범위로부터 벗어나는 것 없이 특정 실시예들에 이루어질 수 있다는 점이 당업자에 의해 이해될 것이다.
본 개시의 기술들은 다양한 기술들을 사용하여 구현될 수 있다는 점이 이해되어야 한다. 예를 들어, 본원에서 설명되는 방법들은 적합한 컴퓨터 판독가능 매체 상에 상주하는 일련의 컴퓨터 실행가능 명령들에 의해 구현될 수 있다. 적합한 컴퓨터 판독가능 매체는 휘발성(예를 들어 RAM) 및/또는 비휘발성(예를 들어 ROM, 디스크) 메모리, 반송파들 및 전송 매체를 포함할 수 있다. 예시적 반송파들은 로컬 네트워크 또는 인터넷과 같은 공중 액세스 가능한 네트워크를 따라 디지털 데이터 스트림들을 운반하는 전기, 전자기 또는 광학 신호들의 형태를 취할 수 있다.
또한, 이하의 논으로부터 명백한 바와 같이 특별히 달리 명시되지 않으면, 명세서 전반에 걸쳐, "추정하는" 또는 "처리하는" 또는 "컴퓨팅하는" 또는 "계산하는", "최적화하는" 또는 "결정하는" 또는 "표시하는" 또는 "최대화하는" 등등과 같은 용어들을 이용하는 논의들은 컴퓨터 시스템의 레지스터들 및 메모리들 내의 물리적(전자적) 양들로서 표현되는 데이터를 컴퓨터 시스템 메모리들 또는 레지스터들 또는 다른 그러한 정보 스토리지, 전송 또는 디스플레이 장치들 내의 물리적 양들로서 유사하게 표현되는 다른 데이터로 처리하고 변형하는 컴퓨터 시스템, 또는 유사한 전자 컴퓨팅 장치의 행위(action) 및 프로세스들을 언급한다는 것이 인식되도록 이해되어야 한다.
따라서, 본 실시예들은 제한이 아닌 예시적으로서 모든 양태들에서 고려되어야 한다.

Claims (16)

  1. 블록체인 시스템 상에서 실행되는 하나 이상의 스마트 컨트랙트 인스턴스들에 의해 수행되며, 오브젝트에 대한 보안 기준이며, 상기 블록체인 시스템 상에 저장되는 능력을 생성함으로써 동적 능력 기반의 액세스 제어를 위한 컴퓨터 구현 방법에 있어서,
    (a) 상기 오브젝트에 대한 능력을 생성하기 위한 요청을 센더로부터 수신하는 단계, 센더는 능력 동작을 개시하는 사용자 프로세스임;
    (b) 상기 센더에 대해 상기 오브젝트에 대한 상기 능력의 존재를 결정하는 단계;
    (c) 스마트 컨트랙트의 특권 명령들을 실행함에 따라 상기 센더에 대해 상기 오브젝트에 대한 상기 능력이 존재하지 않는 것으로 결정되면 상기 센더에 대해 상기 오브젝트에 대한 상기 능력을 생성하는 단계; 및
    (d) 상기 센더에 대해 상기 오브젝트에 대한 상기 능력을 상기 블록체인 시스템 상에 저장하는 단계를 포함하며, 상기 능력은 상기 오브젝트에 대한 액세스 제어를 동적으로 결정하기 위해 사용될 수 있는 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    성공 메시지를 상기 센더에 송신하는 단계를 더 포함하는 컴퓨터 구현 방법.
  3. 블록체인 시스템 상에서 실행되는 하나 이상의 스마트 컨트랙트 인스턴스들에 의해 수행되며, 오브젝트에 대한 보안 기준이며, 상기 블록체인 시스템 상에 저장되는 능력을 부여하는 동적 능력 기반의 액세스 제어를 위한 컴퓨터 구현 방법에 있어서,
    (a) 타겟에 대해 오브젝트에 대한 능력을 부여하기 위한 요청을 센더로부터 수신하는 단계, 센더는 능력 동작을 개시하는 제1 사용자 프로세스이고, 상기 타겟은 상기 능력 동작에 따라 능력들을 획득하는 제2 사용자 프로세스임;
    (b) 상기 타겟에 대해 상기 오브젝트에 대한 상기 센더의 액세스 권한들을 결정하는 단계;
    (c) 상기 액세스 권한들이 상기 오브젝트에 대한 상기 권한이 상기 타겟에 대해 부여되는 것을 허용하는지를 판단하는 단계; 및
    (d) 상기 타겟에 대해 상기 오브젝트에 대한 상기 능력을 상기 블록체인 시스템 상에 저장하는 단계를 포함하며, 상기 능력은 상기 오브젝트에 대한 액세스 제어를 동적으로 결정하기 위해 사용될 수 있는 컴퓨터 구현 방법.
  4. 제3항의 방법에 따른 블록체인 시스템 상에 능력을 부여하기 위한 컴퓨터 구현 방법에 있어서,
    상기 능력은
    상기 오브젝트에 대한 능력을 생성하기 위한 요청을 센더로부터 수신하는 단계;
    상기 센더에 대해 상기 오브젝트에 대한 상기 능력의 존재를 결정하는 단계; 및
    상기 센더에 대해 상기 오브젝트에 대한 상기 능력이 존재하지 않는 것으로 결정되면 상기 센더에 대해 상기 오브젝트에 대한 상기 능력을 생성하는 단계에 의해 생성되는
    컴퓨터 구현 방법.
  5. 제3항에 있어서,
    단계(c)는 능력이 오브젝트에 대해 부여되었는지를 판단하는 단계를 포함하는 컴퓨터 구현 방법.
  6. 제3항에 있어서,
    상기 타겟에 대한 상기 오브젝트의 상기 능력은 상기 센더에 대한 상기 오브젝트의 상기 능력의 서브세트인 컴퓨터 구현 방법.
  7. 제3항의 단계들을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 비 휘발성 매체.
  8. 오브젝트에 대한 보안 기준이며, 블록체인 시스템 상에 저장되는 능력을 생성함으로써 동적 능력 기반의 액세스 제어를 위한 시스템에 있어서, 상기 시스템은:
    상기 블록체인 상에서 실행되는 하나 이상의 스마트 컨트랙트 인스턴스들을 포함하며, 상기 하나 이상의 스마트 컨트랙트 인스턴스들은:
    (a) 상기 오브젝트에 대한 능력을 생성하기 위한 요청을 센더로부터 수신하고, 센더는 능력 동작을 개시하는 사용자 프로세스임;
    (b) 상기 센더에 대해 상기 오브젝트에 대한 상기 능력의 존재를 결정하는 단계;
    (c) 스마트 컨트랙트의 특권 명령들을 실행함에 따라, 상기 센더에 대해 상기 오브젝트에 대한 상기 능력이 존재하지 않는 것으로 결정되면 상기 센더에 대해 상기 오브젝트에 대한 상기 능력을 생성하고;
    (d) 상기 센더에 대해 상기 오브젝트에 대한 상기 능력을 저장하되, 상기 능력은 상기 오브젝트에 대한 액세스 제어를 동적으로 결정하기 위해 사용될 수 있는 시스템.
  9. 오브젝트에 대한 보안 기준이며, 상기 오브젝트에 대해 블록체인 시스템 상에 저장되는 능력을 부여함으로써 동적 능력 기반의 액세스 제어를 위한 시스템에 있어서, 상기 시스템은:
    상기 블록체인 상에서 실행되는 하나 이상의 스마트 컨트랙트 인스턴스들을 포함하며, 상기 하나 이상의 스마트 컨트랙트 인스턴스들은:
    (a) 타겟에 대해 상기 오브젝트에 대한 능력을 부여하기 위한 요청을 센더로부터 수신하고, 센더는 능력 동작을 개시하는 제1 사용자 프로세스이고, 상기 타겟은 상기 능력 동작에 따라 능력들을 획득하는 제2 사용자 프로세스임;
    (b) 상기 타겟에 대해 상기 오브젝트에 대한 상기 센더의 액세스 권한들을 결정하고;
    (c) 상기 액세스 권한들이 상기 오브젝트에 대한 상기 능력이 상기 타겟에 대해 부여되는 것을 허용하는지를 판단하고;
    (d) 상기 타겟에 대해 상기 오브젝트에 대한 상기 능력을 저장하며, 상기 능력은 상기 오브젝트에 대한 액세스 제어를 동적으로 결정하기 위해 사용될 수 있는 시스템.
  10. 블록체인 시스템 상에서 실행되는 하나 이상의 스마트 컨트랙트 인스턴스들에 의해 수행되며, 오브젝트에 대한 보안 기준이며, 상기 오브젝트에 대한 상기 블록체인 시스템 상에 저장되는 능력을 제거함으로써 동적 능력 기반의 액세스 제어를 위한 컴퓨터 구현 방법에 있어서,
    (a) 상기 오브젝트에 대한 능력을 삭제하기 위한 요청을 센더로부터 수신하는 단계, 센더는 능력 동작을 개시하는 사용자 프로세스임;
    (b) 상기 센더에 대해 상기 오브젝트에 대한 상기 능력의 존재를 결정하는 단계; 및
    (c) 상기 센더에 대해 상기 오브젝트에 대한 상기 능력이 존재하는 것으로 결정되면 상기 센더에 대해 상기 오브젝트에 대한 상기 능력을 제거하는 단계를 포함하는 컴퓨터 구현 방법.
  11. 제10항의 방법에 따른 능력을 제거하기 위한 컴퓨터 구현 방법에 있어서,
    상기 능력은
    상기 오브젝트에 대한 능력을 생성하기 위한 요청을 센더로부터 수신하는 단계;
    상기 센더에 대해 상기 오브젝트에 대한 상기 능력의 존재를 결정하는 단계; 및
    상기 센더에 대해 상기 오브젝트에 대한 상기 능력이 존재하지 않는 것으로 결정되면 상기 센더에 대해 상기 오브젝트에 대한 상기 능력을 생성하는 단계에 의해 생성되는
    생성되는 컴퓨터 구현 방법.
  12. 블록체인 시스템 상에서 실행되는 하나 이상의 스마트 컨트랙트 인스턴스들에 의해 수행되며, 오브젝트에 대한 보안 기준이며, 상기 오브젝트에 대해 블록체인 시스템 상에 저장되는 능력을 철회함으로써 동적 능력 기반의 액세스 제어를 위한 컴퓨터 구현 방법에 있어서,
    (a) 타겟에 대해 오브젝트에 대한 능력을 철회하기 위한 요청을 센더로부터 수신하는 단계, 센더는 능력 동작을 개시하는 제1 사용자 프로세스이고, 상기 타겟은 상기 능력 동작에 따라 능력들을 잃는 제2 사용자 프로세스임;
    (b) 상기 타겟에 대해 상기 오브젝트에 대한 상기 센더의 액세스 권한들을 결정하는 단계;
    (c) 상기 액세스 권한들이 상기 오브젝트에 대한 상기 능력이 상기 타겟에 대해 철회되는 것을 허용하는지를 판단하는 단계;
    (d) 상기 타겟에 대해 상기 오브젝트에 대한 상기 능력을 철회하는 단계를 포함하는 컴퓨터 구현 방법.
  13. 제12항의 방법에 따라 능력을 철회하기 위한 컴퓨터 구현 방법에 있어서,
    능력은
    상기 오브젝트에 대한 능력을 생성하기 위한 요청을 센더로부터 수신하는 단계;
    상기 센더에 대해 상기 오브젝트에 대한 상기 능력의 존재를 결정하는 단계; 및
    상기 센더에 대해 상기 오브젝트에 대한 상기 능력이 존재하지 않는 것으로 결정되면 상기 센더에 대해 상기 오브젝트에 대한 상기 능력을 생성하는 단계에 의해 생성되는
    생성되는 컴퓨터 구현 방법.
  14. 제12항에 있어서,
    상기 능력이 마스터 능력이 아닌지를 판단하는 단계를 더 포함하는 컴퓨터 구현 방법.
  15. 오브젝트에 대한 보안 기준이며, 상기 오브젝트에 대한 블록체인 시스템 상에 저장되는 능력을 삭제함으로써 동적 능력 기반의 액세스 제어를 위한 시스템에 있어서,
    상기 블록체인 상에서 실행되는 하나 이상의 스마트 컨트랙트 인스턴스들을 포함하며, 상기 하나 이상의 스마트 컨트랙트 인스턴스들은:
    (a) 오브젝트에 대한 능력을 삭제하기 위한 요청을 센더로부터 수신하고, 센더는 능력 동작을 개시하는 사용자 프로세스임;
    (b) 상기 센더에 대해 상기 오브젝트에 대한 상기 능력의 존재를 결정하고;
    (c) 상기 센더에 대해 상기 오브젝트에 대한 상기 능력이 존재하는 것으로 판단되면 상기 센더에 대해 상기 오브젝트에 대한 능력을 삭제하는 시스템.
  16. 오브젝트에 대한 보안 기준이며, 상기 오브젝트에 대한 블록체인 시스템 상에 저장되는 능력을 철회함으로써 동적 능력 기반의 액세스 제어를 위한 시스템에 있어서,
    상기 블록체인 상에서 실행되는 하나 이상의 스마트 컨트랙트 인스턴스들을 포함하며, 상기 하나 이상의 스마트 컨트랙트 인스턴스들은:
    (a) 타겟에 대해 오브젝트에 대한 능력을 철회하기 위한 요청을 센더로부터 수신하고, 센더는 능력 동작을 개시하는 제1 사용자 프로세스이고, 상기 타겟은 상기 능력 동작에 따라 능력들을 잃는 제2 사용자 프로세스임;
    (b) 상기 타겟에 대해 상기 오브젝트에 대한 상기 센더의 액세스 권한들을 결정하고;
    (c) 상기 액세스 권한들이 상기 오브젝트에 대한 상기 능력이 상기 타겟에 대해 철회되는 것을 허용하는지를 판단하고;
    (d) 상기 타겟에 대해 상기 오브젝트에 대한 상기 능력을 철회하는 시스템.
KR1020197004184A 2016-08-30 2017-08-30 블록체인 상의 동적 액세스 제어 KR102480035B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
AU2016903450A AU2016903450A0 (en) 2016-08-30 Dynamic Access Rights on Blockchain
AU2016903450 2016-08-30
PCT/AU2017/050928 WO2018039722A1 (en) 2016-08-30 2017-08-30 Dynamic access control on blockchain

Publications (2)

Publication Number Publication Date
KR20190042567A KR20190042567A (ko) 2019-04-24
KR102480035B1 true KR102480035B1 (ko) 2022-12-21

Family

ID=61299529

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197004184A KR102480035B1 (ko) 2016-08-30 2017-08-30 블록체인 상의 동적 액세스 제어

Country Status (7)

Country Link
US (1) US11153092B2 (ko)
EP (1) EP3479519B1 (ko)
JP (1) JP7019697B2 (ko)
KR (1) KR102480035B1 (ko)
CN (1) CN109691015B (ko)
AU (1) AU2017320341B2 (ko)
WO (1) WO2018039722A1 (ko)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10936721B1 (en) * 2018-03-01 2021-03-02 Amdocs Development Limited System, method, and computer program for splitting and distributing a privileged software component into dependent components in order to deliver better security
AU2017223136B2 (en) 2016-02-23 2022-06-02 nChain Holdings Limited Registry and automated management method for blockchain-enforced smart contracts
MX2018010050A (es) * 2016-02-23 2019-01-21 Nchain Holdings Ltd Transacciones turing completas basadas en agente que integran retroalimentacion dentro de un sistema de cadena de bloques.
BR112018016805A2 (pt) 2016-02-23 2018-12-26 Nchain Holdings Ltd método e sistema para transferência eficiente de criptomoeda associada com um pagamento em um blockchain que leva a um pagamento automatizado, método e sistema com base em contratos inteligentes
KR20180115293A (ko) 2016-02-23 2018-10-22 엔체인 홀딩스 리미티드 블록체인상의 개체의 안전한 전송을 위한 방법 및 시스템
US11606219B2 (en) 2016-02-23 2023-03-14 Nchain Licensing Ag System and method for controlling asset-related actions via a block chain
BR112018016819A2 (pt) 2016-02-23 2018-12-26 Nchain Holdings Ltd método e sistemas para proteger um recurso digital controlado utilizando uma tabela de dispersão e livro-razão distribuídos e um blockchain
JP6515246B2 (ja) 2016-02-23 2019-05-15 エヌチェーン ホールディングス リミテッドNchain Holdings Limited 情報及び階層的で決定性の暗号化鍵のセキュアな交換のための共通秘密の決定
EP3257006B1 (en) 2016-02-23 2018-10-03 Nchain Holdings Limited Personal device security using elliptic curve cryptography for secret sharing
BR112018016822A2 (pt) 2016-02-23 2018-12-26 Nchain Holdings Ltd método implementado por computador para realizar uma troca de entidades entre um primeiro usuário e um segundo usuário, processador e meio legível por computador
WO2017145047A1 (en) 2016-02-23 2017-08-31 nChain Holdings Limited Blockchain-implemented method for control and distribution of digital content
KR20180114198A (ko) 2016-02-23 2018-10-17 엔체인 홀딩스 리미티드 블록체인 기반의 암호화폐를 위한 범용 토큰화 시스템
SG11201805542TA (en) 2016-02-23 2018-09-27 Nchain Holdings Ltd Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
SG10202011641RA (en) 2016-02-23 2021-01-28 Nchain Holdings Ltd Tokenisation method and system for implementing exchanges on a blockchain
JP6995762B2 (ja) 2016-02-23 2022-01-17 エヌチェーン ホールディングス リミテッド ブロックチェーンからのデータのセキュアな抽出のための暗号方法及びシステム
WO2019054044A1 (ja) * 2017-09-14 2019-03-21 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
KR20200092316A (ko) * 2017-10-24 2020-08-03 티제로그룹, 인코포레이티드 연합 개인 식별 정보 서비스
TWI677213B (zh) * 2017-11-23 2019-11-11 財團法人資訊工業策進會 監控裝置、方法及其電腦程式產品
CN108492180B (zh) 2018-02-14 2020-11-24 创新先进技术有限公司 资产管理方法及装置、电子设备
CN110290094B (zh) * 2018-03-19 2022-03-11 华为技术有限公司 一种数据访问权限的控制方法和装置
EP3776319A1 (en) * 2018-03-25 2021-02-17 British Telecommunications public limited company Access control
WO2019194267A1 (ja) * 2018-04-06 2019-10-10 日本電信電話株式会社 ブロックチェーンシステム、登録端末、承認端末、スマートコントラクト登録方法、および、スマートコントラクト登録プログラム
EP3557496A1 (en) * 2018-04-18 2019-10-23 Chain IP Holdings, Inc. Multiple layer smart-contract
US20200387593A1 (en) * 2018-04-30 2020-12-10 Liion Industries, Inc. Power Infrastructure Security System
US11669914B2 (en) 2018-05-06 2023-06-06 Strong Force TX Portfolio 2018, LLC Adaptive intelligence and shared infrastructure lending transaction enablement platform responsive to crowd sourced information
SG11202010731VA (en) 2018-05-06 2020-11-27 Strong Force Tx Portfolio 2018 Llc Methods and systems for improving machines and systems that automate execution of distributed ledger and other transactions in spot and forward markets for energy, compute, storage and other resources
JP6730369B2 (ja) * 2018-05-16 2020-07-29 株式会社日立製作所 利用管理方法、利用管理システム、および、ノード
CN109190409B (zh) * 2018-09-14 2020-09-01 京东数字科技控股有限公司 记录信息传播路径的方法、装置、设备及可读存储介质
EP3637342A1 (en) * 2018-10-08 2020-04-15 CTF Markets GmbH Method and system for auditable and incentive compatible prevention of front-running
US10958421B2 (en) 2018-11-20 2021-03-23 International Business Machines Corporation User access control in blockchain
PL3552166T3 (pl) 2018-11-27 2021-10-25 Advanced New Technologies Co., Ltd. Platforma funkcji jako usługi (FAAS) w sieciach łańcucha bloków
CN110622149A (zh) * 2018-11-30 2019-12-27 阿里巴巴集团控股有限公司 基于二进制日志复制的区块链数据关系结构方案
US11250125B2 (en) 2018-12-03 2022-02-15 Ebay Inc. Highly scalable permissioned block chains
US11263315B2 (en) 2018-12-03 2022-03-01 Ebay Inc. System level function based access control for smart contract execution on a blockchain
US11405182B2 (en) 2018-12-03 2022-08-02 Ebay Inc. Adaptive security for smart contracts using high granularity metrics
CN110249307B (zh) 2018-12-29 2022-05-31 创新先进技术有限公司 用于在区块链上执行原生合约的系统和方法
US10733152B2 (en) * 2018-12-29 2020-08-04 Alibaba Group Holding Limited System and method for implementing native contract on blockchain
CN109828847B (zh) * 2019-01-25 2023-09-01 平安科技(深圳)有限公司 基于区块链的锁处理方法、装置、计算机设备及存储介质
US10866823B2 (en) 2019-03-26 2020-12-15 Advanced New Technologies Co., Ltd. System and method for implementing different types of blockchain contracts
US11201726B2 (en) 2019-05-02 2021-12-14 International Business Machines Corporation Multi-layered image encoding for data block
CN110598454B (zh) * 2019-09-20 2021-07-06 腾讯科技(深圳)有限公司 区块链中的数据处理方法、装置、存储介质和计算机设备
CN110807189B (zh) * 2019-11-15 2023-07-07 内蒙古大学 一种区块链访问控制中的权限分割方法
KR20210059547A (ko) 2019-11-15 2021-05-25 서강대학교산학협력단 스마트 컨트랙트를 기반으로 한 데이터 암호화 가능한 블록체인 네트워크
CN111291420B (zh) * 2020-01-21 2022-11-11 国家市场监督管理总局信息中心 一种基于区块链的分布式离链数据存储方法
CN111327618B (zh) * 2020-02-25 2023-04-18 上海链民信息科技有限公司 一种基于区块链的精准访问控制方法、装置及系统
CN111444524B (zh) * 2020-03-26 2023-11-10 广州智慧城市发展研究院 一种基于联盟链的动态双访问控制机制
CN114024700B (zh) * 2020-07-17 2024-03-26 中国电信股份有限公司 基于区块链的数据文件的访问控制方法、介质及装置
CN114117507B (zh) * 2020-08-28 2024-01-30 中国电信股份有限公司 对象存储系统及其访问控制方法和设备、存储介质
GB202018919D0 (en) * 2020-12-01 2021-01-13 Smarter Contracts Ltd Consent Management
US11271716B1 (en) * 2021-01-28 2022-03-08 Emtruth, Inc. Blockchain-based data management of distributed binary objects
KR102549385B1 (ko) * 2022-11-03 2023-06-29 주식회사 커먼컴퓨터 데이터 액세스 제어 제공 방법 및 시스템

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5263157A (en) 1990-02-15 1993-11-16 International Business Machines Corporation Method and system for providing user access control within a distributed data processing system by the exchange of access control profiles
US8639625B1 (en) * 1995-02-13 2014-01-28 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
JP3765191B2 (ja) * 1998-09-21 2006-04-12 富士ゼロックス株式会社 オブジェクトのアクセス管理方法
US7685123B1 (en) 2006-08-30 2010-03-23 Network Appliance, Inc. Method and system for controlling access to dynamically specified resources
US8285990B2 (en) 2007-05-14 2012-10-09 Future Wei Technologies, Inc. Method and system for authentication confirmation using extensible authentication protocol
US9338148B2 (en) 2013-11-05 2016-05-10 Verizon Patent And Licensing Inc. Secure distributed information and password management
US9608829B2 (en) * 2014-07-25 2017-03-28 Blockchain Technologies Corporation System and method for creating a multi-branched blockchain with configurable protocol rules
GB2555986A (en) 2015-05-27 2018-05-16 Gupta Vishal Universal original document validation platform
CN105488431B (zh) * 2015-11-30 2019-12-13 布比(北京)网络技术有限公司 区块链系统权限管理方法和装置
CN105809062B (zh) * 2016-03-01 2019-01-25 布比(北京)网络技术有限公司 一种合约构建、执行方法及装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Guy Zyskind 외 2명, Decentralizing Privacy: Using Blockchain to Protect Personal Data, 2015 IEEE CS Security and Privacy Workshop (2015.05.22.)*
Guy Zyskind 외 2명, Enigma: Decentralized Computation Platform with Guaranteed Privacy, arXiv preprint arXiv:1506.03471 (2015.06.10.)*
Sayed Hadi Hashemi 외 3명, "World of Empowered IoT Users", 2016 IEEE First International Conference on Internet-of-Things Design and Implementation (2016.04.08.)*

Also Published As

Publication number Publication date
US20190199531A1 (en) 2019-06-27
KR20190042567A (ko) 2019-04-24
EP3479519A1 (en) 2019-05-08
JP7019697B2 (ja) 2022-02-15
JP2019530109A (ja) 2019-10-17
AU2017320341B2 (en) 2022-04-28
CN109691015A (zh) 2019-04-26
AU2017320341A1 (en) 2019-02-14
CN109691015B (zh) 2022-02-01
EP3479519B1 (en) 2022-11-02
US11153092B2 (en) 2021-10-19
EP3479519A4 (en) 2020-02-19
WO2018039722A1 (en) 2018-03-08

Similar Documents

Publication Publication Date Title
KR102480035B1 (ko) 블록체인 상의 동적 액세스 제어
CN110060162B (zh) 基于区块链的数据授权、查询方法和装置
US11611560B2 (en) Systems, methods, and apparatuses for implementing consensus on read via a consensus on write smart contract trigger for a distributed ledger technology (DLT) platform
US20200228574A1 (en) Policy management for data migration
EP3343425B1 (fr) Système et procédé pour la création et la gestion d&#39;autorisations décentralisées pour des objets connectés
JP7236992B2 (ja) ブロックチェーンにより実現される方法及びシステム
JP6877448B2 (ja) 分散ハッシュテーブル及びブロックチェーンを用いてコンピュータソフトウェアを保証する方法及びシステム
US11645632B2 (en) System and method for a decentralized portable information container supporting privacy protected digital information credentialing, remote administration, local validation, access control and remote instruction signaling utilizing blockchain distributed ledger and container wallet technologies
JP2024001326A (ja) 契約の実行を制御する方法及びシステム
US11546366B2 (en) Threat information sharing based on blockchain
WO2021209052A1 (zh) 基于区块链的数据处理
KR20210040078A (ko) 안전한 보관 서비스를 위한 시스템 및 방법
US11089028B1 (en) Tokenization federation service
US11507945B2 (en) Method and system for usage of cryptocurrency, preventing financial crime
Baskaran et al. A survey on privacy concerns in blockchain applications and current blockchain solutions to preserve data privacy
CN115699003A (zh) 文件验证系统和方法
CN115048672A (zh) 基于区块链的数据审计方法和装置、处理器及电子设备
CN111800373B (zh) 基于属性基加密区块链的数据访问方法及装置
Stampernas Blockchain technologies and smart contracts in the context of the Internet of Things
Mahar et al. TTECCDU: a blockchain-based approach for expressive authorization management
Kirstein et al. Phoenix: A formally verified regenerating vault
Saldamli et al. Identity management via blockchain
Tapas et al. Toward Trustless Internet of Things: a Blockchain-based approach
CN114239056A (zh) 数据访问接口的控制方法、装置、介质及设备
Gupta et al. Security, Privacy, and Trust Management and Performance Optimization of Blockchain

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right