Chuyển đến nội dung

Mã hóa

Mọi thứ bae đặt vào nhà trên đám mây đều được mã hóa trước khi rời thiết bị; không có chế độ không mã hóa. bae không tự triển khai mật mã: toàn bộ sơ đồ là của coven, và trang này mô tả cách bae dùng nó.

KhóaCông dụng
Khóa storemã hóa thư viện và các bản ghi thành viên của nó
Khóa vòng riêng của mỗi ngườimã hóa những gì người đó giữ riêng tư: lịch sử phát và danh sách phát riêng của họ
Khóa của mỗi tệpmã hóa một tệp, và chỉ đi bên trong các thay đổi đã mã hóa của hàng chứa nó
Cặp khóa ký của một ngườiký mọi thay đổi mà thiết bị của họ gửi
Cặp khóa niêm phong của một ngườimở các khóa được niêm phong cho người đó

Khóa store là ngẫu nhiên, được tạo khi thư viện có nhà trên đám mây. Cặp khóa của một người được mọi thiết bị của họ dùng chung. Khóa riêng và khóa thư viện nằm trong keyring của hệ điều hành, không bao giờ trong tệp hay cơ sở dữ liệu. Chúng tới một thiết bị theo hai cách, cả hai đều được mô tả trong Danh tính và thành viên: mã khôi phục mang cặp khóa của chính người đó, và quản trị viên phê duyệt lời mời sẽ niêm phong các khóa store cho khóa niêm phong của người mới.

Một khóa không bao giờ được đổi tại chỗ; một khóa mới được thêm vào. Sau khi một người bị xóa, thiết bị của một thành viên còn lại thêm một khóa store mới, và một khóa mới cho mỗi vòng riêng mà người đó từng ở, trước khi ghi thêm dữ liệu vào đó: mọi thứ ghi sau đó đều không đọc được với họ, trong khi các thành viên còn lại giữ mọi khóa cũ hơn và đọc được toàn bộ lịch sử. Xóa một thiết bị không xoay vòng gì, vì các thiết bị khác của người đó dùng chung khóa; từ lúc bị xóa, những gì thiết bị đó gửi không được tính.

Những gì được niêm phong

Liên kết đến phần này

Mọi đối tượng trong nhà: thay đổi, snapshot, bản ghi thành viên và tệp. Nội dung được mã hóa bằng XChaCha20-Poly1305, mọi thay đổi được ký bằng Ed25519, và khóa được niêm phong cho từng người bằng sealed box X25519. Tệp được mã hóa theo chunk 64 KiB, mỗi chunk được xác thực riêng và gắn với vị trí của nó, nên không thể sửa, tráo hay sắp xếp lại một chunk mà không bị phát hiện. Chia chunk là lý do phát trực tuyến hoạt động: trình phát có thể giải mã đúng các chunk nó lấy.

Nhà cung cấp thấy gì

Liên kết đến phần này

Số đối tượng, kích thước đối tượng, thời điểm tải lên, tài khoản nào ghi mỗi đối tượng, và thiết bị nào tải lên mỗi tệp và snapshot, vì đường dẫn của chúng nêu tên thiết bị. Không tên, không siêu dữ liệu, không âm thanh, không artwork. Tệp nằm dưới tên ngẫu nhiên, không bao giờ là hash nội dung của chúng. Không có khôi phục phía máy chủ: nếu mọi người đều mất mọi thiết bị và mọi mã khôi phục, thư viện sẽ mất, đó là thiết kế hoạt động đúng như dự định.

Mở một thư viện đọc các khóa của nó từ keyring của hệ điều hành. Một keyring đang bị khóa lúc này, do phiên bị khóa hoặc màn hình đang ngủ, được phân biệt với một keyring bị hỏng: bae hiển thị thư viện là đã khóa và thử lại sau khi mở khóa, thay vì báo thư viện không dùng được. Một thiết bị cũng có thể quên khóa, việc này khóa thư viện trên thiết bị đó cho đến khi nó được mở khóa lại.