STANDARD SZYFROWANIA DANYCH (DES)

Jednym z opublikowanych i szeroko stosowanym przykładem systemu szyfrowania Feistal jest Data Encryption Standard (DES). Używa to zwykle klucza o długości co najmniej 56 bitów. Daje to prawie 1017 możliwości, które atakujący musiałby spróbować w ataku brute force. Dobrze zaprogramowany komputer ogólnego przeznaczenia w dzisiejszej technologii zajęłoby około stu lat, aby przetestować każdą możliwość. Podwojenie długości klucza do 128 bitów wydłuża czas szyfrowania o tę samą kolejność, ale sprawia, że ​​atak brute force jest 1020 razy dłuższy. Wymagałoby to imponująco dużej mocy obliczeniowej, gdyby został zaatakowany przy użyciu jednego konwencjonalnego komputera, ale uważaj, istnieją inne sposoby na zrobienie tego. Jedna z propozycji przewiduje bardzo dużą populację patriotycznych chałupników i poziom niezbyt drogiej, ale szeroko rozpowszechnionej technologii. Pojawienie się nadawania satelitarnego w Chinach zasugerowało szczególną technikę i nazwę chińska loteria. Atakujący przechwycił łącze i przesłał sygnał na satelitarnym kanale nadawczym do wielu milionów domów, z których każdy wyposażony jest w telewizor i dekoder satelitarny w postaci dekodera. Ten ostatni jest zasadniczo zmodyfikowanym komputerem i można go po prostu dalej zmodyfikować, aby umożliwić włączenie algorytmu kryptograficznego. Klucze wybrane losowo przez każde gospodarstwo domowe są testowane, aby sprawdzić, czy na ekranie telewizora pojawia się znaczący komunikat. Jedna z wielu milionów prób wkrótce zakończy się sukcesem. Okazało się, że jeden z najwcześniejszych udanych ataków na zaszyfrowaną wiadomość przy użyciu tej techniki został dokonany nie dzięki wielkiemu aktowi patriotycznej solidarności, ale dzięki ochotniczej sile 14 000 internautów, z których jednemu udało się znaleźć 56-bitowy klucz. Poprzedni sukces z użyciem 3500 komputerów osobistych złamał 48-bitowy klucz w 13 dni. Poważne implikacje są takie, że ataki oparte na przetwarzaniu równoległym zawsze będą stanowić zagrożenie dla wszelkich technik szyfrowania. Oszacowano, że kosztujące mniej niż milion dolarów maszyny specjalnego przeznaczenia, które przeprowadzają dużą liczbę równoległych ataków na 56-bitowy DES, mogą osiągnąć sukces w ciągu kilku godzin. To mieści się w granicach bezpieczeństwa rządu wielu narodów (i prawdopodobnie kilku globalnych syndykatów przestępczych). Istnieje również ciągła teoria spiskowa, według której DES zawiera słabość, która została celowo wprowadzona przez Agencję Bezpieczeństwa Narodowego, ale pomimo wielu prób czołowych ekspertów sprzeciwiających się „ingerencji” rządu, nie opublikowano żadnych sukcesów, a historia musi być traktowana z pewnym sceptycyzmem. Zaproponowano inne ataki, które wykorzystują ataki z tekstem jawnym, w których atakującemu udaje się albo skłonić nadawcę do zakodowania wybranych przez niego wiadomości, albo po prostu użyć wiadomości, których tekst jawny jest znany. Jeden z przykładów tego ostatniego z powodzeniem odzyskał klucz w ciągu 50 dni przy użyciu 12 stacji roboczych, ale wymagało to 243 znanych tekstów jawnych, a zatem prawdopodobnie nie jest praktyczne.

OPCJE BLOKOWANIA I STRUMIENIOWANIA DLA SYSTEMÓW SZYFROWYCH

Podany powyżej opis szyfru Feistela sugeruje, że dane muszą istnieć w blokach o określonej wielkości, współmiernej do wielkości klucza. W rzeczywistości nie jest to wymóg; możliwe jest wykorzystanie zasady Feistela do generowania szyfrowania na każdym pojedynczym bicie danych wejściowych. W przykładzie omówionego wcześniej liniowego schematu szyfrowania rejestru przesuwnego, Rysunek pokazuje rejestr przesuwny działający w trybie sprzężenia zwrotnego, w którym rejestr generuje strumień danych pseudolosowych, który jest OR’d z danymi jawnego tekstu.

