Poznawać. Pytać. Myśleć dalej.
feuerbach.info
Firewalls · feuerbach.info

Asymetryczne punkty
końcowe komunikacji.

Teoria i praktyka AKE: pełny dotychczasowy tekst techniczny z ilustracjami, prezentacją i oryginalnym pakietem demonstracyjnym proof of concept.

Stan źródła: 14 listopada 2026 r.

Artykuł Heinricha T. Feuerbacha

Wersje angielska i polska są tłumaczeniami niemieckiego oryginału. Pobrane dokumenty i ilustracje zachowują oryginalne języki; dla dwóch diagramów wykorzystano istniejące wersje angielskie.

Spis treści artykułu · 35
  1. Teoria i praktyka asymetrycznych punktów końcowych komunikacji
  2. Część pierwsza.
  3. Wprowadzenie
  4. Dlaczego teoria?
  5. Wprowadzenie klasyfikacji ataków na komputery
  6. Stojąc na dwóch nogach
  7. Dalsze konsekwencje asymetrii dla korzystania z komputerów oraz przykłady
  8. Część druga.
  9. Model laboratoryjny jako praktyczny dowód możliwości wdrożenia oraz przykład realizacji za pomocą tradycyjnych, dostępnych w handlu środków.
  10. Warunki licencji i użytkowania:
  11. Ograniczenia:
  12. Autor: Heinrich Theodor Feuerbach
  13. Miejsce: Warszawa, Polska
  14. Data rozpoczęcia tej wersji dokumentu: 7 sierpnia 2019 r.
  15. Wersja 1.3
  16. Uwaga: od 1 sierpnia 2020 r. cały pakiet oprogramowania, a także sprzęt są objęte GPL v.3.
  17. Ogólny opis przedmiotu patentu:
  18. Podsumowanie i korzyści dla użytkowników w porównaniu z obecnymi rozwiązaniami zabezpieczającymi dostęp do Internetu:
  19. Zasady techniczne stosowane w wynalazku i ich elementy:
  20. Poziomy bezpieczeństwa komputerów uczestniczących w AKE:
  21. Czerwony, balun: A3
  22. Żółty, odbiornik: A3+C1
  23. Zielony, nadajnik: B3
  24. Budowa AKE według warstw ISO-OSI
  25. Warstwa 1, warstwa fizyczna, obecnie dodatkowo „warstwa fundamentowa”:
  26. Warstwa 2:
  27. Warstwa 3:
  28. Warstwa 4:
  29. Warstwa 5: zob. warstwa 7.
  30. Warstwa 6: zob. warstwa 7.
  31. Warstwa 7:
  32. Warstwa 8:
  33. Przebieg przeglądania stron WWW:
  34. Przebieg opisanej wyżej komunikacji w warstwie 4:
  35. Macierz ataków służąca usystematyzowaniu wszystkich dróg i celów ataku:

Informacja o ochronie danych Informacje o wydawcy

Teoria i praktyka asymetrycznych punktów końcowych komunikacji

Autor: Heinrich T. Feuerbach, od lutego 2019 r. email: info@feuerbach.info

Prawa autorskie należą do autora. Do swobodnego wykorzystania w artykułach Wikipedii. Uwaga: ważna informacja dotycząca licencjonowania. Jak opisano poniżej, 1 sierpnia 2020 r. objąłem zarówno sprzęt, jak i oprogramowanie AKE licencją GPL w wersji 3.0. Wszystkie pozostałe informacje o licencji dotyczące AKE są tym samym nieważne. Pełny tekst GPL v.3.0 znajduje się pod adresem https://www.gnu.org/licenses/gpl-3.0.html . Aby przejść do wersji angielskiej, kliknij tutaj Prezentacja przeglądowa ACE (.pdf) w języku angielskim

Część pierwsza.

Wprowadzenie

Artykuł ten przedstawia najpierw teoretyczne podstawy asymetrycznej komunikacji w sieciach takich jak Internet oraz jej zalety w zakresie bezpieczeństwa danych. W drugiej części następuje opis jednego z możliwych sposobów realizacji asymetrycznie komunikującego się systemu komputerowego przy użyciu konwencjonalnych środków (Ethernet, komputery PC). Służy to praktycznemu wykazaniu możliwości implementacji. Niezależnie bowiem od tego, jak oczywiste są korzyści dla bezpieczeństwa wynikające z asymetrycznego działania komputera, trzeba wykazać, że zwykłe protokoły, takie jak HTTP(S), FTP, Ping, SMTP itd., mogą działać również w warunkach ściśle asymetrycznych. Nie jest to bynajmniej trywialne, gdyż należy znaleźć metodę o ogólnym zastosowaniu, wymagającą możliwie niewielu zmian w istniejącym stosie protokołów i protokołach aplikacyjnych. Wykazałem to w wersji 0.1, czyli w "Proof of Concept". Zarówno protokół Ping, jak i protokół najczęściej obecnie wykorzystywany przez użytkowników końcowych, HTTP, względnie jego szyfrowana odmiana HTTPS, są w nim zaimplementowane w sposób stabilny. Uściślenie: "asymetryczna komunikacja w sieciach" nie oznacza różnej przepustowości łączy internetowych przy wysyłaniu i pobieraniu danych. Chodzi tu raczej o fizyczne rozdzielenie funkcji nadawania i odbioru w komputerze klienckim w celu uzyskania określonych fizycznych korzyści dla bezpieczeństwa. Nie chodzi również o proste diody danych, które, na przykład poprzez połączenia optyczne, zapewniają jednokierunkowość komunikacji, a więc ograniczają ją albo do nadawania, albo do odbioru. Pozostając przy elektrotechnicznym porównaniu z diodami danych, w przypadku AKE należałoby raczej mówić o prostowniku mostkowym, ponieważ AKE obsługuje oba kierunki komunikacji. Przedstawiam tu strukturę ramową, czyli "framework", która co do zasady pozwala stosować w warunkach asymetrycznych dowolne protokoły komunikujące się dotychczas wyłącznie symetrycznie. Na przykładzie ważnego protokołu warstwy 3, programu Ping, oraz najczęściej stosowanego protokołu warstwy 7, HTTP(S), pokazuję, że protokoły mogą działać również w warunkach ściśle asymetrycznych, a także w jaki sposób. Na końcu tej strony udostępniam do pobrania kody źródłowe i instrukcje instalacji umożliwiające zbudowanie modelu demonstracyjnego opartego na trzech laptopach.

Dlaczego teoria?

Zajmując się pytaniem, jak najlepiej zrealizować asymetryczny punkt końcowy sieci, wkrótce stwierdziłem, że asymetria pociąga za sobą cały szereg konsekwencji dla przechowywania i przetwarzania danych. Dotyczy to przede wszystkim koniecznego odtąd rozróżnienia źródeł i odbiorników danych, umiejscowienia AKE w modelu ISO-OSI, rozróżnienia danych własnych i obcych, przejścia od szeregowego do równoległego przechowywania danych oraz wielu innych szczegółów. Uświadomiły mi one, że asymetria wymaga bardzo podstawowego namysłu nad tym nowym rodzajem przetwarzania danych, aby uzyskać możliwie kompleksowe bezpieczeństwo danych i uniknąć ewentualnych luk. Chodzi tu także o zastosowania, czyli o to, czy i jak można w warunkach asymetrycznych realizować powszechne obecnie i codziennie używane aplikacje komputerowe, takie jak przetwarzanie danych wspomagane serwerem, przeglądanie stron internetowych, a także aktywne korzystanie z sieci, na przykład bankowość internetową itd. Narzędziem, które uważam za bardzo przydatne przy wyjaśnianiu poziomów bezpieczeństwa komputerów w ogóle, jest macierz bezpieczeństwa, będąca niejako produktem ubocznym mojej pracy nad AKE. Ponieważ AKE ma zapewniać ochronę przed dowolnymi atakami na dane i przetwarzające je procesy, konieczna jest również jednoznaczna klasyfikacja możliwych dróg i celów ataków. W przeciwnym razie porównanie systemów pod względem bezpieczeństwa jest niemal niemożliwe. Dlatego podkreślam również, że opisany tutaj w części praktycznej oraz w archiwum tar na końcu strony model AKE w wersji 0.1 zapewnia "bezpieczeństwo przed wszystkimi atakami inicjowanymi i przeprowadzanymi przez Internet", aby zaznaczyć, że ochrona także przed atakami "wbudowanymi", na przykład służącymi szpiegostwu danych, wymaga jeszcze więcej. Przedstawiana przeze mnie teoria umożliwia również taką ochronę, co do zasady pełną ochronę systemów przetwarzających dane (C3). Poniżej zarysowuję, jak taki system mógłby być zbudowany; ważnym aspektem jest tutaj wymiarowość instalacji przetwarzającej dane. Aspekt ten stanowi kolejny rezultat przedstawionej tu teorii. We wszystkich rozważaniach dotyczących bezpieczeństwa danych szczególnie istotne było dla mnie rozróżnienie między bezpieczeństwem jedynie względnym a bezpieczeństwem absolutnym. Podczas gdy względne bezpieczeństwo danych pozwala jedynie oszacować poziom bezpieczeństwa i dlatego nie może dawać żadnych gwarancji bezpieczeństwa danych, absolutne bezpieczeństwo danych może udzielić takiej gwarancji z matematyczną pewnością. Jako wprowadzenie do tematu polecam tę prezentację: Prezentacja przeglądowa ACE (.pdf)

Systemy komputerowe połączone w sieć są coraz szerzej stosowane, a programy i sprzęt stają się coraz wydajniejsze, ale cóż z tego, jeśli przechowywane na nich dane nie są chronione przed odczytem przez osoby postronne? Jeśli mogą również zostać niezauważalnie zmodyfikowane albo cały system może zostać sabotowany tak, że nie będzie się już nadawał do użytku? Asymetryczny punkt końcowy komunikacji, czyli "AKE", zapewnia techniczne podstawy do systematycznego rozwiązania tych trzech problemów, niezależnie od scenariuszy zastosowania. Artykuł ten dotyczy przy tym komputerów użytkowników końcowych, a więc rynku masowego, nie zaś dużych przemysłowych systemów automatyzacji, takich jak systemy IIoT.

AKE jest systemem komputerowym składającym się nie z jednego, lecz z dwóch komputerów, które wspólnie tworzą punkt końcowy sieci. Jeden z tych dwóch systemów służy wówczas wyłącznie do nadawania do Internetu lub innych sieci wybranych przez użytkownika. Drugi system służy jedynie do odbioru z tej samej sieci. "Asymetria" odnosi się więc do rozdzielenia funkcji "nadawania" i "odbioru". Dla użytkownika AKE system ten pozostaje oczywiście przejrzysty i jawi się jako pojedynczy komputer połączony z siecią w tradycyjny, symetryczny sposób.

Taki system jest fizycznie zabezpieczony przed wszelkimi atakami inicjowanymi z zewnętrznej, znanej sieci, takiej jak Internet, i przeprowadzanymi również za jej pośrednictwem. Ochrona ta jest zatem niezależna nawet od używanego oprogramowania aplikacyjnego. Utrzymywanie tego wysokiego poziomu bezpieczeństwa nie wymaga już aktualizacji ani podobnych działań. Żadne ataki inicjowane i przeprowadzane za pośrednictwem znanej użytkownikowi sieci, takiej jak Internet, nie mogą być już skuteczne wobec AKE. Dotyczy to ataków polegających na szpiegostwie danych, manipulacji danymi i sabotażu. Jedynym warunkiem jest przechowywanie wszystkich danych wymagających ochrony co najmniej na nadajniku, a jeszcze lepiej synchronicznie na obu urządzeniach, nadajniku i odbiorniku, jednocześnie. Rozróżnienie sieci znanych i nieznanych oraz jego znaczenie omówiono poniżej we wprowadzeniu do macierzy bezpieczeństwa.

Urządzenie nadające i urządzenie odbierające tworzą w AKE wspólnie "zieloną stronę", czyli stronę bezpieczną w odniesieniu do wszelkiego rodzaju ataków z Internetu. Pod względem poziomu bezpieczeństwa umieszczam kolor zielony pomiędzy "niebieskim", oznaczającym sieci odizolowane, takie jak izolowane sieci LAN zawierające na przykład szczególnie wrażliwe obszary produkcji, a "czerwonym", oznaczającym tradycyjne komputery połączone z Internetem symetrycznie, czyli jednocześnie nadające i odbierające (symetryczne punkty końcowe komunikacji, SKE). W dalszych ilustracjach sam komputer nadający będę oznaczał kolorem "zielonym", a komputer odbierający kolorem "żółtym" i tak też będę je nazywał w tekście. Zieleń i żółć tworzą zatem wspólnie "zieloną stronę" całej wewnętrznej sieci AKE.

AKE można wykorzystywać uniwersalnie: zarówno do programów sieciowych, takich jak przeglądanie stron, poczta elektroniczna, przesyłanie plików itd., jak i całkowicie lokalnie do programów niezależnych od sieci. Przedstawione poniżej praktyczne rozwiązanie umożliwiające realizację AKE stanowi strukturę ramową, na której co do zasady można asymetrycznie uruchamiać dowolne protokoły aplikacyjne. Najpierw następuje dygresja służąca stworzeniu odpowiedniej podstawy do dalszego omówienia poziomów bezpieczeństwa w AKE.

Wprowadzenie klasyfikacji ataków na komputery

Aby określić stopień bezpieczeństwa systemu komputerowego i móc porównywać ze sobą różne systemy (na przykład symetryczne/asymetryczne, połączone z siecią/niepołączone z siecią), trzeba najpierw umieć sklasyfikować wszystkie rodzaje ataków na nie.

Oznacza to, że każdy dowolny, indywidualny atak musi znaleźć swoje miejsce w klasyfikacji, a więc dać się do niej przyporządkować i umieścić w odpowiednich zależnościach.

W tym celu opracowałem "macierz ataków" składającą się z dziewięciu pól głównych, dodatkowo podzielonych na dalsze podpola. Każdy dowolny znany atak na system komputerowy, a także każdy możliwy atak, który da się wyobrazić w przyszłości, można do niej przyporządkować.

Obrońca będzie dążył do możliwie pełnego zabezpieczenia, czyli pokrycia ochroną, wszystkich dziewięciu pól. Napastnik najprawdopodobniej zaatakuje tam, gdzie ochrona jest najsłabsza, pole najtrudniejsze do zabezpieczenia, a widoczność najmniejsza.

Pola mogą być chronione zarówno absolutnie, jak i jedynie względnie (co wyraża się procentowo). Absolutne zabezpieczenie pola oznacza, że napastnik nigdy nie może odnieść sukcesu. Jest to możliwe tylko wtedy, gdy zastosowano zabezpieczenie dające się dowieść, na przykład fizyczne. Wszystkie inne środki mogą zapewniać ochronę jedynie na poziomie oszacowanej wartości procentowej.

AKE może absolutnie zabezpieczyć obszary B3 (nadajnik) oraz (A3+C1) (odbiornik) w odniesieniu do znanych sieci. W przypadku odbiornika obszar A3 znanych sieci byłby przy tym zabezpieczony przez umieszczoną przed nim zaporę sieciową ("FW").

Macierz ataków lub bezpieczeństwa systemów komputerowych

Rys. 1, macierz ataków lub bezpieczeństwa systemów komputerowych

Objaśnienia do rys. 1:

Macierz ataków składa się z dziewięciu pól głównych o dwóch wymiarach: dróg ataków i celów ataków. Pola te są dodatkowo podzielone, przede wszystkim na sieci znane i nieznane.

Kolorystyka grafiki nie ma nic wspólnego z opisaną wcześniej kolorystyką sieci i jest od niej niezależna. Kolory grafiki dobrałem tak, aby odpowiadały potencjalnemu zagrożeniu związanemu z danym polem: zieleń oznacza mniejsze niebezpieczeństwo, czerwień największe zagrożenie i największą trudność obrony. Jasność kolorów, zwiększająca się ku górze diagramu, ma pokazywać widoczność ataku na odpowiadające mu pole: im jaśniejszy kolor, tym łatwiej użytkownikowi zauważyć atak.

Z przypadkiem sieci znanej mamy do czynienia, gdy ktoś w kontrolowany sposób łączy komputer, niezależnie od tego, czy jest on symetryczny, czy asymetryczny, z Internetem. Połączenie to jest wówczas pożądane i użytkownik może je w każdej chwili usunąć.

