رمزنگاری و اعتماد

مدل امنیتی

مرجع فنی Revault در iOS و Android: گاوصندوق‌های محلی، کلیدهای دستگاه، همگام‌سازی ابری بومی و اشتراک‌گذاری‌های مستقل چگونه از داده‌های شما محافظت می‌کنند و این محافظت‌ها کجا پایان می‌یابند.

مرجع فنی · به‌روزرسانی اکتبر ۲۰۲۶

حفاظت پیش از بارگذاری شروع می‌شود

گاوصندوق‌های بومی به‌صورت محلی و بدون حساب کاربری Revault کار می‌کنند. محتوا، نام فایل‌ها، انواع MIME، بندانگشتی‌ها، نام گاوصندوق‌ها، پوشه‌ها، برچسب‌ها و علاقه‌مندی‌ها روی دستگاه رمزگذاری می‌شوند. استفادهٔ محلی فایل‌های گاوصندوق را به Revault آپلود نمی‌کند. همگام‌سازی ابری بومی و اشتراک‌گذاری عملیاتی اختیاری و جدا از هم هستند.

این مدل هنگام ساخت یا باز کردن گاوصندوق، یک سیستم‌عامل، برنامهٔ نصب‌شده و منبع تصادفی رمزنگاری قابل‌اعتماد را فرض می‌کند. کسی که فقط فایل‌های رمزگذاری‌شده و بسته‌بندی‌های کلید را دارد، بدون رمز محرمانهٔ لازم نمی‌تواند آن‌ها را رمزگشایی کند. بدافزار یا برنامهٔ آلوده‌ای که هنگام باز بودن گاوصندوق اجرا شود می‌تواند متن بدون رمزگذاری و کلیدها را بگیرد.

دستگاه شمامتن آشکار و کلید گاوصندوق
رمزگذاری محلیمتن رمزشده احرازشده
ذخیره‌سازی رمزگذاری‌شدهبدون کلید متن آشکار گاوصندوق

کلیدهای مستقل برای هر گاوصندوق

هر گاوصندوق با یک کلید اصلی AES تصادفی ۲۵۶ بیتی شروع می‌شود که با منبع تصادفی رمزنگاری سیستم‌عامل تولید شده است. حرکت الگو مستقیماً این کلید را تعیین نمی‌کند. هر گاوصندوق مواد کلید اصلی مستقل دارد، بنابراین افشای کلید یک گاوصندوق، کلید گاوصندوق دیگری را به دست نمی‌دهد.

الگوی دستگاه توالی مرتب نقطه‌ها را با یک رمز محرمانهٔ تصادفی ۲۵۶ بیتی دستگاه ترکیب می‌کند. ورودی حاصل با NFKC نرمال‌سازی می‌شود و با نمک تازهٔ ۱۲۸ بیتی و ۶۰۰٬۰۰۰ تکرار به PBKDF2-HMAC-SHA-256 داده می‌شود. کلید ۲۵۶ بیتی مشتق‌شده، کلید اصلی را با AES-256-GCM بسته‌بندی می‌کند. برنامه نه الگوی بدون رمزگذاری و نه اثر انگشت جداگانه‌ای از الگو را ذخیره می‌کند.

الگوها از شبکهٔ ۵ × ۵ با شش تا ۲۵ نقطهٔ متمایز استفاده می‌کنند و باید میان گاوصندوق‌هایی که روی یک دستگاه ثبت شده‌اند یکتا باشند. الگوی منطبق فقط گاوصندوق خودش را باز می‌کند؛ نام و محتوای گاوصندوق‌های دیگر پنهان می‌مانند. حرکت‌های قابل‌پیش‌بینی همچنان راحت‌تر حدس زده می‌شوند. کسی که هم رمز محرمانهٔ دستگاه و هم بسته‌بندی رمزگذاری‌شدهٔ آن را به دست آورد، می‌تواند حدس‌های آفلاین الگو بزند.

باز کردن یک گاوصندوق بومی به الگوی محلی آن یا یک روند صریح بازیابی نیاز دارد، نه حساب کاربری Revault یا پس‌کی. همگام‌سازی ابری اختیاری از مجوز Apple یا Google پلتفرم استفاده می‌کند و خریدهای فروشگاهی از حساب پرداخت پلتفرم. نه مجوز ابری و نه خرید، کلید رمزگشایی گاوصندوق را فراهم نمی‌کند.

پارامترهای رمزنگاری
هدفساختار
کلید اصلی گاوصندوقکلید AES تصادفی ۲۵۶ بیتی
بسته‌بندی کلیدPBKDF2-HMAC-SHA-256 · ۶۰۰٬۰۰۰ تکرار · نمک ۱۲۸ بیتی → AES-256-GCM
فراداده و تصاویر بندانگشتیAES-256-GCM · nonce تصادفی ۹۶ بیتی · برچسب احراز ۱۲۸ بیتی
اشتقاق کلید فایلHKDF-SHA-256 · نمک تصادفی ۲۵۶ بیتی برای هر فایل · خروجی AES ۲۵۶ بیتی
رمز بازیابیتولیدشده: ۱۸ کلمه تصادفی (۱۹۸ بیت)؛ سفارشی: دست‌کم ۶ کلمه متمایز و ۳۲ تا ۵۱۲ نویسه

