3 puntos por GN⁺ 2025-10-29 | Aún no hay comentarios. | Compartir por WhatsApp
  • Keyhive es un proyecto de investigación para construir un sistema de control de acceso local-first que pueda funcionar sin conexión y sin servidor central, con el objetivo de aplicar a la colaboración en documentos un nivel de seguridad comparable al de Signal
  • Mediante un modelo de delegación de permisos (Capability Model) sincronizable incluso en entornos distribuidos, un CRDT de gestión de grupos y E2EE basada en causalidad (Causal Keys), hace posible un control de acceso seguro a los datos incluso durante la colaboración
  • El protocolo criptográfico central BeeKEM garantiza Forward Secrecy y Post-Compromise Security sin servidor central, y puede escalar a grupos de miles de personas
  • Beelay, la capa de sincronización de Keyhive, mejora la velocidad de sincronización de grandes documentos locales usando sincronización de conjuntos basada en RIBLT y el método de compresión Sedimentree
  • Con este proyecto, Ink & Switch presenta la tecnología base para una plataforma de colaboración segura sin dependencia de servidores y busca expandir el ecosistema de software offline-first

Resumen de Keyhive

  • Keyhive es una investigación para implementar control de acceso sobre datos colaborativos en un entorno local-first sin usar servidores en la nube
    • La autenticación tradicional en la nube, como OAuth, depende de verificar permisos mediante un servidor central, pero en un modelo local-first los datos y los permisos deben moverse juntos
    • Para ello, Keyhive adopta un diseño basado en delegación de permisos (capability) y construye una capa distribuida de autenticación y cifrado
  • El objetivo es lograr una seguridad de colaboración completamente descentralizada, manteniendo una experiencia amigable para el usuario como la de Google Docs o GitHub

Filosofía de diseño y componentes

  • Keyhive fue diseñado bajo el principio de que la capa de control de acceso debe existir antes que la capa de datos
    • Por eso, la estructura de almacenamiento y sincronización también debe seguir el modelo de cifrado y gestión de permisos
  • Tres componentes principales:
    1. Convergent Capabilities: un nuevo modelo de permisos apto para CRDT, con el que es posible demostrar criptográficamente la delegación entre entidades
    2. Group Management CRDT: permite agregar o quitar grupos y revocar permisos sin servidor central
    3. E2EE with Causal Keys: administra claves según la estructura causal del documento para lograr un cifrado eficiente

Convergent Capabilities

  • Un modelo que combina las ventajas de los permisos de objeto existentes (Object-capability) y los permisos basados en certificados (Certificate-capability)
    • Al incluir el estado del CRDT, mantiene la convergencia incluso sin conexión
  • Con un esquema de delegación basado en clave pública, usuarios, grupos y documentos pueden tratarse como entidades equivalentes
    • Ejemplo: un usuario puede formar un grupo de dispositivos y un documento puede representar una unidad de equipo para asignar permisos de acceso

BeeKEM: protocolo de acuerdo de claves de grupo

  • BeeKEM es un protocolo CGKA de acuerdo continuo de claves de grupo que funciona sin servidor central
    • Hereda la estructura de TreeKEM, pero fue mejorado para operar solo con orden causal (Causal Order)
    • Está diseñado sobre criptografía estándar usando únicamente intercambio de claves Diffie-Hellman y la función hash BLAKE3
  • Características principales:
    • Maneja en estado distribuido todas las operaciones: agregar o quitar miembros del grupo, resolver conflictos por actualizaciones concurrentes y restaurar nodos vacíos
    • En caso de conflictos de concurrencia, mantiene la seguridad mediante el algoritmo de fusión de “Conflict Key”
    • Rendimiento logarítmico en el caso general y lineal en el peor caso

Beelay: protocolo de sincronización de confianza mínima

  • Beelay es un protocolo basado en RPC que sincroniza los datos y permisos de Keyhive; el servidor solo retransmite datos cifrados
    • Los mensajes se autentican con firmas Ed25519 e incluyen protección contra ataques de repetición y ataques de intermediario (PITM)
  • Procedimiento central de operación:
    • Logra sincronización rápida de grandes volúmenes de datos calculando diferencias de conjuntos mediante RIBLT (Rateless Invertible Bloom Lookup Table)
    • Sincroniza secuencialmente el grafo de membresía (relaciones entre grupos y documentos), el estado de las colecciones de documentos y el cuerpo de los documentos
  • Mediante la estructura Sedimentree, comprime y fusiona el grafo de commits de Automerge, reduciendo el ancho de banda en la sincronización de documentos grandes

Flujo de sincronización

  1. Sincronización del grafo de membresía: sincroniza grupos y relaciones de permisos
  2. Sincronización de colecciones de documentos: identifica documentos modificados
  3. Sincronización CGKA: fusiona operaciones de BeeKEM
  4. Sincronización del cuerpo del documento: transmisión comprimida basada en Sedimentree
  • En el caso típico de un solo cambio, la sincronización completa se termina con solo 2 viajes de ida y vuelta

Planes a futuro

  • Actualmente Keyhive está publicado como versión pre-alpha, con implementación basada en Rust y bindings para WASM/TypeScript
    • keyhive_core: sistema de firmas, cifrado y delegación
    • beelay-core: motor de sincronización basado en datos cifrados
    • keyhive_wasm: wrapper para compatibilidad con navegadores
  • Más adelante se prevé publicar validaciones de seguridad y artículos sobre rendimiento, con el objetivo de establecer un modelo estándar de seguridad para sistemas de colaboración local-first

Aún no hay comentarios.

Aún no hay comentarios.