- Keyhive là một dự án nghiên cứu nhằm xây dựng hệ thống kiểm soát truy cập local-first có thể hoạt động ngoại tuyến mà không cần máy chủ trung tâm, với mục tiêu áp dụng mức độ bảo mật ngang Signal cho cộng tác tài liệu
- Thông qua mô hình ủy quyền năng lực (Capability Model) có thể đồng bộ trong môi trường phân tán, CRDT quản lý nhóm, và E2EE dựa trên quan hệ nhân quả (Causal Keys), hệ thống hiện thực hóa việc kiểm soát truy cập dữ liệu an toàn ngay cả trong lúc cộng tác
- Giao thức mật mã cốt lõi BeeKEM bảo đảm Forward Secrecy và Post-Compromise Security mà không cần máy chủ trung tâm, đồng thời hỗ trợ các nhóm quy mô hàng nghìn người
- Tầng đồng bộ hóa Beelay của Keyhive sử dụng đồng bộ tập hợp dựa trên RIBLT và phương thức nén Sedimentree để cải thiện tốc độ đồng bộ tài liệu local-first ở quy mô lớn
- Thông qua dự án này, Ink & Switch đề xuất công nghệ nền tảng cho nền tảng cộng tác bảo mật không phụ thuộc máy chủ, với mục tiêu mở rộng hệ sinh thái phần mềm offline-first
Tổng quan về Keyhive
- Keyhive là một nghiên cứu nhằm triển khai kiểm soát truy cập đối với dữ liệu cộng tác trong môi trường local-first mà không cần dùng máy chủ đám mây
- Xác thực đám mây truyền thống (OAuth, v.v.) phụ thuộc vào máy chủ trung tâm để xác minh quyền hạn, nhưng trong mô hình local-first, dữ liệu và quyền phải di chuyển cùng nhau
- Để làm điều này, Keyhive áp dụng thiết kế dựa trên ủy quyền năng lực (capability) và xây dựng tầng xác thực·mật mã phân tán
- Mục tiêu là hiện thực hóa bảo mật cộng tác phi tập trung hoàn toàn mà vẫn duy trì trải nghiệm thân thiện với người dùng như Google Docs hay GitHub
Triết lý thiết kế và cấu thành
- Keyhive được thiết kế theo nguyên tắc tầng kiểm soát truy cập phải tồn tại trước tầng dữ liệu
- Vì vậy, cấu trúc lưu trữ và đồng bộ cũng phải tuân theo phương thức mã hóa và quản lý quyền hạn
- Ba thành phần chính:
- Convergent Capabilities: Mô hình quyền hạn mới phù hợp với CRDT, có thể chứng minh bằng mật mã việc ủy quyền giữa các thực thể
- Group Management CRDT: Thực hiện thêm/xóa nhóm và thu hồi quyền mà không cần máy chủ trung tâm
- E2EE with Causal Keys: Quản lý khóa theo cấu trúc nhân quả của tài liệu để triển khai mã hóa hiệu quả
Convergent Capabilities
- Mô hình kết hợp ưu điểm của object-capability và certificate-capability
- Bằng cách bao gồm trạng thái CRDT, hệ thống vẫn duy trì tính hội tụ (convergence) ngay cả khi ngoại tuyến
- Thông qua cơ chế ủy quyền dựa trên khóa công khai, có thể xử lý người dùng, nhóm và tài liệu như các thực thể ngang hàng
- Ví dụ: người dùng có thể tạo nhóm thiết bị, còn tài liệu có thể được tổ chức theo đơn vị nhóm để cấp quyền truy cập
BeeKEM: giao thức thỏa thuận khóa nhóm
- BeeKEM là giao thức CGKA (thỏa thuận khóa nhóm liên tục) hoạt động mà không cần máy chủ trung tâm
- Kế thừa cấu trúc của TreeKEM nhưng được cải tiến để chỉ cần thứ tự nhân quả (Causal Order) là có thể vận hành
- Được thiết kế dựa trên mật mã tiêu chuẩn, chỉ sử dụng trao đổi khóa Diffie-Hellman và hàm băm BLAKE3
- Các đặc điểm chính:
- Xử lý mọi tác vụ như thêm/xóa thành viên nhóm, giải quyết xung đột cập nhật đồng thời, khôi phục nút trống trong trạng thái phân tán
- Khi xảy ra xung đột đồng thời, hệ thống vẫn giữ an toàn nhờ thuật toán hợp nhất “Conflict Key”
- Hiệu năng logarit trong trường hợp thông thường, tuyến tính trong trường hợp xấu nhất
Beelay: giao thức đồng bộ giảm thiểu niềm tin
- Beelay là giao thức dựa trên RPC để đồng bộ dữ liệu và thông tin quyền hạn của Keyhive; máy chủ chỉ chuyển tiếp dữ liệu đã mã hóa
- Thông điệp được xác thực bằng chữ ký Ed25519, đồng thời tích hợp cơ chế chống tấn công phát lại và tấn công trung gian (PITM)
- Quy trình vận hành cốt lõi:
- Sử dụng RIBLT (Rateless Invertible Bloom Lookup Table) để tính khác biệt giữa các tập hợp, từ đó hiện thực hóa đồng bộ nhanh cho dữ liệu quy mô lớn
- Đồng bộ tuần tự đồ thị thành viên (quan hệ nhóm·tài liệu), trạng thái bộ sưu tập tài liệu và phần thân tài liệu
- Thông qua cấu trúc Sedimentree, hệ thống nén và hợp nhất đồ thị commit của Automerge, giúp tiết kiệm băng thông khi đồng bộ tài liệu lớn
Luồng đồng bộ
- Đồng bộ đồ thị thành viên: đồng bộ quan hệ nhóm và quyền hạn
- Đồng bộ bộ sưu tập tài liệu: xác định các tài liệu đã thay đổi
- Đồng bộ CGKA: hợp nhất các thao tác của BeeKEM
- Đồng bộ phần thân tài liệu: truyền nén dựa trên Sedimentree
- Với một thay đổi thông thường, chỉ cần 2 vòng yêu cầu-đáp ứng là hoàn tất toàn bộ quá trình đồng bộ
Kế hoạch sắp tới
- Keyhive hiện đang được công bố ở phiên bản pre-alpha, cung cấp triển khai dựa trên Rust cùng binding WASM/TypeScript
- Trong tương lai, dự án dự kiến công bố các nghiên cứu về kiểm chứng bảo mật và hiệu năng, với mục tiêu thiết lập mô hình tiêu chuẩn bảo mật cho các hệ thống cộng tác local-first
Chưa có bình luận nào.