KryptoLandia – 6 – o Podpisie Cyfrowym

1 Star2 Stars3 Stars4 Stars5 Stars (9 votes, average: 5.00 out of 5)
Loading...
  •  
  •  
  •  
  •  
  •  
  •  
  •  
OCEŃ & PODAJ DALEJ, niech i inni mają szansę POCZYTAĆ

Kiedykolwiek wyruszamy gdzieś za granicę, bardzo szybko przypominamy sobie o paszporcie. Bez niego ani rusz, gdyż zwyczajnie urzędnik imigracyjny nie wpuści nas na swoją ziemię. Dlaczego tak się dzieje? Przecież jeszcze dawno przed powstaniem państw ludzie podróżowali bez paszportów, a ścisłe “ustalone” granice powstały dopiero gdzieś w okolicach XVIII wieku. Nie istniały wtedy żadne regulacje, a granice nie były strzeżone. Wszystkie podatki pobierano w miastach, więc władzy nie zależało zbytnio na kontroli granic, często położonych na pustkowiach. Pierwsi władcy wychodzili z założenia, że przemieszczanie się ludności jest naturalne. Historia ludzkości to właściwie historia migracji, a tam, gdzie wędrówki były najintensywniejsze, tam powstały najbardziej zaawansowane cywilizacje.

PASZPORT ID

Jeszcze niewiele ponad 100 lat temu większość ludzkości nie miała paszportów i mogła swobodnie podróżować. Pomimo to historia paszportu jest jednak bardzo stara, ale jego funkcja wyglądała delikatnie inaczej niż obecnie. Pierwsza wzmianka o paszporcie pochodzi już ze Starego Testamentu. Według niej około 450 BC niejaki Nehemiasz musiał udać się do Judei w służbie króla Persji. Król wystawił mu więc dokument, w którym miał prosić władców innych krajów aby zapewnili mu bezpieczny przejazd i pomoc w razie potrzeby. Co ciekawe funkcja ta ciągle istnieje, wystarczy spojrzeć na pierwszą stronę polskiego paszportu, gdzie czytamy: 

“Władze Rzeczypospolitej Polskiej zwracają się z uprzejmą prośbą do wszystkich, których może to dotyczyć, o okazanie posiadaczowi tego paszportu wszelkiej pomocy, jaka może okazać się niezbędna podczas pobytu za granicą”

Pierwsze oficjalnie paszporty wprowadzili Rzymianie, a wydawane one były ze względów bezpieczeństwa oraz bezpiecznego przepływu towarów. Wystawiali oni zaświadczenie bezpiecznego przejazdu, które należało okazać władzom kraju, w którym się przebywało. W średniowieczu zasady podróżowania się zmieniły. Mieszkańcy Kalifatu Islamskiego mogli się przemieszczać po okazaniu dowodu opłacenia podatku religijnego (jałmużna zakat dla muzułmanów i podatek dżizja dla innowierców). W Europie natomiast, podróżnicy posługiwali się dokumentami wydawanymi przez miasta czy kraje, do których przybywali. Taki dokument miał zawierać listę miejscowości, do których przyznawano prawo wjazdu. Jako pierwszy w Europie uważa się przypadek Anglii, gdzie w XV w, kiedy to król Henryk V wystawiał specjalne dokumenty tym poddanym, którzy wyruszali w zamorskie podróże. Dokument był, jak na tamte czasy, bardzo nowoczesny, potwierdzał tożsamość właściciela, i prosiły innych władców o opiekę. Z kolei sam termin “paszport” zawdzięczamy Ludwikowi XIV, który to w 1669 wydał edykt, zabraniający poddanym opuszczania kraju. Mogli to robić jedynie ci, którzy mieli pisemne zezwolenie króla na wyjazd. A ponieważ wówczas podróżowano głównie drogą morską, na tym dokumencie był napis “Passe port” czyli “przejście przez bramę”. Pozostając przy Francji to warto tutaj nadmienić że już za czasów Napoleona w 1811 r. wprowadzono obowiązek wpisywania w urzędzie stanu cywilnego narodzin, ślubów, rozwodów i zgonów. Tak więc rejestr takowy istnieje od dawna i nie istnieją ludzie bez tożsamości. Z kolei w 1858 Wielka Brytania zreformowała wydawanie paszportów, czyniąc z nich dokument tożsamości i dowód brytyjskiego obywatelstwa (For Queen and Country).

Pierwsze regulacje prawne na szeroką skalę związane z podróżowaniem za granicę z paszportem, miały miejsce w XIX wieku, kiedy to w Europie zapanowały wojny, będące źródłem powstawania nacjonalizmu. Wtedy to ówczesne elity władzy europejskich cesarstw, zaczęły pogrywać pojęciem tradycji narodowych, wykorzystując do tego symbole jak flagi, hymny, mity i legendy z wybiórczo interpretowanej historii aby mobilizować podległe narody do walki z ich wrogami. Uważa się, że to wtedy powstała narodowość a co za tym idzie, później dokumenty tożsamości ją potwierdzające. 