Z przypadkiem sieci nieznanej mamy do czynienia, gdy ktoś ustanawia połączenie, na przykład z Internetem, o którym właściciel komputera lub sieci nie wie i którego z tego względu również nie chce. Może to nastąpić na przykład przez telefon komórkowy z możliwością transmisji danych podłączony do komputera, należącej do niego sieci LAN albo urządzenia sieciowego, tworzący tym samym nieznane połączenie sieciowe, przez które dane mogą odpływać lub napływać. Ten napływ lub odpływ danych znajduje się wówczas poza kontrolą użytkownika, względnie właściciela systemu komputerowego lub sieci.

Do tej kategorii należy również nieekranowany monitor komputera, gdy emituje elektromagnetycznie dane obrazu do najbliższego otoczenia, podobnie jak nieekranowany kabel klawiatury, nieekranowane kable sieciowe itd.

Dalszy podział występuje w kolumnie "C", obejmując pola dotyczące sprzętu, systemu operacyjnego i programów aplikacyjnych. Odpowiada to różnym obszarom, w których złośliwe oprogramowanie, niezależnie od celu jego działania, może być wbudowane w komputer już podczas produkcji lub po dostawie itd., a więc może istnieć również bez jakiegokolwiek połączenia sieciowego.

Na koniec wprowadzono jeszcze podział na obszary powyżej i poniżej linii widoczności, "SL". Ataki bezpośrednio widoczne lub odczuwalne dla użytkownika znajdują się powyżej SL, a wszystkie ataki niewidoczne lub niewidoczne od razu — poniżej SL. SL odpowiada zatem "linii wodnej": im głębiej poniżej linii wodnej, tym trudniej rozpoznać atak. Niestety w wielu przypadkach jedynie ataki sabotażowe są dla użytkownika bezpośrednio i natychmiast rozpoznawalne.

Za pomocą oznaczeń złożonych z cyfr rzymskich (I i II), liter i znaków minus można jednoznacznie nazwać i odróżnić każde pole. Dodatkowo można uwzględnić cechę położenia "powyżej" lub "poniżej" SL.

Jeśli chcemy nazwać obszar obejmujący kilka pól głównych, podajemy nazwę pola położonego najbardziej na prawo i najwyżej w danym obszarze. Pojedyncze pola nazywa się "polem Xn".

Można również połączyć kilka obszarów pól znakiem plus, na przykład (A3+C1).

Wspólnym obszarem macierzy ataków, który zarówno nadajnik, jak i odbiornik mogą zabezpieczyć za pomocą AKE wyłącznie dzięki asymetrii, jest "L" złożone z A3 i B1. Wszystkie pozostałe pola może zabezpieczyć albo tylko nadajnik (do B3), albo tylko odbiornik (do C1); wynika z tego, że sama asymetria jako środek ochrony zapewnia "jedynie" pokrycie A3 i B1, z uwzględnieniem bezpieczeństwa A3 zapewnianego przez poprzedzającą zaporę FW, dla zielonej strony, czyli łącznie dla zieleni i żółci.

Linie podziału w polach C2 i C3 są przerywane, ponieważ znaczenie połączeń sieciowych jest tutaj ograniczone: atak na C2 może przynieść skutek nawet całkowicie bez sieci, gdyż oznacza manipulację danymi przez wbudowane złośliwe oprogramowanie. Jeśli znajduje się ono już w danym systemie komputerowym, sieć nie jest już potrzebna do wywołania skutku; jeśli jednak nie ma go jeszcze w danym systemie, połączenie sieciowe jest z kolei konieczne, aby mogło rozprzestrzenić się na inne komputery. W przeciwnym razie może działać tylko lokalnie. To samo dotyczy zaimplementowanego, względnie wbudowanego oprogramowania sabotażowego, czyli pola C3.

Teraz każdy pojedynczy atak można jednoznacznie przyporządkować do jednego z pól.

Obrońca powinien próbować zabezpieczyć wszystkie pola, szczególnie te położone niżej.

Im bardziej na prawo znajduje się pole, tym trudniej je zabezpieczyć. Im niżej, tym trudniej wykryć atak, a zatem mu zapobiec; dlatego najbardziej problematycznym polem dla obrońcy jest C1.

Przykłady ataków na poszczególne pola:

Kolumna A, bezpośrednie ataki przez sieci: w przypadku sieci znanych są one możliwe wobec punktu końcowego tylko wtedy, gdy nie umieszczono przed nim zapory sieciowej (FW). W przypadku sieci nieznanych poprzedzającej zapory FW raczej nie będzie, dlatego to te drogi ataku są bardziej prawdopodobne. Może to nastąpić na przykład przez nieznany dostęp Wi-Fi, kabel USB podłączony do jednego z komputerów znajdujących się w sieci LAN itd. W grę wchodzi również nieznana komunikacja ultradźwiękowa, często występująca w różnych aplikacjach telefonicznych w postaci trojanów.

Możliwości tworzenia nieznanych sieci jest bardzo wiele; każde urządzenie podsłuchowe przymocowane pod stołem konferencyjnym stanowi taką nieznaną sieć. Do ataku mogą być również wykorzystywane podczerwień, sieć energetyczna itd. Różne środki ekranowania pozwalają temu zapobiegać, a na przykład czujniki pozwalają to wykrywać.

W kolumnie "B" mamy już do czynienia z atakami znacznie trudniejszymi do zwalczania, ponieważ pochodzą one od wewnątrz, pośrednio przez sieć. Przykładami są trojany, które "łapie się" przez załączniki do wiadomości e-mail. Gdy odbiorca otworzy taki załącznik, trojan (pole B1) niezauważalnie dla zaatakowanego zbiera dane w postaci jawnej, takie jak hasła, wiadomości e-mail itd. Następnie, w przypadku symetrycznego połączenia sieciowego, wysyła je przez Internet do napastnika. Innym przykładem jest zdalne sterowanie: trojan zawiera serwer, dzięki któremu napastnik może w każdej chwili na żywo obserwować zawartość ekranu, bez wiedzy użytkownika. Pole B2 może oznaczać, że trojan bez wiedzy użytkownika usuwa lub zmienia pliki. Jeżeli nie służy to żadnemu głębszemu celowi poza uszkodzeniem, jest to już atak na pole B3, czyli sabotaż; jeżeli jednak dane są zmieniane w celu osiągnięcia czegoś takiego jak manipulacja ich treścią, jest to atak na pole B2.

Najtrudniejsze do obrony są pola kolumny "C", ponieważ atak zachodzi tu niezależnie od otoczenia, czyli sieci, i dlatego nie jest również wykrywalny w sieci.

Przykłady ataków typu "C": program wbudowany w BIOS płyty głównej komputera, który odczytuje naciśnięcia klawiszy i wysyła je bezpośrednio przez sieć do z góry określonego serwera w Internecie, skąd dane są odbierane. Nawet ponowna instalacja systemu operacyjnego nic tutaj nie da, ponieważ nie wpływa ona na BIOS. Podobnie w każdym systemie operacyjnym może być wbudowane złośliwe oprogramowanie służące szpiegostwu, manipulacji lub sabotażowi. Programy aplikacyjne również często zawierają takie złośliwe oprogramowanie lub trojany.

W obronie przed atakami na kolumnę "C" pomaga stosowanie wyłącznie zaufanego, przetestowanego sprzętu i oprogramowania, otwartego sprzętu i otwartego oprogramowania, programów kompilowanych z kodu źródłowego oraz testowanie komputerów pod kątem wysyłania danych także bez działania użytkownika.

Do nieznanych sieci zaliczają się również nieznane, czyli niepożądane przez użytkownika protokoły komunikacji, nawet jeśli działają one w fizycznie znanej sieci. W warstwie 1 dane mogą być na przykład przesyłane praktycznie obok zwykłych protokołów, bez zauważenia tego choćby przez zaporę FW. Takie ataki w warstwie 1 odpowiadają "przelatywaniu poniżej radaru" zapór FW.

Wymiary bezpieczeństwa IT i możliwość fizycznej obrony

Trzy kolumny A, B i C, a więc ataki bezpośrednie, pośrednie i zaimplementowane, można traktować jako trzy wymiary bezpieczeństwa IT. Aby zapewnić absolutną obronę przed tymi wymiarami ataków, przynajmniej dla odpowiednich pól dotyczących znanych sieci, można również zastosować odpowiadającą im wymiarowość AKE. Do obrony przed atakami bezpośrednimi wystarcza bowiem konstrukcja jednowymiarowa: zapora sieciowa umieszczona przed komputerem, który komunikuje się symetrycznie, a więc nadaje i odbiera w jednym urządzeniu. Jeśli jednak chcemy odpierać także drugi wymiar, kolumnę B, czyli ataki pośrednie, musimy zbudować również komputer dwuwymiarowy. Tak jest w przypadku opisanego tutaj komputera AKE, ponieważ trzy "punkty" — nadajnik, odbiornik i balun — tworzą płaszczyznę, a więc dwa wymiary. Nie pozwala to jednak jeszcze odpierać ataków z kolumny C, czyli ataków zaimplementowanych, już obecnych w systemie. W tym celu musimy odpowiednio zbudować komputer o trzech wymiarach: poprzez zdublowanie nadajnika (przy niezmienionej pozostałej strukturze sieci). W ten sposób pojawia się "wysokość". Zdublowanie nadajnika pozwala nam bowiem teraz porównywać dwa nadajniki: bezpieczeństwo C1 nadajnika uzyskujemy, porównując ruch danych na przewodach obu nadajników biegnących w kierunku baluna. Jeśli ruch danych jest identyczny, nadawanie jest zgodne z wolą użytkownika. Jeśli jednak jeden z obu nadajników nadaje "samodzielnie", mamy do czynienia z wbudowanym atakiem szpiegowskim. Aby uzyskać bezpieczeństwo C2 nadajnika, możemy porównywać własne dane/pliki na obu nadajnikach: jeśli są różne, występuje wbudowany atak manipulacyjny na te dane. Regularne, automatyczne porównywanie oparte na sumach kontrolnych pozwala ustalić, na którym z obu nadajników doszło do manipulacji. Dwa nadajniki umożliwiają również jeszcze bezpieczniejsze przechowywanie danych w postaci kolejnej, równoległej kopii zapasowej, tak jak w układzie nadajnik/odbiornik. Dla ochrony C3 nadajnika można dodatkowo porównywać procesy w obu nadajnikach. Taki trójwymiarowy system komputerowy/AKE pozwala zatem fizycznie zabezpieczyć wszystkie trzy wymiary ataków i natychmiast wykrywać ataki na nie.

AKE

Dwuwymiarowy AKE umożliwia fizyczne, całkowite zabezpieczenie komputerów połączonych z siecią przed szpiegostwem, manipulacją danymi i sabotażem inicjowanymi i przeprowadzanymi przez Internet. Taki system opisano w części praktycznej niniejszego artykułu. Sama asymetria dwuwymiarowego AKE nie zapewniałaby jednak jeszcze ochrony przed atakami już wbudowanymi w sprzęt i oprogramowanie, a więc na przykład przed złośliwym oprogramowaniem dowolnego rodzaju wbudowanym w BIOS, system operacyjny czy aplikacje. Do tego potrzebny byłby trójwymiarowy AKE. W walce z tym bardzo trudnym do zwalczania rodzajem ataków na systemy komputerowe, zarówno połączone z siecią, jak i odizolowane, pomagają sprawdzanie kodów źródłowych programów, otwarte oprogramowanie, otwarty sprzęt, programy kompilowane z kodu źródłowego oraz testowanie systemów pod kątem tego, czy coś wysyłają, mimo że użytkownik tego nie zainicjował ani nie chciał. Pomóc mogą również umowy z producentami stwierdzające, że w sprzęcie/oprogramowaniu nie mogą występować nieudokumentowane funkcje (kary umowne). Monitorowanie tras transportu i logistyki ma tu szczególne znaczenie dla zapobiegania manipulacjom w sprzęcie i oprogramowaniu.

Techniczne bezpieczeństwo AKE wobec ataków przez znane sieci jest trwałe. Ochrona ta jest również niezależna od definicji wirusów, sygnatur ataków sieciowych stosowanych zwykle w systemach IDS/IPS itd.

Jedynym warunkiem jest trwałe zaimplementowanie asymetrii w taki sposób, aby napastnik nie mógł jej obejść ani przełamać za pośrednictwem sieci.

Najpierw proste wyjaśnienie, dlaczego AKE jest fizycznie zabezpieczony przed szpiegostwem realizowanym przez sieć i przez nią inicjowanym oraz dlaczego napastnik znajdujący się gdzieś w Internecie nie może obejść tej ochrony: jak już wspomniano, AKE ma osobny komputer fizycznie przeznaczony wyłącznie do nadawania do Internetu oraz drugi, fizycznie oddzielony od pierwszego, przeznaczony wyłącznie do odbioru z Internetu.

Nadajnik może wówczas nadawać do Internetu, ale nie może z niego niczego odbierać; nie może zatem również otrzymywać z Internetu ataków szpiegowskich (ani innych ataków), które mogłyby skłonić go do wysłania przechowywanych na nim danych. To samo dotyczy ataków polegających na manipulacji danymi i sabotażu inicjowanych przez Internet.

Odbiornik może natomiast podczas przeglądania stron itd. pobrać z Internetu oprogramowanie szpiegowskie, ale nie może już następnie odesłać do Internetu zebranych danych, takich jak hasła, teksty itd.

Fizycznie bezpieczne oddzielenie nadajnika od odbiornika jest więc metodą zapewnienia całkowitej ochrony przed szpiegostwem w odniesieniu do tych ataków szpiegowskich, które są zarówno inicjowane, jak i przeprowadzane przez Internet. Prawdopodobnie obejmuje to większość dzisiejszego szpiegostwa internetowego i szpiegostwa danych (tak zwanego hackingu), a więc szpiegostwo przemysłowe, a także szpiegowanie pojedynczych osób, takich jak decydenci. Tak jak sprzęt AKE składa się z nadajnika i odbiornika, również działające na nim oprogramowanie musi odpowiednio mieć wariant nadawczy i odbiorczy.

Tradycyjny punkt końcowy komunikacji ("czerwony") komunikuje się w sieci symetrycznie: na przykład pojedynczy komputer PC może zarówno odbierać z Internetu, jak i do niego nadawać. Tym samym zamknięcie obwodu przepływu danych (od nadawcy do odbiorcy i z powrotem do pierwotnego nadawcy) następuje już na poziomie aplikacji, czyli w warstwie 7 modelu ISO/OSI. (Model ISO-OSI został zapoczątkowany od 1983 r. przez ITU, a od 1984 r. był współtworzony przez ISO). Aplikacja może więc wysyłać i odbierać dane bez interakcji z użytkownikiem, a zatem bez jakiejkolwiek wiedzy użytkownika. Przeglądarka może przesyłać do Internetu dane dotyczące użytkownika oraz dane utworzone przez użytkownika, na przykład przez protokół HTTP (hasła itd.). Co do zasady to samo mogą robić również wszystkie inne programy na tym samym komputerze PC lub urządzeniu końcowym. Użytkownik obsługujący aplikacje nie jest w stanie temu zapobiec; zapory sieciowe (FW) zatrzymują tylko to, co samodzielnie żąda dostępu z zewnątrz do wewnątrz (do komputera PC), ale nie to, co przepływa z wewnątrz na zewnątrz. Skąd bowiem zapora FW miałaby wiedzieć, a więc móc zdecydować, które transmisje z wnętrza są "dobre" lub "pożądane", a które nie?

Również pytanie użytkownika, czy aplikacji, która właśnie próbuje nadawać, wolno to zrobić, nie jest praktyczne, bo jak często użytkownik musiałby to potwierdzać? I skąd użytkownik miałby zawsze wiedzieć, co aplikacja xy chce w danej chwili wysłać i dokąd? A także czy jest to uzasadnione, czy nie?

Taką "ochronę" można również bardzo łatwo obejść, przemycając obok pożądanych danych także inne, bez wiedzy użytkownika.

