Seppl jest zarówno definicja protokołu i wdrożenie oprogramowania nowej warstwy szyfrowania dla IPv4. Seppl projekt korzysta z kryptografii symetrycznej do szyfrowania całego ruchu w sieci. Jego realizacja jest zaprojektowany wokół Linuksa netfilter / iptables.
Seppl wprowadza dwa nowe cele netfilter: Crypt i deszyfrowania. Reguła zapory mogą być zatem wykorzystywane do szyfrowania / deszyfrowania przychodzącego i wychodzącego ruchu sieciowego. To sprawia, że Seppl niezwykle łatwy w użyciu, ponieważ nie trzeba uruchamiać demony do bezpiecznej komunikacji.
Seppl wykorzystuje silnik szyfrowania API Linux kryptograficznego, który jest dostępny w jądrze 2.4.22 i nowszych.
Seppl jest przeznaczony przede wszystkim do szyfrowania bezprzewodowych sieci LAN (w bezpiecznej wymiany złamanego szyfrowania WEP) i lokalnych sieci ethernetowych, ale mogą być używane do rozwiązania VPN na dużą skalę, jak również.
Protokół Seppl zależy nie jest zgodny z żadnym innym oprogramowaniem. Protokół jest otwarty i dobrze zdefiniowane, ale nie ma innych niż realizacja tego programu referencyjnego.
Dlaczego Seppl istnieją już IPSEC, CIPE, ...?
CIPE mogą być wykorzystywane wyłącznie do połączeń punkt-punkt. Posiada konstrukcję tunelu, a tym samym wprowadza nowe adresy IP. Nie zawsze jest to pożądane. To wymaga demona przestrzeni użytkownika.
IPSEC / FreeSWAN jest niezwykle skomplikowane w użyciu. Ze względu na jego dziwne systemu routingu jest to prawie niemożliwe do wykorzystania wraz z demonów routingu. IPSEC jest wagi ciężkiej.
Seppl jest naprawdę peer-to-peer. Bezproblemowo szyfruje cały ruch wychodzący i to w ten sposób zgodny z demonów routingu. Jest bardzo łatwy w użyciu, a także, jak to czyni żadnych zmian do normalnego zachowania routingu. Seppl jest bardzo lekki.
Implementacja
Wdrożenie składa się z trzech modułów jądra Linux: seppl.o, ipt_CRYPT.o i ipt_DECRYPT.o. Były to klucz menedżer w jądra, te ostatnie są dwie nowych testów cele. Zarówno zależą seppl.o.
seppl.o musi być włożony do jądra w pierwszej kolejności. Kluczem menedżer może być dostępne z pliku / proc / net / seppl_keyring. Zawiera on podstawowe dane binarne i jest początkowo pusty. Możesz dodać nowy klucz pisząc go do tego pliku.
Oba skrypty Pythona Seppl-LS-gen i Seppl-key mi być używane do zarządzania kluczami. Seppl-LS może być używany do konwersji pomiędzy klawisze Seppl formacie binarnym używanym przez / proc / net / seppl_keyring i czytelnej formie opartej na XML. Wystarczy zadzwonić Seppl-LS o listę wszystkich aktualnie aktywnych przycisków. Seppl-gen-key generuje nowy klucz z / dev / urandom. Domyślnie będzie korzystać z formatu XML. Parametr -x siły trybie binarnym. Możesz generować i aktywować dwa klawisze "Linus" i "Alan", wydając następujące wiersze poleceń:
Seppl-gen-key -n Linus -x> / proc / net / seppl_keyring
Seppl-gen-key -n alan -x> / proc / net / seppl_keyring
Seppl-ls bez dyskusji listę nowych kluczy zapisanych w bazie kluczy jądra. Możesz usunąć wszystkie (aktualnie nieużywana) klucze poprzez emisję:
echo wyraźny> / proc / net / seppl_keyring
Od Seppl opiera się na kryptografii symetrycznej współdzieleniu klucze trzeba skopiować nowo wygenerowane klucze do każdego hosta, który chcesz połączyć się z infrastrukturą Seppl. (Najlepiej poprzez SSH lub innego bezpiecznego transferu plików) Masz binarną kopię aktualnej bazy kluczy poprzez emisję:
cat / proc / net / seppl_keyring> keyring.save
Teraz skopiować ten plik keyring.save do wszystkich innych hostów i wydać tam następujące polecenie:
Kot keyring.save> / proc / net / seppl_keyring
To jest proste, czyż nie?
Po ten sposób można skonfigurować ustawienia zapory na każdym hoście:
iptables -t mangle -A POSTROUTING -o eth0 -j krypcie --key Linus
iptables -t mangle -A PREROUTING -i eth0 -j odszyfrować
To zaszyfrować cały ruch wychodzący na eth0 z kluczem "Linus". Cały ruch przychodzący jest rozszyfrowane z "Linus" albo albo "Alan", w zależności od nazwy klucza określonego w określonego pakietu sieciowego. Niekodowane przychodzące pakiety są po cichu odrzucany. Stosowanie
iptables -t mangle -A PREROUTING -p -i eth0 -j 177 odszyfrowanie
za umożliwienie zarówno niekodowane zakodowane i ruch przychodzący.
To jest. Jesteś skończony. Całego ruchu w sieci lokalnej jest teraz szyfrowany z Seppl.
Szyfr jest domyślny AES-128. Jeśli nie podać nazwę kategorii kluczowych Domyślnie jest to "def".
SysV Skrypt startowy /etc/init.d/seppl jest. Będzie załadować moduły jądra Seppl i zapisać wszystkie klucze z katalogu / etc / Seppl do kluczy jądra. To nie doda żadnych reguł zapory, jednak.
Problemy z wydajnością
Pakiety sieciowe są zwiększenie rozmiarów, gdy są one zaszyfrowane, od dwóch nowych nagłówków i IV są dodawane. (36 bajtów) jest to sprzeczne średnio na jakiś sposób z zarządzania MTU jądra Linux i wyniki w posiadanie wszystkich dużych pakietów (czyli pakiet pobliżu: rozmiar MTU) rozdrobnione w jeden duży, a innym bardzo małym opakowaniu. To boli wydajności sieci. Obejścia tego ograniczenia jest wybranie celu TCPMSS z netfilter w celu dostosowania wartości MSS w nagłówku TCP do mniejszych wartości. To zwiększenie osiągów TCP, ponieważ pakiety TCP wielkości MTU nie są generowane. Tak więc nie jest potrzebna fragmentacja. Jednak TCPMSS jest TCP specyficzna, to nie pomoże na UDP lub innych protokołów IP.
Dodaj następujący wiersz przed szyfrowaniem do konfiguracji zapory:
iptables -t mangle -A POSTROUTING -p tcp-flagi SYN --tcp, RST SYN -o eth0 -j TCPMSS --set-mss $ ((1500-40-8-16-6-15))
Protokół
Dla szyfrowania każdy pakiet niezaszyfrowany został podjęty i przekształcony w zaszyfrowane jednym. Ani jeden pakiet jest coraz dalsze wysłany.
Oryginalny Seppl odpowiednikiem
+ ------------ + ----------------------- +
| IP-Header | | Modified nagłówek IP | |
+ ------------ + ----------------------- + |
| Ładowność | | Seppl-Header |> Nieszyfrowane
+ ------------ + ----------------------- + |
| Wektor inicjujący | |
+ ----------------------- + /
| Seppl-Header |
+ ----------------------- + | Crypted
| Ładowność | |
+ ----------------------- + /
Oryginalny nagłówka IP jest utrzymywana w miarę możliwości. Tylko trzy pola są zastępowane nowymi wartościami. Numer protokołu jest ustawiona 177, fragment przesunięcie jest ustawiony na 0, a całkowita długość jest korygowana do nowej długości. Wszystkie inne pola są utrzymywane w takim stanie, w tym opcji IP.
Niezaszyfrowana nagłówek Seppl składa się z jednej liczby bajtów klucza szyfrowania i nazwy. Obecnie tylko 0 i 1 są określane jako szyfr AES z numerów dla 128bit, resp klucza. AES z kluczem 192bit. Nazwa klucza (7 bajtów) mogą być używane, aby wybrać konkretny klucz w większej kluczy.
IV stosuje CBC kodowania szyfru używany. Różni się on z pakietu pakietowych, lecz nie jest generowany losowo. Ze względów Perfomance, tylko początkowe IV przy starcie systemu jest losowo, wszystkie kolejne kroplówki są generowane przez zwiększający poprzednich.
Zaszyfrowane nagłówek Seppl składa się z trzech zachowanych dziedzinach oryginalnego nagłówka IP (numer protokołu, fragmentów offset, długość całkowita) i bajt, który jest zawsze 0 do wykrywania kluczy unmatching.
Ładowność jest oryginalna IP-playload, z TCP / UDP / inny cel do końca.
Ograniczenia:
· Seppl zakłóca śledzenia połączeń netfilter w jakiś sposób. W ten sposób nie będzie w stanie wykorzystać NAT wraz z Seppl. Jeśli używasz śledzenie połączeń w inny sposób wraz z Seppl może się wahać.
· Seppl jest testowany w Linuksie 2.6.1. Użyj wersji 0.3 dla Linuksa 2.4.
Wymagania:
· Seppl został opracowany i przetestowany na "badania" Debian GNU / Linux od listopada 2003, to powinno działać na większości innych dystrybucji Linuksa i wersji Uniksa ponieważ używa GNU autoconf i GNU libtool dla konfiguracji kodu źródłowego i wspólnego zarządzania biblioteką.
· Linux 2.6 wymaga Seppl. {0,1} (zainstalowany skonfigurowane źródła) i iptables 1.2.8 lub nowsze.
· Komplet narzędzi przestrzeni użytkownika wymaga Pythona 2.1 lub nowszej. Okrojony zestaw w C jest również dostępne.
Instalacja:
W ten pakiet jest z GNU Autotools należy uruchomić ./configure wewnątrz katalogu dystrybucyjnego do konfiguracji drzewo źródeł. Następnie należy uruchomić, aby do kompilacji i make install (jako root) do instalacji Seppl.
Co nowego w tym wydaniu:
· Portu na Linuksa 2.6, bez innych zmian. Wersja 0.4 nie jest już zgodna z jądrem 2.4. Użyj wersji 0.3 na jądrze 2.4, jest to funkcjonalny odpowiednik.
Szczegóły programowe:
Wersja: 0.4
Filmu: 3 Jun 15
Licencja: Wolny
Popularność: 40
Komentarze nie znaleziono