Jeszcze do WWI paszport w Europie nie był wymagany. Wyjątkiem były Imperium Rosyjskie oraz Imperium Osmańskie. Dopiero to kolejne wojny, strach przez szpiegami i dywersantami przyśpieszał wydawanie obowiązkowo lub tylko na wyjazd za granicę dokumentów podróży lub tożsamości. Po wybuchu I wojny światowej, dokumenty zostały wprowadzone prawie wszędzie jako “rozwiązanie tymczasowe”. W 1920 pod auspicjami Ligi Narodów zwołano Paryską Konferencję Paszportów i Formalności Celnych, gdzie ustalono, że paszporty powinny być wydawane w formie książeczek, winny być przynajmniej dwujęzyczne (gdzie jednym z języków miał być francuski, będący podówczas językiem światowej elity), a ważność paszportu winna ograniczona czasowo do dwóch lata, chociaż zalecano pięć. Jak można zauważyć wiele się na świecie zmieniło od czasu Konferencji, ale na świecie istnieje obecnie dość jednolity system paszportowy. Co ciekawe w praktyce w Zachodniej Europie jeszcze do lat 70. XX można było poruszać się nie posiadając żadnego dokumentu. Później powstała europejska strefa Schengen, w której aż to teraz można podróżować bez paszportu.

Czasy szybko się zmieniają, a paszporty będą z nami w przyszłości. Bez wątpienia nastąpi ich dalsza ewolucja, a że żyjemy w erze cyfrowej ekonomi, będą one nowoczesne i bardzo cyfrowe. Można przypuszczać, iż będą one częścią uniwersalnego dokumentu cyfrowego, w którym poza danymi potwierdzającymi tożsamość i potwierdzanymi zaawansowaną biometrią, paszport będzie będzie też bazą pełną danych o Kowalskim, włączając w to historię edukacji i doświadczenia zawodowego (takie cyfrowe CV), zintegrowanym portfelem cyfrowym zawierającym wszelakie klucze prywatne kontrolujące wszelakie aktywa cyfrowe i finansowe, a także zdrowotną karą ubezpieczeniową na której zapisana jest cała anatomia Kowalskiego, wraz z listą przebytych chorób i wykazem wszelakich wizyt u lekarza, czy też przyjmowanych leków. Wszak e-recepta i e-wizyta to pierwsze oznaki nadchodzącego systemu. Bez wątpienia dokumenty te będą używały zaawansowanych technik kryptograficznych, w tym funkcji haszujących które zostały opisane w poprzedniej części KrypoLandii.

KryptoLandia – 5 – o Hashowaniu i Spójności

Paszport jest oficjalnym dokumentem potwierdzającym tożsamość wymaganym do podróżowania. Spełnia on jednak też funkcję potwierdzenia tożsamości, co jest równoważne z dowodem osobistym ID na terytorium tego kraju. Wiele krajów do tej pory nie ma dowodów osobistych, tak jak UK, USA czy Kanada. Do 2008 r. nie miało go też Holandia. Ale czasy szybko się zmieniają. Zarówno dowód osobisty jak i paszport stwierdza tożsamość osoby oraz poświadcza obywatelstwo. Autor tego opracowania nie jest przeciwnikiem dowodów osobistych. Pewna forma nadzoru nad obywatelami jest potrzebna, gdyż zbytni liberalizm prowadzi do anarchii. W końcu dokument ze zdjęciem zawierający podstawowe informacje o tożsamości i potwierdzony przez Kapitana Państwo ułatwia życie w wielu instytucjach prywatnych i państwowych, oraz redukuje czas i koszty jakie zapewne by się pojawiły gdyby każda z instytucji indywidualnie chciała by udowadniać naszą tożsamość, wymaganą np. przy kredytach itp. Aczkolwiek czym innym jest posiadanie uniwersalnego dokumentu ID, a czym innym jest ciągłe nakazywanie obywatelowi legitymowania się tym dokumentem na żądanie, czy też całkowita inwigilacja życia Kowalskiego. Wszak Kowalski może mieć tylko dokument za pomocą którego ktoś stwierdzi że to on, a on sam do szkoły chodził i podpisywać się umie. Wszak podpis to najprawdziwszy dowód tożsamości.

PODPIS

Podpis jest to znak graficzny zawierający imię i nazwisko, który złożony jest  własnoręcznie. Bywa on czasami zastępowany innymi symbolami czy też znakami, a nawet stylizowany. (Nawet niepiśmienni w odległych czasach podpisywali się krzyżykiem). Podpis jest dowodem tożsamości, jak również woli osoby składającej go. Jest on swego rodzaju pieczęcią tożsamości. Podpis dokumentuje nie tylko brzmienie nazwiska, ale również i charakter pisma osoby podpisującej, co ułatwia jej identyfikację. Za formę podpisu uważa się także parafkę, która jest powtarzalnym znakiem graficznym, skrótem, inicjałem, który może pełnić funkcję podpisu. 

Doba informatyzacji wymusiła komunikowanie się z różnymi podmiotami w w szeroko-rozumianym internecie. Zaszła więc potrzeba potrzeba zmiany podejścia do problemu sygnowania treści i dokumentów. Gdy niesiemy osobiście do urzędu dokument, łatwo jest sprawdzić naszą tożsamość. Jednak gdy wysyłamy dokument elektronicznie, urzędnicy nie mają pewności kto jest jego nadawcą, a nawet czy jest to autentycznie nadana wiadomość (“za naszą zgodą i wiedzą”).

Source: Lisk Academy

Powstał więc podpis elektroniczny, będący dowolną formą podpisu zapisanego elektronicznie. W takim znaczeniu nawet skan podpisu odręcznego będzie podpisem elektronicznym. Problemów z podpisem elektronicznym jest jednak wiele więcej. Wynikają one głównie z oceny autentyczności, jak i tożsamości nadawcy, jak poniżej:

  • Nieznany Nadawca (Unknown Publisher). Tożsamość nie jest znana, a podpis jest nieważny/nie istnieje.
  • Niezaufany Nadawca (Untrusted Publisher) – Podpis jest ważny, ale został stworzony przez niezaufanego wydawcę, czyli takiego który nie-posiada niezbędnych certyfikatów cyfrowych.
  • Zaufany Nadawca (Trusted Publisher). Podpis jest ważny i został stworzony przez zaufanego nadawcę. 

