Część 2: Geneza Ledger Recover – Bezpieczna dystrybucja akcji | Księga główna

Część 2: Geneza Ledger Recover – Bezpieczna dystrybucja akcji | Księga główna

Węzeł źródłowy: 2785813

Witamy ponownie w drugiej części naszej serii blogów na temat Odzyskiwanie księgi głównejgeneza! Naszym celem jest zbadanie wielu przeszkód technicznych napotykanych podczas tworzenia usługi odzyskiwania nasion oraz sposobu, w jaki Ledger Recover rozwiązuje je za pomocą bezpiecznego projektu i infrastruktury.

W poprzednią część, sprawdziliśmy, jak wykonać kopię zapasową tajnego wyrażenia odzyskiwania poprzez jego podzielenie i jak Ledger Recover robi to za Ciebie za pomocą Pedersen Weryfikowalne udostępnianie sekretów.

Teraz, gdy masz już trzy udziały, następne pytanie brzmi: w jaki sposób możesz bezpiecznie dystrybuować je do dostawców kopii zapasowych? Rzeczywiście, jeśli złośliwa strona przechwyci wszystkie udziały podczas ich przesyłania, w pierwszej kolejności mija się to z celem dzielenia nasion. W cyberbezpieczeństwie nazywa się to a Atak Man-in-the-Middle, w którym osoba atakująca stoi pomiędzy Tobą a odbiorcą i manipuluje komunikacją, próbując odkryć sekrety.

Podczas korzystania z Ledger Recover przesyłanie nasion odbywa się poprzez bezpieczny mechanizm dystrybucji. Opiera się na kilku narzędziach kryptograficznych i koncepcjach matematycznych, które dokładnie wyjaśnimy.

Zaczniemy od bardziej szczegółowego opisu problemu. Następnie przedstawimy kilka narzędzi kryptograficznych i koncepcji matematycznych, które Ledger Recover wykorzystuje do bezpiecznej dystrybucji zasobów początkowych do dostawców kopii zapasowych.

Kurier w środku: przykład z prawdziwego świata

Najbardziej oczywistym sposobem ochrony przed pośrednikiem o złych intencjach jest nieposiadanie żadnego pośrednika. Możesz sam udać się do domów znajomych lub zebrać ich w tym samym, zamkniętym miejscu, aby dostarczyć akcje. Ale staje się to znacznie trudniejsze, jeśli nie jesteś kolokowany i chcesz wysłać akcje znajomemu na odległość.

Zakładając, że sieć, za pośrednictwem której się komunikujemy (np. poczta) jest z natury niegodna zaufania, jak możemy zagwarantować, że osoby podsłuchujące nigdy nie zobaczą naszych tajnych udziałów?

Czas przedstawić Alicję i Boba oraz niesławną Ewę, trzy znane osobistości z dziedziny kryptografii. Alice ma sekret, którym chce podzielić się z Bobem, i nie ma innego wyjścia, jak tylko wysłać go za pośrednictwem Eve, ich niegodnego zaufania kuriera. W słowach kryptograficznych Alicja i Bob chcą ustanowić między sobą bezpieczny kanał komunikacji, aby bezpiecznie wymieniać się sekretami.

Oto, co Alicja i Bob mogliby zrobić:

  • Alicja umieszcza swój sekret w pudełku, zamyka go na osobistą kłódkę, a następnie wysyła go Bobowi.
  • Dodaje, gdy Bob otrzymuje pudełko własną kłódkę i odsyła ją.
  • Alicja może teraz użyć swojego klucza, aby wyjąć kłódkę ze skrzynki przed wysłaniem jej po raz ostatni.
  • Aby zakończyć proces, Bob po prostu używa swojego klucza, aby zdjąć kłódkę i odzyskać – w końcu – sekret od Alicji.

Przez całą wymianę, ilekroć Eve miała pudełko w rękach, zawsze było ono chronione albo zamkiem Alicji, albo Boba, albo jednym i drugim.

