КРИПТОГРАФИЯ И ДОВЕРИЕ

Модел на сигурност

Техническа справка за Revault на iOS и Android: как локалните сейфове, ключовете на устройството, вграденото облачно синхронизиране и независимите споделяния защитават данните ви и къде свършват тези защити.

Техническа справка · Обновено през октомври 2026 г.

Защитата започва преди качването

Вградените сейфове работят локално без акаунт в Revault. Съдържанието на файловете, имената им, MIME типовете, миниатюрите, имената на сейфовете, папките, таговете и любимите се шифроват на устройството. Локалното ползване не качва файлове от сейфа в Revault. Вграденото облачно синхронизиране и споделянето са незадължителни, отделни операции.

Моделът предполага надеждна операционна система, инсталирано приложение и криптографски източник на случайност при създаване или отключване на сейф. Човек, който има само шифровани файлове и обвивки на ключове, не може да ги дешифрира без необходимия таен код. Зловреден софтуер или компрометирано приложение, работещи, докато сейфът е отворен, могат да прихванат данни в чист вид и ключове.

Вашето устройствоЧист текст и ключ на сейфа
Шифроване локалноУдостоверен шифротекст
Шифровано хранилищеНяма ключ на сейфа в чист вид

Независими ключове за всеки сейф

Всеки сейф започва със случаен 256-битов главен ключ AES, генериран с криптографския източник на случайност на операционната система. Жестът не определя директно този ключ. Всеки сейф има независим материал за главен ключ, така че разкриването на ключа на един сейф не извлича друг.

Фигурата на устройството комбинира подредената си последователност от точки със случаен 256-битов таен код на устройството. Получената входна стойност се нормализира с NFKC и се подава на PBKDF2-HMAC-SHA-256 с нова 128-битова сол и 600 000 итерации. Извлеченият 256-битов ключ обвива главния ключ с AES-256-GCM. Приложението не запазва фигурата в чист вид, нито отделен отпечатък на фигурата.

Фигурите използват мрежа 5 × 5 с от шест до 25 различни точки и трябва да са уникални за сейфовете, регистрирани на едно и също устройство. Съвпадаща фигура отваря само своя сейф; имената и съдържанието на другите сейфове остават скрити. Предвидимите жестове пак се налучкват по-лесно. Човек, който получи и тайния код на устройството, и шифрованата му обвивка, може да опита налучквания на фигурата офлайн.

Отварянето на вграден сейф изисква локалната му фигура или изричен процес за възстановяване, а не акаунт в Revault или ключ за достъп (passkey). Незадължителното облачно синхронизиране използва оторизацията на платформата на Apple или Google, а покупките в магазина използват платежния акаунт на платформата. Нито облачната оторизация, нито покупка предоставя ключ за дешифриране на сейф.

Криптографски параметри
ЦелКонструкция
Главен ключ на сейфаСлучаен 256-битов ключ AES
Обвиване на ключовеPBKDF2-HMAC-SHA-256 · 600 000 итерации · 128-битова сол → AES-256-GCM
Метаданни и миниатюриAES-256-GCM · случаен 96-битов nonce · 128-битов таг за удостоверяване
Извеждане на ключ за файлHKDF-SHA-256 · случайна 256-битова сол за файл · 256-битов изход AES
Тайна за възстановяванеГенерирана: 18 случайни думи (198 бита); персонализирана: поне 6 различни думи и 32–512 знака

Защита на ключовете само на устройството

В iOS заключването на устройството се съхранява като несинхронизиращ се елемент на Keychain със защита WhenUnlockedThisDeviceOnly. То е достъпно само докато устройството е отключено и не мигрира чрез синхронизиране на Keychain. Съхранената тайна не е ключ на Secure Enclave.

В Android заключването на устройството се шифрова с AES-256-GCM под неекспортируем ключ на Android Keystore, който изисква отключено устройство. Шифрованият файл със заключването се намира в директорията на приложението, изключена от резервни копия. Хардуерната подкрепа на Keystore зависи от устройството; приложението не обещава, че всяко устройство използва ключове с хардуерна подкрепа.