Możemy zrobić dokładnie to samo z szyframi Feistela, torując pole zmiany kolejności sekwencją początkową, pozwalając mu zaszyfrować to za pomocą klucza i w ten sposób wytwarzając zestaw bitów wyjściowych, z których niektóre można ORAZ z danymi do być zaszyfrowane. Bity wyjściowe z pola zmiany kolejności można następnie przesłać z powrotem do skrzynki, aby wygenerować nową sekwencję. Istnieje również kilka sposobów na zaimplementowanie podstawowego szyfrowania blokowego szyfru Feistela. Na przykład możliwe jest LUB poprzednie wyjście zaszyfrowanego tekstu z bieżącym blokiem. Ma to tę zaletę, że atakującemu trudniej jest wykorzystać powtarzające się bloki identycznych danych. Jednak, jak wszystkie odmiany, ma również wady. Musimy pamiętać, że atakujący mogą teoretycznie wstrzykiwać własne wiadomości w celu zainicjowania znanego ataku tekstowego lub mogą wprowadzić błędy, które mogą rozprzestrzeniać się na kilka bloków danych, czyniąc system bezużytecznym, a uprawnione strony mogą chcieć cofnąć do niepewnej alternatywy.

SZYFRY BLOKOWE

Alternatywą dla szyfrów strumieniowych są szyfry blokowe, które operują na bloku danych o ustalonej liczbie bitów w celu uzyskania równoważnego, zaszyfrowanego wyjścia. Zamiast generować oddzielny strumień bitów pseudolosowych i łączyć je z tekstem jawnym, szyfry blokowe często wykonują operacje „szyfrowania” na samych danych w postaci zwykłego tekstu, zmieniając kolejność bitów w bloku i łącząc je z innymi bitami, na przykład za pomocą funkcji OR . Alternatywnie, możemy po prostu wziąć duży blok danych i zaszyfrować kolejność bitów, zgodnie z pewnym wzorem permutacji, znanym nadawcy i odbiorcy, ale ponownie utrzymywanym w tajemnicy przed innymi. Kilka przykładów opiera się na szyfrach Feistela, które wielokrotnie przekazują tekst przez tę samą funkcję szyfrującą. Blok danych w postaci zwykłego tekstu jest podzielony na pół. Połowa danych jest obsługiwana przez funkcję F, która dokonuje zmiany kolejności (tasowania) bitów w bloku, zgodnie z „podkluczem” (SK1). Wynik ponownego uporządkowania jest następnie „LUB” z niepoddaną obróbce połową. Połówki są następnie zamieniane i ta sama funkcja zmiany kolejności została zastosowana do drugiej połowy. Należy zauważyć, że funkcja zmiany kolejności jest nadal taka sama, ale jej wpływ na dane może być inny, ponieważ jest kontrolowany przez nowy podklucz (SK2). Proces można powtarzać w kółko. Szyfry Feistela są wygodne do odszyfrowania, ponieważ proces szyfrowania jest po prostu odwrócony, stosując podklucze w odwrotnej kolejności. Funkcje zmiany kolejności są tak dobrane, że ich szczegółowe działanie na danych jest trudne do odszyfrowania bez znajomości podkluczy. W ten sposób funkcje ponownego porządkowania mogą być upublicznione.

NIE IDEALNE, ALE PRAKTYCZNE