Lekarstwem na to okazał podpis cyfrowy, błędnie przez wielu uważanym za równoważny z podpisem elektronicznym. Podpis cyfrowy jest to podpis bazujący na algorytmach kryptograficznych. Warto zauważyć, że każdy podpis cyfrowy jest podpisem elektronicznym, ale już nie każdy elektroniczny jest cyfrowym. Dodatkowo jeżeli podpis cyfrowy uzyska certyfikat staje się wtedy podpisem zaufanym, w znaczeniu polskiego prawa.

Co odróżnia podpis odręczny od jego odpowiednika w formie cyfrowej? Oba powinny być przypisane jednej osobie i niemożliwe do podrobienia, a podpisujący nie powinien mieć możliwości aby się wyprzeć poświadczenia. Zasadniczą różnicą jest to, że każdy podpis cyfrowy jest INNY, co nie koniecznie jest prawdą w przypadku podpisu tradycyjnego. Wynika to z algorytmu matematycznego zastosowanego do jego tworzenia. Mówiąc w skrócie podpis cyfrowy jest funkcją dokumentu, który takowy podpisuje oraz unikalnego klucza prywatnego. Dodatkowo, w podpisie cyfrowym może istnieć sygnatura czasowa (timestamp) podpisania dokumentu, będąca dość często istotną informacją podpisania dokumentu. Podpisy odręczne składane są zazwyczaj na ostatniej stronie dokumentu i są zazwyczaj takie same dla wszystkich podpisywanych dokumentów. Wartość podpisu cyfrowego jest zawsze zależna od dokumentu i zawsze obejmuje jego całość. Mówi się, że podpis cyfrowy to elektroniczny odcisk palca.

Digital Signatures = Electronic Fingerprints 

Istotną i chyba najważniejszą cechą podpisu cyfrowego, która daje mu niebagatelną przewagę na podpisem klasycznym, jest to, że zabezpiecza on podpisany dokument przed modyfikacją. Oznacza to, że jeżeli nastąpi jakakolwiek zmiana w danych/dokumencie, to będzie to wówczas widoczne podczas weryfikacji podpisu. Zastosowanie podpisu cyfrowego gwarantuje również niemożność zaprzeczenia przez nadawcę wysłania wiadomość o otrzymanej treści. 

PODPIS CYFROWY

Podpis cyfrowy działa na zasadzie matematycznego algorytmu, w wyniku działania którego otrzymywana jest zaszyfrowana informacja, która potem z-deszyfrowana służy weryfikacji podpisu cyfrowego. Jest to ściśle związane z kryptografią asymetryczną, znaną również jako kryptografią klucza publicznego PKI (Public Key Infrastructure). Jest to system kryptograficzny, w którym dostępne są dwa klucze: klucz publiczny (PUB) i klucz prywatny (PRV). Klucze te są niczym innym jak długimi ciągami znaków (dużymi liczbami), które zostały sparowane razem, ale nie są identyczne (dlatego też asymetryczne). Klucz publiczny jest generowany matematycznie z klucza prywatnego, ale z klucza publicznego nie da się wyznaczyć klucza prywatnego mimo że łączą je zależności matematyczne. Operacja ta jest teoretycznie możliwa, ale przez swą złożoność obliczeniową niewykonalna w praktyce przy odpowiednio silnym/długim kluczu. Klucz prywatny to taki, który jest znany jedynie jego właścicielowi i w szeroko pojętym interesie właściciela jest nieujawnianie takowego klucza. Natomiast klucz publiczny jest publiczny w dosłownym znaczeniu tego słowa. Zestaw obu kluczy pozwala ich posiadaczowi na uzyskanie wspomnianych atrybutów bezpieczeństwa. Istotą systemu klucza publicznego jest to, że komponent klucza publicznego jest naprawdę publiczny. Oznacza to, że każdy użytkownik może wysłać swój klucz publiczny do dowolnego innego użytkownika lub po prostu ogłosić go światu wzdłuż i wszerz. Jest to dużą zaletą algorytmów asymetrycznych, jako że upraszczają proces wymiany klucza pomiędzy stronami. Ponieważ klucz publiczny jest jawny, a klucz prywatny nie jest współdzielony to nie ma konieczności tworzenia zabezpieczonego kanału do jego przekazania.

Używając algorytmów asymetrycznych użytkownik po wygenerowaniu kluczy staje się posiadaczem pary kluczy, a raz wygenerowane klucze mogą służyć do złożenia nieskończonej liczby podpisów. Przykładowe klucze wytworzone za pomocą algorytmu EdDSA.

PRV key (32 bytes = 256bit): 'f2218b20384e60d9202ce65c93bd80bf4743d1673b5ed38a5c865f2186b76630'

PUB key (32 bytes = 256bit): '45ed4f31aaebe5b524e0e67efd2b7d553ff589bc58805a3c612f685d7722ae1b'

Source: https://en.wikiversity.org/wiki/Digital_Signature