Przyczyną tego dylematu jest to, że "obwód przepływu danych" (jako analogia do elektroniki) może zostać zamknięty już poniżej poziomu użytkownika, mianowicie w warstwie 7, podobnie jak w przypadku serwera, gdzie oczywiste jest, że odpowiedzi na zapytania muszą następować automatycznie i natychmiast, choćby ze względów wydajnościowych, bez udziału człowieka.

Ale jak jest z klientami? Które przecież mają być obsługiwane wyłącznie przez ludzi? Tutaj można i należy pozostawić użytkownikowi kontrolę nad tym, kiedy i czy obwód przepływu danych zostanie zamknięty oraz w jakim celu.

Ważnym aspektem AKE jest ich niewidoczność w sieci: ponieważ odbiornik nie może nadawać, napastnik nie może również otrzymać od niego żadnej odpowiedzi. Nigdy nie zareaguje on więc na przykład na "Ping" z zewnątrz. Dotyczy to tylko zielonej strony AKE; czerwona strona nadal będzie mogła odpowiedzieć na Ping.

Sam nadajnik nie jest już wówczas osiągalny przez sieć, a zatem nie można go też z zewnątrz skłonić do zrobienia czegoś niepożądanego.

AKE nie można zatem również zdalnie sterować, przynajmniej nie bez świadomego udziału użytkownika.

Pośrednia ochrona przed atakami DDoS Ponieważ AKE nie może być zdalnie sterowany, jest również najlepszym środkiem przeciw atakom DDoS — czyli rozproszonym atakom sabotażowym, które skłaniają wiele przejętych wcześniej komputerów do jednoczesnego masowego wysyłania zapytań na określone adresy serwerów, aby doprowadzić serwery lub klientów do zatrzymania działania — pod warunkiem że wszyscy użytkownicy korzystaliby do dostępu do Internetu wyłącznie z urządzeń AKE.

Stojąc na dwóch nogach

Jak opisano powyżej, w AKE istnieje wyraźny podział między danymi tworzonymi samodzielnie przez użytkownika a danymi tworzonymi przez inne osoby poza tym samym AKE. Własne dane są tworzone na Zielonym, aby można je było również wysyłać. Gdyby wszyscy użytkownicy korzystali wyłącznie z AKE, wszystkie dane znajdowałyby się przynajmniej na jednym Zielonym urządzeniu gdzieś w sieci i byłyby dzięki temu globalnie chronione przed napastnikami, a zatem przed wszystkimi atakami inicjowanymi przez sieć. Dane te można byłoby więc zawsze odtworzyć z ich oryginału na jednym z Zielonych urządzeń ich twórcy. Zapobiegałoby to mieszaniu danych utworzonych samodzielnie, objętych własnymi prawami autorskimi, z danymi utworzonymi przez innych użytkowników, objętymi cudzymi prawami autorskimi. AKE umożliwiałby zatem również lepszą ochronę danych przed naruszeniami praw autorskich. Przykładem byłoby korzystanie z poczty elektronicznej za pomocą AKE, przy którym przekazywanie wiadomości dalej jest blokowane i może odbywać się jedynie pośrednio, za pośrednictwem pierwotnego nadawcy. Wymusza to dystrybucję danych punkt–wiele punktów zamiast dotychczasowej dystrybucji punkt–wiele punktów–wiele punktów. W przeciwieństwie do symetrycznych „punktów końcowych” (SKE) w sieci, z AKE stoi się, można powiedzieć, na dwóch nogach, a nie tylko na jednej. Ten podział na źródło i ujście danych ma oczywiście konsekwencje dla sposobu pracy z komputerami.

Dalsze konsekwencje asymetrii dla korzystania z komputerów oraz przykłady

Jedną z konsekwencji pracy z AKE jest to, że współpraca za pośrednictwem poczty elektronicznej i programów działających po stronie serwera musi przebiegać nieco inaczej niż w przypadku SKE. W AKE nie można przekazywać wiadomości e-mail dalej, ponieważ dane nigdy nie mogą przedostawać się z odbiornika do nadajnika, ani przez sieć, ani ręcznie. Otrzymanej wiadomości nie wolno więc po prostu przenieść na nadajnik i stamtąd wysłać innym uczestnikom korespondencji. Można jednak łatwo wysłać nadawcy wiadomość z prośbą o przesłanie tej samej wiadomości kolejnym odbiorcom. Ma to również tę zaletę z punktu widzenia ochrony danych, że wymaga poszanowania praw autorskich: pierwotny nadawca wiadomości zachowuje bowiem kontrolę nad tym, do kogo jego wiadomość jest wysyłana.

AKE rozszerza model warstwowy ISO/OSI o warstwę 8

Znany siedmiowarstwowy model komunikacji sieciowej ISO/OSI zostaje dzięki AKE rozszerzony do ośmiu warstw, ponieważ AKE jest urządzeniem warstwy 8; zob. rys. 2.

Określenie urządzenia sieciowego jako „urządzenia warstwy 7” lub „urządzenia warstwy 3” wynika z najniższego poziomu, czyli warstwy modelu ISO/OSI, na którym obwód przepływu danych zostaje po raz pierwszy zamknięty. Jeśli rozpatrujemy model ISO/OSI od warstwy 1 wzwyż i sprawdzamy, na której warstwie obwód przepływu danych zamyka się po raz pierwszy, to właśnie ta warstwa nadaje urządzeniu określenie „urządzenie warstwy x”. Router zamyka na przykład obwód przepływu danych na poziomie, czyli w warstwie 3, jest zatem urządzeniem warstwy 3. Wzmacniak jest natomiast urządzeniem warstwy 1, ponieważ wzmacnia sygnał, pozostając tym samym na poziomie czysto fizycznym.

W AKE użytkownik zachowuje kontrolę nad zamknięciem obwodu przepływu danych. Użytkownik tworzy zatem najwyższą warstwę, na której obwód przepływu danych może zostać po raz pierwszy zamknięty.

W przypadku tradycyjnego komputera „klienckiego”, czyli SKE, użytkownik oczywiście również korzysta z myszy, klawiatury itd., a opisane powyżej procesy w stosie protokołów są takie same jak w AKE. SKE może jednak bez trudu zamknąć obwód przepływu danych już w warstwie 7, a więc działać jak serwer. Ujmując to celowo w sposób wyostrzony, SKE jest zatem jedynie serwerem, z którego użytkownicy korzystają również jako z klienta. SKE nie jest więc rzeczywistym „punktem końcowym” w sieci, lecz jedynie punktem tranzytowym. To czyni go tak niebezpiecznym. Ponieważ opisywany tutaj wynalazek dotyczy warstwy 1, czyli warstwy fizycznej, pojawia się tu także istotna nowość: dotychczasowa warstwa 1 staje się warstwą fundamentalną, czyli fundamentem. Wcześniej taki fundament nie istniał; dotychczasowa warstwa fizyczna nie może zapewnić ochrony ani stabilności aplikacjom, które się na niej buduje.

Warstwa 8 jest niezbędna do opisu AKE i umiejscowienia AKE w modelu ISO/OSI, ponieważ obwód przepływu danych może zostać zamknięty wyłącznie za pośrednictwem użytkownika.

Poniżej przedstawiam propozycję graficznego ujęcia modelu warstwowego ISO/OSI rozszerzonego o warstwę 8:

Model warstwowy ISO/OSI rozszerzony o warstwę 8

Rys. 2. Model warstwowy rozszerzony o warstwę 8 dla AKE

AKE zapewnia również skuteczną ochronę przed ransomware

Kolejną istotną konsekwencją asymetrii w AKE jest „podwójne przechowywanie danych”. Rozróżniam tutaj dane własne i dane obce. Dane własne to wszystkie dane utworzone samodzielnie przez użytkownika AKE, na przykład za pomocą klawiatury. Dane obce to wszystkie dane pochodzące od innych twórców, otrzymane przez odbiornik za pośrednictwem sieci. Ponieważ w AKE wszystkie dane własne są wprowadzane synchronicznie za pomocą specjalnej klawiatury jednocześnie do nadajnika i odbiornika, co opisano poniżej przy omawianiu modelu laboratoryjnego, dane własne zawsze znajdują się po obu stronach: na nadajniku i na odbiorniku. To podwójne przechowywanie umożliwia szybkie przywrócenie odbiornika do poprzedniego stanu po ataku złośliwego oprogramowania. W tym celu na odbiorniku instaluje się ponownie obraz systemu operacyjnego, a po ponownym uruchomieniu dane własne są kopiowane z nadajnika na odbiornik przez połączenie synchronizacyjne, tak aby nadajnik i odbiornik miały znów ten sam stan danych własnych. Ta procedura przywracania ma też duże zalety w porównaniu z kopiami zapasowymi: ponieważ kopie zapasowe komputerów komunikujących się w tradycyjny, symetryczny sposób są połączone „szeregowo”, a więc jedna za drugą — źródło danych, komputer, kopia zapasowa — sama kopia może już być zainfekowana tym samym złośliwym oprogramowaniem i przez to potencjalnie bezużyteczna. Złośliwe oprogramowanie często działa jak „bomba zegarowa”: przed jego aktywacją celowo wprowadza się opóźnienie, aby wszystkie generacje kopii zapasowych zostały zainfekowane, zanim użytkownik w ogóle uświadomi sobie atak. Kolejną wadą kopii zapasowych jest to, że nigdy nie są aktualne, lecz wskutek szeregowego układu zawsze zawierają starsze dane niż te, nad którymi użytkownik właśnie pracuje. AKE działa natomiast równolegle na dwóch komputerach. Dane przechowywane podwójnie w AKE są więc zawsze aktualne. Jeśli użytkownik stwierdzi, że padł ofiarą ataku ransomware, wystarczy ponownie zainstalować odbiornik z obrazu, a następnie skopiować dane własne z nadajnika na odbiornik przez połączenie synchronizacyjne. Istnieją także dane obce, a więc pochodzące od innych autorów, otrzymane przez sieć, taką jak Internet, i z czasem „gromadzące się” na odbiorniku AKE. Aby również je można było odtworzyć po ponownym zainstalowaniu odbiornika, proxy na Czerwonym urządzeniu zapisuje te dane także lokalnie na Czerwonym. Stamtąd można je również odtworzyć przez połączenie pierścieniowe z Czerwonego do odbiornika. Odbiornik znajduje się wtedy ponownie w takim samym stanie jak przed atakiem ransomware i jest też wolny od złośliwego oprogramowania pochodzącego z sieci. Warunkiem jest oczywiście to, aby razem z danymi nie skopiować ransomware z Czerwonego na odbiornik; trzeba więc dokładnie sprawdzić, które dane obce są ponownie kopiowane na odbiornik. Aby możliwie wcześnie wykrywać manipulacje plikami, nie dopiero ransomware, i móc zastępować zmodyfikowane pliki oryginałami, zalecam intensywne korzystanie z kryptografii asymetrycznej: jeśli wszyscy użytkownicy będą przed wysłaniem podpisywać elektronicznie swoje pliki, programy użytkowe będą mogły przed otwarciem każdego pliku zweryfikować podpis, wykryć manipulacje i od samego początku zapobiegać szkodom. Również strony internetowe mogłyby zasadniczo być podpisywane przez autora przed opublikowaniem, dzięki czemu przeglądarki mogłyby następnie stosować ten podpis do stron i w przypadku manipulacji, na przykład zmiany odnośników na stronie, ostrzegać użytkownika albo w ogóle nie ładować strony. Niestety obecnie z tych możliwości ochrony korzysta się jedynie w bardzo niewielkim stopniu. Połączenie kryptografii asymetrycznej (AKR) i asymetrycznych punktów końcowych (AKE) ma również tę decydującą zaletę, że obie metody wzajemnie usuwają swoje słabe strony. Słabością AKR jest to, że w komputerach komunikujących się symetrycznie (SKE) napastnicy mogą przez sieć obserwować lub modyfikować proces podpisywania i szyfrowania. W AKE nie może się to już wydarzyć: proces podpisywania i szyfrowania na nadajniku jest chroniony przed wszelkim dostępem z zewnątrz. Z kolei AKR chroni słabą stronę AKE, czyli odbiornik. Odbiornik jest przecież narażony na ataki polegające na zapisie danych i sabotażu, choć w znacznie mniejszym stopniu niż SKE, a więc jest jedynie „półprywatny”. Jeśli, jak wspomniano powyżej, wszystkie pliki przed wysłaniem będą chronione podpisami elektronicznymi, takie ataki polegające na zapisie danych przestaną być możliwe albo przynajmniej nie będą już mogły pozostać niezauważone. AKR chroni dane w ruchu i czyni „przemieszczanie danych” prywatnym. AKE chroni dodatkowo dane w spoczynku i sprawia, że same komputery również stają się prywatne.

Część druga.

Model laboratoryjny jako praktyczny dowód możliwości wdrożenia oraz przykład realizacji za pomocą tradycyjnych, dostępnych w handlu środków.

W następnej części opisuję praktyczną realizację AKE.

Ważne uwagi dotyczące korzystania z plików w poniższym archiwum tarball dotyczącym modelu laboratoryjnego AKE V.0.1, programów i sprzętu pochodnych oraz wszystkich informacji znajdujących się na tej stronie. Poniższe uwagi mają pierwszeństwo przed uwagami w archiwum tarball:

Warunki licencji i użytkowania:

Pliki w archiwum tarball dostępnym do pobrania na końcu strony służą zrozumieniu i praktycznemu odtworzeniu AKE stanowiącego „proof of concept” (PoC), czyli demonstrację koncepcji. Uwaga dotycząca patentów i licencji: opublikowanie tego modelu laboratoryjnego sprawia, że nikt nie może już opatentować tego wynalazku w opisanej tutaj postaci. Stan techniki opisany na tej stronie jest więc ogólnoświatowym punktem wyjścia dla wszystkich zainteresowanych programistów i konstruktorów, którzy chcą na tej podstawie pracować nad AKE przydatnym w przyszłości dla wszystkich użytkowników Internetu.

Kod źródłowy w C i skrypty Bash są dołączone do plików w archiwum tarball.

Publikacja w internetowej „Wikipedii” jest dozwolona bez ograniczeń pod warunkiem podania autora.

Będę wdzięczny za informacje o wszystkich nowych projektach dalszego rozwoju AKE; chętnie umieszczę je następnie na tej stronie.

Częściowo wykorzystałem publicznie dostępny kod źródłowy objęty GPL, mianowicie narzędzie „Ping”, należące do narzędzi sieciowych FSF. Opracowane przeze mnie na jego podstawie „aping” również jest zatem objęte GPL.

