Identidad y membresía
No hay sistema de cuentas en ningún lugar de bae. La identidad de un dispositivo es un par de claves Ed25519 que genera para sí mismo y conserva en el llavero del sistema operativo; la clave pública es la identidad. Quien pertenece a una biblioteca es un conjunto de registros firmados en el hogar en la nube, verificables por cualquiera que los tenga, emitidos por ningún servidor. La maquinaria es de coven; está página muestra como la usa bae.
Registros de membresía
Enlace a esta secciónCada propietario escribe un flujo de solo anexo de entradas de membresía firmadas en el hogar en la nube: está clave se agrego con este rol, está clave se elimino. Cada entrada enlaza a la anterior, y cada propietario firma una cabeza que declara la punta de su flujo, así que un proveedor que elimina o reordena registros se detecta en vez de ser creido. Lo que la biblioteca acepta es la unión de cada flujo verificado de propietarios.
En cada descarga, el autor de cada changeset se comprueba contra este registro: firmado por un miembro actual, con un rol que puede escribir. Los changesets de dispositivos eliminados, de claves nunca agregadas o con firmas inválidas no se aplican. El proveedor almacena los registros pero no puede falsificarlos; solo quienes poseen claves de propietario pueden cambiar la membresía.
Owner y Member leen y escriben la biblioteca; los propietarios además aprueban y eliminan dispositivos. El dispositivo fundador de bae es propietario y cada dispositivo que aprueba se une como miembro. (Existe un tercer rol en la maquinaria subyacente, un seguidor de solo lectura, que bae no asigna actualmente.)
El intercambio de unión
Enlace a esta secciónAgregar un dispositivo es una sesión de emparejamiento local con verificación humana explícita:
- Un propietario inicia Agregar un dispositivo. bae escucha brevemente en la red local y muestra un código de emparejamiento. Contiene las direcciones del oyente, una clave de sesión efímera, el nombre de la biblioteca, el proveedor y una fecha de vencimiento: no hay clave de biblioteca ni credenciales de almacenamiento duraderas.
- El dispositivo que se une escanea el código, crea su par de claves de dispositivo, inicia sesión en el proveedor cuando es necesario y envía su clave pública firmada y la identidad de la cuenta del proveedor a través de la conexión local cifrada. Ambos dispositivos muestran la misma huella digital.
- El propietario compara las huellas dactilares y aprueba esa identidad exacta. La aprobación otorga acceso a su cuenta en la nube cuando sea necesario, firma la entrada de membresía y sella la clave de la biblioteca y el acceso final al almacenamiento de la clave pública del nuevo dispositivo.
- El paquete sellado regresa a través de la misma conexión local autenticada. El dispositivo que se une lo abre, arranca desde el almacenamiento en la nube y comienza a sincronizarse.
Un emparejamiento vencido, interrumpido o rechazado no otorga nada.
Revocación
Enlace a esta secciónEliminar un miembro agrega una eliminación firmada y rota la clave de biblioteca a una generación nueva que la clave eliminada nunca recibe (consulta Cifrado). En almacenamiento que puede revocar acceso, el acceso también se retira. Lo que ya se había sincronizado al dispositivo eliminado permanece con él; los datos no se pueden retirar. Todo lo posterior a la rotación queda fuera de su alcance.
Códigos de recuperación
Enlace a esta secciónUn código de recuperación evita la membresía a propósito: son las coordenadas del hogar en la nube más la clave de biblioteca, en una sola cadena al portador, para restaurar tu propia biblioteca sin un aprobador sobreviviente. Se genera bajo demanda, se guarda automáticamente en el Llavero de iCloud en plataformas Apple, y es exactamente tan sensible como la biblioteca misma.