Локалните тайни кодове за отключване са изключени от вграденото облачно синхронизиране и преносимите резервни копия на сейфове. Притежаването на акаунт в Apple или Google не възстановява тези тайни кодове и не отключва автоматично възстановен сейф. Ново устройство трябва да провери независимия таен код за възстановяване и да регистрира собствена фигура.

Поверителност и откриване на подправяне

Метаданните на сейфа, метаданните на файловете, миниатюрите и обвитите ключове използват AES-256-GCM със 128-битови тагове за удостоверяване. Всяко независимо шифроване използва нов случаен 96-битов nonce. Дешифрирането проверява тага, преди да върне чист текст; променен шифротекст или грешен ключ води до неуспех на удостоверяването.

Допълнителните удостоверени данни свързват всеки шифрован обект с версията на формата, идентификатора на сейфа, идентификатора на обекта и предназначението му. Например миниатюрата и записът с метаданни на файл използват различни контексти. Преместването на шифрован обект в друг сейф или подмяната му с друг обект променя удостоверения контекст и проверката се проваля.

Удостоверението на контекста не скрива идентификаторите и не доказва актуалност. Валиден по-стар запис все още може да има валиден таг. Проверките на ревизиите в приложението откриват обикновени едновременни актуализации, но това не е криптографска защита срещу злонамерена услуга, която възпроизвежда пълно по-старо състояние.

Големите файлове използват удостоверени сегменти

Вграденото шифроване на файлове използва поточната конструкция AES-256-GCM-HKDF-SHA-256, описана от Tink. iOS използва CryptoKit за AES-GCM и HKDF; Android използва криптографските примитиви на платформата. Всеки нов поток има 40-байтова заглавка, съдържаща маркер за дължина, случайна 32-байтова сол и случаен седембайтов префикс на nonce.

HKDF извежда отделен ключ за шифроване на файла от главния ключ на сейфа. Контекстът му включва идентификаторите на сейфа и файла, дължината на чистия текст в байтове и конфигурирания размер на сегмента. 12-байтовият nonce на всеки сегмент съчетава случайния префикс, четирибайтов брояч на сегмента и флаг за последен сегмент. Сегментите носят 128-битови GCM тагове.

Вградените приложения обработват файловете на ограничени сегменти от приблизително 5 MiB. Броячите на сегментите, флагът за последния сегмент и очакваните дължини в байтове откриват променени, преподредени или съкратени сегменти. Всеки сегмент се автентицира преди използване, а лична визуализация се публикува само след като файлът й завърши дешифрирането. Непълният резултат се изхвърля при грешка; повторните опити пренасят съществуващите шифровани байтове.

Конструкцията следва спецификацията за поточно Tink AES-GCM-HKDF. Имплементацията и конфигурацията на сегментите на Revault не са независимо одитирани или сертифицирани от Tink.

Лично хранилище, импортиране и визуализации

Шифрованите файлове на сейфа се намират в личното хранилище на приложението. Имената на файловете, MIME типовете, папките, таговете, любимите и миниатюрите са автентикирани шифровани записи. Търсенето и филтрирането по тагове работят върху дешифрираните метаданни на активния сейф след отключване; няма сървърен индекс за търсене в чист вид.

Импортирането на снимки, видеа и файлове може да използва лична временна междинна област преди шифроване. Заснемането с камерата в сейфа не записва автоматично копие в галерията. Импортирането от Снимки или друг доставчик оставя оригинала на този доставчик непокътнат. Незадължителната оптимизация на медиите става локално преди шифроване и променя само новоимпортирани медии.

Личните визуализации изискват временни данни в чист вид, докато са отворени. Приложенията премахват временните си визуализации при затваряне, заключване и следващо стартиране; iOS прилага пълна защита на файловете към дешифрираните файлове за визуализация. Файловете, изрично експортирани в друго приложение, напускат защитата на сейфа. Изтриването на временни файлове не е гаранция за криминалистично изтриване.