Oczywiście potrzebujemy bardziej praktycznego rozwiązania. Osiąga się to poprzez poświęcenie doskonałego bezpieczeństwa na rzecz znacznie krótszego klucza i bardziej złożonego krypto. Istnieje wiele sposobów na osiągnięcie tego. Niektóre opierają się na zasadzie generowania liczb, które wydają się losowe, które są następnie używane zasadniczo w taki sam sposób, jak klawisze jednorazowego bloku. Inne tasują (permutują) dane w wiadomości w kolejności opartej na pozornie losowym kluczu. Bardzo prostym przykładem tego pierwszego (który jest bardzo ubogi pod względem kryptograficznym) jest rejestr przesuwny z liniowym sprzężeniem zwrotnym. Rejestr przesuwny umożliwia sekwencyjne przesuwanie wzorców bitowych od lewej do prawej. W pokazanym urządzeniu niektóre z tych bitów są również odczepiane i przekazywane przez zamknięte przełączniki (2, 5 i n) do urządzenia funkcyjnego „LUB”. Funkcja LUB wykonuje serię operacji dodawania połowy (0 + 0 = 1 , 0 + 1 = 1 , 1 + 1 = 0) na danych, tak że parzysta liczba jedynek da odpowiedź 0, a nieparzysta number da 1. Odpowiedź brzmi ‘OR’d’ z pierwszym bitem tekstu jawnego, tym samym szyfrując go. Odpowiedź jest również „sprzężenie zwrotne” do lewej komórki rejestru przesuwnego po tym, jak wszystkie inne bity w niej przesunęły się o jedno miejsce w prawo. To jest przykład szyfru strumieniowego: strumień pseudolosowych bitów jest generowany przez krypto i dodawany bit po bicie do kolejnych bitów zwykłego tekstu. Możliwe jest wykazanie, że prawowici odbiorcy danych mogą je odszyfrować za pomocą podobnego urządzenia, pod warunkiem, że wiedzą, które przełączniki są zamknięte i sekwencję startową (w tym przypadku 110100). „Krypto” składa się z przesunięcia rejestru i generatora funkcji (w tym przypadku funkcja OR). Należy założyć, że atakujący może mieć przynajmniej pewną wiedzę na temat liczby stopni w rejestrze przesuwnym i natury generatora funkcji. Jedynym zabezpieczeniem, jakie można założyć, jest zabezpieczenie zawarte w kluczu. W tym urządzeniu klucz składa się z dwóch elementów: sekwencji startowej i ustawień przełącznika. Muszą one być wymieniane między nadawcą a odbiorcą za pomocą bezpiecznego kanału (na przykład zaufanego posłańca) i utrzymywane w tajemnicy, dopóki nie będzie można użyć nowego zestawu. Praktyczne systemy wykorzystują funkcje inne niż pojedynczy rejestr przesuwny ze sprzężeniem zwrotnym i prostą funkcją OR. Podczas gdy pojedynczy rejestr przesuwny zapewnia pewne bezpieczeństwo, gdy atakujący nie ma wiedzy o treści wiadomości, jest bardzo słaby, gdy część tekstu jest znana lub można ją odgadnąć. (Na przykład wiele liter zaczyna się „Szanowny Panie”, zawiera datę lub kończy się równie konwencjonalnie.) W tym przypadku można wykazać, że system zawsze może zostać uszkodzony, mając mniej niż 10N kolejnych bitów tekstu jawnego, gdzie N to liczba etapów w  rejestrze przesuwnym. Należy z tego wyciągnąć dwa ważne punkty: po pierwsze, systemy kryptograficzne muszą brać pod uwagę zarówno praktyczność, jak i teorię, a w szczególności możliwość, że atakujący zaczyna mieć więcej niż zerową wiedzę. Po drugie, krytycznym czynnikiem projektowym jest stosunek wysiłku atakującego do wymaganego przez uprawnionych użytkowników. To, co musimy osiągnąć, to przedstawienie atakującemu stopnia trudności, który rośnie szybciej niż jakikolwiek wzrost złożoności krypto. Nie jest to prawdą w przypadku rejestru przesuwnego, gdzie złożoność systemu i jego podatność na ataki rosną „liniowo”, to znaczy z N. Chcielibyśmy, aby system, którego złożoność można było zwiększyć o N, z wynikający z tego wzrost trudności ataku o (przynajmniej) NM, gdzie M jest pewną dużą liczbą. Niektóre praktyczne alternatywy oferujące lepsze zabezpieczenia obejmują kaskady rejestrów przesuwnych, których tryby działania oddziałują na siebie. Na przykład możemy wykorzystać wyjście jednego rejestru do sterowania zegarem sterującym następnym; to znaczy sprawić, by poruszał się na więcej niż jednej zmianie na raz.

SZYFRY „DOSKONAŁE”