محافظت از کلید فقط روی دستگاه

در iOS، قفل دستگاه به‌صورت یک مورد Keychain غیرهمگام با محافظت WhenUnlockedThisDeviceOnly ذخیره می‌شود. فقط وقتی دستگاه باز است در دسترس است و از طریق همگام‌سازی Keychain منتقل نمی‌شود. رمز محرمانهٔ ذخیره‌شده کلید Secure Enclave نیست.

در Android، قفل دستگاه با AES-256-GCM زیر یک کلید Android Keystore غیرقابل‌خروجی که به دستگاه باز نیاز دارد رمزگذاری می‌شود. فایل قفل رمزگذاری‌شده در دایرکتوری بدون‌پشتیبان برنامه قرار دارد. پشتوانهٔ سخت‌افزاری Keystore به دستگاه بستگی دارد؛ برنامه وعده نمی‌دهد که هر دستگاهی از کلیدهای سخت‌افزاری استفاده کند.

رمزهای محرمانهٔ محلی باز کردن قفل از همگام‌سازی ابری بومی و پشتیبان‌های قابل‌حمل گاوصندوق کنار گذاشته می‌شوند. داشتن حساب Apple یا Google این رمزهای محرمانه را بازسازی نمی‌کند و گاوصندوق بازیابی‌شده را به‌طور خودکار باز نمی‌کند. دستگاه جدید باید رمز محرمانهٔ بازیابی مستقل را تأیید کند و الگوی خودش را ثبت کند.

محرمانگی و تشخیص دست‌کاری

فراداده گاوصندوق، فراداده فایل، تصاویر بندانگشتی و کلیدهای بسته‌بندی‌شده از AES-256-GCM با برچسب‌های احراز ۱۲۸ بیتی استفاده می‌کنند. هر رمزگذاری مستقل از یک nonce تصادفی تازه ۹۶ بیتی استفاده می‌کند. رمزگشایی پیش از بازگرداندن متن آشکار برچسب را بررسی می‌کند؛ متن رمزشده دست‌کاری‌شده یا کلید اشتباه باعث شکست احراز می‌شود.

داده احرازشده اضافی هر شیء رمزگذاری‌شده را به نسخه قالب، شناسه گاوصندوق، شناسه شیء و هدف آن پیوند می‌دهد. برای مثال، یک تصویر بندانگشتی و رکورد فراداده فایل بافت‌های متفاوتی دارند. انتقال یک شیء رمزگذاری‌شده به گاوصندوق دیگر یا جایگزین کردن آن با شیء دیگر، بافت احرازشده را تغییر می‌دهد و تأیید شکست می‌خورد.

بافت احرازشده شناسه‌ها را پنهان نمی‌کند و تازگی را اثبات نمی‌کند. یک رکورد قدیمی معتبر همچنان می‌تواند برچسب معتبر داشته باشد. بررسی نسخه برنامه به‌روزرسانی‌های هم‌زمان عادی را تشخیص می‌دهد، اما این یک دفاع رمزنگاری در برابر سرویس مخربی که کل وضعیت قدیمی را بازپخش می‌کند نیست.

فایل‌های بزرگ از قطعه‌های احرازشده استفاده می‌کنند

رمزگذاری فایل بومی از ساختار جریانی AES-256-GCM-HKDF-SHA-256 که Tink شرح داده استفاده می‌کند. iOS از CryptoKit برای AES-GCM و HKDF استفاده می‌کند؛ Android از اجزای رمزنگاری پلتفرم. هر جریان جدید یک سرآیند ۴۰ بایتی دارد که شامل نشانگر طول، نمک تصادفی ۳۲ بایتی و پیشوند nonce تصادفی هفت‌بایتی است.

HKDF یک کلید رمزگذاری فایل جداگانه از کلید اصلی گاوصندوق اشتقاق می‌دهد. بافت آن شامل شناسه‌های گاوصندوق و فایل، طول بایت متن آشکار و اندازه قطعه پیکربندی‌شده است. nonce ۱۲ بایتی هر قطعه، پیشوند تصادفی، شمارنده قطعه چهاربایتی و پرچم قطعه آخر را ترکیب می‌کند. قطعه‌ها برچسب‌های GCM ۱۲۸ بیتی دارند.