Chociaż jest to doskonały początek, w tym scenariuszu pozostaje kilka problemów do rozwiązania:

  • Wzajemne uwierzytelnianie: Alicja i Bob potrzebują niezawodnych sposobów sprawdzenia, czy każda kłódka rzeczywiście pochodzi od drugiej strony. W przeciwnym razie Ewa mogłaby zamienić je na własne pudełko i kłódkę i oszukać Alicję lub Boba, aby uwierzyli, że to ona jest drugą stroną.
  • Przekaż tajemnicę: Jeśli Ewa ukradła zamknięte pudełko, a później ukradła klucz Alicji lub Bobowi, mogłaby odzyskać pierwotny sekret. Zamiast tego chcemy mieć pewność, że przyszłe wycieki kluczy długoterminowych nie będą stanowić zagrożenia dla starszych skradzionych pakietów.
  • Ochrona prywatności: W tym scenariuszu adresy Alicji i Boba zostają ujawnione kurierowi. W cyfrowym odpowiedniku tego procesu chcemy protokołu, który nie ujawnia niczego na temat odbiorców.
Zabezpieczanie wiadomości cyfrowych

W bezpieczeństwie cyfrowym a bezpieczny kanał to sposób przesyłania danych między dwoma urządzeniami uwierzytelniony stronom takich danych poufność i integralność są gwarantowane. Gdy korzystasz z bezpiecznego kanału, osoby atakujące nie mogą podsłuchiwać ani manipulować Twoją komunikacją.

Protokół Ledger Recover zarówno do tworzenia kopii zapasowych, jak i przywracania opiera się na Protokół bezpiecznego kanałulub SCP. Wykorzystuje wiele narzędzi współczesnego zestawu narzędzi kryptograficznych, takich jak szyfrowanie symetryczne i asymetryczne, certyfikaty i podpisy cyfrowe.
W następnych sekcjach szybko zapoznasz się ze wszystkimi tymi koncepcjami, co pozwoli ci zrozumieć cały schemat bezpieczeństwa zastosowany w Ledger Recover.

Kryptografia symetryczna: potężne, ale ograniczone narzędzie

Aby zagwarantować poufność danych wymienianych między dwiema stronami, dane są zwykle szyfrowane i odszyfrowywane tym samym tajnym kluczem.
Proces ten określa się jako kryptografia symetryczna, czyli badanie prymitywów, które wymagają jednego tajnego klucza w celu zagwarantowania jednej lub więcej właściwości bezpiecznego kanału.

Choć kryptografia symetryczna jest potężnym narzędziem do ochrony komunikacji, ma pewne oczywiste ograniczenia: Załóżmy, że Alicja chce wymienić kilka zaszyfrowanych wiadomości z Bobem. Najpierw wybiera tajny klucz, a następnie udostępnia go Bobowi, zanim zacznie wysyłać wiadomości.
Oczywiście teraz pojawia się problem: w jaki sposób Alicja bezpiecznie udostępnia Bobowi tajny klucz? Jeśli ktoś zdobędzie klucz, komunikacja Alicji i Boba nie będzie już poufna.
Alice mogłaby spotkać się z Bobem osobiście i dać mu klucz, ale w tym przypadku dlaczego nie przeprowadzić dyskusji z dala od wścibskich uszu?

W przypadku komunikacji cyfrowej potrzebujemy bezpiecznej metody udostępniania klucza symetrycznego i inicjowania chronionej wymiany danych. Czas przedstawić dzieło dwóch tytanów współczesnej kryptografii, Whitfield Diffie i Martina Hellmana.

Kryptografia asymetryczna: ukrywanie części prywatnych
Kluczowa umowa Diffiego-Hellmana

Dzięki kryptografii klucza publicznego Diffie i Hellman opracowali nowatorskie podejście do zabezpieczania komunikacji. Zdefiniowali protokół z dwoma odrębnymi kluczami do szyfrowania i deszyfrowania. Te dwa klucze są powszechnie nazywane klucze publiczne i prywatne, tworząc parę, która może służyć do szyfrowania/odszyfrowywania i podpisywania/weryfikacji danych.

Klucze publiczne i prywatne
Kryptografia klucza publicznego stanowi podstawę większości naszych zabezpieczeń cyfrowych. Służy do ochrony Cię w Internecie, a także służy do potwierdzania własności monet i tokenów we wszystkich publicznych blockchainach.

Więcej informacji na ten temat znajdziesz w Ledger Academy!

Naprawdę przekonujące dla nas jest to, jak Diffie i Hellman zasugerowali użycie kryptografii klucza publicznego do dystrybucji kluczy symetrycznych. Ich metoda, tzw Wymiana kluczy Diffiego-Hellmana, składa się z wymiany zdań między dwiema stronami, aby ostatecznie uzgodnić wspólny sekret. Jeśli zostanie to wykonane prawidłowo, podsłuchujący nie będą w stanie obliczyć tego samego wspólnego sekretu na podstawie podsłuchanych informacji.