Wszystkie pozostałe programy, takie jak cproxy, lproxy i różne skrypty zawarte w archiwum tarball, nie opierają się jednak na programach licencjonowanych na GPL, lecz są wyłącznie moim własnym dziełem. Od 1 sierpnia 2020 r. również do nich stosują się postanowienia GPL v.3.0 ( https://www.gnu.org/licenses/gpl-3.0.html ).

Ograniczenia:

Nie ponoszę żadnej odpowiedzialności za używanie opisanego tutaj AKE. W tej postaci, V.0.1, nie nadaje się on jeszcze do zastosowań produkcyjnych, lecz służy jedynie wykazaniu ogólnej słuszności teorii.

Jest to więc przede wszystkim urządzenie demonstracyjne, model laboratoryjny.

Ta wersja 0.1 jako PoC zawiera w szczególności następujące problemy wymagające rozwiązania:

1. Przy używaniu wyłącznie interfejsów Ethernet 1000BaseT i funkcji auto-crossover we wszystkich czterech interfejsach pierścienia wewnątrz AKE istnieje 50-procentowe prawdopodobieństwo, że czterobiegunowy pierścień asymetryczny zacznie działać w niewłaściwym kierunku, przeciwnie do ruchu wskazówek zegara. Nadajnik może wówczas odbierać dane z Czerwonego, a odbiornik wysyłać dane w stronę Czerwonego, czyli balunu, przez co układ traci asymetrię. Taka utrata asymetrii oczywiście całkowicie znosi wysoki poziom bezpieczeństwa AKE oparty na asymetrii. Można to skorygować ręcznie, uruchamiając po starcie systemu Ping na nadajniku, wyłącznie na nadajniku, i obserwując, czy po zapaleniu się diody Link dioda danych na Niebieskim interfejsie miga w rytm pingów. Jeśli tak się dzieje, oznacza to, że pierścień działa przeciwnie do ruchu wskazówek zegara. Pakiety ping-request trafiają bowiem z Zielonego do Niebieskiego zamiast z Zielonego do Czerwonego. Wyjmując i ponownie wkładając wtyk RJ45 do Niebieskiego interfejsu, można doprowadzić do ponownej „negocjacji” pierścienia, aż Niebieski interfejs przestanie migać w rytm pingów. Pakiety trafiają wtedy do Czerwonego, tak jak powinny, a pierścień działa zgodnie z ruchem wskazówek zegara. W opisanych wyżej warunkach zestawienie łącza w pierścieniu trwa także do dwóch minut.

Gdyby przynajmniej jeden z czterech interfejsów w pierścieniu nie miał funkcji auto-crossover lub auto-MDI/MDIX albo funkcja ta była wyłączona, na przykład na Zielonym, opisany problem nie występowałby, a pierścień zawsze i natychmiast po włączeniu AKE działałby zgodnie z ruchem wskazówek zegara. Nie można byłoby też później odwrócić jego kierunku, na przykład przez chwilowe wyłączenie jednego z czterech interfejsów uczestniczących w pierścieniu. Czasami można jeszcze znaleźć starsze karty Ethernet do montażu w komputerach PC, które obsługują najwyżej 100BaseT i nie mają wbudowanego auto-crossover. Takie karty idealnie nadają się do AKE. Proponowane rozwiązanie: zob. propozycję rozwiązania w punkcie 2. Zapewnia ono wysoki poziom ochrony przed utratą asymetrii i atakami przez połączenie synchronizacyjne również przy korzystaniu wyłącznie z interfejsów 1000BaseT i auto-MDIX.

2. Odbierane pakiety na Zielonym w interfejsie synchronizacyjnym. Normalnie interfejsy nadajnika, czyli Zielonego, nawet po dłuższym działaniu nie powinny odbierać żadnych pakietów, lecz wyłącznie je wysyłać. Można to łatwo sprawdzić na Zielonym, na przykład za pomocą „ifconfig”: po dłuższym korzystaniu z asymetrycznego Ping, czyli „aping”, i asymetrycznego przeglądania stron oba interfejsy Ethernet RJ45 Zielonego powinny wykazywać RX=0. Tylko TX może mieć dowolną wartość większą od zera.

Na Żółtym, czyli odbiorniku, zarówno RX, jak i TX mogą być większe od zera, ponieważ Żółty może przecież wysyłać „w Niebieskie”, czyli do interfejsu kończącego.

Ponieważ na samym początku uruchamiania komputerów uczestniczących w AKE reguły zapory nie są jeszcze od razu aktywne, kilka pakietów, od 4 do 15, przedostaje się z Żółtego do Zielonego przez łącze synchronizacyjne. Można temu łatwo zapobiec, podłączając kable łącza synchronizacyjnego dopiero po uruchomieniu systemów. Proponowane rozwiązanie: w balunie każdą parę przewodów należy przeprowadzić przez przekaźniki dwutorowe, których styki są rozwarte w stanie spoczynku. Potrzeba zatem sześciu małych przekaźników do montażu na płytce, na napięcie 5 V, zasilanych po prostu z baterii 6 V. Zależnie od baterii potrzebne są rezystory szeregowe. Za pomocą prostego przełącznika można następnie jednocześnie włączyć wszystkie sześć przekaźników, tak aby wszystkie sześć połączeń danych w balunie, pierścień i synchronizacja, mogły zostać uruchomione jednocześnie, po wcześniejszym uruchomieniu laptopów lub komputerów PC. Jednoczesne włączenie interfejsów pierścienia sprawia, że auto-MDIX w ogóle nie zaczyna działać, łącze powstaje natychmiast, a pierścień działa zgodnie z ruchem wskazówek zegara, czyli we właściwym kierunku. Ponieważ również połączenie synchronizacyjne jest w ten sposób włączane dopiero po uruchomieniu komputerów, żadne pakiety nie mogą przedostać się z Żółtego do Zielonego przed aktywacją reguł zapory. Dodatkowo kolejny skrypt uruchamiany przy starcie systemu często sprawdza na Zielonym wyniki „ifconfig”, co najmniej raz na sekundę, pod kątem tego, czy a) „RX-Bytes” obu interfejsów Zielonego wynoszą zero oraz b) oba interfejsy stale mają status „running” w odpowiednich wynikach ifconfig. Jeśli jeden lub oba warunki przestaną być spełnione, skrypt powinien wyłączyć Zielony, wcześniej pozostawiając wpis w dzienniku wskazujący zdarzenie, które spowodowało wyłączenie. Taki prosty skrypt może wówczas skutecznie zapobiegać zarówno atakom przez połączenie synchronizacyjne z Żółtego do Zielonego, jak i atakom powodującym utratę asymetrii. Ataki tego rodzaju można dzięki temu również łatwo wykrywać i usuwać ich skutki, po czym ponownie instalować Żółty. Podobny skrypt powinien startować wraz z systemem również na Czerwonym i Żółtym, ale na tych komputerach powinien sprawdzać wyłącznie status „running” interfejsów uczestniczących w pierścieniu. Jeśli w wyniku „ifconfig -a” brakuje „running”, Czerwony lub Żółty również powinny zostać wyłączone. Zapobiega to sytuacji, w której po ponownej negocjacji łącza, na przykład wskutek wyjęcia i ponownego włożenia jednego z kabli uczestniczących w pierścieniu, pierścień zaczyna działać przeciwnie do ruchu wskazówek zegara, czyli w niewłaściwą stronę, tracąc asymetrię. Należy tego bezwzględnie unikać. Ponieważ użytkownik włącza pierścień dopiero po uruchomieniu komputerów, jak opisano powyżej przy układzie przekaźników, bezpośrednio po starcie systemu interfejsy oczywiście nie mają jeszcze statusu „running”; pojawia się on dopiero po włączeniu balunu. Skrypty muszą więc potrafić rozpoznać i tolerować początkowy stan bez „running”, na przykład przez ustawienie flagi, gdy po włączeniu po raz pierwszy pojawi się „running”. Wyłączanie powinno się rozpocząć dopiero wtedy, gdy flaga jest ustawiona, ale status „running” przestał występować. Przyjemnym skutkiem ubocznym jest możliwość jednoczesnego wyłączenia wszystkich trzech komputerów przez wyłączenie balunu, co stanowi też test ochrony przed utratą asymetrii. Innym testem zabezpieczenia pierścienia jest wyjęcie dowolnego z jego kabli. Wtedy również wszystkie trzy komputery powinny zostać automatycznie wyłączone.

3. „aping” uruchamia się z Czerwonym jako pingowanym komputerem, aby przetestować wewnętrzne połączenia AKE i wykazać możliwość asymetryzacji protokołów warstwy 3. Można też przeprowadzić szerszy test obejmujący komputery poza AKE, ale najpierw trzeba skonfigurować przekazywanie IP na Czerwonym, w tym zaporę iptables itd., zaznaczając odpowiednie pole w ustawieniach sieciowych Yast2.

4. Wskazanie czasu przebiegu, tak zwanego roundtrip, w aping jest z powodu synchronizacji czasu odbiornika z nadajnikiem dokładne jedynie do wartości poniżej sekundy. Do dokładnych pomiarów ping w sieci zewnętrznej zalecam zatem używanie symetrycznego, czyli „zwykłego” Ping z Czerwonego.

5. Obecnie asymetrycznie możliwe jest tylko bierne przeglądanie stron, w dowolnej przeglądarce, którą trzeba jedynie ustawić tak, aby korzystała z proxy. Aktywne korzystanie, takie jak logowanie lub wpisywanie haseł do hosta, wprowadzanie danych z AKE do baz danych na serwerze itp., nie zostało jeszcze zaimplementowane.

6. Automatyczne ładowanie obrazów, skryptów itd. należących do strony internetowej nie zostało jeszcze zaimplementowane, więc bierne przeglądanie odbywa się przy użyciu „surowego HTML”.

7. Obrazy na stronach można doładowywać ręcznie za pomocą krótkiego odnośnika. Są one następnie wyświetlane w przeglądarce, a skrót „Alt–strzałka w lewo” na klawiaturze synchronicznej pozwala wrócić do strony. Brak automatycznego ładowania plików strony jest oczywiście bezpieczniejszy.

8. Aby zapobiec wykorzystywaniu „drogi na zewnątrz” przez port TCP 80 przez funkcje szpiegujące wbudowane w system operacyjny lub programy użytkowe, również długie odnośniki, takie jak „www.feuerbach.info”, wpisuje się w postaci „y.www.feuerbach.info”. Proxy na Czerwonym sprawdza, czy żądania docierające na port 80 mają na początku to „y.”. Jeśli tak, żądanie jest przekazywane dalej do Internetu. Jeśli nie, proxy na Czerwonym odrzuca żądanie i zapisuje je w dzienniku.

Jest to jedynie bardzo prosta forma zabezpieczenia zapewniająca ochronę C1 na Zielonym. W przyszłości napastnicy mogliby ją łatwo obejść, dlatego powinna zostać zastąpiona lepszą ochroną, na przykład w proxy na Czerwonym. Usunęłoby to również konieczność wpisywania „y.” przed każdym długim odnośnikiem w przeglądarce.

9. Przy połączeniu gigabitowym między Zielonym i Żółtym do przesyłania plików za pomocą „greenfiler” trzeba zmniejszyć prędkość do 100 Mbit/s, ponieważ serwer na Żółtym nie został przystosowany do 1000 Mbit/s. W przeciwnym razie pliki wysłane z Zielonego na Żółty są tam zapisywane w niewłaściwym rozmiarze.

Poniżej zamieszczono ogólny opis modelu laboratoryjnego, PoC:

Opis patentowy dotyczący zastrzeżenia patentowego * „Asymetryczny punkt końcowy komunikacji”, w skrócie „AKE”

Autor: Heinrich Theodor Feuerbach

Miejsce: Warszawa, Polska

Data rozpoczęcia tej wersji dokumentu: 7 sierpnia 2019 r.

Wersja 1.3

Uwaga: od 1 sierpnia 2020 r. cały pakiet oprogramowania, a także sprzęt są objęte GPL v.3.

*) Z ważnych powodów rezygnuję z zastrzeżeń patentowych dotyczących AKE w przedstawionej tutaj realizacji. Szczegóły znajdują się w README.odt w tym samym pliku tar.gz. Pierwszeństwo mają jednak warunki licencyjne zamieszczone na tej stronie.

Uwaga: 1 sierpnia 2020 r. zmieniłem warunki licencji w taki sposób, że wszystkie składniki programów są obecnie objęte GPL v.3, GNU General Public License 3. Wszystkie starsze informacje licencyjne są zatem nieważne. Dotyczy to również informacji o warunkach licencji i użytkowania w plikach dostępnych do pobrania na tej stronie.

Ogólny opis przedmiotu patentu:

System komputerowy jako urządzenie użytkownika końcowego oparty na trzech komputerach osobistych lub laptopach,

ogólnie trzech komputerach użytkownika końcowego, służący lepszej ochronie lokalnie przechowywanych danych i procesów przed atakami z zewnątrz przez znaną sieć, taką jak sieci lokalne LAN oraz sieci zdalne, takie jak Internet. Celem jest niemal całkowite bezpieczeństwo przynajmniej jednego z trzech komputerów tego systemu wobec wszystkich bezpośrednich i pośrednich ataków inicjowanych i przeprowadzanych przez Internet lub inne znane sieci. Ma to w szczególności odpierać ataki przez sieć, taką jak Internet, służące szpiegowaniu danych, manipulowaniu danymi lub sabotażowi. Aby osiągnąć ten cel, funkcje nadawania i odbierania, które sieci udostępniają komputerom, są zbudowane asymetrycznie i dlatego rozdzielone między dwa komputery. Ta asymetria, czyli rozdzielenie, sprawia, że obwód przepływu danych może zostać zamknięty wyłącznie za pośrednictwem samego użytkownika, a nie automatycznie, jak w tradycyjnych komputerach połączonych w sposób symetryczny. W ten sposób po raz pierwszy przedstawione zostaje urządzenie warstwy 8. Warstwa 8, czyli warstwa użytkownika służąca jego kontroli nad przepływem danych, jako rozszerzenie siedmiowarstwowego modelu ISO/OSI po raz pierwszy stanowi zatem punkt końcowy w sieciach. Niepożądana komunikacja sieciowa jest dzięki temu skutecznie blokowana środkami fizycznymi. Obejmuje to połączenia boczne, które strony internetowe nawiązują bez wiedzy użytkownika z obcymi, nieznanymi mu serwerami, gdy użytkownik odwiedza strony. Takie połączenia boczne, które obniżają też wydajność przeglądarki, służą gromadzeniu danych o zachowaniu użytkownika. Również „trojany” nie mogą już szpiegować żadnych danych, ponieważ mogą przedostać się tylko do komputera odbierającego i nie mogą stamtąd wysłać niczego z powrotem do Internetu. Na takim urządzeniu warstwy 8, w skrócie AKE, programy manipulujące danymi, służące na przykład wymuszaniu okupu od użytkownika przez szyfrowanie jego danych, mogą wyrządzać szkody jedynie w systemie odbierającym. Nie mogą tego zrobić w systemie nadającym, ponieważ asymetria uniemożliwia im dotarcie do niego. W systemie nadającym wszystkie dane i procesy są fizycznie chronione przed wszystkimi atakami z sieci. Wynika z tego, że przy stosowaniu wyłącznie AKE atakowane i modyfikowane mogą być już tylko dane wysłane, lecz nie same źródła danych w systemach nadających. Źródła danych nie są więc już osiągalne przez sieć; po dowolnym rodzaju ataku ich dane nadal istnieją w oryginale w odpowiednim systemie nadającym. Napastnik może zatem uszkadzać jedynie kopie danych, a nie ich oryginały. Z podanych wyżej powodów danych w ogóle nie można już szpiegować, ani z oryginału, ani z kopii. Procesów w AKE nie można już obserwować za pomocą działań inicjowanych przez sieć.

Zastrzeżenie patentowe:

Zgodnie z wynalazkiem system komputerowy połączony z Internetem lub innymi znanymi użytkownikowi sieciami i umożliwiający korzystanie z nich, który zapewnia ochronę danych i procesów użytkownika przed atakami inicjowanymi i przeprowadzanymi przez Internet.

„Systemy komputerowe” oznaczają tutaj wszystkie systemy przetwarzania danych zbudowane głównie do użytku przez pojedyncze osoby.

Odpowiada to „bezpieczeństwu B3 w znanych sieciach”; zob. poniższy opis „macierzy ataków” oraz dokument tego samego autora „Teoria AKE” na firewalls.feuerbach.info. Gdy w dalszej części mowa o tych poziomach bezpieczeństwa, zawsze chodzi wyłącznie o obszar sieci znanych i pożądanych przez użytkownika. Zagrożenie dla jego danych i procesów ze strony sieci nieznanych użytkownikowi oraz ochrona przed nimi nie są przedmiotem tego zgłoszenia patentowego. Również zagrożenie dla danych i procesów użytkownika oraz ochrona przed atakami na nie ze strony złośliwych programów zawartych od samego początku, od chwili produkcji, w sprzęcie, systemie operacyjnym lub aplikacjach nie są przedmiotem tego zgłoszenia patentowego.

Osiągnięte poziomy bezpieczeństwa, czyli poziom ochrony, obejmują:

1. Bezpieczeństwo A1 i B1: wszystkie bezpośrednie i pośrednie ataki służące szpiegowaniu danych, które można inicjować i przeprowadzać przez Internet, na przykład za pomocą „koni trojańskich”, keyloggerów, stron zainfekowanych złośliwym oprogramowaniem, narzędzi zdalnego sterowania, wykorzystywania błędów, takich jak „zero-day exploits”, itd.

2. Bezpieczeństwo A2 i B2: wszystkie bezpośrednie i pośrednie ataki, które można inicjować i przeprowadzać przez Internet i które służą manipulowaniu danymi przechowywanymi lub tworzonymi lokalnie w systemie komputerowym, a także

3. Bezpieczeństwo A3 i B3: wszystkie bezpośrednie i pośrednie ataki służące sabotażowi systemu komputerowego, które można inicjować i przeprowadzać przez Internet i które mają czasowo lub trwale uczynić system komputerowy, jego dane lub procesy niezdatnymi do użytku.

