Role-Based Access Control In Shieldcure

Shieldcure
Shieldcure
Published in
5 min readAug 31, 2018

안녕하세요. 쉴드큐어 팀입니다.

오늘은 Shieldcure Mainnet에 적용되는 RBAC(Role-Based Access Control)이라는 모델에 대해 설명해드리는 시간을 가지도록 하겠습니다.

RBAC에 대한 설명을 하기 전에 포괄적인 내용인 AC(Access Control), 접근 통제에 대해 설명을 하겠습니다. 접근 통제(Access Control)는 적절한 권한을 가진 사용자만이 특정 시스템이나 정보에 접근할 수 있도록 통제하는 것입니다. 다시 말하자면, 누군가가 무언가를 사용하는 것을 허가하거나 거부하는 기능입니다. 시스템 보안 수준을 갖추기 위한 가장 기본적인 수단이라고 할 수 있습니다.

접근 통제(Access Control)는 크게 세가지 종류가 있다고 할 수 있습니다.

  1. DAC(Discretionary Access Control) : 임의적 접근 통제
  2. MAC(Mandatory Access Control) : 강제적 접근 통제
  3. RBAC(Role-Based Access Control) : 역할 기반 접근 통제

임의적 접근 통제(DAC)는 정보의 소유자가 정보의 보안 수준을 결정하고 이에 대한 정보의 접근 통제도 설정하는 모델입니다. 사용자는 정보와 관련된 ACL(Access Control Lists)이 수정됨으로써 정보에 대한 권한을 부여 받습니다. DAC 모델은 정보에 대한 소유권에 기반하며, 다른 사용자에게 정보에 접근할 수 있는 권한의 일부 혹은 전체를 허용하는 것입니다.

강제적 접근 통제(MAC)는 사용자들은 정보에 대한 권한을 관리자로부터 부여 받습니다. 그리고 오직 관리자만이 권한을 할당할 수 있고, 정보에 대한 접근은 사용자에게 보안 등급이 주어진 동안의 보안 수준에 기반합니다. 관리자만이 보안 수준이나 보안 등급을 수정할 수 있으며, 권한을 위임할 때마다 새로운 범주를 형성해야 하므로 잠재적인 권한 충돌과 같은 문제가 발생할 가능성이 높습니다.

위의 두 접근 통제는 사용자와 접근 권한 간의 1:1 구조를 가지고 있어 변화하는 상황에서 각 사용자의 권한을 갱신하는 것이 어렵고, 시간 소비가 많으며, 오류가 발생할 가능성이 높습니다. 그리고 임의적 접근 통제(DAC)은 은닉 공격 또는 분산 환경 내 많은 참여자가 존재할 경우 보안이 취약해질 수 있고, 강제적 접근 통제(MAC)는 가용성이 떨어진다는 단점이 존재합니다.

1970년 초기의 다중 사용자 시스템으로 인해 시작된 역할 기반 접근 통제(RBAC)은 위의 두 접근 통제 모델은 보완하여 네트워크 참여자에게 부여된 임무를 기반으로 역할을 설정합니다. 시스템 관리자가 역할에 접근 권한을 부여하고 네트워크 참여자는 자신의 책임과 권한에 따라 역할을 부여 받습니다.

역할 기반 접근 통제(RBAC)는 블록체인과 같은 분산 환경 내에서 많은 참여 노드를 효과적으로 관리하고 불법 접근을 통제하는 방안입니다. 참여 노드를 관리하기 위해 각 개별의 참여 노드의 신원 정보를 사용하지 않고, 역할을 사용함으로써 시스템 관리를 손쉽게 할 수 있는 큰 이점을 가지고 있습니다.

역할 기반 접근 통제(RBAC) 시스템이 구성되면, 시스템을 관리하고 감시하는 비용이 다른 접근 통제 모델들을 사용하는 것보다 적게 들고, 주어진 역할을 사용자에게 할당하거나 제거하고 권한을 바꾸는데 매우 효율적입니다. 이러한 향상된 효율성은 시스템 관리 작업을 수행하는 소요시간을 감소시킬 수 있습니다.

이렇게 알아본 역할 기반 접근 통제(RBAC)은 Shieldcure Mainnet에서도 적용될 예정입니다.

Shieldcure는 Priority 노드와 Candidate 노드로 두 가지의 노드 클래스가 존재합니다. Priority 노드는 Shieldcure 네트워크에서 트랜잭션을 수집하고, 트랜잭션을 검증하고, 트랜잭션을 블록에 추가하는 역할을 합니다. Candidate 노드는 Shieldcure 네트워크에 참여하는 노드 중 Priority 노드에 속하지 않는 노드를 이릅니다. Candidate 노드는 지분 보유자들의 투표를 통해 Priority 노드가 될 수 있으며 Candidate 노드인 상태에서는 동의된 블록의 확인이 가능합니다.

Shieldcure는 Shieldcure 네트워크를 구성하는 노드의 구분에 의해 역할에 따른 권한을 부여합니다. Priority 노드와 Candidate 노드는 각각의 역할에 따라 블록 단위 혹은 블록에 포함되는 트랜잭션 정보에 대한 생성, 소유, 실행, 수정, 읽기의 권한을 갖습니다. 네트워크를 구성하는 노드들은 노드의 계정과 키의 가중치 조합으로 앞의 권한을 제어합니다. 이렇게 하면 사용 권한이 실제로 구성되는 방식을 반영한 계층적 자격 관리 구조가 구축돼 보다 쉽게 트랜잭션을 노드가 제어할 수 있습니다. 이러한 다중 제어 구조는 보안성을 높이는데 효과적인 대처 방법이며, 제대로 사용될 경우 해킹으로 인해 발생하는 위협을 크게 줄일 수 있습니다. 결국 Shieldcure는 누가, 무엇을, 언제, 어떤 조건하에서 할 수 있는가를 세분화하여 고수준으로 제어할 수 있는 체계를 제공하게 됩니다.

오늘은 RBAC(Role-Based Access Control) 모델에 대해서 알아보는 시간을 가졌습니다. Shieldcure에 적용되는 더 자세한 내용은 Shieldcure 백서를 참고해주시면 감사하겠습니다.

긴 글 읽어주셔서 감사합니다.

“KEEP YOUR IDENTITY”

--

--