pierwszy rygorystycznie przeanalizowany podczas ostatniej wojny, w szczególności przez Claude’a Shannona z Bell Laboratories. Kiedy spotykamy się z tymi badaniami po raz pierwszy, może nas zaskoczyć, że nie były one skoncentrowane na tworzeniu coraz silniejszych szyfrów. W rzeczywistości głównym postępem, jaki dokonał Shannon, było udowodnienie, że chociaż istniał „doskonały” szyfr (w tym sensie, że nie można go złamać, pod warunkiem, że był wspierany przez silną implementację), w większości przypadków to wdrożenie byłoby niewykonalne. Ten doskonały szyfr znany jest pod różnymi nazwami, ale najczęściej jako jednorazowy pad. Według okazjonalnych doniesień publicznych, znajduje co najmniej jedno praktyczne zastosowanie – jako środek komunikacji między szpiegami a ich kontrolerami. Oto, koncepcyjnie, jak to jest używane:

Litery wiadomości (tekst jawny) są najpierw zamieniane na liczby: A = 1, B = 2 i tak dalej.

Więc; Sekretariat

staje się 19 5 3 18 5 20

Agent szyfrujący posiada zestaw stron zawierających listy liczb z zakresu od 1 do 26, które zostały wygenerowane losowo: 21, 3, 13, 19, 5, 7 itd. Te z kolei są dodawane do liczb odpowiadających do tekstu jawnego. Jeśli suma przekracza 26, odejmuje się 26. Daje to zaszyfrowany tekst:

19 5 3 18 5 20

plus 21 3 13 19 5 7 daje

szyfrogram =14 8 16 11 10 27

Jeśli liczby zostały naprawdę wygenerowane losowo, nie ma możliwości, aby urządzenie przechwytujące mogło wrócić do tekstu jawnego. Jeśli jednak prawowity odbiorca ma kopię liczb losowych i wie, gdzie się zaczynają, łatwo jest je odjąć od zaszyfrowanego tekstu (a następnie dodać 26, jeśli wynik jest ujemny), aby wrócić do tekstu jawnego:

szyfrogram 14 8 16 11 10 27

minus 21 3 13 19 5 7 daje

tekst jawny 19 5 3 18 5 20

czyli SE C R E T

„Klucz” metody składa się z określonych liczb na podkładce; „krypto” to po prostu operacja dodania klucza do wiadomości. Chociaż jest to najbezpieczniejszy z możliwych system, jednorazowy pad ma poważny problem: rozmiar pada musi być taki sam, jak całkowita liczba znaków we wszystkich wiadomościach, które chcesz wysłać. Nie jest dobrym pomysłem ponowne użycie zestawu liczb: atakujący może połączyć inteligentne zgadywanie z dość prostymi statystykami, aby skutecznie złamać szyfr. To może nie być problem, gdy wiadomości, które chcemy wysłać, są krótkie i rzadkie. Kontroler i szpieg mogą prawdopodobnie umawiać się na wystarczająco częste spotkania, aby przekazać nowe jednorazowe podkładki. Jeśli jednak chcemy zapewnić wygodny mechanizm płatności międzybankowych, obejmujący miliony transakcji tygodniowo, trudno wyobrazić sobie wysyłanie kurierów po całym świecie z ryzami jednorazowych bloczków. Albo rozważmy przypadek próby zaszyfrowania programu telewizyjnego, aby mogli go oglądać tylko opłaceni widzowie: potrzebowalibyśmy jednorazowych padów zapewniających każdemu abonentowi telewizyjnemu kilka megabitów na sekundę.

PODSTAWOWE ZASADY KRYPTOGRAFII W e-BIZNESIE

Ochrona dostępu i wyjścia z prywatnych systemów komputerowych na rozległy obszar to tylko jeden aspekt bezpieczeństwa systemu. Dane muszą być również jak najbardziej odporne na korupcję. Zwykłym sposobem na to jest stworzenie procesu bezpieczeństwa, który opiera się na algorytmach szyfrowania. Ponownie zwracamy uwagę, ponieważ nie można tego robić zbyt często, że musimy dokonać rozróżnienia między implementacjami a algorytmami. Algorytm szyfrowania to wyrażenie matematyczne opisujące, na przykład, w jaki sposób ma zostać zaszyfrowana część danych (i odszyfrowana, jeśli metoda jest inna). Wdrożenie dotyczy tego, jak ma się to odbywać w rzeczywistości. Może to odbywać się za pomocą oprogramowania, sprzętu lub ręcznie i obejmuje rozważenie sieci lub innego systemu używanego do przesyłania tajnych kluczy i sposobu organizacji umów między użytkownikami. Należy zauważyć, że bezpieczeństwo zależy zarówno od algorytmu, jak i implementacji. Na rysunku przedstawiamy podstawowe elementy procesu szyfrowania i leżące u jego podstaw algorytmy, które są wspólne dla większości aplikacji, niezależnie od tego, czy służą one do utrzymywania tajemnic, przesyłania pieniędzy, udowadniania, że ​​jesteś tym, za kogo się podajesz, itp.