برنامه‌های بومی فایل‌ها را در بخش‌های محدود تقریباً 5 MiB پردازش می‌کنند. شمارنده‌های بخش، پرچم بخش پایانی و طول‌های بایتی مورد انتظار، بخش‌های دست‌کاری‌شده، جابه‌جاشده یا کوتاه‌شده را تشخیص می‌دهند. هر بخش پیش از استفاده احراز هویت می‌شود و پیش‌نمایش خصوصی فقط پس از اتمام رمزگشایی فایل منتشر می‌شود. خروجی ناقص در صورت شکست دور ریخته می‌شود؛ تلاش‌های مجدد بایت‌های رمزگذاری‌شدهٔ موجود را منتقل می‌کنند.

این ساختار از مشخصات جریانی Tink AES-GCM-HKDFپیروی می‌کند. پیاده‌سازی Revault و پیکربندی قطعه‌های آن توسط Tink مستقلاً ممیزی یا گواهی نشده است.

فضای خصوصی، وارد کردن و پیش‌نمایش‌ها

فایل‌های رمزگذاری‌شدهٔ گاوصندوق در فضای خصوصی برنامه قرار دارند. نام فایل‌ها، انواع MIME، پوشه‌ها، برچسب‌ها، علاقه‌مندی‌ها و بندانگشتی‌ها رکوردهای رمزگذاری‌شدهٔ احراز‌هویت‌شده هستند. جست‌وجو و فیلتر برچسب پس از باز کردن قفل روی فرادادهٔ رمزگشایی‌شدهٔ گاوصندوق فعال انجام می‌شود؛ هیچ نمایهٔ جست‌وجوی بدون رمزگذاری روی سرور وجود ندارد.

وارد کردن عکس، ویدیو و فایل می‌تواند پیش از رمزگذاری از فضای موقت خصوصی استفاده کند. ثبت با دوربین داخل گاوصندوق به‌طور خودکار نسخه‌ای در گالری ذخیره نمی‌کند. وارد کردن از Photos یا ارائه‌دهندهٔ دیگر، نسخهٔ اصلی آن ارائه‌دهنده را دست‌نخورده می‌گذارد. بهینه‌سازی اختیاری رسانه پیش از رمزگذاری به‌صورت محلی انجام می‌شود و فقط رسانهٔ تازه‌واردشده را تغییر می‌دهد.

پیش‌نمایش‌های خصوصی تا وقتی باز هستند به متن بدون رمزگذاری موقت نیاز دارند. برنامه‌ها پیش‌نمایش‌های موقت خود را هنگام بستن، قفل و راه‌اندازی بعدی حذف می‌کنند؛ iOS حفاظت کامل فایل را روی فایل‌های پیش‌نمایش رمزگشایی‌شده اعمال می‌کند. فایل‌هایی که صریحاً به برنامهٔ دیگری خروجی داده شوند از حفاظت گاوصندوق خارج می‌شوند. حذف فایل موقت پاک‌سازی تضمین‌شدهٔ قانونی-فنی (forensic) نیست.

همگام‌سازی ابری بومی اختیاری

همگام‌سازی به‌طور پیش‌فرض خاموش است و برای هر گاوصندوق روی هر دستگاه جداگانه فعال می‌شود. iOS رکوردهای رمزگذاری‌شده و بخش‌های فایل را در پایگاه دادهٔ خصوصی CloudKit کاربر در iCloud ذخیره می‌کند. Android از appDataFolder خصوصی Google Drive استفاده می‌کند. هیچ‌کدام از این مسیرها به حساب کاربری Revault نیاز ندارند یا داده‌های همگام‌سازی بومی را به فضای ابری وب Revault آپلود نمی‌کنند.

فضای ابری فراداده‌های رمزگذاری‌شده، بخش‌های فایل و بسته‌بندی‌های کلید را دریافت می‌کند، نه کلید اصلی گاوصندوق بدون رمزگذاری، رمز محرمانهٔ محلی دستگاه یا رمز محرمانهٔ بازیابی را. دستگاه دیگر روی همان پلتفرم برای ثبت الگوی محلی خودش به همان حساب ابری بومی و کلید بازیابی گاوصندوق نیاز دارد. مجوز Apple و Google دسترسی به رکوردهای رمزگذاری‌شده را کنترل می‌کند، نه رمزگشایی آن‌ها را.

خاموش کردن همگام‌سازی انتقال‌های بعدی آن گاوصندوق را از دستگاه فعلی متوقف می‌کند؛ نسخه‌های رمزگذاری‌شدهٔ ابری موجود می‌مانند. همگام‌سازی می‌تواند تغییرات و حذف‌ها را منتقل کند و ویرایش‌های همزمان ممکن است به بررسی تعارض نیاز داشته باشند. iCloud و Google Drive فضاهای ذخیره‌سازی جدا هستند و پل خودکار میان‌پلتفرمی ندارند. برای جابه‌جایی میان iPhone و Android از انتقال رمزگذاری‌شدهٔ گوشی استفاده کنید.

