Artykuły dotyczące tematu: RSA

dodany: 12.03.2013 | tagi: , ,

Klucz publiczny RSA – jak to działa?

2

Większość kryptografii klucza publicznego oparta jest na trudności matematycznej. Równania matematyczne wykorzystywane do tworzenia kluczy publicznych są tak skomplikowane, że nawet jeśli ktoś z ciekawości spojrzał na strony Wikipedii na temat niektórych sposobów szyfrowania, to z pewnością przewraca mu się oczach, w głowie się kręci i nie do końca wie na co patrzy. Postaramy się wyjaśnić w możliwie przystępny sposób w  jak działają takie algorytmy.

 

Przyjrzyjmy się RSA

Nazwa algorytmu wzięła się od pierwszych liter nazwisk twórców – Rona Rivesta, Adi Shamira i Leonarda Adlemana. Opublikowany został w 1977 roku i jest powszechnie używany do dzisiaj. RSA składa się z trzech części:

  • generowania klucza,
  • szyfrowania,
  • i deszyfrowania.

W pierwszym etapie tworzona jest para kluczy – prywatny i publiczny.

Druga część zajmuje się zwykłą wiadomością – używa klucza publicznego odbiorcy i tworzy zaszyfrowaną treść.

Deszyfrowanie zaczyna się od dostarczenia szyfru, następnie używany jest klucz prywatny odbiorcy i uzyskujemy pierwotną wiadomość. Każdy z tych etapów zawiera w sobie trochę problemów matematycznych.

 

Generowanie klucza

Na potrzeby tego przykładu nasz klucz publiczny będzie zawierał dwie wartości: N i E. Klucz prywatny będzie składał się z liczb: N i D. Zabawa z generowaniem klucza zaczyna się od wybrania dwóch różnych liczb pierwszych. Dla ułatwienia naszych obliczeń weźmiemy małe liczby: P=11 i Q=17. (Siła takich algorytmów opiera się na odpowiednio dużych liczbach pierwszych, których odgadnięcie nie będzie zbyt proste).

Teraz musimy policzyć wartość N. Nic trudnego – wystarczy przemnożyć P i Q:

 

N = P*Q

N = 11*17 = 187

 

Dalej do wyliczenia jest funkcja φ (funkcja Eulera) – przypisuje ona każdej liczbie naturalnej ilość liczb względnie z nią pierwszych, nie większych od niej samej. W naszym przypadku sprowadza się to do wzoru (P-1)*(Q-1).

 

φ(N) = (P − 1)(Q − 1)

φ(N) = (11 − 1)(17 − 1)

φ(N) = 160

 

Jako E musimy wybrać liczbę, która pochodzi z przedziału 1 < E < 160 i jest względnie pierwsza do 160. Czyli – liczba E musi spełniać dwa warunki – być większa od 1, ale mniejsza od naszego φ(N) oraz być względnie pierwsza względem 160. Liczba względnie pierwsza to taka, że największy wspólny dzielnik (NWD) z φ(N) i E musi być równy 1.

Spróbujmy z 23. Spełnia pierwszy warunek – jest większa od 1 i jednocześnie mniejsza od 160. A co z drugim? Jedynym dzielnikiem 23 i 160 jest 1, więc są to liczby względnie pierwsze. W takim razie:

 

E = 23

 

Ostatnią wartością, którą musimy wyliczyć jest D. Do wyliczenia tej liczby musimy znaleźć 23-1 = D(mod 160), co jest tym samym co 23D = 1 mod(160). W takim razie potrzebna nam liczba (D), która po przemnożeniu przez 23 i modulo 160 da resztę 1. Najłatwiejszy sposób to po prostu sprawdzanie od zera póki nie otrzymamy odpowiedniej liczby. Są lepsze sposoby na znajdywanie takich liczb, ale są dużo bardziej skomplikowane. Odpowiednią liczbą u nas jest 7.

 

D*23 (mod 160) = 1

7 * 23 = 161

161 mod 160 = 1

D = 7

 

Koniec pierwszej części – mamy nasz klucz publiczny – liczby N i E, oraz klucz prywatny
– N i D.

 

Szyfrowanie

Zakończyliśmy generowanie kluczy. Teraz mamy wszystkie elementy potrzebne do szyfrowania i deszyfrowania wiadomości. W RSA ten proces opiera się na podniesieniu do potęgi i wykonaniu operacji modulo. Jak to wygląda?

 