W kryptografii asymetrycznej istnieją pewne algorytmy matematyczne, które pozwalają szyfrować, odszyfrowywać, podpisywać i weryfikować wiadomości przy użyciu pary kluczy. Używane są do tego zaawansowane techniki kryptograficzne używające np. krzywych eliptycznych i dyskretnego logarytmu. Algorytmy te zamieniają wiadomość w szyfrogram przy pomocy jednego klucza, natomiast rozkodowują tenże szyfrogram do postaci jawnej przy pomocy przeciwnego klucza. Oznacza to, że każdy z tych kluczy może być użyty do zaszyfrowania wiadomości, a klucz przeciwny od tego użytego do zaszyfrowania wiadomości jest używany do jej odszyfrowania. Stanowią one także warstwę walidacji i bezpieczeństwa dla wiadomości wysyłanych przez niezabezpieczony kanał.

Algorytmy przeznaczone do podpisu cyfrowego składają się zasadniczo z dwóch części:

  • operacji składania podpisu;
  • operacji jego weryfikacji.

A sam mechanizm typowego schematu operacji podpisu cyfrowego przedstawiony jest poniżej.

Source: https://www.docusign.com/how-it-works/electronic-signature/digital-signature/digital-signature-faq

Podpisywanie wiadomości odbywa się przy użyciu klucza prywatnego. W celu stworzenia podpisu cyfrowego sygnatariusz (oprogramowanie podpisujące) wylicza wartość funkcji skrótu/hash z dokumentu, który ma zostać przesłany. Jak wiadomo hash jest unikalnym identyfikatorem danych wejściowych, tak więc jakakolwiek modyfikacja w dokumencie zmienia także jego hash. Następnie otrzymany hash jest szyfrowany za pomocą klucza prywatnego otrzymując w ten sposób wartość podpisu cyfrowego. Zaszyfrowany hash wraz z innymi informacjami, np. o algorytmie szyfrującym, jest dołączany do oryginalnego dokumentu i całość stanowi wiadomość przeznaczoną do wysłania. W ten oto sposób wiadomość zostaje zabezpieczona przez modyfikacjami i odbiorca ma możliwość potwierdzenia, kto jest faktycznym nadawcą, oraz że wiadomość jest autentyczna. Uważny czytelnik zapyta: dlaczego tylko hash jest szyfrowany a nie cały dokument? Powodem zaszyfrowania tylko skrótu jest to, że funkcja skrótu zwraca unikalny znacznik dokumentu, a sam proces haszowania jest znacznie szybszy niż szyfrowania. Podpis z całościowo zaszyfrowanym dokumentem powodowałby zawsze znaczne zwiększenie objętości dokumentu.

Weryfikacja wiadomości przy użyciu klucza publicznego polega na dwóch krokach. Weryfikujący (oprogramowanie) samodzielnie wylicza wartość funkcji skrótu z przekazanego dokumentu, a następnie przekształca podpis za pomocą klucza publicznego, odzyskując w ten sposób skrót dokumentu wyliczony przez sygnatariusza. Jeżeli wyliczone wartości funkcji skrótu są równe to podpis odpowiada otrzymanemu dokumentowi i operacja weryfikacji kończy się powodzeniem. Dowodzi to także, że dane nie zostały zmienione od momentu ich podpisania. Jeżeli zaś dwa hasze nie pasują do siebie, dane zostały w jakiś sposób integralnie naruszone (brak integralności) lub podpis został utworzony przy użyciu klucza prywatnego, który nie odpowiada kluczowi publicznemu przedstawionemu przez podpisującego (brak uwierzytelnienia).

Podpis cyfrowy jest więc wygodnym i pewnym sposobem zapewniania bezpieczeństwa dokumentów, jako że gwarantuje: 

  • autentyczność, czyli pewność co do autora dokumentu;
  • integralność, czyli pewność, że wiadomość nie została zmodyfikowana po złożeniu podpisu;
  • nie-zaprzeczalność, polegającą na tym, że nadawca nie może wyprzeć się wysłania wiadomości.

CERTYFIKAT na CYFROWO

Zastosowanie systemu klucza publicznego sprawia jednak pewne problemy. Osoba otrzymująca klucz publiczny nie jest w stanie stwierdzić na podstawie samego klucza, czy jest on w ogóle kluczem publicznym ani czy klucz ten został wykorzystany zgodnie z intencją jego właściciela oraz kto tak na prawdę jest jego właścicielem. W tym celu koncepcja podpisu cyfrowego została uzupełniona przez koncepcję certyfikacji, zapewniającą wygodny sposób weryfikacji kluczy i ich właścicieli dzięki łańcuchom zaufania. Mechanizm certyfikacji pozwala na poświadczenie faktu, iż pewien klucz publiczny jest powiązany z jego właścicielem. W praktyce oznacza to, że klucze publiczne mogą również być opatrzone podpisem cyfrowym. Taki dokument, uzupełniony o dane identyfikujące właściciela danego klucza publicznego, nazywamy certyfikatem klucza publicznego (ang. public key certificate). Certyfikat jest po prostu dokumentem elektronicznym, który zawiera klucz publiczny i wspomniane już atrybuty właściciela tegoż klucza (cechy wyróżniające). Idea certyfikacji zakłada istnienie zaufanej strony trzeciej wystawcy certyfikatu, którą jest Kapitan Państwo lub inne jednostki posiadające uprawnienia nadawana takich certyfikatów. Weryfikacja klucza i autora polega na zweryfikowaniu opisującego je certyfikatu. To z kolei polega na hierarchicznym weryfikowaniu w górę po drzewie zaufania aż do centrum certyfikacji, które to ze swej definicji jest zaufane i dba o weryfikację swych klientów. 

TIMESTAMP