بازیابی مسیر دوم به همان کلید است

عبارت‌های بازیابی تولیدشده شامل ۱۸ کلمه است که مستقل از هم از فهرستی ۲٬۰۴۸ کلمه‌ای درون برنامه انتخاب می‌شوند و ۱۹۸ بیت تصادفی بودن را فراهم می‌کنند. می‌توانید به‌جای آن عبارتی سفارشی با دست‌کم شش کلمه متمایز و ۳۲ تا ۵۱۲ نویسه انتخاب کنید؛ قدرت آن به انتخاب‌های شما بستگی دارد. هر دو، مستقل از هم با PBKDF2-HMAC-SHA-256 و یک salt تازه یک کلید پوشانندهٔ جدید می‌سازند و سپس همان کلید اصلی گاوصندوق را با AES-256-GCM می‌پوشانند. هر کس عبارت و گاوصندوق رمزگذاری‌شده را داشته باشد می‌تواند آن را رمزگشایی کند.

رمز محرمانهٔ بازیابی هنگام راه‌اندازی نمایش داده می‌شود و در ذخیره‌سازی برنامهٔ بومی ماندگار نمی‌شود یا در فضای ابری بومی آپلود نمی‌شود. آن را جدا از فایل‌های رمزگذاری‌شده نگه دارید. ثبت دستگاه دیگر به گاوصندوق رمزگذاری‌شده از حساب ابری بومی اصلی یا یک پشتیبان رمزگذاری‌شده، به‌علاوهٔ کلید بازیابی نیاز دارد. یک رمز محرمانه نمی‌تواند دادهٔ فایلِ ازدست‌رفته را بازگرداند و Revault کلید بازنشانی نزد ارائه‌دهنده ندارد.

پشتیبان قابل‌حمل .qvault شامل بسته‌بندی‌های کلید رمزگذاری‌شده، فهرست رمزگذاری‌شدهٔ احراز‌هویت‌شده و بخش‌های رمزگذاری‌شدهٔ فایل است. رمز محرمانهٔ محلی باز کردن قفل دستگاه را شامل نمی‌شود. ورود، فهرست، فراداده و هر بخش را پیش از بازیابی در گاوصندوقی با شناسه‌ها، کلید اصلی، کلیدهای فایل و الگوی جدید دستگاه راستی‌آزمایی می‌کند. پس از بازیابی، کلید بازیابی جدید را ذخیره کنید.

عبارت‌های بازیابی جدید حروف بزرگ و کوچک را حفظ می‌کنند، یونیکد را با NFKC نرمال‌سازی می‌کنند و فاصله‌های اضافه را یکی می‌کنند. کلیدهای هگزادسیمال قدیمی همچنان پشتیبانی می‌شوند. پس از ذخیره عبارت جدید، می‌توانید عبارت بازیابی گاوصندوق را در تنظیمات آن جایگزین کنید. این کار پوشش بازیابی فعلی را جایگزین می‌کند؛ پشتیبان‌های قدیمی و دستگاه‌هایی که همگام نشده‌اند ممکن است همچنان پوشش قدیمی را داشته باشند. تغییر الگوی قفل یا عبارت بازیابی، کلید اصلی گاوصندوق را تعویض نمی‌کند و نسخه‌های موجود را باطل نمی‌کند. اگر مواد کلید در معرض نفوذ قرار گرفته‌اند، فایل‌ها را با کلیدهای تازه به یک گاوصندوق جدید منتقل کنید.

انتقال رمزگذاری‌شدهٔ گوشی به گوشی

انتقال گوشی یک نسخهٔ رمزگذاری‌شدهٔ قابل‌حمل با شناسه‌های تازهٔ گاوصندوق، کلید اصلی، کلیدهای فایل و سرآیندهای جریان می‌سازد. رمز محرمانهٔ انتقال مستقل آن نمی‌تواند گاوصندوق مبدأ را باز کند و رمز محرمانهٔ بازیابی مبدأ و رمز محرمانهٔ باز کردن قفل دستگاه شامل نمی‌شوند. بستهٔ رمزگذاری‌شده و رمز محرمانهٔ انتقال باید جداگانه تحویل داده شوند.

برنامهٔ مقصد بسته و بخش‌های فایل آن را احراز هویت می‌کند، سپس در یک گاوصندوق جدید با الگوی محلی و کلید بازیابی جدید بازیابی می‌کند. این میان iOS و Android بدون پل زدن میان حساب‌های ابری آن‌ها کار می‌کند. نسخهٔ اصلی روی دستگاه قدیمی می‌ماند؛ پیش از حذف آن، محتوای بازیابی‌شده را تأیید کنید و کلید بازیابی جدید را ذخیره کنید.

قفل و پاک‌سازی نشست