Generowanie wspólnego sekretu k

TL; DR polega na tym, że na powyższym diagramie Ewa matematycznie nie jest w stanie rozgryźć tajemnicy k, mimo że ma dostęp do całej komunikacji Alicji i Boba. Aby zrozumieć, dlaczego ten wspólny sekret jest bezpieczny przed podsłuchiwaczem, musimy zagłębić się w teorię grup. 

Bezpieczeństwo wymiany kluczy Diffiego-Hellmana opiera się na złożoności problemu logarytmu dyskretnego w grupie cyklicznej. Grupa cykliczna to grupa generowana przez pojedynczy element.
Krótko mówiąc, Alicja i Bob wykonują następujące kroki, aby uzgodnić wspólny sekret k:

  1. Alicja i Bob zgadzają się co do grupy cyklicznej G porządku n generowane przez element g
  2. Alicja losuje liczbę 0 < a < n i wysyła pa = gła ∈ G do Boba
  3. Bob losuje liczbę 0 < b < n i wysyła pb = głb ∈ G do Alicji
  4. Alicja oblicza wspólny sekret k =(strb )a ∈ G
  5. Bob oblicza wspólny sekret k =(stra )b ∈ G

Bezpieczeństwo protokołu zależy od trudności znalezienia k = głab dany g, ga, gb. To się nazywa Obliczenia Założenie Diffiego-Hellmana (CDH). Hipoteza, że ​​CDH jest trudna do rozwiązania, zakłada, że problem logarytmu dyskretnego jest trudne do rozwiązania.

W tym schemacie, choć wspólny sekret jest chroniony przed podsłuchem, nie ma gwarancji co do pochodzenia wymienianych danych. Aby interakcja była bezpieczna, Alicja i Bob muszą w jakiś sposób udowodnić sobie nawzajem swoją tożsamość.

Wzajemne uwierzytelnianie i podpis cyfrowy

Podpis odręczny jest zwykle używany do potwierdzenia i zaakceptowania treści dokumentu. Podpis może złożyć tylko osoba podpisująca, ale każdy, kto „wie”, jak podpis wygląda, może sprawdzić, czy dokument podpisała właściwa osoba.

Mając podobne właściwości, podpis cyfrowy zapewnia dodatkowe silne gwarancje poprzez wykorzystanie kryptografii asymetrycznej:

  • Autentyczność: każdy może sprawdzić, czy wiadomość została podpisana kluczem prywatnym odpowiadającym określonemu kluczowi publicznemu.
  • Niezaprzeczalność: osoba podpisująca nie może zaprzeczyć, że podpisała i wysłała wiadomość.
  • Integrość: wiadomość nie została zmieniona podczas transmisji.

Teraz, o ile znamy i ufamy kluczowi publicznemu naszego korespondenta możemy sprawdzić autentyczność wszystkich wiadomości weryfikując ich podpis cyfrowy.
Jednak w większości rzeczywistych przypadków albo nie znamy zbyt dobrze naszego korespondenta, albo może on być zmuszony do regularnej zmiany pary kluczy prywatny/publiczny ze względów bezpieczeństwa. Wymaga to dodatkowej warstwy weryfikacji i zaufania w postaci certyfikaty, które zawierają opis podmiotu i jego klucz publiczny.

Każdy certyfikat jest podpisany nadrzędnym kluczem publicznym. Posiadając główny urząd certyfikacji (lub główny urząd certyfikacji), któremu zawsze ufamy, możemy stworzyć łańcuch zaufania za pomocą kolejnych podpisów cyfrowych.

Krzywe eliptyczne: kryptografia klucza publicznego wyższego poziomu

Kryptografia krzywych eliptycznych (ECC) to podobszar kryptografii klucza publicznego, który polega na wykorzystaniu krzywych eliptycznych do zastosowań kryptograficznych, np. do szyfrowania lub schematów podpisów. 
W oparciu o obecnie rozumianą matematykę, ECC zapewnia znacznie bezpieczniejszą podstawę niż wcześniejsze systemy kryptografii klucza publicznego, takie jak RSA.

Przy tym samym poziomie bezpieczeństwa, ECC wymaga mniejszych długości kluczy w porównaniu do innych asymetrycznych kryptosystemów, co czyni go dobrym wyborem dla systemów wbudowanych o ograniczonych zasobach.
Jeśli chcesz wiedzieć więcej, ten artykuł może pomóc lepiej zrozumieć krzywe eliptyczne.