Незадължително вградено облачно синхронизиране

Синхронизирането е изключено по подразбиране и се включва отделно за всеки сейф на всяко устройство. iOS съхранява шифровани записи и сегменти на файлове в личната база данни CloudKit на потребителя в iCloud. Android използва личната папка appDataFolder на Google Drive. Нито един от двата транспорта не изисква акаунт в Revault, нито качва данни за вградено синхронизиране в уеб облака на Revault.

Облакът получава шифровани метаданни, сегменти на файлове и обвивки на ключове, а не главен ключ на сейфа в чист вид, локален таен код на устройството или таен код за възстановяване. Друго устройство от същата платформа се нуждае от същия вграден облачен акаунт и ключа за възстановяване на сейфа, за да регистрира собствена локална фигура. Оторизацията на Apple и Google контролира достъпа до шифрованите записи, а не дешифрирането им.

Изключването на синхронизирането спира по-нататъшните преноси за този сейф от текущото устройство; съществуващите шифровани облачни копия остават. Промените и изтриванията при синхронизиране могат да се разпространят, а едновременни редакции може да изискват преглед на конфликти. iCloud и Google Drive са отделни хранилища, без автоматичен мост между платформите. Използвайте шифрован пренос между телефони, за да преминете между iPhone и Android.

Възстановяването е втори път към същия ключ

Генерираните фрази за възстановяване съдържат 18 независимо избрани думи от вграден списък с 2048 думи, което осигурява 198 бита случайност. Можете вместо това да изберете персонализирана фраза с поне шест различни думи и 32–512 знака; нейната сила зависи от вашите избори. И при двата варианта независимо се извлича ключ за обвиване чрез PBKDF2-HMAC-SHA-256 и нова сол, след което същият главен ключ на сейфа се обвива с AES-256-GCM. Всеки, който има фразата и шифрования сейф, може да го дешифрира.

Тайният код за възстановяване се показва при настройката и не се съхранява във вграденото хранилище на приложението, нито се качва във вграденото облачно хранилище. Пазете го отделно от шифрованите файлове. За регистриране на друго устройство са нужни шифрованият сейф от първоначалния вграден облачен акаунт или шифровано резервно копие плюс ключът за възстановяване. Тайният код не може да възстанови липсващи данни на файлове, а Revault няма ключ за нулиране, държан от доставчика.

Преносимото резервно копие .qvault съдържа шифровани обвивки на ключове, автентикиран шифрован опис и шифровани сегменти на файлове. То изключва локалния таен код за отключване на устройството. Импортирането проверява описа, метаданните и всеки сегмент, преди да възстанови в сейф с нови идентификатори, главен ключ, ключове на файловете и нова фигура на устройството. Запазете новия ключ за възстановяване след възстановяването.

Новите фрази за възстановяване запазват регистъра, нормализират Unicode с NFKC и свиват допълнителните интервали. Старите шестнадесетични ключове продължават да се поддържат. Можете да смените фразата за възстановяване на сейфа в неговите настройки, след като запазите новата фраза. Това заменя текущата обвивка за възстановяване; старите резервни копия и устройства, които не са синхронизирани, може все пак да съдържат старата обвивка. Смяната на фигура или на фраза за възстановяване не сменя главния ключ на сейфа и не отменя копията. Ако ключов материал бъде компрометиран, преместете файловете в нов сейф с нови ключове.

Шифровано преместване от телефон на телефон

Преносът между телефони създава преносимо шифровано копие с нови идентификатори на сейфа, главен ключ, ключове на файловете и заглавки на потока. Независимият му таен код за пренос не може да отключи изходния сейф, а тайният код за възстановяване на източника и тайният код за отключване на устройството не са включени. Шифрованият пакет и тайният код за пренос трябва да се предадат поотделно.

Приемащото приложение автентицира пакета и сегментите на файловете му, след което възстановява в нов сейф с нова локална фигура и ключ за възстановяване. Това работи между iOS и Android без свързване на облачните им акаунти. Оригиналът остава на старото устройство; потвърдете възстановеното съдържание и запазете новия ключ за възстановяване, преди да го изтриете.