برنامه‌های موبایل هنگام رفتن به پس‌زمینه فوراً قفل می‌شوند و به‌طور پیش‌فرض پس از ۶۰ ثانیه عدم فعالیت. هر گاوصندوق می‌تواند ۳۰ ثانیه، ۱ دقیقه، ۲ دقیقه، ۵ دقیقه یا ۱۰ دقیقه را انتخاب کند. گاوصندوق اشتراکی از پیش‌فرض ۶۰ ثانیه استفاده می‌کند. خروج به صفحهٔ الگو برمی‌گرداند و نشست رمزگشایی‌شده را پایان می‌دهد.

قفل کردن کار نشست را لغو می‌کند، فرادادهٔ رمزگشایی‌شده و وضعیت جست‌وجو را پاک می‌کند، پیش‌نمایش‌ها را می‌بندد، فایل‌های موقت را حذف می‌کند و بافرهای کلید را پیش از رها کردن بازنویسی می‌کند. کلیدهای موقت اشتقاق هم پس از استفاده پاک می‌شوند. مدیریت حافظهٔ Swift و JVM، کتابخانه‌های رمزنگاری و رمزگشاهای رسانه ممکن است نسخه بسازند؛ پاک‌شدن فوری هر نسخه قابل تضمین نیست.

iOS تصاویر لحظه‌ای تعویض برنامه را با سپر حریم خصوصی می‌پوشاند. Android از پرچم پنجرهٔ امن برای محدود کردن اسکرین‌شات و پیش‌نمایش برنامه‌های اخیر استفاده می‌کند. این محافظت‌های پلتفرم مانع نمی‌شوند کسی از صفحهٔ باز عکس بگیرد و فایل‌هایی را که قبلاً به برنامهٔ دیگری خروجی داده شده‌اند پس نمی‌گیرند.

Revault Cloud

Revault Cloud یک ارائه‌دهندهٔ اختیاری فضای ذخیره‌سازی Pro برای همگام‌سازی بین پلتفرم‌هاست. بخش‌های رمزگذاری‌شده و فراداده‌های رمزگذاری‌شدهٔ فایل به یک نصب صورتحساب با نام مستعار پیوند می‌خورند. این سرویس می‌تواند شناسه‌های ذخیره‌سازی، اندازه‌ها، چک‌سام‌ها، بازبینی‌ها و فعالیت انتقال را ببیند، اما کلید گاوصندوق بازشده یا عبارت بازیابی را دریافت نمی‌کند. یک کد اتصال تصادفی جداگانه دسترسی به فضای ذخیره‌سازی را مجاز می‌کند؛ اتصال دستگاه دیگر نیز به عبارت بازیابی نیاز دارد. پس از پایان اعتبار Pro، داده‌های ابری موجود برای بازیابی همچنان خواندنی می‌مانند.

کلیدهای مستقل برای هر اشتراک‌گذاری

اشتراک‌گذاری بومی یک نسخهٔ لحظه‌ای از فایل‌های انتخاب‌شده است، نه دسترسی به گاوصندوق شخصی مالک. به‌طور پیش‌فرض برنامه کلیدهای نسخه‌های انتخاب‌شدهٔ فایل را مشتق می‌کند و با AES-256-GCM زیر یک کلید اصلی تازهٔ اشتراک‌گذاری بسته‌بندی می‌کند. بایت‌های رمزگذاری‌شدهٔ فایل را دوباره استفاده می‌کند، در حالی که فراداده و بندانگشتی‌ها را برای اشتراک‌گذاری دوباره رمزگذاری می‌کند. کلیدهای گاوصندوق مبدأ، رمز محرمانهٔ بازیابی آن، ساختار پوشه، برچسب‌ها و علاقه‌مندی‌ها شامل نمی‌شوند.

اشتراک‌گذاری، عبارت رمزگشایی ۱۸ کلمه‌ای و پوشش بازیابی مستقل خود را دارد که جداگانه تولید شده است. فرستنده آن رمز محرمانه را به‌صورت خصوصی و جدا از پیوند دعوت می‌فرستد. سرور داده‌های رمزگذاری‌شده را دریافت می‌کند و هرگز کلید اشتراک‌گذاری یا رمز رمزگشایی را به شکل متن آشکار نمی‌بیند. گیرنده نمی‌تواند از کلیدهای فایل‌های انتخاب‌شده، کلید فایل‌های به‌اشتراک‌نگذاشته یا کلید اصلی گاوصندوق مبدأ را به‌دست آورد.

تنظیم اختیاری جداسازی بیشتر، محتوای فایل‌ها را با کلیدها و سرآیندهای جریان تازه دوباره رمزگذاری می‌کند. حالت پیش‌فرض سریع‌تر است چون از بازنویسی همهٔ فایل‌ها پرهیز می‌کند؛ متن رمزگذاری‌شدهٔ تکراری می‌تواند نسخه‌های یک نسخهٔ فایل را به هم مرتبط کند. هر دو حالت یک نسخهٔ لحظه‌ای جداگانه می‌سازند و هیچ‌کدام نمی‌تواند متن رمزگذاری‌شده و کلیدهایی را که گیرنده از قبل نگه داشته پس بگیرد.

