- Keyhive adalah proyek riset untuk membangun sistem kontrol akses local-first yang dapat berjalan secara offline tanpa server terpusat, sebagai upaya untuk menerapkan tingkat keamanan setara Signal pada kolaborasi dokumen
- Melalui model delegasi izin (Capability Model) yang dapat disinkronkan di lingkungan terdistribusi, CRDT manajemen grup, dan E2EE berbasis hubungan kausal (Causal Keys), proyek ini mewujudkan kontrol akses data yang aman bahkan saat kolaborasi berlangsung
- Protokol kriptografi inti BeeKEM menjamin Forward Secrecy dan Post-Compromise Security tanpa server terpusat, serta dapat menangani grup berskala ribuan anggota
- Lapisan sinkronisasi Keyhive, Beelay, meningkatkan kecepatan sinkronisasi dokumen lokal berskala besar dengan memanfaatkan sinkronisasi set berbasis RIBLT dan metode kompresi Sedimentree
- Melalui proyek ini, Ink & Switch menghadirkan teknologi fondasi untuk platform kolaborasi aman tanpa ketergantungan pada server dan menargetkan perluasan ekosistem perangkat lunak offline-first
Gambaran umum Keyhive
- Keyhive adalah riset untuk menerapkan kontrol akses terhadap data kolaboratif dalam lingkungan local-first tanpa menggunakan server cloud
- Autentikasi cloud tradisional (seperti OAuth) bergantung pada verifikasi izin melalui server terpusat, tetapi dalam model local-first, data dan izin harus berpindah bersama
- Untuk itu, Keyhive mengadopsi desain berbasis delegasi izin (capability) dan membangun lapisan autentikasi dan kriptografi terdistribusi
- Tujuannya adalah mewujudkan keamanan kolaborasi yang sepenuhnya terdesentralisasi sambil tetap mempertahankan pengalaman yang ramah pengguna seperti Google Docs atau GitHub
Filosofi desain dan komponen
- Keyhive dirancang berdasarkan prinsip bahwa lapisan kontrol akses harus ada lebih dulu daripada lapisan data
- Karena itu, struktur penyimpanan maupun sinkronisasi juga harus mengikuti cara kerja enkripsi dan manajemen izin
- Tiga komponen utama:
- Convergent Capabilities: model izin baru yang cocok untuk CRDT, dengan delegasi antar entitas yang dapat dibuktikan secara kriptografis
- Group Management CRDT: melakukan penambahan/penghapusan grup dan pencabutan izin tanpa server terpusat
- E2EE with Causal Keys: mengelola kunci sesuai struktur kausal dokumen untuk mewujudkan enkripsi yang efisien
Convergent Capabilities
- Model ini menggabungkan kelebihan object-capability tradisional dan certificate-capability
- Dengan memasukkan status CRDT, konvergensi (convergence) tetap terjaga bahkan saat offline
- Melalui skema delegasi berbasis kunci publik, pengguna, grup, dan dokumen dapat diperlakukan sebagai entitas yang setara
- Contoh: pengguna dapat membentuk grup perangkat, dan dokumen dapat membentuk unit tim untuk pemberian hak akses
BeeKEM: protokol kesepakatan kunci grup
- BeeKEM adalah protokol CGKA (continuous group key agreement) yang berjalan tanpa server terpusat
- Mewarisi struktur TreeKEM, tetapi ditingkatkan agar dapat beroperasi hanya dengan urutan kausal (Causal Order)
- Dirancang di atas kriptografi standar dengan hanya menggunakan pertukaran kunci Diffie-Hellman dan fungsi hash BLAKE3
- Karakteristik utama:
- Penambahan/penghapusan anggota grup, penyelesaian konflik pembaruan simultan, dan pemulihan node kosong semuanya diproses dalam keadaan terdistribusi
- Saat terjadi konflik konkurensi, keamanan dipertahankan melalui algoritme penggabungan “Conflict Key”
- Performa logaritmik pada kasus umum, dan linear pada kasus terburuk
Beelay: protokol sinkronisasi dengan minim kepercayaan
- Beelay adalah protokol berbasis RPC untuk menyinkronkan data dan informasi izin Keyhive, di mana server hanya meneruskan data terenkripsi
- Pesan diautentikasi dengan tanda tangan Ed25519, serta memiliki perlindungan bawaan terhadap serangan replay dan serangan man-in-the-middle (PITM)
- Prosedur kerja inti:
- Mewujudkan sinkronisasi cepat untuk data berskala besar dengan menghitung perbedaan set menggunakan RIBLT (Rateless Invertible Bloom Lookup Table)
- Menyinkronkan secara berurutan graf keanggotaan (hubungan grup-dokumen), status koleksi dokumen, dan isi dokumen
- Melalui struktur Sedimentree, graf commit Automerge dikompresi dan digabungkan untuk menghemat bandwidth saat sinkronisasi dokumen berskala besar
Alur sinkronisasi
- Sinkronisasi graf keanggotaan: sinkronisasi grup dan hubungan izin
- Sinkronisasi koleksi dokumen: mengidentifikasi dokumen yang berubah
- Sinkronisasi CGKA: menggabungkan operasi BeeKEM
- Sinkronisasi isi dokumen: transfer terkompresi berbasis Sedimentree
- Untuk 1 perubahan umum, seluruh sinkronisasi selesai hanya dengan 2 kali permintaan pulang-pergi
Rencana ke depan
- Saat ini Keyhive telah dirilis dalam versi pre-alpha, dengan implementasi berbasis Rust dan binding WASM/TypeScript
- Ke depan direncanakan publikasi verifikasi keamanan dan makalah performa, dengan tujuan membangun model standar keamanan untuk sistem kolaborasi local-first
Belum ada komentar.