C = B^E (mod N)

 

Ta funkcja może wyglądać przerażająco na pierwszy rzut oka, ale nie jest wcale taka trudna. Zaczynamy od liczby B i podnosimy ją do potęgi E, następnie liczymy resztę z dzielenia przez N. Wracając do naszego przykładu – naszą wiadomością do zaszyfrowania będzie 42. W takim razie mamy M=42. Wynikiem tego etapu będzie C – nasz szyfr. Nasza funkcja szyfrująca wygląda tak:

 

C = M^E (mod N)

 

Teraz wystarczy tylko podstawić nasze wartości z przykładu i otrzymamy:

 

C = 42^23 (mod 187)

C=168

 

Deszyfrowanie

Teraz mamy zaszyfrowaną wiadomość. Jak się z nią obchodzić? Dokładnie tak samo, jak w przypadku szyfrowania, tylko używamy innych liczb – teraz potrzeba nam klucza prywatnego:

 

M = C^D (mod n)

 

Po podstawieniu wartości:

 

M = 168^7 (mod 187)

M= 42

 

I mamy naszą oryginalną wiadomość. Całkiem ciekawa, prawda?

 

Jak wspomnieliśmy wcześniej – systemy kryptografii klucza publicznego opierają się na matematycznej trudności w celu zapewnienia bezpieczeństwa. Taką trudnością w przypadku algorytmu RSA jest rozkładanie na czynniki pierwsze dużych liczb. Bierze się to stąd, że dużą liczbą jest N. Ciężko znaleźć czynniki, które przemnożone przez siebie dają ogromną liczbę. A przynajmniej tak długo, jak nie znamy klucza prywatnego odbiorcy. Co jest ważne odnotowania – w praktyce liczby są o wiele większe niż te zastosowane jako przykład w artykule. Przeważnie klucze mają od 1024 do 4096 bitów długości – wtedy obliczenia są dużo trudniejsze i większe niż te pokazane wyżej. Jako przykład trudności złamania takich kluczy można podać, że w 2009 roku po prawie 2 latach przy pomocy setek komputerów otrzymało 232-cyfrową liczbę (768 bitów).

dodany: 19.10.2012 | tagi: , ,

Trojan Citadel uzbrojony w nową funkcję

0

Twórcy osławionego trojana Citadel nie zasypiają gruszek w popiele i poddają go kolejnym innowacjom. Tym razem dodając funkcję mającą na celu pomoc botmasterom  w sprawniejszej interakcji z ofiarami.

Zbudowany z kodu źródłowego Zeusa trojan, a właściwie jego październikowe wydanie v1.3.4.1 „Rain Edition” kosztuje bagatela 3 400 $. Takie sumy przynajmniej podaje oddział bezpieczeństwa RSA w EMC. Nowa wersja została wzbogacona o uproszczony interfejs do pomieszczenia nowych użytkowników i zmniejszenia ilości pracy przez pracowników wspierających Citadel. Ale ważniejsze jest to, że najnowsza wersja złośliwego oprogramowania została uzbrojona w nową funkcję, zwaną „Dynamic Config”, która umożliwia botmasterom szybsze interakcje z zainfekowanymi ofiarami w postaci technologii zastrzyku dla przeglądarki.

 „Ta sprytna funkcja pozwala operatorom trojanów stworzyć zastrzyki internetowe i korzystać z nich na bieżąco, spychając je do wybranych robotów bez konieczności pchania / pobierania całego nowego pliku konfiguracyjnego. Maszyny zainfekowane Citadel będą poinstruowane do dotarcia do C & C co dwie minuty i aktualizowania się z predefiniowanego pliku, gdzie wtryskiwane „opakowania” będą gotowe do pracy.  Cały system będzie zarządzany przez sprytny mechanizm dystrybucyjny, który dyktuje który wtrysk ma iść do którego botu lub grupy botów”

– wyjaśniła Limor Kessem, ekspert wywiadu cybernetycznego w RSA.

Mechanizm nie będzie usuwał pliku konfiguracyjnego czy wcześniej podanych zastrzyków dzięki czemu botmaster będzie mógł zdecydować czy używać obu symultanicznie. Jeśli wstrzyknięcie w zwykły config ma już nowszą wersję, to będzie ona używana.

