-
Keyhive는 중앙 서버 없이 오프라인에서도 동작 가능한 로컬 우선 접근 제어 시스템을 구축하기 위한 연구 프로젝트로, Signal 수준의 보안성을 문서 협업에 적용하려는 시도
- 분산 환경에서도 동기화 가능한 권한 위임 모델(Capability Model) 과 그룹 관리 CRDT, 인과 관계 기반 E2EE(Causal Keys) 를 통해 협업 중에도 안전한 데이터 접근 제어를 실현
- 핵심 암호화 프로토콜 BeeKEM은 중앙 서버 없이도 Forward Secrecy(순방향 보안) 와 Post-Compromise Security(침해 이후 보안) 를 보장하며 수천 명 규모 그룹에 대응
- Keyhive의 동기화 계층 Beelay는 RIBLT 기반 세트 동기화와 Sedimentree 압축 방식을 활용해 대규모 로컬 문서 동기화 속도를 개선
- Ink & Switch는 이 프로젝트를 통해 서버 의존 없는 보안 협업 플랫폼의 기반 기술을 제시하며, 오프라인 퍼스트 소프트웨어 생태계 확장을 목표로 함
Keyhive 개요
-
Keyhive는 클라우드 서버를 사용하지 않고도 협업 데이터에 대한 접근 제어를 로컬 우선(local-first) 환경에서 구현하기 위한 연구임
- 전통적인 클라우드 인증(OAuth 등)은 중앙 서버를 통한 권한 확인에 의존하지만, 로컬 우선 모델에서는 데이터와 권한이 함께 이동해야 함
- 이를 위해 Keyhive는 권한 위임(capability) 기반 설계를 적용하고, 분산된 인증·암호화 계층을 구축함
- 목표는 Google Docs, GitHub처럼 사용자 친화적 경험을 유지하면서도 완전한 탈중앙 협업 보안을 구현하는 것임
설계 철학과 구성
- Keyhive는 데이터 계층보다 먼저 접근 제어 계층이 존재해야 한다는 원칙하에 설계됨
- 이로 인해 스토리지나 동기화 구조도 암호화·권한 관리 방식을 따라야 함
- 세 가지 주요 구성요소:
-
Convergent Capabilities: CRDT에 적합한 새로운 권한 모델로, 개체 간 위임을 암호학적으로 증명 가능
-
Group Management CRDT: 중앙 서버 없이 그룹 추가·제거 및 권한 회수를 수행
-
E2EE with Causal Keys: 문서의 인과적 구조에 따라 키를 관리하여 효율적 암호화 구현
Convergent Capabilities
- 기존 객체 권한(Object-capability)과 인증서 기반 권한(Certificate-capability)의 장점을 결합한 모델
- CRDT 상태를 포함시켜 오프라인 상태에서도 일관성(convergence) 유지
-
공개키 기반 위임 체계를 통해 사용자·그룹·문서를 동등한 개체로 처리 가능
- 예: 사용자는 디바이스 그룹을, 문서는 팀 단위를 구성해 접근 권한을 부여
BeeKEM: 그룹 키 합의 프로토콜
-
BeeKEM은 중앙 서버 없이 동작하는 지속적 그룹 키 합의(CGKA) 프로토콜임
-
TreeKEM의 구조를 계승하면서 인과적 순서(Causal Order) 만으로 동작 가능하도록 개선
-
Diffie-Hellman 키 교환과 BLAKE3 해시 함수만을 사용해 표준 암호 기반으로 설계됨
- 주요 특징:
- 그룹 멤버 추가·제거, 동시 업데이트 충돌 해결, 빈 노드 복원 등 모든 작업을 분산 상태에서 처리
-
동시성 충돌 시 “Conflict Key” 병합 알고리듬을 통해 보안 유지
- 일반적 경우 로그 시간(logarithmic) 성능, 최악의 경우 선형(linear) 성능
Beelay: 신뢰 최소화 동기화 프로토콜
-
Beelay는 Keyhive의 데이터 및 권한 정보를 동기화하는 RPC 기반 프로토콜로, 서버는 암호화된 데이터만 중계함
- 메시지는 Ed25519 서명으로 인증되며, 재전송 공격과 중간자 공격(PITM) 방지 기능 내장
- 핵심 동작 절차:
-
RIBLT (Rateless Invertible Bloom Lookup Table) 을 사용한 세트 차이 계산으로 대규모 데이터의 빠른 동기화 실현
- 멤버십 그래프(그룹·문서 관계), 문서 컬렉션 상태, 문서 본문을 순차 동기화
-
Sedimentree 구조를 통해 Automerge 커밋 그래프를 압축·병합, 대규모 문서 동기화 시 대역폭 절감
동기화 흐름
-
멤버십 그래프 동기화: 그룹 및 권한 관계 동기화
-
문서 컬렉션 동기화: 변경된 문서 식별
-
CGKA 동기화: BeeKEM 연산 병합
-
문서 본문 동기화: Sedimentree 기반 압축 전송
- 일반적 변경 1건의 경우 2회 왕복 요청만으로 전체 동기화 완료
향후 계획
- Keyhive는 현재 pre-alpha 버전 공개 상태로, Rust 기반 구현 및 WASM/TypeScript 바인딩 제공
- 향후 보안 검증 및 성능 논문 공개 예정이며, 로컬 우선 협업 시스템의 보안 표준 모델 확립을 목표로 함