Encryption
bae cloud home માં જે મૂકે તે બધું ઉપકરણ છોડે તે પહેલાં encrypt થાય છે; encryption વગરનો કોઈ mode નથી. bae પોતાનું cryptography implement કરતું નથી: આખી યોજના coven ની છે, અને આ page વર્ણવે છે કે bae તેને કેવી રીતે વાપરે છે.
| કી | શું કરે છે |
|---|---|
| store key | લાઇબ્રેરી અને તેના સભ્યપદ records encrypt કરે છે |
| દરેક વ્યક્તિની circle key | વ્યક્તિ જે ખાનગી રાખે તે encrypt કરે છે: તેનો ખાનગી સાંભળવાનો ઇતિહાસ અને playlists |
| દરેક file ની key | એક file encrypt કરે છે, અને ફક્ત તેની હરોળના encrypted ફેરફારોની અંદર જ જાય છે |
| વ્યક્તિની સહી key pair | તેના ઉપકરણો મોકલે તે દરેક ફેરફાર પર સહી કરે છે |
| વ્યક્તિની sealing key pair | તે વ્યક્તિ માટે seal કરેલી કી ખોલે છે |
store key રેન્ડમ હોય છે, લાઇબ્રેરીને cloud home મળે ત્યારે બને છે. વ્યક્તિની key pairs તેના બધા ઉપકરણો વહેંચે છે. ખાનગી કી અને લાઇબ્રેરીની કી OS keyring માં રહે છે, ક્યારેય file કે database માં નહીં. તે ઉપકરણ સુધી બે રીતે પહોંચે છે, બંને ઓળખ અને સભ્યપદ માં વર્ણવેલી: restore code વ્યક્તિની પોતાની key pairs લઈ જાય છે, અને આમંત્રણ મંજૂર કરનાર admin store keys ને નવી વ્યક્તિની sealing key માટે seal કરે છે.
ફેરબદલ
આ વિભાગની લિંકકી ક્યારેય તેની જગ્યાએ બદલાતી નથી; નવી ઉમેરાય છે. કોઈ વ્યક્તિ દૂર થયા પછી, બાકી રહેલા સભ્યનું ઉપકરણ ત્યાં વધુ ડેટા લખતાં પહેલાં નવી store key ઉમેરે છે, અને તે જે દરેક circle માં હતી તેના માટે નવી key: પછી લખાયેલું બધું તેના માટે વાંચી ન શકાય તેવું હોય છે, જ્યારે બાકીના સભ્યો દરેક જૂની key રાખે છે અને આખો ઇતિહાસ વાંચી શકે છે. એક ઉપકરણ દૂર કરવાથી કશું ફરતું નથી, કારણ કે વ્યક્તિના બીજા ઉપકરણો તેની કી વહેંચે છે; દૂર કર્યા પછી તે ઉપકરણ જે મોકલે તે ગણાતું નથી.
શું sealed થાય છે
આ વિભાગની લિંકHome નો દરેક object: ફેરફારો, snapshots, સભ્યપદ records અને files. વિષયવસ્તુ XChaCha20-Poly1305 થી encrypt થાય છે, દરેક ફેરફાર Ed25519 થી સહી થાય છે, અને કી લોકો માટે X25519 sealed boxes થી seal થાય છે. Files 64 KiB chunks માં encrypt થાય છે, દરેક chunk અલગથી પ્રમાણિત અને પોતાની જગ્યા સાથે બંધાયેલો, તેથી કોઈ chunk ને પકડાયા વગર બદલી, અદલાબદલી કે ફરી ગોઠવી શકાતો નથી. Chunking ને કારણે જ streaming ચાલે છે: player બરાબર જે chunks લાવે તે જ decrypt કરી શકે છે.
Provider શું જોઈ શકે
આ વિભાગની લિંકObjects ની સંખ્યા, objects નાં કદ, upload નો સમય, કયું ખાતું દરેક object લખે છે, અને કયા ઉપકરણે દરેક file અને snapshot upload કર્યો, કારણ કે તેમના paths માં ઉપકરણનું નામ હોય છે. નામ નહીં, metadata નહીં, audio નહીં, artwork નહીં. Files રેન્ડમ નામો હેઠળ રહે છે, ક્યારેય તેમની વિષયવસ્તુના hash હેઠળ નહીં. Server-side recovery નથી: દરેક વ્યક્તિ દરેક ઉપકરણ અને દરેક restore code ગુમાવે તો લાઇબ્રેરી ખોવાઈ જાય છે; આ જ design નો હેતુ છે.
Keyring ની ભૂમિકા
આ વિભાગની લિંકલાઇબ્રેરી ખોલતી વખતે OS keyring માંથી તેની કી વંચાય છે. અત્યારે લૉક થયેલું keyring, લૉક સત્ર કે ઊંઘતી સ્ક્રીનને કારણે, બગડેલા keyring થી અલગ ઓળખાય છે: bae લાઇબ્રેરીને લૉક બતાવે છે અને અનલૉક પછી ફરી પ્રયાસ કરે છે, લાઇબ્રેરી બિનઉપયોગી છે એમ કહેવાને બદલે. કોઈ ઉપકરણ key ભૂલી પણ શકે છે, જેથી તે ઉપકરણ પર લાઇબ્રેરી ફરી અનલૉક ન થાય ત્યાં સુધી લૉક રહે છે.