Ponieważ system komputerowy zgodny z wynalazkiem składa się przede wszystkim z dwóch komputerów roboczych użytkownika oraz jednego komputera pomocniczego, dla powyższych poziomów bezpieczeństwa zakłada się, że użytkownik takiego systemu przechowuje swoje dane przynajmniej w systemie oznaczonym jako „Zielony”, nadajniku S, i tam je przetwarza, a zależnie od potrzeb i zastosowania również na urządzeniu oznaczonym jako „Żółte”, odbiorniku E.

Pośrednio zapewniana jest również ochrona przed atakami DDoS, w których bardzo wiele „przejętych”, tradycyjnych komputerów w Internecie jest wykorzystywanych do ataków typu denial of service: jeśli bowiem wszyscy użytkownicy końcowi będą korzystać wyłącznie z AKE, urządzeń tych nie będzie już można wykorzystywać do ataków DDoS.

Podsumowanie i korzyści dla użytkowników w porównaniu z obecnymi rozwiązaniami zabezpieczającymi dostęp do Internetu:

Wynalazek ten umożliwia osiągnięcie poziomu ochrony określonego w zastrzeżeniu patentowym dla punktów końcowych sieci przy jednoczesnym korzystaniu z sieci, na przykład Internetu, przez użytkownika punktu końcowego do zwykłych zastosowań, takich jak przeglądanie stron internetowych („WWW”). Jest to zatem techniczna metoda zabezpieczenia zajmująca miejsce pomiędzy stosowanymi obecnie metodami technicznymi, obejmującymi z jednej strony pojedyncze komputery podłączone do Internetu, chronione co najwyżej przez zapory sieciowe, IDS/IPS i oprogramowanie antywirusowe, lub sieci takich komputerów, a z drugiej strony pojedynczymi komputerami i sieciami takich komputerów, których w celu zabezpieczenia w ogóle nie podłącza się do Internetu („komputery izolowane”, „sieci izolowane”).

Chociaż wspomniane komputery izolowane lub izolowane sieci komputerowe są bardzo bezpieczne, znacznie utrudniają przebieg pracy i wymagają oddzielnych komputerów podłączonych do Internetu wyłącznie po to, aby można było korzystać z usług sieciowych lub internetowych, takich jak poczta elektroniczna czy przeglądanie stron. Wymiana danych między tymi dwoma światami jest przy tym niemal niemożliwa, a ze względów bezpieczeństwa również niepożądana.

Z kolei dotychczasowe komputery podłączone do Internetu symetrycznie, czyli jednocześnie wysyłające i odbierające dane, są narażone na najrozmaitsze ataki z Internetu. Również różne środki ochrony, takie jak rozwiązania antywirusowe, często pozostają w tyle za atakującymi, a przede wszystkim nie zapewniają systematycznej ochrony przed atakami sieciowymi.

Korzyść wynikająca z opisanego tu wynalazku polega więc na tym, że nadal można korzystać z Internetu, a zatem utrzymywać połączenie z Internetem służące do przeglądania stron, przesyłania plików, pracy zespołowej itd., a jednocześnie dane i procesy są systematycznie chronione przed „szpiegowaniem”, a także przed manipulacją i sabotażem z Internetu, czyli ze strony „hakerów”.

Zgodnie z wynalazkiem ochrona przed technicznymi atakami sieciowymi jest osiągana systematycznie w taki sposób, że obejmuje również przyszłe, powszechnie jeszcze nieznane formy ataków sieciowych i nie zależy od aktualności sygnatur ani podobnych środków.

Fakt, że urządzenie końcowe użytkownika wynalazku składa się z trzech komputerów, pozostaje dla użytkownika niewidoczny podczas korzystania z Internetu, na przykład przeglądania stron; może on korzystać z systemu i obsługiwać go jako pojedyncze urządzenie lub całość, czyli jak urządzenie z jedną klawiaturą, jedną myszą i jednym ekranem. Wynalazek w znacznej mierze wykorzystuje konwencjonalny sprzęt lub połączenie takiego sprzętu.

Oczywiście wynalazca lub zgłaszający nie może dla wszystkich istniejących protokołów i aplikacji przedstawić praktycznego dowodu, że działają one również w warunkach asymetrycznych, ani dostarczyć przykładów ich implementacji. Zgłaszający przedstawił jednak taki dowód i wykonał implementacje dla dwóch przykładów należących do najczęściej stosowanych w praktyce. Pierwszy dowód dotyczy narzędzia działającego w warstwie 3 modelu ISO-OSI, programu ping. Drugi dotyczy protokołu HTTP(S) w warstwie 7 modelu ISO-OSI, który może być wykorzystywany bardzo wszechstronnie i rzeczywiście tak jest wykorzystywany. Zarówno na podstawie rozważań teoretycznych, jak i już wieloletnich doświadczeń w pracy z AKE wynalazca doszedł do przekonania, że skuteczne zastosowanie w AKE także innych protokołów i korzystających z nich aplikacji jest jedynie kwestią nakładu pracy programistycznej.

Uzasadnienie teoretyczne jest następujące: skoro zasada techniczna pozwalająca „uruchomić” program sieciowy i jego protokoły również w warunkach asymetrycznych jest zawsze taka sama, nie ma powodu, dla którego nie można byłoby zapewnić działania w AKE również innych programów i protokołów sieciowych niż przetestowane (por. także znaczenie urządzenia czerwonego). Zasada polega na tym, że urządzenie czerwone kompensuje oddzielenie funkcji nadawania od funkcji odbioru, przejmując funkcje protokołu. Pomoc urządzenia czerwonego ogranicza się wyłącznie do obsługi protokołów, dzięki czemu dane użytkownika nie muszą być w nim przechowywane ani przetwarzane. Dane i procesy użytkownika są zarezerwowane dla urządzeń zielonego i żółtego.

Zasady techniczne stosowane w wynalazku i ich elementy:

0. AKE. „Asymetryczny punkt końcowy komunikacji”, w skrócie AKE, oznacza cały opisany tu system zgodny z wynalazkiem, działający według sześciu poniższych zasad. Jest „asymetryczny”, ponieważ w przeciwieństwie do konwencjonalnego „komputera internetowego” za wysyłanie danych do Internetu i odbieranie ich z Internetu nie odpowiada jeden komputer, lecz funkcje te zostają rozdzielone między dwa komputery. Podstawowe zalety AKE wynikają bezpośrednio z asymetrii: skoro odbiornik nie może nic wysyłać do Internetu, odebrane w nim oprogramowanie szpiegowskie również nie może odsyłać żadnych danych do Internetu; odbiornik nie może zatem być także zdalnie sterowany; wszystkie ataki stają się wyłącznie atakami typu „wystrzel i zapomnij” na odbiornik, których skutków atakujący nie może nawet zobaczyć. Dane zebrane lokalnie przez oprogramowanie szpiegowskie pobrane z Internetu, takie jak hasła, teksty itd., nie mogą zostać odesłane przez Internet do atakującego. Nadajnik AKE nie może natomiast w ogóle odebrać z Internetu szkodliwego oprogramowania ani podobnych treści, ponieważ może jedynie nadawać. AKE daje użytkownikowi pełną kontrolę nad tym, co jest wysyłane, kiedy i dokąd. W AKE dozwolone są dokładnie trzy kierunki komunikacji, realizowane jako połączenia simpleksowe: 1. od Czerwonego do Żółtego; 2. od Zielonego do Czerwonego; 3. od Zielonego do Żółtego. Bezpieczeństwo AKE zależy całkowicie od ograniczenia komunikacji sieciowej w AKE do tych trzech kierunków połączeń.

1. Balun. Oprócz komputera służącego jako nadajnik do Internetu („nadajnik”, S) oraz komputera służącego jako odbiornik z Internetu („odbiornik”, E) w AKE stosuje się trzeci komputer, nazywany „balunem”, zgodnie z terminem używanym w technice telekomunikacyjnej dla przetwornika między światem symetrycznym i asymetrycznym (balanced/unbalanced), który pełni centralną funkcję pośrednika. Chodzi tu zarówno o konwersję między protokołami połączeniowymi i bezpołączeniowymi, jak i o kompensację asymetrii, ponieważ w przeciwnym razie wiele protokołów aplikacyjnych nie mogłoby być używanych w warunkach asymetrycznych.

2. Synchronizacja. Ponieważ rozdzielenie funkcji nadawania i odbioru w AKE jest ścisłe, to znaczy nadajnik nigdy nie może odbierać danych, a odbiornik nigdy nie może wysyłać danych do innego komputera, oba urządzenia muszą być synchronizowane, aby ponownie tworzyły całość, która może być wykorzystywana przez programy sieciowe, a zatem jako całość dysponuje zarówno funkcją nadawania, jak i odbioru. Służy temu oddzielne, niezależne od Internetu połączenie sieciowe od nadajnika do odbiornika, bez komunikacji w przeciwnym kierunku na poziomie logicznym.

Kierunek przeciwny jest blokowany przez zapory sieciowe zarówno na nadajniku, jak i na odbiorniku. Użytkownik AKE potrzebuje również synchronicznych urządzeń wejściowych, co najmniej synchronicznej klawiatury, za pomocą której może obsługiwać obie strony AKE jednocześnie i synchronicznie.

Rozwiązaniem nieco niepraktycznym, lecz zasadniczo możliwym, byłoby używanie oddzielnej klawiatury nadajnika i odbiornika, na przykład w przypadku laptopów, które można by wtedy obsługiwać synchronicznie lewą i prawą ręką. Połączenie danych między dwoma partnerami komunikacyjnymi korzystającymi z AKE następuje więc powyżej warstwy 7, a mianowicie w warstwie użytkownika. Zgłaszający uważa zatem za uzasadnione określanie AKE mianem „urządzenia warstwy 8”.

3. Programy proxy. Serwery proxy są w AKE bardzo ważne, ponieważ wewnątrz sieci łączącej trzy uczestniczące komputery można korzystać wyłącznie z protokołów bezpołączeniowych, takich jak UDP, gdyż na przykład procedury uzgadniania połączenia w protokołach połączeniowych nie są możliwe w warunkach asymetrycznych. W Internecie zazwyczaj jednak, z uzasadnionych powodów, stosuje się raczej protokół połączeniowy, taki jak TCP.

Aby umożliwić pracę z protokołami połączeniowymi, programy proxy na wszystkich trzech urządzeniach każdorazowo konwertują protokoły, czyli je dostosowują. Umożliwiają również korzystanie w AKE z protokołów warstwy 7. Programy proxy stanowią zatem oprogramowanie urządzenia balun. Konwersja zapewnia, że wszystkie trzy kierunki komunikacji w samym AKE są bezpołączeniowe, tutaj zaimplementowane przy użyciu UDP.

4. Cała synchronizacja jest inicjowana przez nadajnik lub użytkownika. Nadajnik regularnie wysyła pakiety danych w celach synchronizacyjnych zarówno do odbiornika, jak i do trzeciego urządzenia, baluna. Przykładem jest synchronizacja czasu. Nadajnik synchronizuje swój czas zegarowy do obu pozostałych komputerów AKE, Żółtego i Czerwonego, czyli do odbiornika i baluna. Za pomocą synchronicznych urządzeń wejściowych użytkownik może synchronicznie obsługiwać nadajnik i odbiornik.

5. Aby odebrać, program musi najpierw wysłać. Aby odbiornik mógł w ogóle analizować pakiety danych z Internetu, musi mieć możliwość uprzedniego wysłania odpowiedniego żądania. Możliwość tę otrzymuje dzięki interfejsowi terminującemu w sieci AKE, który nie analizuje dalej pakietów, lecz jedynie je odbiera, a następnie odrzuca.

6. W AKE występują wyłącznie połączenia simpleksowe. Wszystkie połączenia między trzema komputerami AKE są jednokierunkowe, czyli simpleksowe, aby zapewnić asymetrię, która — jak wskazano w punkcie 0 powyżej — jest warunkiem szczególnie wysokiego bezpieczeństwa AKE.

Poziomy bezpieczeństwa komputerów uczestniczących w AKE:

Trzy komputery (C) uczestniczące w AKE ze względu na swoje role w AKE mają z natury rzeczy bardzo różne poziomy bezpieczeństwa. Poniżej je wymieniono i objaśniono wynikające z nich konsekwencje praktyczne, prowadzące do określonych „zasad pracy” dla użytkownika, których przestrzeganie pozwala wykorzystać pełny potencjał bezpieczeństwa.

Czerwony, balun: A3

Żółty, odbiornik: A3+C1

Zielony, nadajnik: B3

Dokładne wyjaśnienie tych kategorii bezpieczeństwa znajduje się w mojej pracy „Teoria AKE”.

Budowa AKE według warstw ISO-OSI

Warstwa 1, warstwa fizyczna, obecnie dodatkowo „warstwa fundamentowa”:

Również połączenia sieciowe trzech komputerów („C”) AKE są asymetryczne. Oznacza to, że każdy z czterech interfejsów („IF”) uczestniczących w pierścieniu ma nie jeden interfejs partnerski, lecz dwa różne: jeden do nadawania, a drugi do odbioru. Natomiast połączenie sieciowe służące komunikacji wewnętrznej lub synchronizacji S i E jest konwencjonalnie symetryczne, a więc stanowi połączenie P2P między S i E. Pierwszy z tych układów połączeń odpowiada pierścieniowi.

Połączenie sieciowe na zewnątrz, na przykład do Internetu, odbywa się przez konwencjonalnie symetryczne łącze sieciowe, na przykład 100BaseT lub 1000BaseT, do najbliższego portu routera, a stamtąd do dowolnego węzła Internetu. W tym celu urządzenie czerwone otrzymuje symetryczne łącze 100BaseT lub 1000BaseT. Urządzenie czerwone ma więc dwa interfejsy Ethernet: asymetryczny w kierunku Zielonego i Żółtego oraz symetryczne łącze skierowane do Internetu.

Dla lepszego zobrazowania, a także nazewnictwa, w AKE stosuje się kolory, podobnie jak jest to przyjęte w innych kontekstach sieciowych. Komputer balun otrzymuje kolor „czerwony”, ponieważ jako „gorący koniec” jest z jednej strony połączony z Internetem w sposób konwencjonalny i symetryczny, przez co jest narażony na wszystkie zagrożenia z Internetu. Nie ma zatem wyższego poziomu bezpieczeństwa; ze względu na zwykłą zaporę sieciową jego poziom bezpieczeństwa wynosi tylko „A3”, czyli zapewnia co najwyżej ochronę przed bezpośrednimi atakami z Internetu mającymi na celu szpiegowanie, manipulację i sabotaż danych oraz systemu przez znane sieci. Dlatego Czerwony, jako komputer balun (balun-C), powinien być możliwie prosty, bez zbędnych programów, usług i użytkowników lokalnych.

Nadajnikowi S przypisuje się kolor „zielony”, ponieważ jest najbezpieczniejszym z trzech komputerów C w AKE; dzięki asymetrii ma poziom bezpieczeństwa „B3”. Odbiornik E otrzymuje kolor „żółty”, ponieważ jest wprawdzie bezpieczniejszy od Czerwonego, ale mniej bezpieczny od Zielonego. Dzięki asymetrii E ma poziom bezpieczeństwa „C1”. Dochodzi do niego poziom bezpieczeństwa A3 wynikający z zapory urządzenia czerwonego znajdującej się na poprzedzającym etapie połączenia.

Dodatkowy interfejs IF, potrzebny, aby w ogóle zamknąć warstwę łącza w pierścieniu i dać E techniczną możliwość nadawania, otrzymuje kolor „niebieski” („zimny koniec”). Z jednej strony jest odpowiednikiem Czerwonego, a z drugiej jedynie odbiera dane od Żółtego, sam niczego nie nadając, i nie jest połączony z żadnym komputerem C. Sięga więc tylko do górnej granicy warstwy 2 i jedynie odrzuca pakiety nadchodzące od Żółtego.

Mówiąc potocznie, niebieski interfejs IF jest zatem „koszem na pakiety”.