Rozszerzeniem standardowego podpisu cyfrowego jest uzupełnienie go znacznik czasowy (timestamping). Pieczęć czasowa dokumentu. Ten rodzaj podpisu pozwala rozszerzyć go dodatkowo o proces bezpiecznego śledzenia czasu tworzenia i modyfikacji dokumentu. Bezpieczeństwo zostaje więc podwyższone, jako że nikt (nawet właściciel dokumentu) nie ma możliwości wprowadzania zmian po zarejestrowaniu dokumentu, zakładając że integralność znacznika czasu nie zostanie nigdy naruszona. Usługi timestampingu świadczone są przez zaufane strony trzecie (Trusted Timestamping). Posiadają one specjalne urządzenie, które synchronizuje bieżący czas ze światowymi źródłami czasu i posiadają certyfikaty do podpisywania znaczników czasu.

Podpisujący dokument cyfrowo oblicza hash dokumentu (zwykle podczas procesu podpisywania) i wysyła go do serwera z znacznikiem czasu. Serwer dołącza aktualną datę i godzinę do otrzymanego haszu i podpisuje dane wynikowe z własnym certyfikatem timestamp. Wynikający z tego komunikat nazywany jest podpisanym znacznikiem czasu. Następnie serwer zwraca znacznik czasu z powrotem do podpisującego i podpisujący dołącza go do podpisanego dokumentu.

Source: https://www.sysadmins.lv/blog-en/digital-signatures.aspx

Znacznik czasu nie jest jednak częścią podpisanego skrótu dokumentu. Jest on jednak częścią podpisu cyfrowego, więc można aktualizować tylko znacznik czasu. Jeśli dokument zostanie ponownie podpisany to znacznik czasowy zostanie zaktualizowany (lub usunięty, jeśli podpisujący podczas procesu ponownego podpisywania zdecyduje się nie używać znaczników czasowych). Ponieważ zarówno zaszyfrowany hash jak i timestamp zawierają hash dokumentu, nie jest możliwe odłączenie znacznika czasu i dołączenie go do innego dokumentu w celu sfałszowania rzeczywistego czasu podpisania. Takowe usługi zaczynają się pojawiać już na rynku.

MULTI-SIGNATURE

Standardowe transakcje podpisu cyfrowego nazywane są w “transakcjami jedno-podpisowymi”, ponieważ wymagają tylko jednego podpisu za pomocą klucza prywatnego od właściciela. Istnieją jednak bardziej zaawansowane techniki podpisu cyfrowego, w których transakcje wymagają wielu kluczy prywatnych aby mógłby zostać potwierdzone. 

Podpis wielo-stronny (Multisignature), czasami nazywany multisig, to schemat podpisu cyfrowego z wymogiem zatwierdzenia transakcji (np. przekazania finansów/danych/dokumentów) przez więcej niż jeden sygnet/stronę. Bez wątpienia podpis “wspólny” jest zawsze bardziej kompaktowy niż zbiór pojedynczych podpisów cyfrowych. 

Koncepcja systemów wielo-podpisowych nie jest nowa rzeczą. Wielo-kluczowość znana jest od bardzo dawna, gdzie wykorzystywana była przez mnichów na górze Athos do ochrony krypt, w których przechowywane są najcenniejsze relikwie świętych. Mnisi zabezpieczali swoje krypty wieloma kluczami, przy czym do odblokowania krypty potrzeba było więcej niż jednego. Oznaczało to, że żaden pojedynczy mnich nie mógłby uzyskać dostępu do cennych relikwii bez świadomości co najmniej jednego innego mnicha. Przełożony klasztoru dawał mnichom tylko częściowe klucze do uzyskania dostępu do cennych relikwii. W ten sposób żaden z mnichów nie mógłby uzyskać dostępu do tych relikwii i ewentualnie je ukraść. 

Wielo-podpis (multisig) odnosi się do wymagania wielu kluczy do autoryzacji transakcji, co generuje ciekawe zastosowania.

  • Podział odpowiedzialności rozkładany jest pomiędzy wiele osób;
  • Tworzenie kopii zapasowych, gdzie utrata pojedynczego klucza nie prowadzi do utraty konta czy portfela. 

Podpisy multisig często są określane jako transakcje M-z-N, gdzie “M” oznacza wymaganą liczbę podpisów lub kluczy do przeprowadzenia transakcji, a “N” oznacza całkowitą liczbę zaangażowanych podpisów. Strategia wielo-podpisu wymaga więc współpracy zainteresowanych stron, aby cokolwiek można było z zrobić ze wspólną transakcją. Stronami tymi mogą być osoby, instytucje a nawet zaprogramowane skrypty/roboty. Liczba potencjalnych sygnatur i wymagana liczba podpisów jest uzgadniana (przeważnie) na początku, kiedy adres/umowa jest tworzona. W analogii, multisig jest jak zamek, który otwiera się tylko przy użyciu wystarczającej ilości kluczy, z zestawu predefiniowanych kluczy. Wielo-podpis może być tworzony w niezliczonych kombinacjach M-z-N. Poniżej najbardziej popularne systemy wraz z przykładami użycia. 

System Konta Wspólnego (1 z 2)

Dwie strony sobie ufają, a do zatwierdzenia podpis tylko jednej z nich jest wymagany dla potwierdzenia transakcji. Przykładem może być wspólny rachunek bankowy/portfel cyfrowy małżonka i żony, gdzie podpis każdego z małżonków jest wystarczający do wydania środków. Jest to też schemat wykorzystywany do robienia kopi zapasowych klucza prywatnego, gdzie różne klucze mogą być przechowywane na różnych urządzeniach takich jak na telefon, komputer czy też portfel sprzętowy.

