seppl

Screenshot der Software:
seppl
Softwarebeschreibung:
Version: 0.4
Upload-Datum: 3 Jun 15
Entwickler: Lennart Poettering
Lizenz: Frei
Popularität: 7

Rating: nan/5 (Total Votes: 0)

Seppl ist sowohl ein Protokolldefinition und eine Software-Implementierung eines neuen Verschlüsselungsschicht für IPv4. seppl Projekt nutzt symmetrische Kryptographie für die Verschlüsselung der gesamten Datenverkehr in einem Netzwerk. Ihre Umsetzung wird um Linux netfilter / iptables entwickelt.
seppl führt zwei neue Netfilter Ziele: CRYPT und entschlüsseln. Eine Firewall-Regel kann somit für die Verschlüsselung / Entschlüsselung der eingehenden und ausgehenden Netzwerkverkehr verwendet werden. Dies macht seppl außerordentlich einfach zu bedienen, da keine Dämonen müssen für eine sichere Kommunikation führen.
seppl verwendet die Verschlüsselungsmaschine der Linux Cryptographic API, die in Kernel 2.4.22 und höher ist.
Seppl ist in erster Linie für die Verschlüsselung von Wireless LANs (als sicherer Ersatz der gebrochenen WEP-Verschlüsselung) und der lokalen Ethernet-Netzwerke gedacht, kann aber für große VPN-Lösungen als auch verwendet werden.
Das Protokoll beruht auf seppl ist nicht mit einer anderen Software kompatibel. Das Protokoll ist offen und gut definiert, aber es gibt keine Umsetzung außer dieser Referenz-Software.
Warum SEPPL gibt es bereits IPSEC, CIPE, ...?
CIPE kann nur für Punkt-zu-Punkt-Verbindungen verwendet werden. Es hat Tunnelstruktur und damit stellt neue IP-Adressen. Dies ist nicht immer wünschenswert. Es erfordert eine Userspace-Daemon.
IPSEC / FreeSwan ist äußerst kompliziert zu bedienen. Durch seine seltsame Routing-Schema ist es fast unmöglich, zusammen mit Routing-Daemons verwenden. IPSEC ist Schwergewicht.
Seppl ist wirklich Peer-to-Peer. Es verschlüsselt alle ausgehenden Datenverkehr nahtlos und es daher mit Routing-Daemons. Es ist extrem einfach zu verwenden, als auch, weil es keine Änderung an der normalen Routing-Verhalten macht. Seppl ist extrem leicht.
Die Umsetzung
Die Implementierung besteht aus drei Linux-Kernel-Module: seppl.o, ipt_CRYPT.o und ipt_DECRYPT.o. Ersteres ist das in-kernel Schlüsselmanager, letztere sind die beiden neuen Netfilter Ziele. Beide hängen von seppl.o.
seppl.o muss in den Kernel in erster Linie eingesetzt werden kann. Der Schlüssel-Manager kann mit der Datei / proc / net / seppl_keyring zugegriffen werden. Es enthält binäre Schlüsseldaten, und ist zunächst leer. Sie können einen neuen Schlüssel von ihm in diese Datei zu schreiben hinzuzufügen.
Die zwei Python-Skripte Seppl-ls und Seppl-gen-Key mich für die Schlüsselverwaltung verwendet werden. Seppl-ls kann zur Umwandlung seppl Schlüssel zwischen dem binären Format von / proc / net / seppl_keyring und einer für Menschen lesbaren XML-basierte Format verwendet werden. Rufen Sie einfach Seppl-ls für eine Liste aller zurzeit aktiven Schlüssel. Seppl-gen-Taste erzeugt einen neuen Schlüssel von / dev / urandom. Standardmäßig wird das XML-Format zu verwenden. Die Parameter -x Kräfte Binärmodus. Sie können zu generieren und aktivieren zwei Schlüssel "Linus" und "alan" indem Sie die folgenden Befehlszeilen:
Seppl-gen-Taste -n linus-x> / proc / net / seppl_keyring
Seppl-gen-Taste -n alan-x> / proc / net / seppl_keyring
Seppl-ls ohne Argument führt die neuen Schlüssel in den Kernel Schlüsselbund gespeichert. Sie können alle (derzeit nicht verwendet) Schlüssel durch die Ausgabe zu entfernen:
echo clear> / proc / net / seppl_keyring
Seit seppl auf symmetrischer Kryptographie mit Shared Keys basiert, müssen Sie neu erzeugte Schlüssel zu jeder Host, den Sie auf Ihre seppl Infrastruktur verbinden möchten zu kopieren. (Vorzugsweise via SSH oder eine andere sichere Dateiübertragung) Sie erhalten eine binäre Kopie Ihres aktuellen Schlüsselring durch Ausgabe:
cat / proc / net / seppl_keyring> keyring.save
Kopieren Sie nun die Datei keyring.save an alle anderen Hosts und den folgenden Befehl gibt:
cat keyring.save> / proc / net / seppl_keyring
Das ist einfach, nicht wahr?
Nach tun können Sie Ihre Firewall-Einstellungen auf jedem Host zu konfigurieren:
iptables -t mangle -A POSTROUTING -o eth0 -j CRYPT --key linus
iptables -t mangle -A PREROUTING -i eth0 -j DECRYPT
Dadurch werden alle ausgehenden Datenverkehr auf eth0 mit der Taste "Linus" verschlüsseln. Alle eingehenden Datenverkehr wird entweder mit "Linus" oder "alan" entschlüsselt, abhängig von der in der spezifischen Netzwerkpaket angegebenen Schlüsselnamen. Unverschlüsselte eingehende Pakete werden stillschweigend fallengelassen. Verwenden
iptables -t mangle -A PREROUTING -p 177 -i eth0 -j DECRYPT
zu ermöglichen, dass sowohl verschlüsselte und unverschlüsselte eingehenden Datenverkehr.
Das ist es. Sie sind fertig. Alle Ihre Verkehr im lokalen Subnetz wird nun mit seppl verschlüsselt.
Die Standard-Chiffre ist AES-128. Wenn Sie nicht den Namen der verwendeten Schlüssel ist der Standardwert "def" angeben.
Ein SysV Init-Skript /etc/init.d/seppl bereitgestellt. Es wird Seppl-Kernel-Module laden und schreiben alle Schlüssel aus dem Verzeichnis / etc / seppl an den Kernel Schlüsselring. Es wird keine Firewall-Regeln hinzufügen, aber.
Performance-Probleme
Die Netzwerkpakete werden vergrößert, wenn sie verschlüsselt sind, da zwei neue Überschriften und die IV zugegeben. (36 bytes in Durchschnitt) Dies steht im Widerspruch zu irgendeiner Weise mit dem MTU-Management von Linux-Kernel und führt mit allen großen Paketen (dh: Paketgröße in der Nähe von MTU) in einem großen und einem anderen sehr kleinen Paket fragmentiert. Dadurch wird die Netzwerkleistung zu verletzen. Ein Workaround dieser Einschränkung wird mit dem TCPMSS Ziel von netfilter, um die MSS-Wert im TCP-Header auf kleinere Werte einzustellen. Dies wird TCP Performance zu erhöhen, da TCP-Pakete von der Größe der MTU nicht mehr erzeugt. Damit keine Fragmentierung erforderlich ist. Jedoch ist TCPMSS TCP spezifischen, wird es nicht auf UDP oder andere IP-Protokolle unterstützen.
Fügen Sie folgende Zeile vor der Verschlüsselung, um Ihre Firewall-Konfiguration:
iptables -t mangle -A POSTROUTING -p tcp --tcp-flags SYN, RST SYN -o eth0 -j TCPMSS --set-mss $ ((1500-40-8-16-6-15))
Das Protokoll
Für die Verschlüsselung jedes einzelne verschlüsselte Paket wird entnommen und in eine verschlüsselte eins. Nicht ein einziges weiteres Paket wird immer gesendet.
   Original SEPPL Gegen