W tym celu stosuje się tutaj adapter USB–Ethernet, który ma „na pokładzie” wszystko, co jest potrzebne do elektronicznego zamknięcia warstwy łącza. Przez złącze USB podłącza się go wyłącznie do zwykłego źródła zasilania. Aby wykluczyć jakąkolwiek komunikację Niebieskiego na zewnątrz, adapter podłącza się tylko za pomocą dwóch przewodów zasilania potrzebnych do jego działania.

Uwaga: doświadczenia z różnymi takimi adapterami pokazują, że niektórzy producenci bez informowania o tym nie umieszczają w adapterze całego niezbędnego oprogramowania układowego. W efekcie adaptery te, podłączone wyłącznie do zasilania, bez systemu operacyjnego podłączonego komputera, nie są w stanie zamknąć warstwy łącza, a dioda sygnalizująca łącze na adapterze mimo zasilania nie zapala się. W takim przypadku adapter jest nieodpowiedni, ponieważ połączenie sieciowe trzech komputerów C nie działałoby. Jeśli jednak dioda kontroli łącza świeci stale, adapter nadaje się do AKE. Należy przy tym pamiętać, że nawet przy odpowiednim adapterze zapalenie się diody łącza może potrwać do 30 sekund, co prawdopodobnie wynika ze szczególnych warunków asymetrycznych.

W warstwach 1 i 2 stosuje się konwencjonalne karty sieciowe 100BaseT lub 1000BaseT. W każdym przypadku do nadawania i odbioru danych wykorzystywane są odpowiednio tylko pary przewodów 1,2 oraz 3,6. Dotyczy to również adapterów Ethernet–USB, które są jedynie zasilane i służą jako interfejsy terminujące. Zapewnia to jednokierunkowość par przewodów zgodnie ze standardem IEEE „100BaseT”.

Połączenie Czerwonego z Zielonym, Żółtym i Niebieskim tworzy prosty czterobiegunowy pierścień. Para nadawcza jednego interfejsu („IF”) jest zawsze łączona z parą odbiorczą sąsiedniego interfejsu IF. Pary przewodów 4,5 oraz 7,8 pozostają w każdym interfejsie IF niepodłączone.

Bezpośrednie połączenie stanowiące trasę synchronizacji Zielony–Żółty jest symetryczne.

Aby zapobiec atakowi Żółtego na Zielonego w sytuacji, gdy Żółty jest kontrolowany przez atakującego, na Żółtym i Zielonym stosuje się zapory sieciowe („FW”), które zabraniają przesyłania pakietów od Żółtego do Zielonego. Zapory te działają już od warstwy 2a wzwyż.

Spełniony jest w ten sposób warunek AKE po stronie sprzętowej („HW”), zgodnie z którym w AKE mogą istnieć tylko trzy możliwości komunikacji: 1. od Zielonego do Czerwonego; 2. od Zielonego do Żółtego; 3. od Czerwonego do Żółtego.

Połączenia sieciowe między elementami asymetrycznego punktu końcowego komunikacji

Rys. 1: Połączenia sieciowe między elementami AKE oraz dostęp do sieci zewnętrznej (warstwa 1)

Objaśnienia do rys. 1: urządzenie czerwone (w skrócie „Czerwony”, zaznaczone czerwonym tłem, „balun”) ma dwa interfejsy (IF) zgodne z Ethernet IEEE 802.x. Jeden jest zewnętrznym interfejsem połączonym w sposób konwencjonalnie symetryczny, w którym można również wykorzystywać wszystkie cztery pary przewodów, na przykład w standardzie 1000BaseT. Minimalnie stosowany jest tutaj oparty na przewodach miedzianych standard 100BaseT (punkty 5a i 5b). Kierunek nadawania i odbioru przedstawiono jawnie jako punkt 5a i punkt 5b, tak jak w standardzie Ethernet 100BaseT byłyby one również realizowane na oddzielnych przewodach miedzianych za pomocą par przewodów 1,2 i 3,6 (punkt 5a: para przewodów 1,2; punkt 5b: para przewodów 3,6 Czerwonego).

Drugi, wewnętrzny interfejs IF z parami przewodów 7a i 7b jest połączony asymetrycznie. „Wewnętrzny” interfejs IF wykorzystuje wyłącznie 100BaseT, nawet jeśli sam interfejs obsługuje już 1000BaseT. Połączenie jest asymetryczne, ponieważ nadawcza para przewodów 1,2 w punkcie 7b jest połączona z innym interfejsem IF niż odbiorcza para przewodów 3,6 w punkcie 7a.

W wewnętrznym, asymetrycznym interfejsie IF Czerwonego zawsze wykorzystuje się wyłącznie pary przewodów 1,2 oraz 3,6 standardu 100BaseT, aby zapewnić asymetrię, ponieważ w 100BaseT nadal występują oddzielne pary linii, czyli pary przewodów, do nadawania i odbioru. Natomiast w 1000BaseT wszystkie cztery pary przewodów są już wykorzystywane zarówno do nadawania, jak i odbioru, czyli dwukierunkowo, a zatem nie nadają się do realizacji asymetrii.

Ponieważ wewnętrzny interfejs IF Czerwonego w punktach 7a i 7b wykorzystuje tylko pary przewodów 1,2 oraz 3,6, a niewykorzystane pary przewodów 4,5 oraz 7,8 pozostają niepodłączone, również w przypadku 1000BaseT automatycznie stosowany jest standard 100BaseT, czyli transmisja z szybkością maksymalnie 100 Mbit/s. Wynika to ze zgodności wstecznej standardu 1000BaseT.

Wewnętrzna sieć AKE, z parami przewodów w punktach 7a, 7b oraz 6a, 6b, jest wykonana w obudowie wyposażonej w cztery gniazda Ethernet RJ45. Wykorzystuje się w niej skręcone pary przewodów, które za pomocą lutowanych połączeń wewnątrz obudowy łączą odpowiednie styki gniazd Ethernet RJ45. Obudowę zamyka się przykręcaną pokrywą, zapewniając w ten sposób wystarczającą ochronę mechaniczną przewodów i punktów lutowniczych przed uszkodzeniem. Obudowa jest fizyczną częścią transformatora balun, w skrócie „baluna”.

(Dokładne graficzne przedstawienie budowy baluna znajduje się w oddzielnym dokumencie).

Zewnętrzny interfejs IF w punktach 5a i 5b zapewnia AKE połączenie sieciowe z siecią LAN, a następnie z Internetem.

Wewnętrzny interfejs IF w punktach 7a i 7b zapewnia połączenie Czerwonego z nadajnikiem (S) i odbiornikiem (E).

Czerwony odpowiada „śluzie” dla danych, której wewnętrzna brama znajduje się w punktach 7a i 7b, a zewnętrzna w punktach 5a i 5b. Czerwony filtruje i sprawdza dane wysyłane przez Zielonego, czyli S, do Internetu lub odbierane z Internetu, zanim zostaną przekazane do Żółtego lub do sieci zewnętrznej.

Dane nadchodzące z Internetu do punktu 5b są najpierw sprawdzane w balunie, a jeśli zostaną uznane za „dobre”, przekazywane przez punkt 7b do E, czyli Żółtego. Dane te są zazwyczaj odpowiedziami na żądania wysyłane przez S, czyli Zielonego, do serwera w Internecie lub sieci LAN.

Te odpowiedzi, ale również żądania, powodują próby nadawania przez E, czyli Żółtego.

Pakiety danych wysyłane przez E (prostokąt z żółtym tłem) trafiają przez punkt 6b do interfejsu terminującego (prostokąt z niebieskim tłem, „Niebieski”, punkt 3). W tym celu nadawcza para przewodów 1,2 odbiornika E, czyli Żółtego, jest łączona z odbiorczą parą przewodów 3,6 Niebieskiego (punkt 6b).

Nadawcza para przewodów 1,2 Niebieskiego jest łączona z odbiorczą parą przewodów 3,6 Zielonego, czyli S (punkt 6a).

Linia połączenia w punkcie 6a jest przerwana lub przerywana, ponieważ nie przekazuje żadnych danych do Zielonego, czyli S, lecz służy jedynie elektronicznemu zamknięciu łącza. Dane w żadnym wypadku nie powinny być przekazywane od Niebieskiego do Zielonego, aby zachować asymetrię między Zielonym i Żółtym, czyli między nadawaniem i odbiorem (S może tylko nadawać, E może tylko odbierać — z jedynym wyjątkiem, że E może nadawać „w niebieską dal”).

Niebieski jest jedynie zasilany przez dwa przewody przewidziane do tego celu w złączu USB adaptera. Para przewodów do transmisji danych w złączu USB adaptera pozostaje niepodłączona. Zapewnia to, że Niebieski nie może dalej przekazywać żadnych danych. Może on zatem być zasilany zarówno przez wolny port USB komputera, jak i przez dostępną w handlu ładowarkę USB.

Urządzenie zielone wysyła swoje dane jako żądania do serwerów WWW itd. przez punkt 7a, parą przewodów 1,2, do Czerwonego, do jego pary przewodów 3,6. W ten sposób obwód danych tych czterech interfejsów IF zostaje zamknięty. Zielony może teraz wysyłać pakiety do Czerwonego, a Żółty tylko do Niebieskiego. Odpowiedzi pochodzące od Czerwonego lub przekazywane przez niego mogą być wysyłane do Żółtego, aby wyświetlić je użytkownikowi na monitorze.

Ponieważ Zielony i Żółty muszą być ze sobą zsynchronizowane, istnieje jeszcze bezpośrednie symetryczne połączenie sieciowe między Zielonym i Żółtym, niezależne od opisanego przed chwilą czterobiegunowego pierścienia sieciowego. Służy ono wyłącznie do przesyłania danych od Zielonego do Żółtego, nigdy w kierunku przeciwnym (simpleks). Wszelką komunikację w kierunku przeciwnym trzeba uniemożliwić, aby zachować asymetrię i zapobiec atakom Żółtego na Zielonego.

Połączenie to można wykonać poza balunem za pomocą kabla, przy użyciu kabla krosowanego lub, w przypadku odpowiednich interfejsów IF z funkcją automatycznego krosowania, również prostego kabla połączeniowego. Odpowiednie interfejsy Zielonego i Żółtego łączy się krótkim kablem, na przykład UTP 5e, w punktach 1 i 2. Rysunek 1 przedstawia to połączenie dla standardu 100BaseT, z punktem 1 oznaczającym kierunek nadawania i jedyny dozwolony kierunek komunikacji na tej trasie. Punkt 2 jest połączeniem niewykorzystywanym do transmisji danych; służy tu wyłącznie zamknięciu obwodu elektrycznego, aby transmisja danych na tej trasie była w ogóle możliwa.

W tym połączeniu synchronizacyjnym można również zastosować Bluetooth jako wariant bezprzewodowy, pod warunkiem że drogą radiową od Zielonego do Żółtego przesyłane są wyłącznie dane synchronizacyjne, a nie „ważne” dane. W przeciwnym razie należy dodatkowo zastosować warstwę 5 zapewniającą szyfrowanie.

Przy stosowaniu 1000BaseT na tej trasie, obejmującej punkty 1 i 2, wykorzystuje się oczywiście wszystkie cztery pary przewodów złącza RJ45. Dwukierunkowość zostaje tutaj logicznie ograniczona z dupleksu do simpleksu przez zaporę na Żółtym, która uniemożliwia wszelkie wysyłanie od Żółtego do Zielonego, oraz zaporę na Zielonym, która uniemożliwia odbiór jakichkolwiek danych od Żółtego (od warstwy 2a).

Strzałki w punktach 4a i 4b przedstawiają złącza klawiatury oraz myszy.

Do pracy asymetrycznej potrzebna jest specjalna klawiatura umożliwiająca jednoczesne wprowadzanie znaków do Zielonego i Żółtego (klawiatura synchroniczna). Dokładną budowę tej klawiatury oraz sposób jej wykonania opisano w oddzielnym dokumencie szczegółowym.

Klawiatura ta ma nie jedno złącze USB, lecz dwa: jedno dla Zielonego i jedno dla Żółtego. Za pomocą przełączników wejście z klawiatury użytkownika może być również kierowane wybiórczo tylko do Zielonego lub tylko do Żółtego.

Mysz może być według wyboru podłączana przez te same przełączniki do Zielonego albo do Żółtego. Umożliwia to asynchroniczną obsługę wejścia myszy. Można też używać dwóch oddzielnych myszy, jednej dla Zielonego i jednej dla Żółtego.

Jeśli platformą sprzętową są laptopy, można zrezygnować z przełączników, ponieważ laptopy mają już wbudowaną mysz i klawiaturę do pracy asynchronicznej.

W szczegółowym opisie budowy wynalazku dołączonym do tego opisu patentowego przyjęto trzy laptopy jako platformę sprzętową dla wszystkich trzech urządzeń: Czerwonego, Zielonego i Żółtego. Opis szczegółowy znajduje się w oddzielnym dokumencie. Wyjątkowo, przy stosowaniu laptopów, do pracy synchronicznej można również używać wbudowanych klawiatur, obsługując je obiema rękami, co jest jednak oczywiście mniej wygodne niż korzystanie z klawiatury synchronicznej.

Niniejszy dokument opisuje wynalazek niezależnie od użytego sprzętu, takiego jak laptopy, komputery stacjonarne itd. Dalsze dokumenty opisują dokładną budowę na przykładzie laptopów, po jednym dokumencie na każde urządzenie, dodatkowy sprzęt i niezbędne oprogramowanie, tak aby osoba posiadająca odpowiednią wiedzę techniczną mogła na podstawie tych opisów skutecznie odtworzyć wynalazek.

W przypadku wszelkich rodzajów synchronicznych urządzeń wejściowych ważne jest, aby nie mogły one tworzyć „mostu” dla danych od Żółtego do Zielonego, co zapobiega atakom na asymetrię.

Punkty 8a i 8b przedstawiają połączenia pozostałych urządzeń wejściowych i wyjściowych z Zielonym i Żółtym, czyli monitorów, drukarek, skanerów, kamer i podobnych urządzeń.

Klawiatura synchroniczna opiera się na przewodowych klawiaturach USB. Powstaje z dwóch konwencjonalnych klawiatur przez umieszczenie folii stykowych dwóch jednakowych, dostępnych w handlu przewodowych klawiatur USB oraz ich płytek procesorowych w jednej obudowie klawiatury. Każde naciśnięcie klawisza powoduje więc jednoczesne wygenerowanie tego samego znaku, wysyłanego zarówno do Zielonego, jak i do Żółtego.

Aby zapobiec przesłuchom między procesorami klawiatury oraz atakom na asymetrię, między obie płytki procesorowe wkłada się uziemioną blachę ekranującą. Kolejna blacha ekranująca otacza obszar procesorów klawiatury, aby zapobiec wypromieniowywaniu sygnałów danych na zewnątrz.

Dwa przełączniki wbudowane w klawiaturę umożliwiają również asynchroniczne używanie klawiatury synchronicznej, tak aby znaki były wprowadzane według wyboru tylko do Zielonego lub tylko do Żółtego.

Podobnie za pomocą przełączników można kierować wejście myszy według wyboru do Zielonego lub Żółtego, zależnie od tego, czy ma być wykorzystywana sieć (mysz podłączona do Żółtego), czy praca odbywa się wyłącznie na Zielonym (mysz podłączona do Zielonego). Przy korzystaniu z programów sieciowych lub sieci klawiatura działa synchronicznie, tak aby wszystkie naciśnięcia klawiszy mogły być jednocześnie przetwarzane w Zielonym i Żółtym.

Można sobie również wyobrazić analogicznie synchroniczną pracę myszy, tak aby wszystkie jej ruchy mogły być jednocześnie przetwarzane w Zielonym i Żółtym; wymagałoby to jednak także synchronizowania wszystkich graficznych elementów wyświetlania (okien, menu) w Żółtym przez Zielonego. Nie jest to częścią tego wynalazku; zgodnie z wynalazkiem asymetryczne korzystanie z sieci jest sterowane wyłącznie za pomocą klawiatury.

Warstwa 2:

Należy tu zaimplementować następujące trzy punkty:

a) Nadajnik („S”) i odbiornik („E”) muszą mieć zarówno ten sam adres IP, jak i ten sam adres MAC. Zapewnia to, że w warunkach asymetrycznych S i E zachowują się wobec trzeciego urządzenia, baluna, czyli Czerwonego, jak jedno urządzenie sieciowe. Aby uzyskać identyczność adresów MAC, na jednym z nich, czyli Zielonym lub Żółtym, stosuje się program „macchanger”.