System jest napędzany przez algorytm, który w pewien sposób chroni transakcję poprzez zastosowanie pewnej uprzywilejowanej wiedzy, posiadanej przez jedną lub obie strony transakcji. Ta wiedza może być tajnym hasłem lub może po prostu oznaczać, że obie strony znają się nawzajem z widzenia i dlatego mogą prowadzić swoją działalność za pośrednictwem łącza wideo. Zawsze istnieją pewne elementy sprzętowe i/lub programowe sprzętu zabezpieczającego, które przechowują i obsługują algorytmy zapewniające bezpieczeństwo – w przytoczonym przykładzie kamery wideo, monitory i łącza transmisyjne. Częściej pojawią się maszyny kryptograficzne, które będą kodować wiadomości, aby zapobiec podsłuchiwaniu lub manipulacji. W tym przypadku są one konwencjonalnie nazywane kryptowalutami. Ostatnim elementem systemu jest bezpieczny kanał. Obejmuje to pewien zestaw procesów i technologii, które umożliwiają pełną i niezawodną wymianę informacji uprzywilejowanych między obiema stronami. Prostym przykładem może być wymiana kluczy używanych do konfiguracji algorytmów szyfrowania i deszyfrowania w celu bezpiecznej transmisji wiadomości. Może to być nawet wymiana zdjęć legalnych uczestników w naszym przykładzie konferencji. Nawiasem mówiąc, czasami twierdzi się, że systemy bezpieczeństwa, takie jak szyfrowanie kluczem publicznym, sprawiają, że nie jest już konieczne zapewnienie bezpiecznego kanału. O tym, czy jest to dokładnie poprawne, omówimy później.

OCHRONA WIRTUALNYCH SIECI PRYWATNYCH Z WYKORZYSTANIEM TUNELI ZAPORA OGNIOWYCH

W przypadku operacji typu business-to-business sytuacja może być czasami inna: obie strony mogą sobie ufać i chcieć robić interesy przez Internet, zachowując jednak między sobą bezpieczny kanał. W takim przypadku zapory można skonfigurować tak, aby zapewniały wirtualną sieć prywatną przy użyciu techniki znanej jako tunelowanie. Tunel zapewnia bezpieczny kanał między wewnętrznie prywatnymi sieciami każdej firmy

Wykorzystuje to jeden z ograniczonej liczby bezpiecznych protokołów tunelowania, takich jak protokół IPSec, który umożliwia hermetyzację pakietu IP w bezpiecznej otoczce. Zostanie to omówione później, po rozważeniu niektórych technik szyfrowania, które są używane w jego implementacji.

BEZPIECZEŃSTWO PRZEZ SERWER PROXY („HOST BASTION”)

Zamiast zezwalać zewnętrznym, potencjalnie złośliwym komputerom klienckim na bezpośrednią komunikację z serwerami i klientami w sieci firmowej, czasami lepiej jest skierować je do innego serwera proxy lub hosta bastionu. Host bastionu (rysunek 2.9) to po prostu standardowy komputer, niekoniecznie szczególnie wydajny (na przykład 486-DX66 z zaledwie 16 MB pamięci), który działa jako bariera między światem zewnętrznym a bezpieczną siecią wewnętrzną

