Revault বড় ফাইলকে প্রায় 5 MiB-এর সেগমেন্টে এনক্রিপ্ট করে, প্রতিটির নিজস্ব প্রমাণীকরণ ট্যাগ থাকে, তাই পুরো ফাইলটি একসাথে মেমরিতে রাখতে হয় না। ওয়েব অ্যাপে এভাবেই 1 GiB পর্যন্ত ফাইল রাখা সম্ভব হয়।
পুরো ফাইল একবারে এনক্রিপ্ট করা হয় না কেন?
বড় ফাইলগুলির জন্য প্রচুর পরিমাণে মেমরির প্রয়োজন হবে না। Revault আনুমানিক 5 MiB এর সেগমেন্টে ফাইল পড়ে, ব্রাউজারে প্রতিটি সেগমেন্টকে এনক্রিপ্ট করে এবং IndexedDB-এ সাইফারটেক্সট পর্যায়ভুক্ত করে। আসল ফাইলটি কখনই একটি বিশাল বাফারে পড়া হয় না।
সেগমেন্টে কাজ করার আরেকটি অর্থ হলো, থেমে যাওয়া আপলোড আগে থেকে প্রস্তুত সাইফারটেক্সট থেকে আবার চলতে পারে, পুরো ফাইল আবার এনক্রিপ্ট না করেই।
সেগমেন্টের ক্রম ও সম্পূর্ণতা কী রক্ষা করে?
প্রতিটি ফাইল পায় নিজস্ব এনক্রিপশন কী, যা ভল্ট মাস্টার কী থেকে HKDF দিয়ে তৈরি হয়। এই ডেরিভেশনের প্রসঙ্গে ভল্ট ও ফাইলের শনাক্তকারী, ফাইলের বাইট দৈর্ঘ্য এবং সেগমেন্টের আকার থাকে।
প্রতিটি সেগমেন্টের 12-বাইট nonce-এ থাকে ওই ফাইলের জন্য বেছে নেওয়া একটি র্যান্ডম প্রিফিক্স, চার-বাইটের সেগমেন্ট কাউন্টার এবং শেষ সেগমেন্ট চিহ্নিত করার একটি ফ্ল্যাগ। সেগমেন্টে 128-বিট GCM ট্যাগ থাকে। সেগমেন্ট অদলবদল, পরিবর্তন বা কেটে ফেলা হলে যাচাই ব্যর্থ হয়।
আপলোড মাঝপথে থেমে গেলে কী হয়?
একবার এনক্রিপশন সম্পূর্ণ হলে, পৃষ্ঠা রিফ্রেশ করার পরে নেটওয়ার্ক আপলোডগুলি ক্যাশে করা সাইফারটেক্সট থেকে পুনরায় শুরু হতে পারে। পুরানো ননসেসের অধীনে একটি নতুন উত্স এনক্রিপ্ট করার পরিবর্তে, একই এনক্রিপ্ট করা বাইটগুলি পুনরায় চেষ্টা করে। এনক্রিপশন নিজেই বাধাগ্রস্ত হলে, সেই অসম্পূর্ণ আপলোড বাতিল করুন এবং একটি নতুন ফাইল পরিচয় দিয়ে আবার শুরু করুন।
ডাউনলোড কীভাবে যাচাই করা হয়?
ডাউনলোড প্রতিটি সেগমেন্ট ছাড়ার আগে প্রমাণীকরণ করে। যেহেতু ফাইল স্ট্রিম হওয়ার সময়ই যাচাই হয়, ডাউনলোডের শেষ দিকে কোনো ত্রুটি একটি অসম্পূর্ণ ফাইল রেখে যেতে পারে, তাই ফাইলটির ওপর নির্ভর করার আগে নিশ্চিত হোন যে ডাউনলোড সফলভাবে শেষ হয়েছে।
সীমাগুলো কী কী?
ওয়েব অ্যাপে প্রতিটি ফাইল 1 GiB পর্যন্ত হতে পারে। ছবি ও ভিডিও প্রিভিউয়ের আলাদা মেমরি সীমা আছে। স্থানীয় ব্রাউজার সঞ্চয়স্থান মুছলে আপলোড আবার শুরু করার জন্য প্রয়োজনীয় সাইফারটেক্সট মুছে যেতে পারে।
স্ট্রিমিং বিন্যাস টিঙ্কের নথিভুক্ত AES-GCM-HKDF স্ট্রিমিং নির্মাণকে অনুসরণ করে, নেটিভ ওয়েব ক্রিপ্টো আদিম ব্যবহার করে। ফাইলের পরিচয় এবং প্রত্যাশিত দৈর্ঘ্য কী ডেরিভেশন প্রসঙ্গে আবদ্ধ; সেগমেন্ট কাউন্টার এবং চূড়ান্ত মার্কার অর্ডার এবং সমাপ্তি রক্ষা করে। এই বাস্তবায়ন একটি স্বাধীন ক্রিপ্টোগ্রাফিক অডিট পায়নি।
নিরাপত্তা মডেল পৃষ্ঠায় পুরো গঠন বর্ণনা করা আছে, স্ট্রিম হেডার ও কী ডেরিভেশন সহ।