b) Rozwiązywanie powiązań między adresami MAC i IP wewnątrz sieci AKE musi odbywać się statycznie, za pomocą odpowiednich przypisań wykonywanych narzędziem „arp” na Czerwonym, Żółtym i Zielonym przy każdym uruchomieniu systemu. W warunkach asymetrycznych nie są bowiem możliwe dynamiczne zapytania ARP typu „Who has IP x.x.x.x? Tell y.y.y.y.y.y.”, gdyż odpowiedź na zapytanie nie dotarłaby do pytającego, lecz do E.

Gdyby E wysłał takie zapytanie, trafiłoby ono tylko do niebieskiego interfejsu IF i nie przyniosłoby zatem żadnego skutku.

c) Zapory sieciowe w warstwach 2a i 2b: aby dopuścić tylko niezbędne i pożądane przepływy danych, stosuje się programy zapory „arptables” i „ebtables”. Blokują one również próby ataków bezpośrednio w warstwie 2. Oba programy są używane dodatkowo obok zapory „iptables”.

Poza tym w warstwach 1 i 2 stosuje się Ethernet zgodny ze standardem IEEE 802.x-100BaseT lub -1000BaseT.

Warstwa 3:

Warstwa sieciowa. Odpowiada za routing w sieciach obejmujących więcej niż jeden segment sieci. Przykładem zastosowania jest tutaj asymetryczne narzędzie ping, które wykorzystuje protokół ICMP, aby umożliwić proste monitorowanie i testy działania sieci, np. sprawdzanie osiągalności komputerów w sieci.

W tym celu po stronie S w AKE znajduje się program ping rozszerzony o możliwość synchronizowania programu ping po stronie E z jego zapytaniami. Użytkownik uruchamia oba programy ping jednocześnie za pomocą klawiatury synchronicznej. S-ping wysyła następnie zapytanie przez Czerwony do sieci, do hosta docelowego, a związane z nim dane (strukturę ping) do E-ping. Dzięki temu E-ping dysponuje takim samym stanem danych jak S-ping, sam wysyła to samo zapytanie do Niebieskiego IF („w ciemno”) i w ten sposób oczekuje odpowiedzi hosta docelowego. Gdy tylko odpowiedź nadejdzie przez Czerwony, E-ping ją analizuje (czas przesyłania w obie strony, round trip time) i przedstawia użytkownikowi na ekranie odbiornika.

Samo synchroniczne wykonywanie programu ping na S i E zatem nie wystarcza.

Aby asymetryczny ping („aping”) mógł również opuścić asymetryczny obszar AKE i na przykład pingować host w Internecie lub sieci LAN, na Czerwonym musi być włączone przekazywanie pakietów IP. Do samego sprawdzenia działania sieci wewnątrz AKE wystarczy oczywiście aping skierowany do Czerwonego. Pozwala to przetestować wszystkie połączenia wewnątrz AKE.

Na potrzeby wynalazku wystarczy skonfigurować odpowiednie trasy z Zielonego do Czerwonego, z Czerwonego do Żółtego oraz z Zielonego do Żółtego. Czerwony jest przy tym oczywiście bramą domyślną dla Zielonego i Żółtego. Zielony i Żółty otrzymują te same adresy IP w tym samym segmencie sieci co wewnętrzny IF Czerwonego. Przy ręcznej konfiguracji sieci plik /etc/hosts należy wypełnić adresami IP uczestniczących komputerów. W /etc/host.conf umieszcza się „order bind,hosts

multi on”. Do /etc/resolv.conv trafia adres sieciowy wewnętrznej, czteroportowej sieci pierścieniowej AKE oraz adresy serwerów nazw (serwerów DNS).

Plik /etc/HOSTNAME wypełnia się nazwą danego urządzenia.

Wszystkie ustawienia wykraczające poza te pliki, takie jak reguły zapory sieciowej, są konfigurowane podczas uruchamiania systemu przez skrypt zasobów za pośrednictwem /etc/crontab. Skrypty te oraz pozostałe szczegóły instalacji trzech komputerów opisano w odpowiednich dokumentach szczegółowych.

Warstwa 4:

Warstwa transportowa. Należy tu uwzględnić, że w warunkach asymetrycznych mogą być stosowane wyłącznie protokoły bezpołączeniowe, takie jak UDP, ponieważ mechanizmy wymagające komunikacji dupleksowej, między innymi „handshake” protokołu TCP, nie są możliwe w czysto simpleksowej sieci, takiej jak sieć AKE.

W tym celu na Czerwonym zaimplementowano między innymi dwa serwery proxy: jednym z nich jest konwencjonalny serwer proxy o nazwie „squid”, który od strony zewnętrznej, czyli w kierunku Internetu, stanowi frontend komunikacji WWW i ma przede wszystkim umożliwiać stosowanie protokołu HTTPS. Po wewnętrznej stronie squid (a więc w komunikacji z Żółtym i Zielonym) „rozmawia się” wyłącznie za pomocą HTTP.

Kolejnym serwerem proxy, położonym dalej wewnątrz Czerwonego, jest cproxy, utworzony na potrzeby AKE. Litera „c” w cproxy oznacza klienta, ponieważ ten serwer proxy jest potrzebny osobno dla każdego AKE i protokołu.

W wynalazku squid i cproxy są zaimplementowane lub zainstalowane na tym samym sprzęcie, na jednym i tym samym urządzeniu Czerwonym, ale mogłyby również znajdować się na odrębnych urządzeniach, gdyby były one połączone ze sobą w sieć symetrycznie.

Podczas gdy squid nadal komunikuje się symetrycznie po obu stronach, cproxy komunikuje się symetrycznie tylko ze squid, a więc w kierunku Internetu. W kierunku strony zielonej, czyli Żółtego i Zielonego, komunikuje się asymetrycznie: nadaje w kierunku Żółtego i odbiera z kierunku Zielonego.

W ogólnym ujęciu cproxy pełni następujące funkcje:

a) Oprogramowanie balun: cproxy przekształca połączeniowy protokół TCP, wykorzystywany w Internecie do HTTP,

w bezpołączeniowy UDP dla Żółtego lub przekształca UDP stosowany przez Zielonego w TCP dla danego serwera WWW, z którym użytkownik aktualnie komunikuje się za pomocą przeglądarki.

b) cproxy stanowi zaporę warstwy aplikacji: filtruje odebraną zawartość stron WWW, na przykład usuwając skrypty, jeżeli jest to pożądane. Użytkownik AKE może sterować sposobem filtrowania cproxy za pomocą krótkich poleceń wpisywanych do przeglądarki; zob. warstwa 7.

c) Jako program pomocniczy do realizacji symetrycznej komunikacji z Internetem, której asymetryczna, zielona strona nie jest w stanie wykonywać: rozwiązywanie nazw DNS dla stron internetowych i podobne zadania wykonuje cproxy. Jeżeli obrazy, skrypty lub CSS danej strony mają również zostać przedstawione użytkownikowi w przeglądarce, cproxy inicjuje „doładowywanie” tych treści, a następnie wysyła je do przeglądarki na Żółtym. Doładowywanie zawartości strony w razie potrzeby jest konieczne, ponieważ przesłana na początku sama strona HTML nie zawiera wszystkich treści, takich jak obrazy, CSS, skrypty itd., lecz tylko odsyłacze do nich; ponieważ jednak przeglądarka po stronie odbiorczej może nadawać tylko w ciemno, nie może podążać za tymi odsyłaczami ani doładowywać ich zawartości. Dlatego w razie potrzeby zadanie to przejmuje cproxy. W tym celu doładowuje zasoby i wysyła je najpierw do E, który zapisuje je lokalnie. Odwołania do zasobów znajdujących się na serwerze są przekształcane w odwołania lokalne, a tak zmodyfikowana strona HTML jest następnie przesyłana do przeglądarki odbiorczej. Przeglądarka odczytuje teraz lokalne odwołania i doładowuje zasoby, takie jak obrazy, CSS lub skrypty, lokalnie ze swojego dysku, ponieważ zostały one wcześniej tam skopiowane. Na E działa osobny proces serwerowy służący do uprzedniego odbierania i zapisywania zasobów. Uwaga: na obecnym etapie automatyczne „doładowywanie” zasobów strony, takich jak CSS, obrazy, skrypty itd., nie jest jeszcze zaimplementowane. Możliwe jest jednak ręczne doładowywanie pojedynczych obrazów za pomocą krótkiego odsyłacza.

Bez tych pomocniczych działań wykonywanych przez cproxy na poziomie protokołu korzystanie ze zwykłych protokołów w zwykły sposób byłoby niemal niemożliwe albo wymagałoby znacznych zmian w programach sieciowych. cproxy negocjuje też komunikację z serwerem WWW: domyślnie cproxy wysyła zapytania do danego serwera WWW z użyciem HTTPS. Dopiero jeśli serwer WWW tego nie chce i wymaga zwykłego HTTP, cproxy ponownie wysyła zapytanie użytkownika, tym razem żądając HTTP. cproxy stanowi więc serwer proxy HTTP. W zasadzie mógłby jednak w ten sam sposób obsługiwać również inne protokoły. Dla każdego oferowanego protokołu na Czerwonym potrzebny jest osobny cproxy, który przyjmuje zapytania S na odpowiednim porcie.

Odpowiedniki cproxy znajdują się odpowiednio na Zielonym i Żółtym: są to „lproxies”, gdzie „l” oznacza „lokalny”.

Przekształcają one zapytania przeglądarki przychodzące przez TCP na Zielonym, czyli S, w UDP, a następnie wysyłają je do cproxy. Natomiast na Żółtym lproxy przekształca odpowiedzi serwera WWW z UDP z powrotem w TCP, aby tamtejsza przeglądarka mogła je przetworzyć, ponieważ przeglądarki znają tylko TCP.

Do warstwy 4 należą również porty, czyli numery przyporządkowujące aplikacje sieciowe do pakietów danych wysyłanych lub odbieranych przez interfejs.

Na potrzeby wynalazku trzeba tu było rozwiązać problem podobny do występującego przy asymetrycznym ping, aby komunikacja asymetryczna działała także w warstwach wyższych niż warstwa 3: synchronizację portów.

Ponieważ porty źródłowe podczas wysyłania zapytania do serwera WWW są wybierane wewnętrznie przez system operacyjny i przy każdym zapytaniu w sposób nieprzewidywalny się zmieniają, odpowiedź serwera WWW zostałaby wysłana do dynamicznego portu nadawcy, czyli Zielonego, zamiast do portu, którego jako źródłowego użył Żółty. Porty źródłowe na Zielonym i Żółtym nie tylko zmieniają się zatem przy każdym zapytaniu, lecz również przy każdym zapytaniu różnią się od siebie. Problem stanowi różnica między portami źródłowymi Zielonego i Żółtego. Powoduje ona bowiem wysłanie odpowiedzi serwera do niewłaściwego portu, przez co przeglądarka na Żółtym jej nie wykorzystuje. Porty źródłowe muszą więc być synchronizowane. Najprostszym rozwiązaniem tego problemu, wymagającym najmniejszej ingerencji w system i istniejące programy, jest ujednolicenie dynamicznych portów źródłowych S i E, czyli Zielonego i Żółtego, za pomocą reguły zapory. W tym celu każdej z zapór warstwy 4, tutaj iptables, nadaje się regułę zmieniającą jej dynamiczny port źródłowy na port z góry określony. Ponieważ dynamiczny port źródłowy na S i E jest teraz odwzorowywany na ten sam statyczny port źródłowy, S i E ostatecznie używają tego samego portu źródłowego dla swoich zapytań. Odpowiedź serwera WWW dociera zatem do celu w E, a strona zostaje przedstawiona w przeglądarce E, czyli „przeglądarce odbiorczej”. Statyczny port źródłowy pakietów odpowiedzi jest przy tym przekształcany z powrotem przez zaporę na Żółtym w odpowiedni dynamiczny port źródłowy. Niestety nie można jednak stale utrzymywać tego samego statycznego portu źródłowego w regułach zapory dla wszystkich zapytań, więc trzeba go zmieniać przy każdym zapytaniu. Wynika to z działania programu iptables. Dlatego na S utworzono klienta, który w określonych odstępach czasu przesyła statyczne porty źródłowe do dopasowanego programu serwerowego na E, dzięki czemu S i E zawsze używają tych samych statycznych portów źródłowych, kiedy użytkownik kieruje zapytanie do serwera WWW. W tym celu program kliencki wysyła numer swojego bieżącego statycznego portu źródłowego do odpowiedniego programu serwerowego na E. Program serwerowy wstawia następnie ten sam statyczny port źródłowy do swoich reguł zapory. W ten sposób S i E wysyłają swoje zapytania UDP z tym samym portem źródłowym.

Również w warstwie 4 E nadaje w ciemno, czyli do IF zakończeniowego, aby być gotowym do odbioru.

Ponieważ wszystkie dane w AKE mają pochodzić z Zielonego, potrzebna jest para programów klient–serwer umożliwiająca również przesyłanie całych plików w warunkach asymetrycznych z Zielonego do Żółtego, z Zielonego do Czerwonego oraz z Czerwonego do Żółtego. To narzędzie oraz inne narzędzia opisano szczegółowo w kolejnych dokumentach, gdzie przedstawiono również ich kod źródłowy.

Warstwa 5: zob. warstwa 7.

Warstwa 6: zob. warstwa 7.

Warstwa 7:

Warstwa aplikacji. W AKE aplikacje działające w tej warstwie nie mogą samodzielnie komunikować się ze światem zewnętrznym, Internetem ani innymi sieciami, ponieważ E nie może nadawać, a S nie otrzymuje z zewnątrz zapytań, na które mógłby samodzielnie odpowiedzieć bez udziału użytkownika.

Skutek: jeśli użytkownik otworzył stronę internetową, która sama zawiera odwołanie np. do dostawcy reklam lub serwera statystyk, odpowiednie wywołanie albo pakiet trafia tylko do Niebieskiego IF, a więc nie powoduje żadnych konsekwencji. Również złośliwe oprogramowanie „złapane” za pośrednictwem strony internetowej nie może już w ten sposób „doładowywać” programów. (Warstwy 5 i 6 są tutaj zwykle zintegrowane z warstwą 7.)

cproxy stanowi zaporę warstwy aplikacji: filtruje odebraną zawartość stron WWW, na przykład usuwając skrypty, jeżeli jest to pożądane. Użytkownik AKE może sterować sposobem filtrowania cproxy za pomocą krótkich poleceń wpisywanych do przeglądarki i w ten sposób decydować, czy skrypty mają być ładowane, czy mają być ładowane obrazy (to ostatnie pozostaje jeszcze do zaimplementowania) itd. Im mniej elementów jest ładowanych, tym szybciej strona pojawia się w przeglądarce i tym bezpieczniejsze jest przeglądanie.

Aplikacje sieciowe są takie same jak w przypadku symetrycznym. Aplikacje są jednak utrzymywane w dwóch egzemplarzach: jeden na E i jeden na S. Zawsze istnieje zatem nadawcza i odbiorcza odmiana programu sieciowego.

cproxy zastępuje zarówno nagłówek HTTP, jak i komunikaty błędów HTTP pochodzące z serwera WWW własną standardową zawartością, aby zapobiegać atakom na przeglądarkę (tzw. user agent) za pomocą zmanipulowanych nagłówków lub komunikatów błędów HTTP.

Warstwa 8:

Warstwa sterowania, służąca odwzorowaniu AKE w modelu warstwowym ISO/OSI.

Użytkownik AKE, ze swoimi (synchronicznymi) urządzeniami wejściowymi i wyjściowymi stanowiącymi interfejs do AKE, tworzy warstwę 8. Dopiero w tej warstwie w AKE zostaje zamknięty obwód danych, a więc na przykład wyzwalane są odpowiedzi na zapytania albo inicjowane same zapytania.

Wszystkie wymienione wyżej elementy wynalazku, o ile są realizowane programowo, są inicjalizowane lub uruchamiane podczas startu systemu AKE przez odpowiedni osobny skrypt. Skrypt zawiera również reguły zapory dla każdego z trzech systemów komputerowych oraz pozostałe ustawienia inicjalizacji sieci dotyczące adresów MAC i IP. Jako system operacyjny zastosowano SuSE Linux 13.1 na sprzęcie opartym zarówno na AMD, jak i na Intelu. Wynalazek nie jest jednak związany z określonym systemem operacyjnym ani określoną platformą.