Porządek krzywej eliptycznej
Kolejność elementu g grupy jest ważnym parametrem wymiany kluczy Diffiego-Hellmana. Kiedy grupa jest krzywą eliptyczną, tym elementem jest punkt, a jego kolejność to liczba razy, jaką można dodać do siebie, zanim zapętli się jego wartość początkowa.
Zauważ, że to dodanie nie ma nic wspólnego ze zwykłą sumą liczb rzeczywistych, ale ma podobne właściwości addytywności.

Weźmy krzywą eliptyczną E: tak2 =x3 +2x +3 nad polem 𝔽97 jako przykład. Jako funkcja dyskretna jest ona reprezentowana przez punkty na poniższym rysunku. Skupimy się na punkcie P =(3, 6) i wszystkie jego wielokrotności.

Widzimy to po 5.P, wróciliśmy na początek i osiągnęliśmy te same punkty, co wcześniej. Nieważne, jaka jest wartość skalara P zostanie pomnożona przez, zawsze trafimy w jeden z naszych 5 początkowych punktów.
Zatem kolejność P wynosi 5, a wygenerowana przez nią podgrupa zawiera dokładnie 5 punktów. Jednak w zastosowaniach kryptograficznych kolejność jest znacznie większa niż 5, co zwiększa losowość.

Połącz to wszystko: ECDH z uwierzytelnianiem

Mamy teraz wszystkie narzędzia potrzebne do stworzenia świetnego protokołu wymiany kluczy:  Krzywa eliptyczna Diffiego-Hellmana (ECDH).

ECDH to ustandaryzowany schemat kryptograficzny, który implementuje opisaną powyżej wymianę kluczy Diffiego-Hellmana, wykorzystując kryptografię krzywej eliptycznej do generowania par kluczy i wspólnego sekretu.

Uwierzytelniona wymiana kluczy ECDH

Rozpoczyna się od wybrania krzywej eliptycznej i jej punktu generującego. Obie strony wymieniają następnie zaufane certyfikaty, co pozwala im zweryfikować autentyczność odpowiednich kluczy publicznych. Po uwierzytelnieniu mogą wygenerować wspólny sekret k, który jest obliczany jako:

k = dA . reB . sol
dA: Klucz prywatny Alicji
dB: Klucz prywatny Boba
G: Punkt WE

Aby osiągnąć tajemnica przekazu właściwość, para kluczy Alicji i Boba powinna być efemeryczna, tzn. generowana na miejscu i wykorzystywana do jednorazowego wykonania protokołu. Mówimy o efemerycznej krzywej eliptycznej Diffiego-Hellmana (ECDHE). W tym scenariuszu klucze tymczasowe są podpisane zarówno przez klucze statyczne na urządzeniu, jak i moduł HSM, umożliwiając silne uwierzytelnianie kluczy. Nawet jeśli w przyszłości miałby nastąpić nieautoryzowany dostęp do kluczy statycznych, nie zapewniłoby to możliwości deszyfrowania giełd chronionych kluczami tymczasowymi.

Co więcej, wdrożyliśmy znaczące ulepszenie protokołu, ukrywając statyczne klucze urządzeń w bezpiecznym kanale. Ten środek zapobiegawczy uniemożliwia atakującym uzyskanie widoczności statycznego certyfikatu urządzeń, co z kolei może prowadzić do wycieku unikalnych identyfikatorów używanych podczas operacji tworzenia kopii zapasowych/przywracania.

Powrót do Ledger Recover: podróż nasion

Dobra, czas na chwilę przerwy.

Omówiliśmy wiele tematów związanych zarówno z bezpieczeństwem, jak i matematyką, w wyniku czego powstał protokół umożliwiający bezpieczną komunikację w każdej niezabezpieczonej sieci. Podsumujmy co do tej pory zobaczyliśmy:

Dwa podmioty mogą mieć bezpieczną komunikację za pośrednictwem niezabezpieczonego kanału, uzgadniając: wyjątkowy sekret dzięki do ECDHE, który jest implementacją protokołu uzgadniania kluczy Diffiego-Hellmana, który wykorzystuje klucze efemeryczne w celu ochrony tajemnicy przekazu. Każdy podmiot jest w stanie zweryfikuj autentyczność swojego korespondenta dzięki inicjałowi Weryfikacja certyfikatu.