System Podwójnej Autoryzacji (2 z 2)

Jest to dwustopniowe uwierzytelnienie dla transakcji. Użytkownik może mieć także dwa oddzielne klucze prywatne przechowywane w dwóch oddzielnych miejscach. Oba klucze są wymagane do przeprowadzenia każdej transakcji, dodając dodatkową warstwę zabezpieczeń. Kolejnym przykładem obrazującym jest konto oszczędnościowe męża i żony, gdzie oba podpisy są wymagane do wydania środków, co uniemożliwia jednemu z małżonków wydanie pieniędzy bez zgody drugiego.
System autoryzacji N z N jest ogólnym rozszerzeniem, gdzie każda z stron N musi wyrazić zgodę na transakcję. Jest to czasami implementowany hierarchicznie, wraz historią podpisu np. w korporacjach gdzie najwyższy rangą  (np. CEO) podpisuje ostatni. 

System Escrow (2 z 3)

Aby zatwierdzić transakcję, dwie z trzech stron muszą się na to zgodzić. Usługa 2 z 3 ma bardzo ciekawe zastosowanie w systemie usługi powierniczej (escrow), w której uczestniczą nabywca, sprzedawca i zewnętrzny pośrednik. Osoba A kupuje coś od osoby B. Jeśli wszystko pójdzie dobrze, osoby A i B podpisują się na transakcji, więc środki zostaną odpowiednio uwolnione po potwierdzeniu odbioru towaru. Jeżeli coś pójdzie nie tak i obie strony nie będą mogły dojść do porozumienia, kto powinien otrzymać środki, wtedy osoba C zewnętrzna pośredniczka, pomaga zdecydować, do kogo właściwie należy fundusz i składa swój własny podpis na transakcji, spełniając wymóg 2 podpisów i zielonego światła transakcji. Należy również zauważyć, że ponieważ wymagany jest podpis osoby A lub osoby B, osoba C nie może ukraść środków dla siebie. 

Kolejnym przykładem może być konto oszczędnościowe dla dziecka, na którym zarówno dziecko, jak i co najmniej jedno z rodziców musi się zgodzić na transakcję. Pozostawia to również możliwość podjęcia każdej poważnej decyzji wyłącznie przez rodziców, o ile oboje się na to zgodzą.

System kontroli większościowej (3 z 5 / 5 z 9)

Jest to system stworzony dla zarządzania dużymi firmami. Umożliwia on zarządom korporacji/radzie dyrektorów firmy podejmowanie decyzji /podpisywanie transakcji przez większość członków rady nadzorczej, np 3 z 5 albo 5 z 9 kwalifikowanych podpisów . Aby zatwierdzić każdą dużą transakcję, większość zarządu musiałaby wyrazić na nią zgodę. W systemie tym każdy członek rady nadzorczej posiada jeden klucz, żaden z członków rady nadzorczej nie może nadużywać tych środków. W związku z tym możliwe jest wykonywanie tylko tych decyzji, które zostaną uzgodnione większością. 

System kopi zapasowej (M z N)

Technologia multisig zapewnia większe bezpieczeństwo niż tradycyjne podejście oparte na jednym podpisie poprzez usunięcie pojedynczego punktu awarii w systemie. Przechowywanie wielu kluczy do portfela M-of-N w różnych miejscach może służyć jako kopia zapasowa. Klucze prywatne potrzebne do zawierania transakcji /wydatkowania pieniędzy z portfela mogą być rozłożone na wiele urządzeń. Utrata lub włamanie się do jednego klucza nie umożliwia nieautoryzowanego dostępu do konta, o ile nadal posiadasz pozostałe klucze. Im większa jest liczba kluczy potrzebnych do wydania środków (tzn. im wyższe M jest M-of-N), tym trudniej byłoby napastnikowi skutecznie ukraść środki, jednak im bardziej kłopotliwe staje się rzeczywiste korzystanie z tego portfela. Na przykład, w portfelu wielozadaniowym 2-z-3, utrata jednego klucza nie powoduje utraty portfela, ponieważ pozostałe dwa klucze mogą być wykorzystane do odzyskania środków. Nadmiarowość kopii zapasowej jest różnicą N minus M, więc na przykład portfel wielozakresowy 3 z 5 ma nadmiarowość 2, co oznacza, że utrata jakichkolwiek 2 kluczy może być nadal odzyskiwana.

Multisig jest dość prostą, ale potężną technologią, która pozwala na stworzenie dodatkowej warstwy zabezpieczeń do zarządzania kontem/walutą kryptograficzną. Wykorzystywane przez wiele walut kryptograficznych, w tym Bitcoin, ETH, XRP jako sposób na poprawę bezpieczeństwa, jak również podział zdolności do podejmowania decyzji pomiędzy więcej niż jedną stronę. Transakcje wielopodpisowe zostały ustandaryzowane w protokole Bitcoin od 2012 (BIP11), jednak pierwsze realne transakcje miału miejsce na początku 2014, kiedy to zaimplementowane zostały pierwsze portfele zapewniające właściwe bezpieczeństwo wielo-podpisów (BIP32). Obecnie istnieje wiele portfeli kryptowalutowych, które obsługują uwierzytelnianie wielo-podpisowe. 

BEZPIECZEŃSTWO 