Заключване и почистване на сесията

Мобилните приложения се заключват незабавно при преминаване на заден план и по подразбиране след 60 секунди неактивност. Всеки сейф може да избере 30 секунди, 1 минута, 2 минути, 5 минути или 10 минути. Споделеният сейф използва стойността по подразбиране от 60 секунди. Изходът връща към екрана с фигурата и прекратява дешифрираната сесия.

Заключването прекратява работата на сесията, изчиства дешифрираните метаданни и състоянието на търсенето, затваря визуализациите, премахва временните файлове и презаписва притежаваните буфери с ключове, преди да ги освободи. Временните ключове за извличане също се изчистват след използване. Управлението на паметта в Swift и JVM, криптографските библиотеки и медийните декодери могат да създават копия; незабавно изтриване на всяко копие не може да се гарантира.

iOS покрива снимките на превключвателя на приложения със защитен екран за поверителност. Android използва флага за защитен прозорец, за да ограничи екранните снимки и визуализациите на скорошни приложения. Тези защити на платформата не пречат на някого да снима отключен екран и не отменят файлове, експортирани преди това в друго приложение.

Revault Cloud

Revault Cloud е незадължителен доставчик на Pro хранилище за синхронизиране между платформи. Шифрованите сегменти и шифрованите метаданни на файловете са свързани с псевдонимна инсталация за фактуриране. Услугата може да вижда идентификатори на хранилището, размери, контролни суми, ревизии и активност при прехвърляне, но не получава разкрит ключ на сейфа или фраза за възстановяване. Отделен произволен код за връзка разрешава достъпа до хранилището; за свързване на друго устройство е необходима и фразата за възстановяване. Съществуващите данни в облака остават четими за възстановяване след изтичането на Pro.

Независими ключове за всяко споделяне

Вграденото споделяне е моментна снимка на избрани файлове, а не достъп до личния сейф на собственика. По подразбиране приложението извлича ключовете на избраните версии на файлове и ги обвива с AES-256-GCM под нов главен ключ на споделянето. То използва повторно шифрованите байтове на файловете, като шифрова наново метаданните и миниатюрите за споделянето. Ключовете на изходния сейф, неговият таен код за възстановяване, структурата на папките, таговете и любимите са изключени.

Споделянето има собствена независимо генерирана фраза за дешифроване от 18 думи и обвивка за възстановяване. Изпращачът предава този таен код поверително, отделно от линка за покана. Сървърът получава шифровани данни, но никога открития ключ за споделяне или тайния код за дешифроване. Получателят не може да извлече ключовете на несподелените файлове или главния ключ на изходния сейф от избраните файлови ключове.

Незадължителната настройка за допълнителна изолация шифрова наново съдържанието на файловете с нови ключове и заглавки на потока. Настройката по подразбиране е по-бърза, защото избягва пренаписването на всеки файл; повтарящият се шифротекст може да съпостави копия на една и съща версия на файл. И двата режима създават отделна моментна снимка и нито един не може да отмени шифротекст и ключове, вече запазени от получател.

Вграден транспорт на споделянето и контрол на достъпа

В iOS лична CloudKit покана само за четене поставя шифрованата моментна снимка в отделна йерархия от записи за споделяне, извън зоната за лично синхронизиране. Apple контролира достъпа до поканата; получателят все пак се нуждае от отделния таен код за дешифроване. CloudKit поканите не налагат броя на сесиите за достъп, фиксирания срок или таймера за унищожение на сървъра. Собственикът може да спре бъдещия CloudKit достъп.

Споделянията между платформи качват шифровани части в услугата за споделяне на Revault. Независими случайни 256-битови права за четене и управление се съхраняват като SHA-256 хешове. Линкът в уебсайта носи правото за четене във фрагмента си, а не тайния код за дешифроване. Отварянето му води директно до споделен сейф и иска тайния код на подателя; не се изисква лична фигура или съществуващ сейф. Личните сейфове остават заключени.