مسیرهای انتقال و کنترل‌های دسترسی اشتراک‌گذاری بومی

در iOS، یک دعوت‌نامهٔ خصوصی و فقط‌خواندنیِ CloudKit نسخهٔ لحظه‌ای رمزگذاری‌شده را در یک سلسله‌مراتب جداگانه از رکوردهای اشتراک‌گذاری، بیرون از ناحیهٔ همگام‌سازی شخصی قرار می‌دهد. Apple دسترسی به دعوت‌نامه را کنترل می‌کند؛ گیرنده همچنان به رمز محرمانهٔ جداگانهٔ رمزگشایی نیاز دارد. دعوت‌نامه‌های CloudKit شمارش نشست دسترسی، انقضای ثابت یا تایمر تخریب سرور را اعمال نمی‌کنند. مالک می‌تواند دسترسی‌های بعدی CloudKit را متوقف کند.

اشتراک‌گذاری‌های میان‌پلتفرمی بخش‌های رمزگذاری‌شده را به سرویس اشتراک‌گذاری Revault آپلود می‌کنند. اختیارات خواندن و مدیریت تصادفی مستقل ۲۵۶ بیتی به‌صورت هش SHA-256 ذخیره می‌شوند. پیوند وب‌سایت اختیار خواندن را در fragment خود دارد، نه رمز محرمانهٔ رمزگشایی را. باز کردن آن به یک گاوصندوق اشتراکی پیوند عمیق می‌دهد و رمز محرمانهٔ فرستنده را می‌خواهد؛ الگوی شخصی یا گاوصندوق موجود لازم نیست. گاوصندوق‌های شخصی قفل می‌مانند.

اشتراک‌گذاری‌های کنترل‌شدهٔ سروری حداکثر نشست‌های دسترسی فرستنده، انقضای ثابت تا ۳۰ روز، لغو و اجازهٔ اختیاری خروجی گرفتن را اعمال می‌کنند. هر نشست به‌صورت اتمی صادر می‌شود و حداکثر ۱۵ دقیقه طول می‌کشد، در چارچوب مهلت‌های اشتراک‌گذاری. هر دسترسی هنگام صدور نشست شمرده می‌شود، حتی اگر دانلود یا رمزگشایی شکست بخورد. نمایشگر دسترسی جاری را بررسی می‌کند و در مهلت پایانی بسته می‌شود.

چک‌سام‌های SHA-256 بخش‌های منتقل‌شده را تأیید می‌کنند و رمزگذاری احرازهویت‌شده محتوای آن‌ها را راستی‌آزمایی می‌کند. وقتی صادرات مجاز باشد، بیننده می‌تواند یک نسخه رمزگذاری‌شده با قالب .qvault ذخیره کند که با رمز محرمانه اشتراک‌گذاری باز می‌شود. غیرفعال کردن صادرات فقط این عملکرد برنامه را حذف می‌کند؛ از نظر رمزنگاری نمی‌تواند مانع گرفتن اسکرین‌شات یا نگه‌داشتن متن آشکار توسط یک برنامه دستکاری‌شده شود. حذف یک فایل مبدأ، اشتراک‌گذاری‌ای را که جداگانه ساخته شده لغو نمی‌کند.

مهلتی پس از اولین دسترسی

فرستنده می‌تواند یک زمان‌سنج نابودی جداگانه را فعال کند. این زمان‌سنج به‌صورت اتمی هنگام اعطای اولین نشست دسترسی سرور شروع می‌شود، حتی اگر انتقال یا رمزگشایی بعداً ناموفق باشد. هر نشست بعدی همان مهلت را دارد؛ باز کردن دوباره آن را هرگز بازنشانی نمی‌کند. زودترین مورد از انقضای ثابت، زمان نابودی و انقضای نشست اعمال می‌شود. در مهلت، سرویس خواندن‌های بعدی را رد می‌کند و متن رمزشده را برای حذف در صف قرار می‌دهد، در حالی که نمایشگر بومی بسته می‌شود و کلیدهای اشتراک و فایل‌های موقت خود را آزاد می‌کند. پاک‌سازی ناهمگام است و نمی‌تواند عکس‌های صفحه، داده‌های نگه‌داشته‌شده توسط کلاینت دست‌کاری‌شده یا نسخه‌های صادرشده قبلی را پاک کند.

فعالیت اختیاری گاوصندوق

