Заштита почиње пре отпремања
Изворни сефови раде локално без Revault налога. Садржај фајлова, имена фајлова, MIME типови, сличице, имена сефова, фолдери, ознаке и омиљене ставке шифрују се на уређају. Локално коришћење не отпрема фајлове сефа на Revault. Изворна синхронизација у облаку и дељење су опционе, одвојене операције.
Модел претпоставља поуздан оперативни систем, инсталирану апликацију и криптографски извор случајности приликом креирања или откључавања сефа. Ко има само шифроване фајлове и омотаче кључева не може их дешифровати без потребне тајне вредности. Злонамерни софтвер или компромитована апликација који раде док је сеф отворен могу ухватити обичан текст и кључеве.
Независни кључеви за сваки сеф
Сваки сеф почиње насумичним 256-битним главним AES кључем, генерисаним помоћу криптографског извора случајности оперативног система. Покрет не одређује директно овај кључ. Сваки сеф има независан материјал главног кључа, па откривање једног кључа сефа не омогућава извођење другог.
Шаблон уређаја комбинује редослед тачака са насумичном 256-битном тајном вредношћу уређаја. Добијени улаз се нормализује помоћу NFKC и прослеђује алгоритму PBKDF2-HMAC-SHA-256 са новом 128-битном сољу и 600.000 итерација. Изведени 256-битни кључ умотава главни кључ алгоритмом AES-256-GCM. Апликација не чува шаблон у обичном тексту нити посебан отисак шаблона.
Шаблони користе мрежу 5 × 5 са шест до 25 различитих тачака и морају бити јединствени међу сефовима уписаним на истом уређају. Подударан шаблон отвара само свој сеф; имена и садржај осталих сефова остају скривени. Предвидиви покрети се и даље лакше погађају. Особа која добије и тајну вредност уређаја и њен шифровани омотач може покушавати офлајн погађања шаблона.
За отварање изворног сефа потребан је његов локални шаблон или изричит ток опоравка, а не Revault налог или приступни кључ. Опциона синхронизација у облаку користи Apple или Google ауторизацију платформе, а куповине у продавници користе платни налог платформе. Ни ауторизација облака ни куповина не дају кључ за дешифровање сефа.
| Сврха | Конструкција |
|---|---|
| Главни кључ сефа | Насумичан AES кључ од 256 бита |
| Омотавање кључа | PBKDF2-HMAC-SHA-256 · 600.000 итерација · со од 128 бита → AES-256-GCM |
| Метаподаци и сличице | AES-256-GCM · насумичан nonce од 96 бита · ознака аутентификације од 128 бита |
| Извођење кључа фајла | HKDF-SHA-256 · насумична со од 256 бита по фајлу · AES излаз од 256 бита |
| Тајна за опоравак | Генерисана: 18 насумичних речи (198 бита); прилагођена: најмање 6 различитих речи и 32–512 знакова |
Заштита кључа само на уређају
На iOS-у се закључавање уређаја чува као Keychain ставка која се не синхронизује, уз заштиту WhenUnlockedThisDeviceOnly. Доступна је само док је уређај откључан и не мигрира преко Keychain синхронизације. Сачувана тајна вредност није Secure Enclave кључ.
На Android-у се закључавање уређаја шифрује алгоритмом AES-256-GCM под Android Keystore кључем који се не може извести и који захтева откључан уређај. Шифровани фајл закључавања налази се у директоријуму апликације изузетом из резервних копија. Хардверска подршка Keystore-а зависи од уређаја; апликација не обећава да сваки уређај користи кључеве подржане хардвером.
Локалне тајне вредности за откључавање изузете су из изворне синхронизације у облаку и преносивих резервних копија сефа. Поседовање Apple или Google налога не креира поново те тајне вредности нити аутоматски откључава враћени сеф. Нови уређај мора да провери независну тајну вредност за опоравак и региструје сопствени шаблон.
Поверљивост и откривање измена
Метаподаци сефа, метаподаци фајлова, сличице и омотани кључеви користе AES-256-GCM са ознакама аутентификације од 128 бита. Свако независно шифровање користи нови насумичан nonce од 96 бита. Дешифровање проверава ознаку пре враћања отвореног текста; измењен шифрат или погрешан кључ узрокује неуспех аутентификације.
Додатни аутентификовани подаци везују сваки шифровани објекат за верзију формата, идентификатор сефа, идентификатор објекта и сврху. На пример, сличица и запис метаподатака фајла користе различите контексте. Премештање шифрованог објекта у други сеф или замена другим објектом мења аутентификовани контекст и провера не успева.
Аутентификовани контекст не сакрива идентификаторе и не доказује свежину. Важећи старији запис и даље може имати важећу ознаку. Провере ревизија апликације откривају уобичајена истовремена ажурирања, али то није криптографска одбрана од злонамерне услуге која понавља комплетно старије стање.
Велики фајлови користе аутентификоване сегменте
Изворно шифровање фајлова користи AES-256-GCM-HKDF-SHA-256 стриминг конструкцију коју описује Tink. iOS користи CryptoKit за AES-GCM и HKDF; Android користи криптографске примитиве платформе. Сваки нови ток има заглавље од 40 бајтова које садржи ознаку дужине, насумичну со од 32 бајта и насумични префикс нонса од седам бајтова.
HKDF изводи посебан кључ за шифровање фајла из главног кључа сефа. Његов контекст укључује идентификаторе сефа и фајла, дужину отвореног текста у бајтовима и подешену величину сегмента. Nonce од 12 бајтова сваког сегмента комбинује насумичан префикс, бројач сегмента од четири бајта и ознаку завршног сегмента. Сегменти носе GCM ознаке од 128 бита.
Изворне апликације обрађују фајлове у ограниченим сегментима од приближно 5 MiB. Бројачи сегмената, ознака последњег сегмента и очекиване дужине у бајтовима откривају измењене, преуређене или скраћене сегменте. Сваки сегмент се проверава пре употребе, а приватни преглед се објављује тек након што се његов фајл заврши са дешифровањем. Непотпун излаз се одбацује при грешци; поновни покушаји преносе постојеће шифроване бајтове.
Конструкција прати Tink спецификацију AES-GCM-HKDF стримовања. Имплементацију и конфигурацију сегмената Revault-а Tink није независно проверио нити сертификовао.
Приватно складиште, увози и прегледи
Шифровани фајлови сефа налазе се у приватном складишту апликације. Имена фајлова, MIME типови, фолдери, ознаке, омиљене ставке и сличице су аутентификовани шифровани записи. Претрага и филтрирање по ознакама раде над дешифрованим метаподацима активног сефа након откључавања; не постоји серверски индекс претраге у обичном тексту.
Увози фотографија, видео снимака и фајлова могу користити приватни привремени простор пре шифровања. Снимање камером унутар сефа не чува аутоматски копију у галерији. Увоз из Фотографија или од другог добављача оставља оригинал тог добављача нетакнутим. Опциона оптимизација медија обавља се локално пре шифровања и мења само тек увезене медије.
Приватни прегледи захтевају привремени обичан текст док су отворени. Апликације уклањају привремене прегледе при затварању, закључавању и наредном покретању; iOS примењује потпуну заштиту фајлова на дешифроване фајлове прегледа. Фајлови изричито извезени у другу апликацију напуштају заштиту сефа. Брисање привремених фајлова није гаранција форензичког брисања.
Опциона изворна синхронизација у облаку
Синхронизација је подразумевано искључена и укључује се посебно за сваки сеф на сваком уређају. iOS чува шифроване записе и сегменте фајлова у приватној CloudKit бази података корисника у iCloud-у. Android користи Google Drive приватни appDataFolder. Ниједан транспорт не захтева Revault налог нити отпрема податке изворне синхронизације у Revault веб-облак.
Облак прима шифроване метаподатке, сегменте фајлова и омотаче кључева, а не главни кључ сефа у обичном тексту, локалну тајну вредност уређаја нити тајну вредност за опоравак. Други уређај на истој платформи треба исти изворни налог за облак и кључ за опоравак сефа да би уписао сопствени локални шаблон. Apple и Google ауторизација контролишу приступ шифрованим записима, а не њихово дешифровање.
Искључивање синхронизације зауставља даље преносе за тај сеф са тренутног уређаја; постојеће шифроване копије у облаку остају. Синхронизоване промене и брисања могу се пропагирати, а истовремене измене могу захтевати преглед сукоба. iCloud и Google Drive су одвојена складишта, без аутоматског моста између платформи. За прелазак између iPhone-а и Android-а користите шифровани пренос са телефона.
Опоравак је други пут до истог кључа
Генерисане фразе за опоравак садрже 18 независно изабраних речи из уграђене листе од 2.048 речи, што обезбеђује 198 бита насумичности. Уместо тога можете изабрати прилагођену фразу са најмање шест различитих речи и 32–512 знакова; њена јачина зависи од вашег избора. Обе независно изводе кључ за омотавање помоћу PBKDF2-HMAC-SHA-256 и нове соли (salt), а затим омотавају исти главни кључ сефа помоћу 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.
Изворни транспорти дељења и контроле приступа
На iOS-у приватна CloudKit позивница само за читање ставља шифровани снимак у посебну хијерархију записа дељења, ван личне зоне синхронизације. Apple контролише приступ позивници; прималац и даље треба посебну тајну вредност за дешифровање. CloudKit позивнице не спроводе серверско бројање приступних сесија, фиксан рок важења нити тајмер уништења. Власник може зауставити будући CloudKit приступ.
Дељења између платформи отпремају шифроване делове на Revault сервис за дељење. Независна насумична 256-битна овлашћења за читање и управљање чувају се као SHA-256 хешеви. Линк на веб-сајту носи овлашћење за читање у свом фрагменту, а не тајну вредност за дешифровање. Његово отварање води директно у подељени сеф и тражи тајни код пошиљаоца; није потребан лични шаблон нити постојећи сеф. Лични сефови остају закључани.
Контролисана серверска дељења спроводе пошиљаочев максималан број приступних сесија, фиксан рок важења у оквиру 30 дана, опозив и опциону дозволу за извоз. Сесија се одобрава атомски и траје највише 15 минута, ограничена роковима дељења. Приступ се рачуна када се сесија одобри, чак и ако преузимање или дешифровање не успе. Прегледач проверава текући приступ и затвара се по истеку рока.
SHA-256 контролни збирови потврђују пренете делове, док аутентификовано шифровање потврђује њихов садржај. Када је извоз дозвољен, гледалац може да сачува шифровану .qvault копију која се отвара помоћу тајног кода за дељење. Онемогућавањем извоза уклања се та радња у апликацији, али се не може криптографски спречити прављење снимака екрана нити измењени клијент који задржава отворени текст. Брисање изворног фајла не опозива дељење које је креирано независно.
Необавезна активност сефа
Нативни евиденцијски записи су подразумевано искључени и подешавају се по сефу на сваком уређају. Последњих 500 локалних догађаја шифровано је главним кључем сефа и посебним аутентификованим контекстом. Не садрже кључеве, шаблоне, садржај фајлова ни податке других сефова, не синхронизују се и могу се обрисати или онемогућити. Нису доказ отпоран на измене. Неуспела откључавања се не додељују сефу.
Нова контролисана дељења направљена са укљученим евидентирањем задржавају до 100 временских ознака сесија приступа на услузи дељења. Може их преузети само могућност управљања; евиденција не садржи идентитет примаоца нити тајну за дешифровање. Онемогућавање локалног евидентирања утиче на будућа дељења. Постојеће евиденције дељења задржавају првобитно подешавање до опозива или истека и чишћења.
Необавезне шифроване фотографије провале
Власници могу омогућити Упозорења о провали одвојено за сваки сеф на сваком уређају. После три непоклапајућа шаблона, апликација у првом плану може снимити фотографију предњом камером, у зависности од дозволе, доступности камере и паузе од једног минута. Системски индикатори камере остају видљиви. Последњих десет упозорења чува се локално и никада се не додаје у Фотографије нити отпрема. Непоклапајући шаблон не одређује циљни сеф, па сваки сеф који је укључен добија посебно шифрован запис о покушају на уређају.
Посебан јавни кључ RSA-3072 омотава нови кључ AES-GCM од 256 бита за свако упозорење помоћу OAEP са SHA-256 и MGF1-SHA-256. То омогућава шифровање док је сеф закључан. Одговарајући приватни кључ је сам шифрован главним кључем тог сефа уз посебан аутентификовани контекст. Само откључавање тог сефа може дешифровати његове фотографије. Упозорења се појављују у његовом приказу евиденције независно од уобичајеног евидентирања активности и могу се обрисати у подешавањима Упозорења о провали. Нису доказ отпоран на измене.
Безбедан излаз уклања локални приступ
Један сеф на уређају може бити одређен за Безбедан излаз. Уносом његовог шаблона отвара се уобичајено, а уклањају се остали локални записи сефова, шифровани делови, материјал за откључавање уређаја и измене на чекању. Апликација чува трајну локалну листу дозвољених сефова како синхронизација не би тихо поново попунила изузете сефове. Шифровани преноси који су већ у току ипак могу да се заврше.
Копије у изворном облаку и копије на другим уређајима остају. За изричит опоравак потребан је кључ за опоравак изузетог сефа пре него што се упише нови локални шаблон. Сеф који постоји само ван мреже, без посебне резервне копије, може бити изгубљен. Ово подешавање важи за тренутну инсталацију, а не за сваки уређај који користи исти налог у облаку.
Безбедан излаз није гарантовано форензичко брисање нити скривање. Флеш меморија, кешеви оперативног система, резервне копије и ранији извози могу задржати трагове. Уклањањем података апликације или поновном инсталацијом може се уклонити граница локалне изолације; записи у облаку тада могу поново бити пронађени преко изворног налога у облаку. Те записе може откључати само тајни код за опоравак.
Шта остаје видљиво
Шифровање сакрива садржај, али не и све оперативне информације. Локални записи и провајдери облака могу да виде идентификаторе, везе између записа, број објеката, величине, ревизије, временске ознаке, шифроване омотаче кључева и заглавља токова. Идентификатори користе UUIDv7 и садрже информацију о времену креирања; они нису тајна. Apple или Google могу да повежу активност изворне синхронизације са налогом на платформи.
Revault-ов контролисани сервис за дељење може да види величине шифрованих пакета, контролне збирове делова, подешавања истека, број приступних сесија и опционе временске ознаке сесија, али не и посебно достављен тајни код за дешифровање. CloudKit дељење излаже податке о позивницама и учесницима компанији Apple. Мрежни и оперативни записи могу открити податке о вези. Revault не пружа анонимност нити отпорност на анализу саобраћаја.
HTTPS штити мрежне захтеве у преносу. Аутентификовано шифровање на уређају посебно штити садржај сефа који се чува локално и у облаку. Ни шифровање преноса ни шифрат не крију сваку чињеницу о томе када, где или колико података се преноси.
Аналитика коришћења
Подразумевано је омогућено. Mixpanel прима догађаје коришћења функција са насумичним аналитичким ИД-ом. Садржај сефа, имена, шаблони, кључеви и тајни кодови за дељење су изузети. Аналитику можете искључити у било ком тренутку за овај прегледач или уређај.
Где заштита престаје
Откључан сеф неизбежно излаже дешифроване информације сесији апликације. Злонамерни софтвер, компромитован оперативни систем или апликација, неко ко гледа екран или непоуздан прималац могу их преузети. Чување кључа само на уређају је додатна граница, а не гаранција против потпуно компромитованог уређаја. Предвидив шаблон није безбедан чим локална тајна буде компромитована.
Шифровање не спречава брисање у облаку, рансомвер, губитак тајног кода за опоравак, ускраћивање записа од стране провајдера нити враћање читавог раније важећег шифрованог стања. Чувајте независне шифроване резервне копије и проверите опоравак пре него што уклоните стари уређај. Опозив не може да повуче снимке екрана, извезене фајлове нити копије које је друга особа већ задржала.
Revault није прошао независну безбедносну проверу. Ово су описи имплементираног криптографског дизајна, а не сертификација нити гаранција против сваког упада.
Криптографске референце
NIST SP 800-38D — GCM аутентификовано шифровањеRFC 8018 — PBKDF2RFC 5869 — HKDFПостојећи сефови у прегледачу
Ова референца описује изворне апликације. Постојећи сефови у прегледачу имају посебан налог, складиштење на уређају и веб модел облака. Отпремања на S3 специфична за прегледач и линкови за дељење из прегледача нису изворна синхронизација у облаку. Налог у прегледачу вас не пријављује у мобилне апликације; користите шифровану резервну копију и њен кључ за опоравак да бисте пренели постојеће податке из прегледача у изворни сеф.