콘텐츠로 건너뛰기

암호화

bae가 불투명 클라우드 홈에 넣는 모든 것은 기기를 떠나기 전에 암호화됩니다. bae는 자체 암호화를 구현하지 않습니다. 전체 방식은 coven의 것이며, 이 페이지는 bae가 그것을 어떻게 쓰는지 설명합니다. 탐색 가능 홈은 이 모두를 쓰지 않습니다. 아래 내용은 거기에 적용되지 않습니다.

라이브러리 키

이 섹션으로 연결

불투명 라이브러리에는 하나의 루트 비밀이 있습니다. 홈을 만들 때 생성되는 무작위 256비트 키입니다. 이 키는 OS 키링에 있으며 파일에는 절대 없습니다. Apple 플랫폼에서는 키링 항목이 iCloud Keychain으로 동기화됩니다. bae 설정은 키의 지문만 저장합니다. 비밀 값을 들고 있지 않아도 잠금 해제 때 틀린 키와 맞는 키를 구분하기에 충분합니다.

키는 두 가지 방식으로 기기 사이를 이동합니다. 둘 다 신원과 구성원에 설명되어 있습니다. 초대 중 승인된 기기의 공개 키로 봉인되거나, 복구 코드 안에 담깁니다.

라이브러리 키는 실제로 번호가 붙은 세대의 키링입니다. 구성원을 제거하면 제거된 구성원이 받지 못하는 새 세대가 추가됩니다. 그 뒤 쓰는 모든 것은 새 세대를 사용하므로 제거된 구성원은 읽을 수 없습니다. 남은 구성원은 모든 세대를 보관해 전체 기록을 읽을 수 있습니다. 봉인된 각 객체는 어떤 세대로 열리는지 평문으로 기록합니다.

봉인되는 것

이 섹션으로 연결

홈의 모든 객체입니다. changeset, snapshot, 오디오 blob, 이미지, 구성원 레코드, 제어 객체가 포함됩니다. 객체는 XChaCha20-Poly1305로 64 KB 조각 단위 봉인되며, 각 조각은 인증되고 자기 맥락에 묶입니다. 봉인된 객체는 이 라이브러리의 이 키에서, 쓰인 목적 그대로의 객체로만 복호화됩니다. 조각화 덕분에 스트리밍이 동작합니다. 플레이어는 가져온 바이트 범위만 정확히 복호화할 수 있습니다.

제공자가 볼 수 있는 것

이 섹션으로 연결

객체 수, 객체 크기, 업로드 시점, 접근 패턴입니다. 이름, 메타데이터, 오디오, 이미지, 구성원은 볼 수 없습니다. 서버 측 복구는 없습니다. 모든 기기와 키 사본을 잃은 사용자는 라이브러리의 암호문을 영원히 잃은 것이며, 이는 설계된 동작입니다.

잠금 해제와 잠금

이 섹션으로 연결

라이브러리를 열 때 키링에서 키를 읽습니다. 라이브러리가 키를 기대하는데 키링에 없으면 bae는 라이브러리를 잠김 상태로 봅니다. 열기 전에 키를 입력하라고 요청하고, 저장된 지문과 대조한 뒤 키링에 다시 저장합니다. 라이브러리를 잠그면 의도적으로 키링에서 키를 제거합니다. 키를 다시 입력하기 전까지 클라우드 홈의 어떤 것도 읽거나 쓸 수 없습니다.