Cryptile

Architektura bezpieczeństwa Cryptile, warstwa po warstwie

Zaktualizowano

Cryptile szyfruje każdy plik, miniaturę i indeks AES-256-GCM, kluczami tworzonymi na Twoim telefonie z rysowanego przez Ciebie wzoru. Nie ma konta ani serwera, a twórca aplikacji nigdy nie ma kluczy.

Pobierz Cryptile z App Store

Proste podsumowanie jest na stronie o bezpieczeństwie.

Co muszę wiedzieć?

  • Twój wzór jest źródłem każdego klucza. Bez niego nic czytelnego nie jest przechowywane.
  • Rozmiary i liczba sejfów są zamazane. Pliki są wyrównywane, a miejsca na wabiki ukrywają, ile istnieje sejfów.
  • Możesz to sprawdzić. Rdzeń szyfrowania jest opublikowany do audytu (source-available) wraz z modelem zagrożeń i wektorami testowymi: github.com/jasonbrelsford/cryptile-core.

Jak wzór staje się kluczem?

  1. Wzór jest zapisywany jako rozmiar siatki, a po nim dotknięte pola, w kolejności.
  2. Jest łączony z 32-bajtowym sekretem urządzenia, przechowywanym w pęku kluczy (Keychain) iPhone'a tylko dla tego urządzenia.
  3. PBKDF2-HMAC-SHA512 przetwarza go 600 000 razy. Każda próba zgadnięcia kosztuje tyle samo pracy.
  4. HKDF-SHA256 dzieli wynik na klucz wyszukiwania i klucz opakowujący.
  5. Klucz wyszukiwania wskazuje plik indeksu sejfu. Klucz opakowujący go otwiera.

W indeksie znajduje się losowy 256-bitowy klucz główny sejfu. HKDF wyprowadza z niego osobne podklucze dla plików, miniatur i indeksu. Żaden klucz nie służy dwóm celom.

Jak szyfrowane są pliki?

Małe elementy, takie jak miniatury i indeks, są zamykane w całości przez AES-256-GCM z losowym nonce.

Duże pliki używają układu STREAM w porcjach po 1 MB. Każda porcja ma własny nonce i zapisuje swoją pozycję oraz to, czy jest ostatnia. Wycięcie, przestawienie lub podmiana porcji sprawia, że odszyfrowanie się nie uda.

GCM uwierzytelnia też każdy nagłówek, więc zmieniony plik jest odrzucany, a nie wyświetlany.

Jak ukrywane są rozmiary i liczba sejfów?

Każdy mały blok danych i każda ostatnia porcja pliku są wyrównywane do wielokrotności 64 KiB. Ktoś, kto je skopiuje, widzi przybliżone rozmiary, nie dokładne.

Nie ma listy sejfów. Aplikacja trzyma co najmniej 8 miejsc o kształcie indeksu, prawdziwych i wabików, a wabiki losuje na nowo przy każdym zapisie. Wzór, który nie wskazuje żadnego miejsca, otwiera pusty sejf.

Jak działa odzyskiwanie?

Każdy sejf dostaje 9-wyrazową frazę odzyskiwania, czyli 96 bitów losowości. Otwiera ona osobną kopię odzyskiwania sejfu, zamkniętą kluczem utworzonym z frazy.

Kopia w iCloud odzwierciedla zaszyfrowane pliki w niezmienionej postaci. Domyślnie nie zawiera sekretu urządzenia, więc sama kopia nie wystarczy do zgadywania wzorów.

Co jest szyfrowane, a co nie?

Szyfrowane: zdjęcia, filmy, pliki, notatki, miniatury, nazwy, foldery, ulubione, rozpoznany tekst i lokalizacje zdjęć. Mały plik, który śledzi wabiki i liczniki planu darmowego, jest zamknięty kluczem urządzenia.

Nieszyfrowane przez Cryptile:

  • Ustawienia. Czas automatycznej blokady, kolejność sortowania i przełącznik kopii nie zawierają sekretów.
  • Udostępnione elementy czekające na dodanie. Do otwarcia sejfu chroni je ochrona plików iOS.
  • Łączny rozmiar kontenera i czasy zapisu. Sejf o rozmiarze 10 GB nie wygląda jak 10 MB.
  • Wszystko, co wyeksportujesz. Kopia zapisana w Zdjęciach lub Plikach jest poza sejfem.

Przed czym to chroni?

  • Przed kimś, kto kopiuje pliki aplikacji bez Twojego Keychain. Dostaje szyfrogram i nie może próbować wzorów.
  • Przed Apple lub wyciekiem w Apple. iCloud przechowuje szyfrogram i żadnych kluczy.
  • Przed manipulacją. Zmienione lub przestawione dane nie dadzą się odszyfrować.
  • Przed nami. Nie prowadzimy serwera i nie mamy kluczy, więc nie możemy zresetować dostępu.

Przed czym to nie chroni?

  • Przed krótkimi wzorami. Wzór jest słabszy niż hasło. Mając Twoje pliki i Twój Keychain, wzór z 6 pól na siatce 4×4 pada w kilka minut na GPU. Użyj co najmniej 8 pól.
  • Przed złośliwym oprogramowaniem na odblokowanym telefonie. Kod, który czyta pamięć, gdy sejf jest otwarty, jest poza zasięgiem każdej aplikacji.
  • Przed kimś, kto patrzy, jak rysujesz. Rysuj tam, gdzie nikt nie widzi Twojej ręki.
  • Przed utratą telefonu i frazy. Sejf przepada. Nie ma resetu.

Wzór paniki w Plus niszczy sekret urządzenia, więc żaden sejf na telefonie się nie otworzy, dopóki nie zostanie przywrócony.

Pobierz Cryptile z App Store