Sages / Blog


Autor: Piotr Nazimek

Błędy w kontraktach

Jakie mogą być skutki błędów w kontraktach? Jednym z nich jest utrata środków, o czym niektórzy użytkownicy portfela Parity mieli okazję boleśnie przekonać się w lipcu tego roku. Blockchain nie zapomina, to co w nim zaszło nie może być odwołane. Jest to jego niewątpliwa zaleta, która w pewnych sytuacjach staje się wadą. Kontrakt rządzi się regułami takimi jakie zostały w nim zaimplementowane. Tylko je możemy wykorzystać, aby uratować nasze środki, jeśli zachodzi podejrzenie, że w kontrakcie nie są one już bezpieczne. Nawet jeśli zasady są błędne to nadal w kontrakcie są zasadami.

czytaj dalej...


Portfele w Ethereum

Poznaliśmy już niektóre możliwości inteligentnych kontraktów w blockchain Ethereum. W tym wpisie dokładniej przedstawię jedno z ich zastosowań jakim jest portfel (ang. wallet), którego zadaniem jest przechowywanie i zarządzanie Etherami. Portfel jest kontraktem, który może na przykład pilnować dziennego limitu transferu środków, mieć kilku właścicieli oraz wymagać zatwierdzania transakcji przez określoną liczbę z nich. Utworzymy dwa rodzaje portfela, zarówno z jednym jak i z wieloma właścicielami.

czytaj dalej...


Inteligentne kontrakty w blockchain

Dotychczas w uruchomionym prywatnym łańcuchu bloków (ang. blockchain) Ethereum przechowywaliśmy rejestr transakcji oraz salda jego użytkowników. Poniżej przedstawię w jaki sposób umieścić w blockchain własną aplikację i jak z niej korzystać. Wykorzystamy do tego już utworzony łańcuch, którym zajmowaliśmy się w poprzednim wpisie.

czytaj dalej...


Blockchain czyli sposób na zabezpieczenie danych

Przez ostatnie miesiące omawiałem różne techniki kryptograficzne. Nadeszła pora aby pokazać w praktyce ich ciekawe zastosowania. Już w tytule zdradziłem o czym będzie poniższy wpis. Zacznę od blockchain czyli łańcucha bloków. Blockchain kojarzy się głównie z Bitcoinem oraz innymi kryptowalutami, ale to mechanizm, który pozwala również realizować inne interesujące pomysły. Umożliwia on zabezpieczenie danych poprzez budowanie rozproszonego, integralnego rejestru wykorzystującego między innymi funkcje skrótu oraz podpisy cyfrowe.

czytaj dalej...


Podpis cyfrowy

Jednym z mechanizmów uwierzytelnienia jaki opisałem wcześniej są kody uwierzytelniające wiadomość w skrócie nazywane MAC. Przyszła pora na przedstawienie innego typu algorytmów, które umożliwiają realizację tej usługi. Będą to podpisy cyfrowe realizowane przez algorytmy asymetryczne (ang. asymmetric algorithms). W algorytmach tych występuje para kluczy. Dotychczas zajmowaliśmy się wyłącznie algorytmami symetrycznymi, w których występował wyłącznie klucz tajny.

czytaj dalej...


Tryby działania szyfrów blokowych

Symetryczne szyfry blokowe szyfrują wiadomości o określonej długości, która jest charakterystyczna dla wybranego algorytmu (np. 16 bajtów dla algorytmu AES, 8 bajtów dla algorytmu 3DES). Nazywamy je blokami. Jeśli blok jest zbyt krótki do przetworzenia przez algorytm kryptograficzny należy użyć dopełnienia (ang. padding). Jeśli wiadomość jest zbyt długa rozwiązaniem będzie podzielenie jej na bloki o odpowiedniej długości. Tryb działania (ang. mode of operation) szyfru blokowego to różne techniki łączenia bloków podczas operacji szyfrowania. Nazywane są również trybem pracy szyfru blokowego lub potocznie trybem szyfrowania. W poniższym wpisie przedstawię dwa z nich: tryb elektronicznej książki kodowej (ang. electronic code book, ECB) oraz tryb wiązania bloków szyfrogramu (ang. cipher block chaining, CBC). Oba tryby opisane zostały w standardzie FIPS 81.

czytaj dalej...


Szyfrowanie danych

Dotychczas zajmowałem się realizacją usług integralności oraz uwierzytelnienia przesłanych danych. Najwyższy czas zająć się tajnością, czyli takim ich zabezpieczeniem, aby nie były możliwe do odczytania przez osoby do tego nieuprawnione. Jest to cel usługi zwanej poufnością, a algorytmy które ją realizują nazywane są szyframi (ang. cipher). W poniższym wpisie przedstawię jeden z ich typów. Będą to symetryczne szyfry blokowe.

czytaj dalej...


Zaskakujące sytuacje podczas szkoleń

Podczas szkoleń może zdarzyć się wszystko. Mimo to, trener nie powinien z góry zakładać, że będzie to coś niemiłego i stresującego. Większość warsztatów jakie prowadziłem przebiegła zgodnie z planem i bez większych niespodzianek. Większość to jednak nie wszystkie. Poniżej opisałem kilka sytuacji, które zdarzyły i zdarzają mi się podczas szkoleń. Niektóre z nich tak często, że nie są już dla mnie zaskoczeniem, choć niewątpliwie nim były, kiedy spotkały mnie po raz pierwszy.

czytaj dalej...


Uwierzytelnianie wiadomości

W poprzednim wpisie dotyczącym integralności pojawił się problem sprawdzenia, czy wiadomość pochodzi z oryginalnego źródła. Innymi słowy, czy została wysłana przez podmiot, który traktujemy jako zaufany. Aby to stwierdzić musimy zastosować uwierzytelnianie (ang. authentication), które jest procesem polegającym na upewnieniu się, że deklarowana cecha danego podmiotu jest prawdziwa. W kryptografii realizowane jest ono między innymi przez mechanizm podpisu cyfrowego oraz kodu uwierzytelniania wiadomości (ang. message authentication code, MAC). Poniższy wpis omawia dokładniej drugą z tych technik.

czytaj dalej...


Skracamy, czyli integralność w praktyce

Usługa integralności (ang. integrity) jest jedną z czterech podstawowych usług ochrony informacji. Realizuje funkcję, która polega na zapewnieniu, że przetwarzana informacja nie została w żaden sposób zmieniona. Zmiana taka może być przypadkowa (błąd podczas transmisji) jak i celowa (zmiana przez atakującego). Do zapewnienia integralności danych stosuje się kryptograficzne funkcje skrótu (ang. cryptographic hash function).

czytaj dalej...


Podstawowe usługi ochrony informacji

W dzisiejszych czasach składnikiem niemalże każdego systemu informatycznego jest jego architektura bezpieczeństwa. Powinna się ona rozwijać od początku projektowania systemu i stanowić z nim integralną całość. W przeciwnym wypadku często okazuje się, że w już działającym systemie trudno wprowadzić zabezpieczenia bez naruszania fundamentów jego architektury. Z moich obserwacji wynika, że umiejętność zrozumienia i poprawnego określenia co i w jaki sposób chcemy chronić jest niezbędna, aby tworzone rozwiązanie nie zmieniło się w kryptograficznego potworka nad którym po kilku tygodniach nikt nie panuje. Tematem tego wpisu są techniki zabezpieczania informacji pokazane od podszewki, czyli od strony podstawowych usług, które realizują ten cel.

czytaj dalej...