گزارش‌های ممیزی بومی به‌صورت پیش‌فرض خاموش هستند و برای هر گاوصندوق در هر دستگاه پیکربندی می‌شوند. ۵۰۰ رویداد محلی آخر با کلید اصلی گاوصندوق و یک بافت احرازشده اختصاصی رمزگذاری می‌شوند. آن‌ها کلیدها، الگوها، محتوای فایل‌ها و داده گاوصندوق‌های دیگر را در بر نمی‌گیرند، همگام نمی‌شوند و قابل پاک کردن یا غیرفعال کردن هستند. آن‌ها مدرک ضد دست‌کاری نیستند. باز کردن‌های ناموفق به هیچ گاوصندوقی اختصاص داده نمی‌شوند.

اشتراک‌های کنترل‌شده جدیدی که با فعال بودن گزارش‌گیری ساخته می‌شوند تا ۱۰۰ زمان نشست دسترسی را روی سرویس اشتراک‌گذاری نگه می‌دارند. فقط قابلیت مدیریت می‌تواند آن‌ها را بازیابی کند؛ گزارش هیچ هویت گیرنده یا رمز رمزگشایی ندارد. غیرفعال کردن گزارش‌گیری محلی بر اشتراک‌های آینده اثر می‌گذارد. گزارش اشتراک‌های موجود تا زمان لغو یا انقضا و پاک‌سازی تنظیم اصلی خود را حفظ می‌کند.

عکس‌های رمزگذاری‌شده اختیاری نفوذ

مالکان می‌توانند هشدار نفوذ را برای هر گاوصندوق در هر دستگاه جداگانه فعال کنند. پس از سه الگوی ناموفق، برنامه در پیش‌زمینه می‌تواند با دوربین جلو عکس بگیرد، مشروط به مجوز، در دسترس بودن دوربین و یک دقیقه فاصله زمانی. نشانگرهای دوربین سیستم قابل مشاهده می‌مانند. ده هشدار آخر به‌صورت محلی ذخیره می‌شوند و هرگز به Photos اضافه یا بارگذاری نمی‌شوند. یک الگوی ناموفق گاوصندوق هدف را مشخص نمی‌کند، بنابراین هر گاوصندوقی که فعال کرده باشد یک رکورد تلاش دستگاه با رمزگذاری جداگانه دریافت می‌کند.

یک کلید عمومی اختصاصی RSA-3072 برای هر هشدار یک کلید تازه ۲۵۶ بیتی AES-GCM را با OAEP همراه SHA-256 و MGF1-SHA-256 می‌پیچد. این کار اجازه می‌دهد رمزگذاری هنگام قفل بودن گاوصندوق انجام شود. کلید خصوصی متناظر خودش زیر کلید اصلی آن گاوصندوق با یک بافت احرازشده اختصاصی رمزگذاری می‌شود. فقط باز کردن قفل آن گاوصندوق می‌تواند عکس‌هایش را رمزگشایی کند. هشدارها مستقل از گزارش‌گیری فعالیت عادی در نمای ممیزی آن ظاهر می‌شوند و در تنظیمات هشدار نفوذ قابل پاک کردن هستند. آن‌ها مدرک ضد دست‌کاری نیستند.

خروج امن دسترسی محلی را حذف می‌کند

می‌توان یک گاوصندوق روی دستگاه را برای خروج امن تعیین کرد. وارد کردن الگوی قفل آن، گاوصندوق را به‌طور عادی باز می‌کند و در همان حال سایر سوابق گاوصندوق محلی، تکه‌های رمزگذاری‌شده، مواد باز کردن قفل دستگاه و تغییرات در صف را حذف می‌کند. برنامه فهرست مجاز محلی ماندگاری نگه می‌دارد تا همگام‌سازی نتواند بی‌صدا گاوصندوق‌های کنار گذاشته‌شده را دوباره بازگرداند. انتقال‌های رمزگذاری‌شده‌ای که از قبل در جریان بوده‌اند ممکن است همچنان کامل شوند.

نسخه‌های ابری بومی و نسخه‌های روی دستگاه‌های دیگر باقی می‌مانند. بازیابی صریح پیش از ثبت الگوی قفل جدید محلی، به کلید بازیابی گاوصندوق کنار گذاشته‌شده نیاز دارد. گاوصندوقی که فقط آفلاین است و پشتیبان جداگانه ندارد ممکن است از دست برود. این تنظیم برای همین نصب فعلی اعمال می‌شود، نه برای همه دستگاه‌هایی که از یک حساب ابری استفاده می‌کنند.

خروج امن، پاک‌سازی یا پنهان‌سازی قطعی در برابر بررسی‌های جنایی دیجیتال را تضمین نمی‌کند. حافظه فلش، حافظه‌های پنهان سیستم‌عامل، پشتیبان‌ها و خروجی‌های قبلی ممکن است ردپاهایی نگه دارند. حذف داده‌های برنامه یا نصب دوباره می‌تواند مرز جداسازی محلی را از بین ببرد؛ در این صورت ممکن است سوابق ابری دوباره از طریق حساب ابری بومی پیدا شوند. فقط رمز بازیابی می‌تواند آن سوابق را باز کند.