W przypadku Ledger Recover stworzyliśmy cztery bezpieczne kanały wykorzystujące protokół Secure Channel. Kanały te łączą urządzenie z każdym dostawcą kopii zapasowych i orkiestratorem, a wszyscy oni są wyposażeni w sprzętowe moduły zabezpieczeń (HSM).

Każdy aktor posiada swój osobisty certyfikat podpisany certyfikatem księgi głównej, który pełni rolę korzenia łańcucha zaufania. Kiedy urządzenie użytkownika po raz pierwszy przesyła zamiar wykonania kopii zapasowej do Orchestratora, inicjuje uwierzytelnione ECDHE. Pod tymi mTLS sesji, Orchestrator przesyła informacje, które powiążą przyszłe bezpieczne kanały z konkretnym żądaniem kopii zapasowej użytkownika, wraz z tożsamością użytkownika, która zostanie poproszony o sprawdzenie podczas późniejszego przywracania materiału siewnego.

Ochrona tajemnic za pomocą HSM
Choć staramy się tego unikać, czasami konieczne jest przechowywanie i przetwarzanie tajemnic na serwerach. Może to być ryzykowne, ponieważ ochrona serwerów i dostępu do nich nie jest zadaniem trywialnym. Aby ograniczyć to ryzyko, firmy i branże ceniące sobie bezpieczeństwo korzystają z zabezpieczeń Sprzętowe moduły bezpieczeństwa. Są to wyspecjalizowane urządzenia zabezpieczające klucze kryptograficzne i zapewniające przetwarzanie kryptograficzne. Więcej o modułach HSM porozmawiamy w dalszej części tej serii blogów.

Wszystko jest gotowe, aby w końcu wykonać najbardziej krytyczną część całej operacji: przesyłanie trzech części materiału siewnego użytkownika.

Po raz kolejny tworzymy nowe bezpieczne kanały, ale tym razem pomiędzy urządzeniem Ledger użytkownika a modułami HSM dostawców kopii zapasowych bezpośrednio. Udziały nasion przesyłane są w pełni zaszyfrowanym kanałem do ostatecznego miejsca przechowywania, z gwarancją, że dotrą do właściwego miejsca przeznaczenia (tu właśnie wprowadzono sprawdzalność Pedersen Secret Sharing wprowadzonej w część 1 jest przydatne).
Urządzenie użytkownika uwierzytelnia jeden po drugim moduły HSM dostawców kopii zapasowych, a dostawcy kopii zapasowych wiedzą, że wymieniają się z unikalnym oficjalnym urządzeniem Ledger, które zainicjowało to konkretne żądanie kopii zapasowej.
Nikt poza urządzeniem użytkownika i modułami HSM dostawców kopii zapasowych nigdy nie widzi udziałów początkowych zaszyfrowanych przy użyciu kluczy symetrycznych tych wzajemnie uwierzytelnionych bezpiecznych kanałów, nawet Orchestrator.

Bezpiecznie odebrany… i przechowywany?

W tej części wprowadziliśmy kilka nowych koncepcji, z których niektóre mają charakter dość techniczny. Każda z tych koncepcji jest wymagana do ustanowienia bezpiecznej transmisji, która gwarantuje poufność i integralność wymiany. Niezależnie od bezpieczeństwa sieci, możemy teraz wysyłać nasze tajne udziały bez obawy, że zostaną naruszone lub przechwycone. To całkiem spore ulepszenie!

Cały proces jest wspierany przez kryptografię dźwiękową i bezpieczny sprzęt w postaci urządzenia sprzętowego Ledger i modułów HSM będących własnością każdego dostawcy kopii zapasowych.

Nadszedł czas, aby przejść do odzyskiwania udziałów w nasionach! Jedyne, co musimy zrobić, to poprosić dostawców kopii zapasowych o odesłanie nam udziałów, które przechowują w swojej infrastrukturze…

Ale poczekaj: jak dokładnie przechowują te bardzo wrażliwe dane? Na nic by nam to nie pomogło, gdybyśmy mieli najbezpieczniejsze kanały komunikacji, ale nasi dostawcy zapasowi po prostu przechowywali udziały w postaci zwykłego tekstu, prosząc o kradzież.

Zanim więc porozmawiamy o wyzdrowieniu – dojdziemy do tego, obiecuję! – w Części 3 musimy szybko obrać inną drogę, aby omówić bezpieczeństwo naszych udziałów w nasionach w stanie spoczynku. Czekać na dalsze informacje!

Znak czasu:

Więcej z Księga główna