Ochrona klucza prywatnego jest podstawowym warunkiem bezpieczeństwa danych czy też podpisu. Podstawą bezpieczeństwa takiego klucza jest posiadanie pełnej fizycznej kontroli nad nim. Utrata klucza prywatnego to utrata podpisu. Jeżeli zaś klucz wpadnie w niepowołane ręce, to każda dodana sygnatura może mieć znamiona fałszerstwa. Niebezpieczeństwo jest tym większe, jeśli klucz cieszył się już powszechnym zaufaniem. Z racji tego że jest on długim ciągiem znaków, przez co bardzo trudnym do zapamiętania, należy go zapisać w bezpiecznym miejscu, bądź też urządzeniu będącym zabezpieczonym przed atakami hakerów. Dodatkowe środki bezpieczeństwa to:

  • Zrobienie kopii bezpieczeństwa kluczy, jako że utrata klucza prywatnego czyni bezwartościowymi wszystkie kopie klucza publicznego znajdujące się na świecie;
  • Umieszczenie klucza prywatnego na karcie chipowej, lub zewnętrznym urządzeniu przenośnym np. dedykowany USB;
  • Korzystanie z czytników kart inteligentnych z oddzielną klawiaturą;
  • Korzystanie z podpisów cyfrowych tylko z zaufanymi aplikacjami;
  • Korzystanie z modułu zabezpieczenia sprzętowego podłączonego do sieci;
  • Sygnowanie dokumentów stosowane w trybie offline.

ALGORYTMY

Większość kryptosystemów klucza publicznego, takich jak RSA i ECC, zapewnia bezpieczne schematy podpisu cyfrowego. Przykładami dobrze znanych schematów podpisu cyfrowego są: DSA, ECDSA, EdDSA, podpisy RSA, podpisy ElGamal czy też podpisy Schnorr. Wymienione schematy podpisu cyfrowego opierają się na trudnościach DLP (problem logarytmów dyskretnych) i ECDLP (problem logarytmów dyskretnych eliptyczno-krzywych) i są one nie odporne na łamliwe kwantowe (quantum-breakable). Są jednak już opracowane bezpieczne podpisy cyfrowe odporne na działanie komputerów kwantowych (Quantum-safe) takie jak SPHINCS, BLISS czy XMSS. Nie są one jednak masowo używane, ze względu na długą długość klucza, długość podpisu i słabszą wydajność w porównaniu do algorytmów ECDSA i EdDSA.

Najbardziej popularnymi schematami podpisu cyfrowego w 2018 były: RSA, ECDSA i EdDSA. Na przykład w 2018 oficjalna strona internetowa Microsoftu używa Sha256RSA do uzyskania certyfikatu cyfrowego, a certyfikaty cyfrowe na stronach internetowych Amazon są podpisywane przez system podpisów Sha256ECDSA. Z kolei publiczne blockchainy (jak Bitcoin i Ethereum) wykorzystują podpisy ECDSA oparte na krzywej secp2561, ponieważ klucz publiczny podpisującego można łatwo odzyskać z podpisu (wraz z podpisaną wiadomością) poprzez dodanie tylko jednego dodatkowego bitu do podpisu. W ostatniej dekadzie rozpoczął się jednak trend przejścia od RSA i DSA do podpisów opartych na krzywej eliptycznej (jak ECDSA i EdDSA). Dzieje się tak ponieważ współcześni kryptografowie i programiści preferują podpisy ECC ze względu na ich krótszą długość klucza, krótszy podpis, większe bezpieczeństwo (przy tej samej długości klucza) i większą wydajność. W ogólnym przypadku rekomenduje się podpisy EdDSA, ponieważ są one zazwyczaj szybsze niż tradycyjne podpisy ECDSA na krzywych o porównywalnej długości klucza.

ZASTOSOWANIA

Podpisy cyfrowe są używane w programach komputerowych, takich jak przeglądarki internetowe, które muszą ustanowić bezpieczne połączenie w internecie, czy też programy do poczty elektronicznej komunikującej się z serwerami. Bez wątpienia podpis cyfrowy już teraz gra pierwsze skrzypce w bankowości elektronicznej, i bez wątpienia będzie głównym filarem finansów rozproszonych (DeFi). Z kolei, rządy i instytucje państwowe coraz częściej publikują elektroniczne dokumenty prawa publicznego i prywatnego, rozporządzenia, a nawet budżety z podpisami cyfrowymi. Podpisy cyfrowe stosowane są również do zawierania i zamknięcia umów komercyjnych, które wymagają od wielu stron ich zatwierdzenia i podpisania. Przykładem mogą być kredyty hipoteczne wymagające od wielu stron walidacji i podpisywania dokumentów na różnych etapach cyklu życia hipoteki. W takim przypadku zaangażowane strony to kupujący, kredytodawca, sprzedawca, adwokaci, agenci nieruchomości, urzędnicy państwowi. Podpisy cyfrowe są coraz częściej używane do komunikacji i transakcji biznesowych (B2B), gdzie mogą potwierdzać dane bez zbędnej strony bez pośredników. Bez wątpienia podpisy cyfrowe są bardzo ważną częścią systemów krypto-walut, jako że potwierdzają transakcje płatności, czy transferu tokenów, a nawet Inteligentnych Kontraktów (smart contract) mających już teraz znamiona umów przyszłości.