آنچه قابل مشاهده می‌ماند

رمزگذاری محتوا را پنهان می‌کند، نه همه اطلاعات عملیاتی را. سوابق محلی و ارائه‌دهندگان ابری می‌توانند شناسه‌ها، ارتباط میان سوابق، تعداد اشیا، اندازه‌ها، نسخه‌ها، مهرهای زمانی، پوشش‌های کلید رمزگذاری‌شده و سرآیندهای جریان را ببینند. شناسه‌ها از UUIDv7 استفاده می‌کنند و اطلاعات زمان ساخت را در خود دارند؛ آن‌ها محرمانه نیستند. Apple یا Google می‌توانند فعالیت همگام‌سازی بومی را به حساب پلتفرم مرتبط کنند.

سرویس اشتراک‌گذاری کنترل‌شده Revault می‌تواند اندازه بسته‌های رمزگذاری‌شده، چک‌سام بخش‌ها، تنظیمات انقضا، تعداد نشست‌های دسترسی و مهرهای زمانی اختیاری نشست‌ها را ببیند، اما رمز رمزگشایی را که جداگانه تحویل داده می‌شود نمی‌بیند. اشتراک‌گذاری CloudKit اطلاعات دعوت و شرکت‌کنندگان را در اختیار Apple قرار می‌دهد. سوابق شبکه و عملیاتی می‌توانند اطلاعات اتصال را آشکار کنند. Revault ناشناس‌بودن یا مقاومت در برابر تحلیل ترافیک ارائه نمی‌دهد.

HTTPS درخواست‌های شبکه را در مسیر انتقال محافظت می‌کند. رمزگذاری احرازهویت‌شده روی دستگاه، جداگانه از محتوای گاوصندوق که به‌صورت محلی و در فضای ابری ذخیره شده محافظت می‌کند. نه رمزگذاری انتقال و نه متن رمزشده، هر واقعیتی درباره اینکه چه زمانی، کجا یا چه مقدار داده منتقل می‌شود را پنهان نمی‌کنند.

تحلیل‌های استفاده

به‌طور پیش‌فرض فعال است. Mixpanel رویدادهای استفاده از ویژگی‌ها را با یک شناسه تحلیلی تصادفی دریافت می‌کند. محتوای گاوصندوق، نام‌ها، الگوهای قفل، کلیدها و رمزهای محرمانه اشتراک‌گذاری مستثنا هستند. تحلیل‌ها را در هر زمان برای این مرورگر یا دستگاه خاموش کنید.

حفاظت کجا پایان می‌یابد

گاوصندوق بازشده ناگزیر اطلاعات رمزگشایی‌شده را در اختیار نشست برنامه قرار می‌دهد. بدافزار، سیستم‌عامل یا برنامه آلوده، کسی که صفحه را می‌بیند، یا گیرنده‌ای که به او اعتماد ندارید می‌تواند آن را ثبت کند. ذخیره کلید فقط روی دستگاه یک مرز محافظتی اضافی است، نه تضمینی در برابر دستگاهی که کاملاً در معرض نفوذ قرار گرفته. الگوی قفل قابل‌پیش‌بینی، به محض لو رفتن رمز محلی آن ناامن است.

رمزگذاری جلوی حذف ابری، باج‌افزار، از دست رفتن رمز بازیابی، پنهان کردن سوابق توسط ارائه‌دهنده یا بازگرداندن کل یک وضعیت رمزگذاری‌شده معتبر قبلی را نمی‌گیرد. پشتیبان‌های رمزگذاری‌شده مستقل نگه دارید و پیش از کنار گذاشتن دستگاه قدیمی، بازیابی را بیازمایید. لغو دسترسی نمی‌تواند اسکرین‌شات‌ها، خروجی‌ها یا نسخه‌هایی را که فرد دیگری نگه داشته پس بگیرد.

Revault بررسی امنیتی مستقل را پشت سر نگذاشته است. این‌ها توصیف طراحی رمزنگاری پیاده‌سازی‌شده هستند، نه گواهی یا تضمین در برابر هر نفوذی.

گاوصندوق‌های مرورگر موجود

این مرجع برنامه‌های بومی را توصیف می‌کند. گاوصندوق‌های موجود در مرورگر مدل حساب، ذخیره‌سازی روی دستگاه و فضای ابری وب جداگانه‌ای دارند. بارگذاری‌های S3 مخصوص مرورگر و پیوندهای اشتراک‌گذاری مرورگر، همگام‌سازی ابری بومی نیستند. حساب مرورگر شما را وارد برنامه‌های موبایل نمی‌کند؛ برای انتقال داده‌های موجود مرورگر به یک گاوصندوق بومی، از یک پشتیبان رمزگذاری‌شده و کلید بازیابی آن استفاده کنید.

امنیت و معماری