Jako synchroniczne urządzenie wejściowe zaimplementowano klawiaturę. Aby móc obsługiwać oba komputery, nadawcę („S”) i odbiorcę, jednocześnie, czyli jednocześnie kierować z obu zapytanie do serwera WWW, elementy sprzętowe dwóch konwencjonalnych klawiatur USB zmontowano w jedną wspólną klawiaturę z dwoma złączami USB. Pod klawiszami znajdują się zatem dwie membrany klawiaturowe zamiast jednej. Te same klawisze uruchamiają więc jednocześnie dwie membrany klawiaturowe, każdą z własnym procesorem.

Pozwala to na niemal jednoczesne wysyłanie zapytań, np. do serwerów WWW lub przy użyciu asymetrycznego ping.

(Synchroniczne myszy również byłyby możliwe według tej samej zasady. Potrzebne byłyby jednak wtedy także dalsze programy synchronizujące S i E, ponieważ okna, pozycje myszy oraz wszystkie pozostałe elementy graficzne na S i E musiałyby zawsze znajdować się w tych samych pozycjach. Nie zostało to tutaj jeszcze zaimplementowane.)

W opisanym tu wynalazku wystarcza pojedyncza mysz, którą można w razie potrzeby przełączać między S i E. Można również korzystać z dwóch osobnych myszy, po jednej dla S i E.

Ponieważ podczas asymetrycznego przeglądania stron internetowych nie można bezpośrednio podążać za wyświetlanymi na nich dalszymi odsyłaczami przez kliknięcie myszą — wskutek asymetrii odbiorca, na którym pojawia się odsyłacz, nie może przecież wysyłać danych z powrotem do Internetu — trzeba zastosować inną drogę. W tym celu cproxy, który ma do dyspozycji całą zawartość strony, dopisuje na początku każdego odsyłacza tzw. krótkie odsyłacze („KL”),

które użytkownik widzi jako pięciocyfrowe numery, np. 00546. Aby podążyć za takim odsyłaczem, czyli go otworzyć, użytkownik podaje poprzedzający go numer KL z prefiksem „x.”, a więc x.00546. Wpisuje go do pola adresu URL przeglądarki, co ze względu na synchroniczność klawiatury odbywa się tak samo na S i E, mimo że użytkownik widzi na ekranie tylko E. Po naciśnięciu klawisza Enter KL „x.00546” zostaje wysłany z E w ciemno, a z S do Czerwonego. Na Czerwonym cproxy odbiera KL i przetwarza go, przekształcając z powrotem w odpowiadający mu rzeczywisty odsyłacz, czyli długi odsyłacz („LL”). W tym celu cproxy utrzymuje dla każdej strony internetowej tabelę zestawiającą LL i KL.

Po przekształceniu KL w LL cproxy wysyła odpowiednie zapytanie do właściwego serwera WWW, który odsyła odpowiedź. cproxy filtruje odpowiedź, a następnie ponownie przekazuje ją przez UDP do E na Żółtym. Na Żółtym lproxy przekształca UDP z powrotem w TCP, a zapora zmienia port docelowy w pakiecie odpowiedzi z powrotem na dynamiczny port przeglądarki. Wszystkie warunki komunikacji zostają więc spełnione, a przeglądarka na E przedstawia odpowiedź serwera, czyli stronę dostępną pod odsyłaczem.

Klawiatura synchroniczna może dodatkowo mieć dwa przełączniki, za pomocą których można wykorzystywać ją do jednoczesnego wprowadzania danych na S i E albo tylko do wprowadzania danych na S lub E. Podczas obsługi programów sieciowych stosuje się synchroniczne ustawienie przełączników; monitor jest wtedy przełączony na E, podobnie jak mysz. Przy obsłudze tylko jednego komputera, S lub E, przełączniki przestawia się odpowiednio. Jest to wówczas tryb asynchroniczny.

Przebieg przeglądania stron WWW:

W przypadku przeglądania stron WWW użytkownik najpierw wpisuje zwykły odsyłacz do pola adresu URL przeglądarki za pomocą klawiatury synchronicznej. W tym celu synchronicznie wprowadza kombinację klawiszy Control-L. Kursor wprowadzania tekstu znajduje się dzięki temu w polu adresu URL obu przeglądarek, tak samo na Zielonym i Żółtym. Następnie użytkownik synchronicznie wpisuje żądany odsyłacz, poprzedzając go „y.”. Prefiks ten jest używany przy zwykłych odsyłaczach (LL) i służy cproxy do rozpoznawania zapytania użytkownika. Potem użytkownik wysyła zapytanie do Czerwonego, naciskając klawisz „Return”, czyli Enter. Ponieważ odbywa się to synchronicznie, przeglądarka po stronie odbiorczej również wysyła to zapytanie, ale nie do Czerwonego, lecz do Niebieskiego, czyli do niebieskiego IF. Przeglądarka odbiorcza jest tym samym gotowa do odbioru i oczekuje odpowiedzi serwera WWW. Pakiet zapytania wysłany z Zielonego do Czerwonego zostaje odebrany przez cproxy, który analizuje jego zawartość. Zapytanie trafia następnie do serwera proxy squid na Czerwonym. Squid ustala adres IP odpowiadający nazwie serwera WWW, a następnie wysyła zapytanie do serwera WWW. Odpowiedź serwera WWW wraca do squid, który przekazuje ją do cproxy. cproxy jako proxy warstwy 7 filtruje zawartość, usuwając treści niepożądane, i tworzy tabelę zawierającą krótkie odsyłacze (KL) dla wszystkich odsyłaczy, które po filtrowaniu pozostają na stronie. Te KL są w HTML strony dodawane jako prefiksy do tytułów odsyłaczy, tak aby użytkownik je widział. Tak zmodyfikowaną stronę cproxy wysyła w jednolitym formacie (kodowanie zawartości, bez kompresji) do Żółtego, gdzie przeglądarka przedstawia ją użytkownikowi. Użytkownik widzi teraz żądaną stronę internetową. Wszystkie odsyłacze na stronie są poprzedzone KL. Jeżeli użytkownik chce następnie przejść do któregoś z odsyłaczy na stronie lub go załadować, ponownie naciska Control-L, przenosząc się tym samym synchronicznie do pola adresu URL na Żółtym i Zielonym. Tam wpisuje KL z prefiksem „x.”. Przykład: „x.00234”. KL są pięciocyfrowe, z zerami wiodącymi, i jako pięć cyfr wpisuje się je do przeglądarki. Po naciśnięciu klawisza Enter zapytanie z KL zostaje wysłane z Zielonego do Czerwonego, a jednocześnie ponownie z Żółtego do Niebieskiego. cproxy zamienia teraz KL na odpowiadający mu długi odsyłacz LL i wysyła go, tak jak poprzednio, jako zapytanie do squid, który nawiązuje połączenie z serwerem. Dalej przebieg jest taki sam jak wcześniej, aż strona internetowa zostaje przedstawiona użytkownikowi na Żółtym. Obrazy, które normalnie byłyby osadzane w stronie podczas doładowywania przez przeglądarkę, są przedstawiane jako KL. Użytkownik może ich użyć do ładowania pojedynczych obrazów, a następnie również do ich zapisywania. Za pomocą prefiksów wpisywanych do pola adresu URL można konfigurować cproxy w czasie działania, między innymi tak, aby przepuszczał skrypty lub je odfiltrowywał. Nie trzeba przy tym ponownie uruchamiać cproxy: interpretuje on zawartość jak zapytanie i odpowiednio zmienia przebieg programu zgodnie z poleceniem. Użytkownik może więc w dowolnej chwili sterować zachowaniem cproxy. Na przykład polecenie „s.tls” może powodować wysyłanie zapytań przez HTTPS (domyślne ustawienie cproxy po uruchomieniu). Polecenie „s.tls-” sprawia, że kolejne zapytania WWW są wysyłane przez HTTP. Wszystkie polecenia można dowolnie ze sobą łączyć.

W obecnej wersji strona internetowa jest przedstawiana bez CSS i obrazów, czyli w takiej postaci, w jakiej serwer dostarcza ją na początku, bez doładowywania zasobów.

W ten sposób zaimplementowano pasywne korzystanie z „WWW”.

Uwaga: zanim nowy LL, KL lub polecenie sterujące zostanie synchronicznie wpisane do pola adresu URL, użytkownik powinien synchronicznie nacisnąć klawisz Escape, aby najpierw przywrócić przeglądarkę do stanu początkowego, ponieważ proces ładowania mógł się jeszcze nie zatrzymać.

Przebieg opisanej wyżej komunikacji w warstwie 4:

Po wpisaniu przez użytkownika odsyłacza do pola adresu URL i naciśnięciu Return przeglądarka wysyła zapytanie DNS, na które lokalny DNS zawsze odpowiada adresem IP urządzenia Czerwonego. W ten sposób przeglądarka wysyła zapytanie TCP do portu 8070, które najpierw odbiera lproxy na Zielonym, ponieważ przeglądarka nadawcza jest skonfigurowana do korzystania z lokalnego serwera proxy. lproxy przekształca to zapytanie z TCP w UDP, ponieważ w warunkach asymetrycznych można stosować tylko protokół bezpołączeniowy. To zapytanie UDP jest modyfikowane przez zaporę iptables: dynamiczny port źródłowy lproxy zostaje zastąpiony statycznym portem z zakresu od 50000 do 50999. Ten statyczny port jest przekazywany zaporze przez synchronizator portów. Synchronizator portów wysyła port z powyższego zakresu również do odbiorcy, gdzie odpowiednia usługa przekazuje go także zaporze na Żółtym. Dzięki temu podczas synchronicznego nadawania Żółty używa tego samego portu źródłowego co Zielony. Tylko to zapewnia, że przeglądarka odbiorcza oczekuje odpowiedzi na tym samym porcie, z którego wysłała zapytanie przeglądarka nadawcza. Bez synchronizacji portów nie mogłaby więc odbywać się komunikacja Zielony–Czerwony–serwer WWW–Czerwony–Żółty. Po wysłaniu pakietu zapytania ze statycznym portem źródłowym z Zielonego do Czerwonego przez UDP cproxy odbiera go na porcie 80. Po sprawdzeniu na wejściu zawartość danych zostaje przekazana przez TCP do serwera proxy squid na porcie 8080 na Czerwonym, czyli wewnątrz Czerwonego. Squid z kolei wysyła ją najpierw do serwera WWW jako zapytanie HTTPS. Jeżeli serwer WWW obsługuje HTTPS, zostaje nawiązane szyfrowane połączenie między squid a serwerem WWW. Jeżeli nie obsługuje HTTPS, a jedynie HTTP, squid wysyła do cproxy komunikat błędu, po czym cproxy ponownie wysyła to samo zapytanie do squid z użyciem HTTP. Następnie istnieje połączenie TCP z serwerem WWW. Odpowiedź serwera WWW jest przesyłana do squid, który przekazuje ją dalej do cproxy jako HTTP, nawet jeżeli squid utrzymuje połączenie HTTPS z serwerem WWW. Dzięki temu cproxy może odczytywać i filtrować dane. Następnie przekazuje odpowiedź przez UDP do portu źródłowego (statycznego portu synchronizacji) na Żółtym, gdzie tamtejszy lproxy przekształca UDP wewnętrznie na Żółtym w TCP dla przeglądarki. Zapora na Żółtym przekształca przy tym statyczny port źródłowy w dynamiczny port używany przez lproxy, który tutaj jest portem docelowym. lproxy komunikuje się przez swoje połączenie TCP z przeglądarką, która ostatecznie przedstawia użytkownikowi stronę internetową. W ten sposób obwód danych dla tego zapytania użytkownika zostaje zamknięty.

Macierz ataków służąca usystematyzowaniu wszystkich dróg i celów ataku:

Macierz ataków („A”) jest diagramem służącym przedstawieniu możliwych dróg ataku i możliwych celów ataku, którego autorem jest zgłaszający. Oznacza to, że wszystkie możliwe do pomyślenia ataki na komputerowy system sieciowy (z wyjątkiem lokalnych ataków na system informatyczny na miejscu, czyli fizycznego dostępu osoby) znajdują swoje miejsce w co najmniej jednym z pól A, a więc dają się jednoznacznie przyporządkować do jednego z pól.

Dziewięć głównych pól, wynikających z trzech kolumn odpowiadających trzem drogom ataku oraz trzech wierszy odpowiadających trzem celom ataku, jest ponownie podzielonych, najczęściej na pola dla sieci znanych lub zamierzonych oraz na pola dla sieci nieznanych, a zatem raczej niepożądanych przez użytkownika.

Przykładem sieci zamierzonej jest Internet, jeżeli został skonfigurowany przez użytkownika systemu. Przykładem sieci niepożądanej (z punktu widzenia administratora systemu) jest niekontrolowane boczne wejście do lokalnej sieci organizacji, utworzone na przykład za pośrednictwem telefonu komórkowego mającego dostęp do Internetu itd. Celem jest objęcie wszystkich pól środkami technicznymi. Jeżeli bowiem wszystkie pola są zabezpieczone, skuteczne ataki na cały system nie są już możliwe.

Wskazówki: prawie wszystkie pola są podzielone na sieci znane i nieznane. Jeżeli w tym dokumencie użyto jednego z oznaczeń pól, należy rozumieć, że obejmuje ono wszystkie pozostałe pola położone niżej lub na lewo w A. Przykład: „bezpieczeństwo B3” obejmuje zabezpieczenie pól A1, B1, A2, B2 oraz A3, B3, o ile nie wskazano inaczej.

Wynalazek chroni jedynie pola dotyczące sieci znanych.

Przykłady sieci nieznanych lub niepożądanych:

- „Interfejsy radiowe”, czyli wszelkiego rodzaju modemy radiowe telefonów komórkowych, smartfonów itp.

- Wykorzystywanie ultradźwięków do komunikacji np. między smartfonami oraz z innymi systemami, takimi jak telewizory, komputery PC itd.

- Sieć energetyczna do przesyłania danych.

- Podczerwień, na przykład stosowana w pilotach zdalnego sterowania.

- I wiele innych.

Kod programu

Wszystkie programy potrzebne do AKE są napisane w języku programowania „C” i wymienione w dokumentach szczegółowych. Ten stan oprogramowania umożliwia użytkownikowi przedstawionego tutaj AKE „surfowanie” lub „przeglądanie” stron internetowych. Obrazy mogą być również ręcznie wyświetlane i pobierane na żądanie użytkownika. Obrazy można zapisywać lokalnie.

Program „aping” jest narzędziem sieciowym wywodzącym się ze znanego programu „ping” i działa w warunkach asymetrycznych.

Oprócz programów napisanych w C na każdym z komputerów uczestniczących w AKE potrzebne są także skrypty startowe napisane jako skrypty powłoki, które implementują np. reguły zapory. Skrypty te są uruchamiane wraz z systemem za pomocą wpisu „reboot” w pliku systemowym /etc/crontab.

Poniżej w archiwum tarball spakowano instrukcję instalacji i kody źródłowe modelu laboratoryjnego („Proof of Concept, PoC”). Uwaga: oznaczenia plików w tarballu, takie jak „RR”, „GG” i „RG”, oznaczają poszczególne urządzenia: Czerwony (RR), Zielony (GG) i Żółty (RG), czyli balun lub proxy, nadajnik i odbiornik. Natomiast plik InstallLaptop_Balun_V.1.0 opisuje budowę skrzynki zawierającej pierścieniowe połączenie czterech interfejsów.

Prezentacja przeglądowa ACE (.pdf)

AKE_PoC.tar.gz MD5: d66882d464d6a2c523d8c45c4b948343, SHA256: 3c2e1f9f30ed78f031976d1c8d2d2dd0a3d9dd2a104241ed812957ba929a0da1 Rozmiar: 7889043 bajtów AKE_PoC.tar.gz.sig Odcisk palca certyfikatu: 92FA6FA30EF95B03346F57D8F4E66A3232C81156 32C81156.asc Certyfikat.

Autor: Heinrich T. Feuerbach, luty 2019 r.