Споделянията с контрол през сървъра налагат максималния брой сесии за достъп на подателя, фиксиран срок до 30 дни, отменяне и незадължително разрешение за експорт. Сесията се предоставя атомарно и продължава най-много 15 минути, ограничена от крайните срокове на споделянето. Достъпът се отчита, когато сесията е предоставена, дори ако изтеглянето или дешифрирането не успее. Визуализаторът проверява текущия достъп и се затваря при крайния си срок.

SHA-256 контролните суми потвърждават пренесените части, а автентифицираното шифроване потвърждава съдържанието им. Когато експортирането е разрешено, получателят може да запази шифровано копие .qvault, което се отваря с тайния код за споделянето. Забраната на експортирането премахва това действие в приложението, но не може криптографски да попречи на екранни снимки или на модифициран клиент да запази открития текст. Изтриването на изходен файл не отменя независимо създадено споделяне.

Краен срок след първия достъп

Подателят може да включи отделен таймер за унищожаване. Той стартира атомарно при предоставянето на първата сесия за достъп до сървъра, дори ако прехвърлянето или дешифрирането по-късно не успее. Всяка следваща сесия споделя същия краен срок; повторното отваряне никога не го нулира. Прилага се най-ранният от фиксирания срок на изтичане, момента на унищожаване и срока на сесията. При крайния срок услугата отказва по-нататъшно четене и поставя шифротекста в опашка за изтриване, докато нативният преглед се затваря и освобождава ключовете за споделяне и временните файлове. Почистването е асинхронно и не може да изтрие снимки на екрана, запазени данни на модифициран клиент или по-рано експортирани копия.

Незадължителна активност на сейфа

Нативните дневници за одит са изключени по подразбиране и се настройват за всеки сейф на всяко устройство. Последните 500 локални събития се шифроват с главния ключ на сейфа и специален удостоверен контекст. Те не включват ключове, фигури, съдържание на файлове и данни на други сейфове, не се синхронизират и могат да бъдат изчистени или изключени. Те не са доказателство, защитено от подправяне. Неуспешните опити за отключване не се приписват на сейф.

Новите контролирани споделяния, създадени с включено записване, пазят до 100 времеви отпечатъка на сесии за достъп в услугата за споделяне. Само способността за управление може да ги извлече; дневникът не съдържа самоличност на получателя или тайна за дешифриране. Изключването на локалното записване засяга бъдещите споделяния. Наличните дневници на споделянията запазват първоначалната си настройка до оттегляне или изтичане и почистване.

Незадължителни шифровани снимки при пробив

Собствениците могат да включат Сигнали за пробив отделно за всеки сейф на всяко устройство. След три неуспешни фигури приложението на преден план може да заснеме снимка с предната камера, в зависимост от разрешението, наличността на камерата и едноминутна пауза. Системните индикатори на камерата остават видими. Последните десет сигнала се съхраняват локално и никога не се добавят в Снимки или не се качват. Неуспешната фигура не идентифицира целеви сейф, затова всеки сейф, включил опцията, получава отделно шифрован запис за опит на устройството.

Специален публичен ключ RSA-3072 обвива нов 256-битов ключ AES-GCM за всеки сигнал, като използва OAEP със SHA-256 и MGF1-SHA-256. Това позволява шифроване, докато сейфът е заключен. Съответният частен ключ сам е шифрован с главния ключ на този сейф със специален удостоверен контекст. Само отключването на този сейф може да дешифрира снимките му. Сигналите се показват в изгледа за одит на сейфа независимо от обикновеното записване на активност и могат да бъдат изчистени в настройките на Сигнали за пробив. Те не са доказателство, защитено от подправяне.

Безопасният изход премахва локалния достъп