Podpisy cyfrowe to bardzo ważna technologia i jej znaczenie w przyszłości będzie tylko rosło, jako że zapewniają weryfikację i uwierzytelnianie w taki sam sposób jak podpisy, w formie cyfrowej, a jak wiadomo przyszłość to cyfrowa ekonomia. Jest to jedna z najważniejszych technik kryptograficznych, bez które istnienie kryptowalut nie było by zwyczajnie możliwe. Podpisy cyfrowe są kluczowym elementem w zabezpieczaniu danych w łańcuchu blokowym, natomiast węzły stanowią podstawę, na której zbudowana jest sama sieć. Jak górnicy mieli by zatwierdzając jakiekolwiek transpiracje na blockchain kiedy nie mieli by pewności kto je wystawił? Wszak Blockchain jest niezmieniany po tym jak blok zostanie zatwierdzony, a cofnięci transakcji jest prawie nie możliwe. Tematem blockchain, będącego szkieletem całej architektury kryptowalut zajmiemy się w kolejnej części KryptoLandii.

 

 The END

Bmen


Ps. Jeżeli podobał wam się artykuł, zachęcamy do ocenienia, skomentowania, podzielenia się przemyśleniami i za-linkowania lub podzielenia się via media.


DISCLAIMER / UWAGA! Niniejszy opracowanie (jak każde inne na tym blogu) ma charakter amatorskiej analizy, która ma na celu jedynie ogólnie przybliżenie czytelnikowi omawianego tematu. Analiza ta jest efektem dociekań autora, i jest na tyle szczegółowa/precyzyjna, na ile autor uznał za stosowne. Jest ona tylko prywatną opinią autora, nie stanowi żadnych rekomendacji inwestycyjnych, i nie może służyć jako podstawa decyzji inwestycyjno-biznesowych. W celach głębszego zrozumienia tematu, bądź też zdobycia profesjonalnej informacji, autor zachęca do sięgnięcia po prace specjalistów z danej dziedziny. Sam autor, na własne potrzebny, zebrał podstawowe informacje w tematyce po to, aby móc wyrobić sobie poglądy na interesujące go zagadnienia, a przetrawione wnioski są owocem tej pracy. 

Niniejszym Team Bmen-ów zastrzega, że publikowane informacje i tezy są wolnymi przemyśleniami amatorów, na podstawie których nie mogą być konstruowane żadne roszczenia, przyrzeczenia, obietnice te rzeczowe czy też matrymonialne. W przypadku oblania się gorącą kawą lub zakrztuszenia rogalem podczas czytania tekstu Team nie bierze za to żadnej odpowiedzialności i renty płacić nie będzie!! 


LITERATURA

  1. https://en.wikipedia.org/wiki/Passport
  2. https://ingremio.org/2018/10/krotka-historia-wiz-i-paszportow/
  3. https://www.wiatrak.nl/80304/historia-paszportu
  4. https://bezprawnik.pl/podpis-a-parafka-kiedy-postawic-podpis-a-kiedy-wystarczy-parafka/
  5. http://www.podpiselektroniczny.pl/
  6. http://www.cyfrowyurzad.pl/strefa_wiedzy/podpis_elektroniczny/
  7. https://lunarpen.com/blog/digital-signature-vs-electronic-signature/
  8. https://youtu.be/JR4_RBb8A9Q – Lisk Akademy – Digital Signature
  9.  http://studia.elka.pw.edu.pl/net/doc/pgp/pgp.html
  10. https://www.sysadmins.lv/blog-en/digital-signatures.aspx
  11. https://en.wikiversity.org/wiki/Digital_Signature
  12. https://cryptobook.nakov.com/digital-signatures
  13. https://www.youtube.com/watch?v=stsWa9A3sOM
  14. https://www.youtube.com/watch?v=qXLD2UHq2vk
  15. https://www.youtube.com/watch?v=heacxYUnFHA
  16. https://en.bitcoin.it/wiki/Multisignature
  17. https://medium.com/@blairlmarshall/how-does-ecdsa-work-in-bitcoin-7819d201a3ec
  18. https://medium.com/@blairlmarshall/signature-verification-multi-signatures-19886fafe97b
  19. https://cdn.rawgit.com/andreacorbellini/ecc/920b29a/interactive/modk-mul.html – Elliptic Curve scalar multiplication 
  20. https://hackernoon.com/a-brief-intro-to-bitcoin-schnorr-multi-signatures-b9ef052374c5
  21. https://andrea.corbellini.name/2015/05/30/elliptic-curve-cryptography-ecdh-and-ecdsa/
  22. https://99bitcoins.com/bitcoin/escrow/
 

Komentarze ( 2 )

  • Tak na szybko:

    – “podpisu cyfrowego są: DSA, ECDSA, EdDSA, podpisy RSA, podpisy ElGamal czy też podpisy Schnorr.”

    ECDSA to tak naprawdę wersja ElGamal na krzywych


    – “ponieważ klucz publiczny podpisującego można łatwo odzyskać z podpisu (wraz z podpisaną wiadomością) poprzez dodanie tylko jednego dodatkowego bitu do podpisu.”

    Tego nie bardzo rozumiem, może taki skrót myślowy Ci wyszedł, masz może źródło do tego?
    • Obrazek ze strony:
      https://www.docusign.com/how-it-works/electronic-signature/digital-signature/digital-signature-faq

      Może trochę wprowadzać w błąd, tzn. chodzi o słówka “encryption” i “decryption”, bo to powinno być analogicznie: “podpis” i “weryfikacja”. Może to drobnostka, ale może być mylące, bo szyfracja jak najbardziej istnieje dla asymetrycznych (np ECIES), ale działa odwrotnie, tzn. jeśli ja szyfruje dla kogoś wiadomość (nie podpisuje, ale szyfruje), to używam jego klucza publicznego i wtedy to jest “encryption”. A gdy odbiorca chce ją sobie odszyfrować to używa swojego prywatnego.


  • Skomentuj