2P by neo 1일전 | ★ favorite | 댓글과 토론
  • Keyhive는 중앙 서버 없이 오프라인에서도 동작 가능한 로컬 우선 접근 제어 시스템을 구축하기 위한 연구 프로젝트로, Signal 수준의 보안성을 문서 협업에 적용하려는 시도
  • 분산 환경에서도 동기화 가능한 권한 위임 모델(Capability Model)그룹 관리 CRDT, 인과 관계 기반 E2EE(Causal Keys) 를 통해 협업 중에도 안전한 데이터 접근 제어를 실현
  • 핵심 암호화 프로토콜 BeeKEM은 중앙 서버 없이도 Forward Secrecy(순방향 보안)Post-Compromise Security(침해 이후 보안) 를 보장하며 수천 명 규모 그룹에 대응
  • Keyhive의 동기화 계층 BeelayRIBLT 기반 세트 동기화Sedimentree 압축 방식을 활용해 대규모 로컬 문서 동기화 속도를 개선
  • Ink & Switch는 이 프로젝트를 통해 서버 의존 없는 보안 협업 플랫폼의 기반 기술을 제시하며, 오프라인 퍼스트 소프트웨어 생태계 확장을 목표로 함

Keyhive 개요

  • Keyhive는 클라우드 서버를 사용하지 않고도 협업 데이터에 대한 접근 제어를 로컬 우선(local-first) 환경에서 구현하기 위한 연구임
    • 전통적인 클라우드 인증(OAuth 등)은 중앙 서버를 통한 권한 확인에 의존하지만, 로컬 우선 모델에서는 데이터와 권한이 함께 이동해야 함
    • 이를 위해 Keyhive는 권한 위임(capability) 기반 설계를 적용하고, 분산된 인증·암호화 계층을 구축함
  • 목표는 Google Docs, GitHub처럼 사용자 친화적 경험을 유지하면서도 완전한 탈중앙 협업 보안을 구현하는 것임

설계 철학과 구성

  • Keyhive는 데이터 계층보다 먼저 접근 제어 계층이 존재해야 한다는 원칙하에 설계됨
    • 이로 인해 스토리지나 동기화 구조도 암호화·권한 관리 방식을 따라야 함
  • 세 가지 주요 구성요소:
    1. Convergent Capabilities: CRDT에 적합한 새로운 권한 모델로, 개체 간 위임을 암호학적으로 증명 가능
    2. Group Management CRDT: 중앙 서버 없이 그룹 추가·제거 및 권한 회수를 수행
    3. 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 커밋 그래프를 압축·병합, 대규모 문서 동기화 시 대역폭 절감

동기화 흐름

  1. 멤버십 그래프 동기화: 그룹 및 권한 관계 동기화
  2. 문서 컬렉션 동기화: 변경된 문서 식별
  3. CGKA 동기화: BeeKEM 연산 병합
  4. 문서 본문 동기화: Sedimentree 기반 압축 전송
  • 일반적 변경 1건의 경우 2회 왕복 요청만으로 전체 동기화 완료

향후 계획

  • Keyhive는 현재 pre-alpha 버전 공개 상태로, Rust 기반 구현 및 WASM/TypeScript 바인딩 제공
  • 향후 보안 검증 및 성능 논문 공개 예정이며, 로컬 우선 협업 시스템의 보안 표준 모델 확립을 목표로 함