Posiada dwie karty sieciowe i dwa adresy IP. Serwer otrzymuje żądania ze świata zewnętrznego, ale musi następnie poprosić klienta o zweryfikowanie przekazania żądania do bezpiecznej aplikacji. Żadne pakiety IP nie przechodzą bezpośrednio. Prawidłowo skonfigurowany zapewnia wysoki stopień bezpieczeństwa. Można go również skonfigurować do przechowywania rejestru przechodzących wiadomości, ustanawiając w ten sposób pełną ścieżkę audytu do monitorowania bezpieczeństwa online lub offline. Bastiony są szczególnie dobre do implementacji bram aplikacji, ponieważ możliwe jest przeprowadzanie złożonych kontroli zawartości wiadomości, które przez nie przechodzą, na przykład w celu uniknięcia wirusów e-mail. Jedno podejście, SOCKS, opracowane przez Internet Engineering Task Force (IETF), zapewnia standardowy sposób zezwalania bezpiecznym aplikacjom na działanie przez zaporę. Każda taka aplikacja wymaga poddania się procesowi skarpetkowania. Pierwotnie oznaczało to, że aplikacja musiała zostać ponownie skompilowana i połączona z zestawem funkcji bibliotecznych SOCKS. Było to skomplikowane i czasochłonne. Ostatnio, biblioteki dołączane dynamicznie, które działają w czasie wykonywania, usunęły ten problem, przynajmniej w przypadku aplikacji Windows. Wciąż jednak toczy się debata na temat tego, czy SOCKS są konieczne i/lub pożądane w dłuższej perspektywie.

FILTRY PAKIETOWE

Możemy mieć dowolną liczbę i tak złożonych sieci wewnętrznych, jak tylko chcemy, ale wszystkie łączą się ze światem zewnętrznym za pomocą jednej pary filtrów, jednego do sprawdzania pakietów wychodzących i jednego do sprawdzania pakietów przychodzących. Filtry są konwencjonalnymi routerami wzbogaconymi o możliwość sprawdzenia adresów każdego pojedynczego pakietu. Administrator systemu (który musi być kimś, komu można ufać – problem sam w sobie) tworzy tabelę dla każdego filtra, z którą ma się sprawdzać, aby zobaczyć, czy przekazanie pakietu jest w porządku. Jeśli pojawią się zabronione adresy, są one odrzucane, a administracja powiadamiana. Za pomocą bramy usługowej można również przeprowadzić filtrowanie, nie tylko na poziomie pakietów, ale także według określonej zawartości i celów przesyłanych danych .

Na przykład można ustawić bezpłatny tranzyt poczty e-mail między siecią firmową a światem zewnętrznym, ale zablokować każdą inną usługę. Jedną z najczęstszych filtracji selektywnych jest przepuszczanie pakietów zawierających żądanie HTTP (tj. do pobrania strony internetowej), ale nie pakietów FTP (które żądają dostępu do plików). Jednak, jak widzieliśmy wcześniej, samo wprowadzenie filtra pakietów niekoniecznie jest wystarczające do zapewnienia bezpieczeństwa. W każdym razie istnieją pewne problemy operacyjne z zaporami filtrującymi pakiety: po pierwsze, ponieważ po prostu używa się routera, który jest skonfigurowany do odrzucania pakietów, które nie są zgodne z jego akceptowalną listą, często nie ma możliwości zbierania dzienników na tym, co dotarło do routera. Oznacza to, że może być trudno uświadomić sobie, że ktoś został zaatakowany; podobnie, nie jest łatwo wykryć odrzucenie ludzi, którym wolałbyś przepuścić. Trudne jest również skonfigurowanie uprawnień dla specjalnych użytkowników, aby umożliwić przesyłanie ich wiadomości e-mail lub dla techników terenowych z bezpiecznie zidentyfikowanymi terminalami, aby mogli zdalnie wchodzić do systemu plików.

ZAPORY

Planując obronę przed atakiem, najlepszą rzeczą do zrobienia jest poleganie na wypróbowanej i przetestowanej zasadzie bezpieczeństwa polegającej na zmniejszeniu liczby punktów dostępu, a następnie rygorystycznym patrolowaniu tych punktów. To jest zasada „firewalla”. Każde wejście do wewnętrznej sieci korporacyjnej z domeny publicznej (w praktyce najczęściej połączenie z Internetem) odbywa się przez firewall, który sprawdza ruch w celu określenia, czy i na jakich warunkach należy go zezwolić. Zasadniczo istnieją dwa różne typy firewalli: te, które działają jako filtry pakietów i te, które są serwerami proxy lub hostami bastionowymi, jak są również nazywane. Mogą być używane osobno lub razem. Mogą pobierać dane na podstawowym poziomie pakietów lub działać jako filtry aplikacji, odmawiając przekazywania danych przeznaczonych dla konkretnych aplikacji lub usług.