+ ------------ + + ----------------------- +
| IP-Kopfzeile | | Geändert IP-Kopfzeile | |
+ ------------ + + ----------------------- + |
| Payload | | SEPPL-Kopf |> Unverschlüsselte
+ ------------ + + ----------------------- + |
                            | Initialisierungsvektor | |
                            + ----------------------- + /
                            | SEPPL-Kopfzeile |
                            + ----------------------- + | Crypted
                            | Payload | |
                            + ----------------------- + /
Die ursprünglichen IP-Header so weit wie möglich gehalten wird. Nur drei Felder sind durch neue Werte ersetzt. Die Protokollnummer auf 177 gesetzt ist, das Fragment-Offset auf 0 gesetzt, und die Gesamtlänge wird auf die neue Länge korrigiert. Alle anderen Felder werden wie sie ist gehalten, einschließlich der IP-Optionen.
Die unverschlüsselte seppl Header besteht aus einem Ein-Byte-Chiffre-Nummer und einem Schlüsselnamen. Derzeit ist nur 0 und 1 werden als Chiffre-Nummern für AES mit 128-Bit-Schlüssel, bzw. definiert. AES mit 192bit-Taste. Die Schlüsselnamen (7 Byte) verwendet werden, um einen bestimmten Schlüssel in einem größeren Schlüsselring auswählen.
Der IV wird für die Kodierung des CBC Cipher verwendet. Es unterscheidet sich von Paket zu Paket, aber nicht zufällig erzeugt. Aufgrund Perfomance Gründen wird nur die erste IV beim Systemstart randomisiert, alle folgenden IVs durch Inkrementieren der vorherigen erzeugt.
Die verschlüsselten seppl Header besteht aus drei gespeichert Felder des ursprünglichen IP-Header (Protokollnummer, Fragment-Offset, Gesamtlänge) und einem Byte, das immer zur Erfassung Nichtanpassung Schlüssel ist 0.
Die Nutzlast ist die ursprüngliche IP-playload, aus der TCP / UDP / andere Kopf bis zum Ende.
Einschränkungen:
· Seppl stört connection tracking netfilter ist in gewisser Weise. So werden Sie nicht in der Lage, in Verbindung mit NAT seppl nutzen. Wenn Sie Connection Tracking in anderer Weise zusammen mit seppl nutzen die Leistung kann variieren.
· Seppl mit Linux 2.6.1 getestet. Verwenden Sie Version 0.3 für Linux 2.4.
Bedarf:
· Seppl wurde entwickelt und auf Debian GNU / Linux "testing" vom November 2003 getestet, sollte es auf den meisten anderen Linux-Distributionen und Unix-Versionen funktionieren, da es GNU Autoconf und GNU libtool für Quellcode-Konfiguration und Shared Library-Management verwendet.
· Seppl erfordert Linux 2.6. {0,1} (konfigurierten Quellen installiert) und iptables 1.2.8 oder neuer.
· Der komplette Userspace-Werkzeug-Set benötigt Python 2.1 oder neuer. Eine abgespeckte Satz in C ist ebenfalls vorhanden.
Installation:
Da dieses Paket mit den GNU Autotools gemacht, sollten Sie configure laufen innerhalb des Verteilungsverzeichnis für die Konfiguration der Quellbaum. Danach sollten Sie make zum Kompilieren und make install (als root) für den Einbau von Seppl.
Was ist neu in dieser Version:
· Port auf Linux 2.6, ohne weitere Änderungen. Version 0.4 ist nicht mehr mit Kernel 2.4 kompatibel. Verwenden Sie Version 0.3 für Kernel 2.4, es ist funktional äquivalent.

Andere Software von Entwickler Lennart Poettering

ifmetric
ifmetric

3 Jun 15

heatload
heatload

3 Jun 15

nss-myhostname
nss-myhostname

3 Jun 15

Kommentare zu seppl

Kommentare nicht gefunden
Kommentar hinzufügen
Schalten Sie auf die Bilder!