Един сейф на устройството може да бъде определен за Безопасен изход. Въвеждането на неговата фигура го отваря нормално, като същевременно премахва другите локални записи на сейфове, шифровани части, материала за отключване на устройството и опашката с промени. Приложението поддържа постоянен локален списък с разрешени сейфове, така че синхронизирането да не може тихо да върне изключените сейфове. Вече започнали шифровани прехвърляния може все пак да завършат.

Копията в облака и копията на други устройства остават. Изричното възстановяване изисква ключа за възстановяване на изключения сейф, преди да бъде зададена нова локална фигура. Сейф само офлайн без отделно резервно копие може да бъде загубен. Тази настройка важи за текущата инсталация, а не за всяко устройство, което използва същия облачен акаунт.

Безопасният изход не гарантира криминалистично изтриване или прикриване. Флаш паметта, кешовете на операционната система, резервните копия и предишните експорти могат да запазят следи. Изтриването на данните на приложението или преинсталирането може да премахне границата на локална изолация; тогава облачните записи може отново да бъдат открити чрез акаунта в нативния облак. Само тайната за възстановяване може да отключи тези записи.

Какво остава видимо

Шифроването скрива съдържанието, но не и цялата оперативна информация. Локалните записи и облачните доставчици могат да виждат идентификатори, връзки между записите, брой обекти, размери, ревизии, времеви отпечатъци, шифровани обвивки на ключове и заглавия на потоци. Идентификаторите използват UUIDv7 и съдържат информация за времето на създаване; те не са тайни. Apple или Google могат да свържат активността по нативното синхронизиране с акаунта на платформата.

Контролираната услуга за споделяне на Revault може да вижда размерите на шифрованите пакети, контролните суми на частите, настройките за срок на изтичане, броя на сесиите за достъп и по избор времевите отпечатъци на сесиите, но не и таен код за дешифроване, доставен отделно. Споделянето чрез CloudKit предоставя на Apple информация за поканите и участниците. Мрежовите и оперативните записи могат да разкрият информация за връзката. Revault не осигурява анонимност или устойчивост на анализ на трафика.

HTTPS защитава мрежовите заявки по време на предаване. Автентифицираното шифроване на устройството защитава поотделно съдържанието на сейфа, съхранявано локално и в облака. Нито шифроването при пренос, нито шифрованият текст скриват всеки факт за това кога, къде или колко данни се прехвърлят.

Статистика за използването

Включена по подразбиране. Mixpanel получава събития за използване на функции със случаен идентификатор за статистика. Съдържанието на сейфа, имената, фигурите, ключовете и тайните кодове за споделяне са изключени. Можете да изключите статистиката по всяко време за този браузър или устройство.

Докъде стига защитата

Отключеният сейф неизбежно разкрива дешифрирана информация пред сесията на приложението. Зловреден софтуер, компрометирана операционна система или приложение, човек, който гледа екрана, или недоверен получател могат да я заснемат. Съхранението на ключове само на устройството е допълнителна граница, а не гаранция срещу напълно компрометирано устройство. Предвидимата фигура е несигурна, щом локалната ѝ тайна бъде компрометирана.

Шифроването не предотвратява изтриване в облака, рансъмуер, загубата на тайна за възстановяване, укриване на записи от доставчик или връщане на цялото по-рано валидно шифровано състояние. Пазете независими шифровани резервни копия и проверете възстановяването, преди да премахнете старо устройство. Отменянето на достъп не може да върне екранни снимки, експорти или копия, вече запазени от друг човек.

Revault не е преминал независим одит за сигурност. Това са описания на имплементирания криптографски дизайн, а не сертификация или гаранция срещу всяко проникване.

Съществуващи сейфове в браузъра

Този наръчник описва нативните приложения. Съществуващите браузърни сейфове имат отделен акаунт, съхранение на устройството и уеб облачен модел. Специфичните за браузъра S3 качвания и браузърните линкове за споделяне не са нативно облачно синхронизиране. Браузърният акаунт не ви вписва в мобилните приложения; използвайте шифровано резервно копие и неговия ключ за възстановяване, за да преместите съществуващите браузърни данни в нативен сейф.

Сигурност и архитектура