Nowy mechanizm jest zaprojektowany w modelu Citadel Fraud-as-a-Service. Botmasterzy będą mogli przyznać nieograniczony dostęp do wynajęcia pomocy. Do liczby  pięciu programistów w czarnych kapeluszach (na admina) będą przyznane kombinacje nazw użytkownika i hasła do własnej sekcji w panelu administracyjnym. Sprzedający wtryski mogą utworzyć i zapisać swoją pracę, dostawać wynagrodzenie za wykonaną pracę i pracę z wieloma botmasterami, czyli FaaS w swojej najlepszej i najpełniejszej odsłonie…

dodany: 09.10.2012 | tagi: , , ,

Domniemany geniusz z „Project Blitzkrieg” zdemaskowany

0

W zeszłym tygodniu RSA, Dział Bezpieczeństwa firmy EMC ujawnił, że internetowy gang rekrutuje ok. 100 botmasterów do planowanego ataku trojana przeciwko 30 amerykańskim bankom.

Brian Krebs od tamtego czasu próbował zdemaskować geniusza stojącego za całym planem – rosyjskiego hakera zwanego vorVzakone.

Nazwa przekłada się na „thief-in-law”, co jest elitą kryminalną w postsowieckim świecie zorganizowanej przestępczości.

Krebs zamieścił w Internecie własnoręcznie przetłumaczoną wersję wiadomości rekrutującej, w której vorVzakone oferuje wejście w deal o łącznej wartości 400$, jeśli wniosą w akcję swoje serwery i boty.

W wiadomości haker przechwala się, że od 2008 roku trojan zarobił dla  tylko jednego zespołu 5 milionów dolarów z fałszywych przelewów bankowych. Analiza wiadomości łączy ją z mało znanym podobnym do Gozi trojanem, który RSA nazwało „Gozi Prinimalka, od rosyjskiego słowa oznaczającego ‚odebrać’.

RSA dowiedziało się, że słowo „Prinimalka” jest używane od kilku lat jako nazwa folderu w każdej ścieżce URL podanej przez gang na jego serwerach crimeware. Podziemne pogaduszki doprowadziły RSA do wniosku, że gang wdroży trojana za pomocą man-in-the-middle, manualnej sesji ataków, które powodują fałszywe przelewy.

Analiza RSA pozwoliła również znaleźć kilka cech, które wyróżniają ten atak od jego poprzedników, w tym powodzi telefonicznej do zablokowania próby weryfikacji niezwykłych przelewów internetowych przez bank. Jedną z cech jest moduł synchronizacji maszyny wirtualnej na maszynie botmastera, która będzie rzekomo duplikatem ustawień komputera ofiary, w tym jej strefy czasowej, rozdzielczości ekranu, plików cookie, typu i wersji przeglądarki i identyfikatorów produktów software’owych.  Rachunki ofiar będą więc dostępne za pośrednictwem połączeniem proxy SOCKS zainstalowanym na zainfekowanych komputerach ofiar, co umożliwi podjęcie prawdziwego adresu IP przez sklonowany system, podczas uzyskiwania dostępu do bankowości internetowej na stronie banku.

Kolejną cechą jest korzystanie z VoIP phone-flood w celu odcięcia posiadaczy rachunków od odbierania  połączeń lub wiadomości tekstowych z potwierdzeniem wykonania dziwnego przelewu.

Poza polityczną wrogością, jednym z powodów skierowania ataku na amerykański bank jest to, że wszystkie one mają dwuskładnikowe uwierzytelnianie, co jest w Stanach rzadkością. W wiadomości mózg całej operacji napisał, że dwuskładnikowe uwierzytelnianie nie jest należycie zabezpieczane, ponieważ jest rzadkością w USA.

Pytanie, czy taki geniusz istnieje naprawdę?

Krebs ma mieszane uczucia, podejrzewa, że to może być osoba podstawiona w celu oszukania wszystkich przez rosyjskich kryminalistów.

Krebs cytuje rosyjskiego eksperta, który pomagał mu w rozszyfrowaniu wiadomości od vorVzakone:

Język tego faceta i jego postawa dilera narkotyków z rogu ulicy czy mięśniaka z nocnego klubu nie sprawiają, że mógłby wiedzieć czym jest „backconnect socks” czy „GeoIP”. 

Ale, jak wiadomo, książki nie ocenia się po jej okładce.