Raz oglądałem, jak przyjaciel traci dostęp do całego roku zdjęć. Nie dlatego, że chmura je „usunęła”. Nie dlatego, że haker się włamał. Zdarzyła się jedna mała rzecz: zapomnieli hasła, a potem zgubili kod zapasowy. I to wszystko. Dane wciąż istniały gdzieś, ale równie dobrze mogły być na Księżycu.
Ten moment utkwił mi w pamięci, ponieważ aplikacje do prywatnych danych są takie. Trudna część nie polega na tym, „gdzie to przechować?” Trudna część to: „kto trzyma klucze… i co się dzieje w złym dniu?”
Teraz zakładam, że budujesz prywatną aplikację z Walrus (WAL). Walrus świetnie nadaje się do przechowywania dużych bloków danych w sieci współdzielonej. Ale Walrus to nie jest magiczna skrytka. To bardziej jak mocny magazyn. Twoje dane mogą tam siedzieć bezpiecznie, ale klucz do drzwi wciąż jest twoim problemem. A jeśli pomylisz się w zarządzaniu kluczami, prywatność zostaje naruszona. A jeszcze gorzej, użytkownicy zostają zablokowani ze swojego własnego stuffu.
Więc zarządzanie kluczami brzmi nudno. Ale to jest część, która decyduje, czy twoja „prywatna aplikacja” pozostaje prywatna w rzeczywistości. Najbezpieczniejszy wzór to: najpierw szyfruj, potem przechowuj. Oznacza to, że blokujesz plik na urządzeniu użytkownika, zanim przesyłasz go do Walrus. „Szyfruj” po prostu oznacza, że mieszanie danych sprawia, że wyglądają jak szum dla każdego, kto nie ma klucza. Węzły Walrus przechowują szum. Tylko użytkownik (lub osoby, które użytkownik pozwala) mogą przywrócić go do prawdziwego pliku.
Ale potem pojawia się przerażające pytanie. Gdzie trzymasz klucz?
Jeśli trzymasz to na swoim serwerze, masz ogromny „znak proszę, zhakuj mnie”. Jeśli trzymasz to tylko na telefonie użytkownika, mogą go zgubić. Jeśli spróbujesz być „pomocny” przy resetowaniu hasła, możesz skończyć na budowie tylnej furtki. A tylne furtki mają tendencję do stawania się frontowymi drzwiami.
Dobrym modelem mentalnym jest to: Walrus przechowuje zablokowaną walizkę. Zarządzanie kluczami to sposób na zatrzymanie klucza przed wpadnięciem do oceanu, nie dając jednocześnie kopii obcym. Chcesz odzyskiwania bez zdrady. To cała gra.
Więc jak wygląda „dobre zarządzanie kluczami” dla prywatnej aplikacji danych używającej Walrus?
Jednym silnym ruchem jest użycie małego zestawu kluczy, w warstwach, z jasnymi rolami. Pomyśl o trzech kluczach jak o trzech osobach w rodzinie. Jeden to „klucz danych”. Zamyka i otwiera plik. Jest szybki i często używany. Ale nigdy nie przechowuj go na widoku. Potem masz „klucz owinięcia”. „Owinięcie” po prostu oznacza, że blokuje klucz danych. Jak włożenie małego klucza do sejfu, abyś nie nosił go luzem. A potem masz „plan odzyskiwania”, bo życie się zdarza.
Dla doświadczenia użytkownika same hasła są słabe. Ludzie je powtarzają. Wpisują je na złym Wi-Fi. Zapominają je. Lepszym wzorem jest pozwolić urządzeniu użytkownika pomóc. Telefony już mają bezpieczne obszary przechowywania. Nieidealne, ale lepsze niż plik tekstowy lub serwer internetowy. Możesz przechowywać klucz owinięcia w bezpiecznym przechowywaniu urządzenia, a klucz danych pozostaje owinięty przez większość czasu.
Ale nadal potrzebujesz udostępniania. Prywatne aplikacje nie zawsze są solo. Może chcesz udostępnić plik przyjacielowi, zespołowi lub nowemu urządzeniu. To jest miejsce, w którym wiele aplikacji panikuje i robi coś ryzykownego, jak wysyłanie kluczy e-mailem. Proszę, nie rób tego.
Bezpieczniejszym sposobem jest „klucz na osobę”. Szyfrujesz ten sam klucz danych dla każdego dozwolonego użytkownika, używając klucza publicznego tego użytkownika. „Klucz publiczny” brzmi skomplikowanie, ale jest prosty: to jak zamek, który możesz udostępnić każdemu. Ludzie mogą zablokować nim skrzynkę, ale tylko ty możesz ją odblokować swoim kluczem prywatnym. Więc twoja aplikacja może przechowywać „szyfrowane kopie klucza danych” dla każdego użytkownika obok obiektu Walrus. Blob pozostaje jednym blobem. Lista dostępu to tylko owinięcia kluczy.
Teraz o odzyskiwaniu. To jest miejsce, gdzie dobre aplikacje czują się ludzkie. Ponieważ ludzie gubią telefony. Ludzie łamią laptopy. Ludzie są oszukiwani. Jeśli twoja jedyna odpowiedź to „przykro mi”, twoja prywatna aplikacja staje się aplikacją stresową.
Jednym czystym pomysłem na odzyskiwanie jest „odzyskiwanie społeczne”. Nie media społecznościowe. Społecznie, jako zaufane osoby. Użytkownik wybiera, powiedzmy, 3 do 5 opiekunów. Każdy opiekun trzyma część sekretu odzyskiwania. Nazywa się to „dzieleniem się sekretami” i oznacza, że żaden pojedynczy opiekun nie może sam ukraść klucza. Ale grupa może pomóc ci go odbudować, jeśli stracisz dostęp. Jak rozdzielanie mapy skarbu na kawałki. Jeden kawałek jest bezużyteczny. Wystarczająca liczba kawałków przywraca drogę.
Inną opcją jest klucz sprzętowy. Małe urządzenie, które podłączasz lub dotykasz. Może bezpiecznie przechowywać klucz i podpisywać działania. Zyskiem jest silne bezpieczeństwo. Kosztem jest wygoda. Wiele użytkowników nie będzie go nosić. Musisz więc wybierać w zależności od swojej publiczności. Prywatna aplikacja medyczna może promować klucze sprzętowe. Zwykła aplikacja do zdjęć może używać odzyskiwania społecznościowego plus bezpiecznego przechowywania urządzenia.
Również, zarejestruj swoje wybory. Nie w przerażający sposób. W jasny sposób. Powiedz użytkownikom, prostymi słowami, co przechowujesz, czego nie przechowujesz i czego nie możesz zresetować. Ludzie akceptują surowe zasady, gdy je rozumieją. Nienawidzą niespodziewanych zasad.
Jeśli budujesz na Walrus, wielka zmiana myślenia jest taka: przechowywanie to nie prywatność. Obsługa kluczy to prywatność. Walrus może uczynić dane trwałymi i dostępnymi. Ale klucze decydują, kto może je przeczytać, jak długo i w jakich okolicznościach.
Myślę, że większość „prywatnych” aplikacji zawodzi, ponieważ traktują klucze jak detal. Najpierw budują magazyn, a potem przykręcają zamki. Powinno być odwrotnie. Zacznij od zamka, planu odzyskiwania, zasad udostępniania. Następnie przechowuj zablokowaną rzecz w Walrus.
Jeśli jesteś deweloperem, spróbuj tej szybkiej listy kontrolnej przed wysyłką: Czy serwer kiedykolwiek widzi surowe dane? Czy użytkownik może odzyskać dostęp bez trzymania kluczy głównych? Czy udostępnianie może być później usunięte? Czy zgubione urządzenie można zastąpić bez paniki? Jeśli na te pytania możesz odpowiedzieć „tak”, nie tylko używasz Walrus. Używasz go poprawnie.
Jeśli chcesz, powiedz mi, jakiego rodzaju prywatną aplikację budujesz z Walrus - zdjęcia, dokumenty, medycyna, pliki zespołowe, coś innego - i co przeraża cię bardziej: hakowanie czy zablokowanie.
@Walrus 🦭/acc #Walrus $WAL #DePIN

