Koruma yüklemeden önce başlar
Dosya içerikleri, dosya adları, MIME türleri, küçük resimler, kasa adları ve klasör adları ve yapısı, yüklenmeden önce cihazınızda şifrelenir. Hizmet şifreli metni ve sarılmış anahtarları saklar. Yalnızca saklanan kayıtları ele geçiren davetsiz misafir, düz metin kasa anahtarını, cihaz sırrını veya kurtarma anahtarınızı ele geçiremez.
Bu, bir kasa oluşturduğunuzda veya kasanın kilidini açtığınızda tarayıcının, işletim sisteminin, teslim edilen uygulama kodunun ve rastgele sayı oluşturucunun güvenilir olduğunu varsayar. Atıl durumdaki şifreleme, kilidi açılmış bir kasayı cihazınızda çalışan kötü amaçlı kodlardan koruyamaz.
Her kasa için bağımsız anahtarlar
Her kasa, rastgele oluşturulmuş 256 bitlik bir AES ana anahtarıyla başlar. Anahtar, doğrudan hareketinizden elde edilmek yerine, tarayıcının kriptografik rastgele sayı üreteci tarafından oluşturulur. Ayrı kasa anahtarları, tek bir kasa anahtarının ifşa edilmesinin etkisini sınırlar.
Bir aygıt deseni, sıralı nokta dizisini rastgele 256 bitlik bir aygıt sırrıyla birleştirir. HMAC-SHA-256, yeni bir 128 bit tuz ve 600.000 yineleme ile PBKDF2, 256 bitlik bir sarma anahtarı türetir. AES-256-GCM daha sonra bu sarma anahtarının altındaki ana anahtarı şifreler. Hizmet, şifrelenmiş sarmalayıcıyı, tuzunu ve genel türetme parametrelerini alır. Cihazın sırrı bu tarayıcının yerel IndexedDB veritabanında kalır.
Desenlerde yalnızca 5 × 5 ızgara ve en az altı farklı nokta kullanılır. Önceki desen formatları desteklenmiyor. Mevcut kasaların yeni bir modeli kaydetmek için kurtarma anahtarlarına ihtiyacı vardır. Izgara boyutu, parolanın gücü açısından bir vaat değildir: öngörülebilir hareketlerin tahmin edilmesi hâlâ daha kolaydır. Cihaz sırrı, yalnızca sunucu kayıtlarına sahip olan kişilere karşı koruma sağlar ancak donanım destekli bir anahtar değildir. Hem yerel sırrı hem de sarmalayıcıyı kopyalayan biri çevrimdışı kalıp tahminleri deneyebilir.
Geçiş anahtarları, genel anahtar sorgulama yanıtlarını kullanarak hesabınızın kimliğini doğrular. Hesap kimlik doğrulaması bir kasa anahtarı türetmez veya dosyalarınızın şifresini çözmez. Geçerli bir hesap oturumu ve başarılı bir kasa kilidinin açılması, normal başvuru akışındaki ayrı gereksinimlerdir.
| Amaç | Yapı |
|---|---|
| Kasa ana anahtarı | Rastgele 256 bit AES anahtarı |
| Anahtar sarma | PBKDF2-HMAC-SHA-256 · 600.000 yineleme · 128 bit tuz → AES-256-GCM |
| Meta veriler ve küçük resimler | AES-256-GCM · rastgele 96 bitlik tek seferlik · 128 bitlik kimlik doğrulama etiketi |
| Dosya anahtarı türetme | HKDF-SHA-256 · dosya başına rastgele 256 bit tuz · 256 bit AES çıkışı |
| Kurtarma sırrı | Altı grup onaltılık karakter olarak görüntülenen 192 rastgele bit |
Gizlilik ve kurcalama tespiti
Kasa meta verileri, dosya meta verileri, küçük resimler ve sarılmış anahtarlar, 128 bit kimlik doğrulama etiketleriyle AES-256-GCM kullanır. Her bağımsız şifreleme, yeni, rastgele 96 bitlik bir nonce kullanır. Şifre çözme, düz metni döndürmeden önce etiketi doğrular; değiştirilmiş şifreli metin veya yanlış anahtar, kimlik doğrulamanın başarısız olmasına neden olur.
Kimliği doğrulanmış ek veriler, her şifrelenmiş nesneyi format sürümüne, kasa tanımlayıcısına, nesne tanımlayıcısına ve amacına bağlar. Örneğin, bir küçük resim ve dosya meta veri kaydı farklı bağlamlar kullanır. Şifrelenmiş bir nesneyi farklı bir kasaya taşımak veya onu başka bir nesneyle değiştirmek, kimliği doğrulanmış bağlamı değiştirir ve doğrulama başarısız olur.
Kimliği doğrulanmış bağlam, tanımlayıcıları gizlemez ve tazeliğini kanıtlamaz. Geçerli bir eski kaydın hala geçerli bir etiketi olabilir. Uygulama revizyon kontrolleri sıradan eşzamanlı güncellemeleri tespit eder, ancak bu, eski bir durumu tamamen yeniden yürüten kötü amaçlı bir hizmete karşı kriptografik bir savunma değildir.
Büyük dosyalar kimliği doğrulanmış segmentler kullanır
Dosya içerikleri, Tink tarafından açıklanan ve tarayıcı şifreleme temelleri kullanılarak uygulanan AES-256-GCM-HKDF-SHA-256 akış yapısını kullanır. Her yeni dosya akışında uzunluk işaretçisini, rastgele 32 baytlık bir tuzu ve rastgele 7 baytlık bir nonce önekini içeren 40 baytlık bir başlık bulunur.
HKDF, kasa ana anahtarından ayrı bir dosya şifreleme anahtarı türetir. Bağlamı kasa ve dosya tanımlayıcılarını, düz metin bayt uzunluğunu ve yapılandırılmış segment boyutunu içerir. Her bölümün 12 baytlık nonce'ı, rastgele öneki, dört baytlık bir bölüm sayacını ve bir son bölüm işaretini birleştirir. Segmentler 128 bit GCM etiketleri taşır.
Uygulama, dosyaları yaklaşık 5 MiB'lik sınırlı segmentlerde işler. Segment konumları, son segment bayrağı ve beklenen bayt uzunlukları, değiştirilmiş, değiştirilmiş veya kesilmiş segmentlerin doğrulamada başarısız olmasına neden olur. İndirmeler, yayınlamadan önce her segmentin kimliğini doğrular; Akışın sonlarında meydana gelen bir hata, indirmenin eksik kalmasına neden olabilir, bu nedenle başarılı bir şekilde tamamlanması önemlidir. Yükleme yeniden denemeleri, yeni içeriği aynı segmentle bir kez şifrelemek yerine zaten şifrelenmiş baytları yeniden kullanır.
İnşaat şu şekilde devam ediyor: Tink AES-GCM-HKDF akış spesifikasyonu. Revault'nun uygulanması ve segment konfigürasyonu Tink tarafından bağımsız olarak denetlenmemiş veya onaylanmamıştır.
Kurtarma aynı anahtara giden ikinci yoldur
24 rastgele bayttan, 192 bitlik rastgele giriş sağlayan bir kurtarma sırrı oluşturulur. PBKDF2-HMAC-SHA-256 ve kendi tuzunu kullanarak bağımsız olarak bir sarma anahtarı türetir ve aynı kasa ana anahtarını AES-256-GCM ile şifreler. Kurtarma sırrını ve şifrelenmiş kasanın bir kopyasını alan herkes bu kasanın şifresini çözebilir.
Kurtarma sırrı kurulum sırasında görüntülenir ve hizmet tarafından düz metin olarak saklanmaz. Şifrelenmiş dosyalarınızdan ayrı tutun. Tarayıcı verilerinin temizlenmesi cihazın sırrını kaldırır; Erişimin kurtarılması, hesabınızın şifrelenmiş bulut kopyasını ve kurtarma anahtarını veya dışa aktarılmış şifrelenmiş bir yedeği ve kurtarma anahtarını gerektirir. Sağlayıcı tarafından tutulan ana şifre çözme anahtarı yoktur.
Kurtarma kitinde bir sır ve anahtar sarmalayıcı bulunur, ancak dosya içeriği yoktur. Şifrelenmiş bir yedekleme, tarayıcının cihaz sırrı olmadan, kimliği doğrulanmış bir envanter ve şifrelenmiş dosya bölümleri içerir. İçe aktarma, şifrelenmiş verileri doğrular ve yeni tanımlayıcılar ve anahtarlarla yeni bir kasa oluşturur.
Bir desenin değiştirilmesi bu cihazın ambalajının yerini alır. Kasa ana anahtarını döndürmez, başka bir cihazı iptal etmez, eski yedeklemeleri geçersiz kılmaz veya mevcut bir kurtarma sırrını değiştirmez. Bir kasa anahtarının veya kurtarma sırrının güvenliği ihlal edilirse verileri yeni anahtarlarla yeni bir kasaya taşıyın.
Yerel paylaşımlar bağımsız şifreleme kullanır
Mobil paylaşım varsayılan olarak seçili dosya sürümlerinin anahtarlarını yeni bir paylaşım anahtarıyla sarar ve şifreli dosya baytlarını yeniden kullanır. İsteğe bağlı ek izolasyon dosyaları yeniden şifreler. Kaynak kasanın anahtarları gizli kalır. Aynı şifreli metin paylaşımları ilişkilendirebilir; hiçbir mod alıcının kaydettiği kopyayı geri alamaz.
iOS, bu şifreli metni özel, salt okunur bir davetle ayrı bir CloudKit kayıt hiyerarşisine yerleştirebilir. Kasanın senkronizasyon bölgesini paylaşmaz. Platformlar arası yerel paylaşımlar, SHA-256 sağlama toplamlarına sahip sınırlı sunucu parçalarını kullanır. Bağımsız rastgele 256 bit okuma ve yönetim yetenekleri, sunucuda karma olarak depolanır. Şifre çözme sırrı ayrı olarak iletilir ve asla yüklenmez. Kontrollü paylaşımların geçerliliği, gönderenin seçtiği tarihte 30 gün içinde sona erer. Hizmet, erişim oturumlarını atomik olarak sayar ve seçilen maksimum değerleri, geçerlilik süresini ve iptali uygular. Bir indirme oturumu en fazla 15 dakika sürer ve hiçbir zaman paylaşımın süresi sona ermez.
Alıcılar her şifrelenmiş bölümün kimliğini doğrular ve gönderenin ayrı sırrını içeren yalıtılmış bir paylaşılan kasayı açar. Hiçbir hesap, kişisel kasa veya kalıp gerekmez. Kişisel kasalar kilitli kalır. Dışa aktarmaya izin verildiğinde, alıcılar bu paylaşım sırrıyla açılan şifreli bir .qvault kopyasını kaydedebilir. Aksi takdirde ihracat kontrolleri yoktur. Geçici oturum devam eden erişimi doğrular. Bunlar uygulama kontrolleridir: ekran görüntüleri, değiştirilmiş istemciler ve saklanan kopyalar kriptografik olarak engellenemez. Paylaşımlar, devam eden kaynak güncellemeleri olmayan anlık görüntülerdir. Kısıtlanmamış CloudKit davetiyeler, erişim sayımlarını veya otomatik süre sonunu zorunlu kılmaz; erişim, sahibi paylaşımı durdurana kadar sürer. Orijinalin kaldırılması, onun ayrı paylaşımını iptal etmez ve hiçbir iptal işlemi, önceden saklanan bir kopyayı geri çağıramaz.
İsteğe bağlı kasa etkinliği
Yerel denetim günlükleri varsayılan olarak kapalıdır ve her cihazdaki kasa başına yapılandırılır. En son 500 yerel olay, kasanın ana anahtarı ve kimliği doğrulanmış özel bir bağlamla şifrelenir. Anahtarları, kalıpları, dosya içeriklerini ve diğer kasaların verilerini hariç tutarlar, senkronize edilmezler ve temizlenebilir veya devre dışı bırakılabilirler. Bunlar kurcalamaya dayanıklı deliller değildir. Başarısız kilit açma işlemleri bir kasaya atanmaz.
Günlük kaydı etkinleştirilmiş olarak oluşturulan yeni kontrollü paylaşımlar, paylaşım hizmetinde 100'e kadar erişim oturumu zaman damgasını korur. Yalnızca yönetim yeteneği bunları geri alabilir; günlük hiçbir alıcı kimliği veya şifre çözme sırrı içermiyor. Yerel günlük kaydının devre dışı bırakılması gelecekteki paylaşımları etkiler. Mevcut paylaşım günlükleri iptal edilene veya sona erene ve temizlenene kadar orijinal ayarlarını korur.
İsteğe bağlı şifrelenmiş zorla giriş fotoğrafları
Sahipler, Hırsızlık Uyarılarını her cihazdaki her kasa için ayrı ayrı etkinleştirebilir. Üç benzersiz desenden sonra, ön plan uygulaması izne, kameranın kullanılabilirliğine ve bir dakikalık bekleme süresine bağlı olarak bir ön kamera fotoğrafı çekebilir. Sistem kamerası göstergeleri görünür durumda kalır. En son on uyarı yerel olarak depolanır ve hiçbir zaman Fotoğraflar'a eklenmez veya yüklenmez. Eşleşmeyen bir model, hedef kasayı tanımlamaz; bu nedenle, etkinleştirilen her kasa, ayrı olarak şifrelenmiş bir cihaz denemesi kaydı alır.
Özel bir RSA-3072 genel anahtarı, SHA-256 ve MGF1-SHA-256 ile OAEP kullanan her uyarı için yeni bir 256 bitlik AES-GCM anahtarını sarar. Bu, kasa kilitliyken şifrelemeye izin verir. İlgili özel anahtarın kendisi, bu kasanın ana anahtarı altında, kimliği doğrulanmış özel bir bağlamla şifrelenir. Yalnızca o kasanın kilidini açmak, içindeki fotoğrafların şifresini çözebilir. Uyarılar, denetim görünümünde sıradan etkinlik günlüğünden bağımsız olarak görünür ve İzinsiz Giriş Uyarıları ayarlarından temizlenebilir. Bunlar kurcalamaya dayanıklı deliller değildir.
Kendi paketinize şifrelenmiş yüklemeler
Bir kasanın Depolama ayarları bu tarayıcıyı doğrudan kullanıcı tarafından belirlenen S3 uyumlu bir HTTPS uç noktasına bağlayabilir. Seçilen cihaz dosyaları aynı dosya yapısı kullanılarak yerel olarak şifrelenir. Her biri, kimliği doğrulanmış şifrelenmiş bir envanter ve sarılmış kasa anahtarları içeren ayrı, taşınabilir bir .qvault nesnesi haline gelir. Rastgele nesne adları, orijinal dosya adlarının açığa çıkmasını önler. Geri yükleme, indirilen nesneyi ve kasa kurtarma anahtarını gerektirir.
Uç nokta yapılandırması ve kimlik bilgileri, kimlik doğrulaması yapılmış özel bir bağlamla kasa ana anahtarı altında şifrelenir ve bu cihazın IndexedDB'sunda saklanır. Revault'nun API'sine senkronize edilmez veya gönderilmezler. İstek imzalama, AWS Signature Sürüm 4, HMAC-SHA-256 ve her sınırlı istek gövdesinin karmasını kullanır. Sekiz MiB çok parçalı parça, halihazırda şifrelenmiş baytları doğrudan depolama sağlayıcısına taşır. Paket erişimi, söz konusu sağlayıcının izinlerine ve CORS politikasına tabi olmaya devam eder.
Sağlayıcı, erişim anahtarı tanımlayıcılarını, nesne yollarını, bayt boyutlarını, yükleme sürelerini ve bağlantı bilgilerini görebilir. Paketi gizli tutun ve kimlik bilgilerini gerekli işlemlere göre ayarlayın. Yüklenen nesneler Revault bulut senkronizasyonu ve paylaşımından bağımsızdır. Tamamlanmamış yüklemeleri iptal etmeye yönelik kilitleme veya iptal girişimleri; sekme kapanması veya bağlantı kaybı, artık parçaların kalmasına neden olabilir; bu nedenle, eksik bir yükleme yaşam döngüsü kuralı yapılandırın. Safe Exit diğer kasaların yerel depolama kimlik bilgilerini kaldırır ancak nesneleri paketlerinden silmez.
Safe Exit yerel erişimi kaldırır
Bu tarayıcıda bir kasayı Safe Exit kasası olarak atayabilirsiniz. Bu kasanın düzenine girildiğinde, tetikleme onayı veya tamamlama bildirimi olmadan kasa normal şekilde açılır. Diğer kasaların yerel anlık görüntüleri, şifrelenmiş parçaları, cihaz sırları ve sıraya alınmış değişiklikler kaldırılır. Senkronize edilmemiş veriler kaybolabilir.
Kalıcı bir yerel sınır, bu kasaların bu tarayıcıda senkronizasyon yoluyla otomatik olarak listelenmesini veya geri yüklenmesini engeller. Şifrelenmiş bulut kopyaları ve diğer cihazlardaki kopyaları değişmeden kalır. Kurtarma, her seferinde bir kasa olmak üzere açık bir işlemdir ve yeni bir cihaz modelinin kaydedilebilmesi için bu kasanın kurtarma anahtarının kullanılmasını gerektirir.
Bu, yerel erişimin kaldırılmasıdır; fiziksel silme veya adli gizleme garantisi verilmez. Tarayıcı profilleri, dosya sistemi anlık görüntüleri, önceki indirmeler, ekran görüntüleri, hizmet kayıtları ve başka bir cihaz kanıtları tutabilir. Bu tarayıcının yerel verilerinin temizlenmesi aynı zamanda yerel izolasyon sınırlarını da temizler; yeni bir kurulum, kimlik doğrulamanın ardından hesabın bulut kasalarını tekrar listeleyebilir.
Görünürde kalanlar
Şifreleme, depolamayla ilgili her gerçeği değil, içeriği korur. Hizmet, hesap ilişkilerini, rastgele nesne tanımlayıcılarını, nesne sayılarını, bayt boyutlarını, revizyonları, zaman damgalarını, şifrelenmiş sarmalayıcıları, akış başlıklarını ve istek etkinliğini gözlemleyebilir. Ağ ve operasyonel kayıtlar bağlantı bilgilerini ortaya çıkarabilir. Bu bir anonimlik sistemi değildir ve trafik analizine dayanıklılık sağlamaz.
Aktarım şifrelemesi, uygulama HTTPS üzerinden sunulduğunda aktarım sırasındaki istekleri korur. Bu, depolanan dosya içeriğini hizmette şifreli halde tutan istemci tarafı şifrelemeden farklıdır.
Korumanın bittiği yer
Özel tarama genellikle özel oturum sona erdiğinde yerel depolamayı siler. Kalıcı depolama isteği, gizli oturumu kalıcı yapmaz. Senkronize edilmiş bulut kopyaları kalır ancak yerel modeller, senkronize edilmemiş değişiklikler, önbelleğe alınmış dosyalar ve Safe Exit ayarları kaybolabilir. Yeni bir özel oturumun, yeni bir kalıba kaydolmak için hesap erişimine ve kurtarma anahtarınıza ihtiyacı var.
Uygulama, bellek içi kasa anahtarı referansını bırakır ve kilitlendiğinde özel önizleme URL'lerini iptal eder. Gizlendiğinde veya beş dakika işlem yapılmadığında otomatik olarak kilitlenir. Yerel uygulamalar ayrıca arka planda kilitlendiğinde kilitlenir, geçici önizlemeleri kaldırır ve işlemler bittiğinde sahip olunan anahtar arabelleklerini siler. Tarayıcı, Swift ve JVM bellek yönetimi, her anahtar kopyanın veya kodu çözülmüş ortam arabelleğinin anında silinmesini garanti edemez.
Kötü amaçlı yazılım, güvenli olmayan bir uzantı, güvenliği ihlal edilmiş uygulama kodu veya kilidi açılmış bir ekranı görüntüleyen biri, düz metni ve sırları ele geçirebilir. Şifreleme, hesabın hizmet reddini, silinen bulut nesnelerini, fidye yazılımını, kurtarma sırrının kaybını veya hizmetin verileri alıkoymasını önleyemez. Ayrı bir şifreli yedekleme tutun ve cihazın kendisini koruyun.
Revault bağımsız bir güvenlik denetiminden geçmemiştir. Bunlar, uygulanan şifreleme tasarımının açıklamalarıdır; her türlü izinsiz girişe karşı bir sertifika veya garanti değildir.