Revault ഒരു വലിയ ഫയലിനെ ഏകദേശം 5 MiB വീതമുള്ള സെഗ്മെന്റുകളായി എൻക്രിപ്റ്റ് ചെയ്യുന്നു, ഓരോന്നിനും സ്വന്തം ഓതന്റിക്കേഷൻ ടാഗ് ഉണ്ട്, അതിനാൽ മുഴുവൻ ഫയലും ഒരേസമയം മെമ്മറിയിൽ വയ്ക്കേണ്ടതില്ല. വെബ് ആപ്പിൽ 1 GiB വരെയുള്ള ഫയലുകൾക്ക് ഇടം നൽകുന്നത് ഇതാണ്.

എന്തുകൊണ്ട് മുഴുവൻ ഫയലും ഒറ്റയടിക്ക് എൻക്രിപ്റ്റ് ചെയ്യുന്നില്ല?

വലിയ ഫയലുകൾക്ക് വലിയ അളവിൽ മെമ്മറി ആവശ്യമായി വരരുത്. Revault ഏകദേശം 5 MiB വലുപ്പമുള്ള സെഗ്മെന്റുകളായി ഫയലുകൾ വായിക്കുകയും ഓരോ സെഗ്മെന്റും ബ്രൗസറിൽ എൻക്രിപ്റ്റ് ചെയ്യുകയും സൈഫർടെക്സ്റ്റ് IndexedDB-യിൽ സ്റ്റേജ് ചെയ്യുകയും ചെയ്യുന്നു. യഥാർത്ഥ ഫയൽ ഒരിക്കലും ഒരു വലിയ ബഫറിലേക്ക് വായിക്കപ്പെടുന്നില്ല.

സെഗ്മെന്റുകളായി പ്രവർത്തിക്കുന്നത് തടസ്സപ്പെട്ട അപ്‌ലോഡിന് മുഴുവൻ ഫയലും വീണ്ടും എൻക്രിപ്റ്റ് ചെയ്യാതെ, ഇതിനകം സ്റ്റേജ് ചെയ്ത സൈഫർടെക്സ്റ്റിൽ നിന്ന് തുടരാനും കഴിയും എന്നാണ് അർത്ഥമാക്കുന്നത്.

സെഗ്മെന്റ് ക്രമവും പൂർണ്ണതയും എന്താണ് സംരക്ഷിക്കുന്നത്?

ഓരോ ഫയലിനും വോൾട്ട് മാസ്റ്റർ കീയിൽ നിന്ന് HKDF ഉപയോഗിച്ച് ഉരുത്തിരിച്ചെടുത്ത സ്വന്തം എൻക്രിപ്ഷൻ കീ ലഭിക്കുന്നു. ഉരുത്തിരിയൽ സന്ദർഭത്തിൽ വോൾട്ട്, ഫയൽ ഐഡന്റിഫയറുകൾ, ഫയലിന്റെ ബൈറ്റ് ദൈർഘ്യം, സെഗ്മെന്റ് വലുപ്പം എന്നിവ ഉൾപ്പെടുന്നു.

ഓരോ സെഗ്മെന്റിന്റെയും 12-ബൈറ്റ് നോൺസ്, ആ ഫയലിനായി തിരഞ്ഞെടുത്ത ക്രമരഹിത പ്രിഫിക്സ്, നാല്-ബൈറ്റ് സെഗ്മെന്റ് കൗണ്ടർ, അവസാന സെഗ്മെന്റിനെ അടയാളപ്പെടുത്തുന്ന ഫ്ലാഗ് എന്നിവ സംയോജിപ്പിക്കുന്നു. സെഗ്മെന്റുകൾക്ക് 128-ബിറ്റ് GCM ടാഗുകളുണ്ട്. സെഗ്മെന്റുകൾ പരസ്പരം മാറ്റുകയോ മാറ്റം വരുത്തുകയോ മുറിച്ചുമാറ്റുകയോ ചെയ്താൽ സ്ഥിരീകരണം പരാജയപ്പെടും.

അപ്‌ലോഡ് തടസ്സപ്പെട്ടാൽ എന്ത് സംഭവിക്കും?

എൻക്രിപ്ഷൻ പൂർത്തിയായാൽ, പേജ് റിഫ്രഷ് ചെയ്താലും കാഷെ ചെയ്ത സൈഫർടെക്സ്റ്റിൽ നിന്ന് നെറ്റ്‌വർക്ക് അപ്‌ലോഡുകൾ പുനരാരംഭിക്കാം. പഴയ നോൺസുകൾ ഉപയോഗിച്ച് പുതിയ ഉറവിടം എൻക്രിപ്റ്റ് ചെയ്യുന്നതിന് പകരം, വീണ്ടും ശ്രമിക്കുമ്പോൾ അതേ എൻക്രിപ്റ്റ് ചെയ്ത ബൈറ്റുകൾ തന്നെ അയയ്ക്കുന്നു. എൻക്രിപ്ഷൻ തന്നെ തടസ്സപ്പെട്ടാൽ, അപൂർണമായ ആ അപ്‌ലോഡ് റദ്ദാക്കി പുതിയ ഫയൽ ഐഡന്റിറ്റിയോടെ വീണ്ടും തുടങ്ങുക.

ഡൗൺലോഡുകൾ എങ്ങനെ പരിശോധിക്കുന്നു?

ഡൗൺലോഡുകൾ ഓരോ സെഗ്മെന്റും പുറത്തുവിടുന്നതിന് മുമ്പ് ഓതന്റിക്കേറ്റ് ചെയ്യുന്നു. ഫയൽ സ്ട്രീം ചെയ്യുമ്പോഴാണ് പരിശോധന നടക്കുന്നത് എന്നതിനാൽ, ഡൗൺലോഡിന്റെ അവസാനഘട്ടത്തിലെ പിശക് അപൂർണ്ണമായ ഫയൽ അവശേഷിപ്പിച്ചേക്കാം, അതിനാൽ ആശ്രയിക്കുന്നതിന് മുമ്പ് ഡൗൺലോഡ് വിജയകരമായി പൂർത്തിയായെന്ന് ഉറപ്പാക്കുക.

പരിധികൾ എന്തൊക്കെയാണ്?

വെബ് ആപ്പിലെ ഓരോ ഫയലിനും 1 GiB വരെ ആകാം. ചിത്ര, വീഡിയോ പ്രിവ്യൂകൾക്ക് പ്രത്യേക മെമ്മറി പരിധിയുണ്ട്. ലോക്കൽ ബ്രൗസർ സ്റ്റോറേജ് മായ്ക്കുന്നത് അപ്‌ലോഡ് പുനരാരംഭിക്കാൻ ആവശ്യമായ സൈഫർടെക്സ്റ്റ് നീക്കം ചെയ്തേക്കാം.

സ്ട്രീമിംഗ് ഫോർമാറ്റ്, നേറ്റീവ് Web Crypto പ്രിമിറ്റീവുകൾ ഉപയോഗിച്ച്, Tink-ന്റെ രേഖപ്പെടുത്തിയ AES-GCM-HKDF സ്ട്രീമിംഗ് നിർമ്മിതിയെ പിന്തുടരുന്നു. ഫയൽ ഐഡന്റിറ്റിയും പ്രതീക്ഷിക്കുന്ന നീളവും കീ ഡെറിവേഷൻ സന്ദർഭത്തിൽ ബന്ധിപ്പിച്ചിരിക്കുന്നു; സെഗ്മെന്റ് കൗണ്ടറുകളും അവസാന മാർക്കറും ക്രമവും പൂർത്തീകരണവും സംരക്ഷിക്കുന്നു. ഈ നടപ്പാക്കലിന് ഒരു സ്വതന്ത്ര ക്രിപ്റ്റോഗ്രാഫിക് ഓഡിറ്റ് ലഭിച്ചിട്ടില്ല.

സ്ട്രീം ഹെഡറും കീ ഡെറിവേഷനും ഉൾപ്പെടെ പൂർണ്ണ നിർമ്മിതി സുരക്ഷാ മോഡൽ പേജ് വിവരിക്കുന്നു.