Seppl is zowel een protocol definitie en een software-implementatie van een nieuwe encryptie laag voor IPv4. Seppl project maakt gebruik van symmetrische cryptografie voor het versleutelen van de hele verkeer op een netwerk. De uitvoering ervan is ontworpen rond Linux Netfilter / iptables.
Seppl introduceert twee nieuwe netfilter targets: crypte en decoderen. Een firewall regel kan dus worden gebruikt voor het coderen / decoderen van de inkomende en uitgaande netwerkverkeer. Dit maakt Seppl buitengewoon eenvoudig te gebruiken, omdat er geen daemons moeten draaien voor veilige communicatie.
Seppl gebruikt de encryptie motor van de Linux Cryptographic API die beschikbaar zijn in kernel 2.4.22 en nieuwer is.
Seppl is vooral bedoeld voor het coderen wireless LAN (als veilige vervanging van de kapotte WEP versleuteling) en lokale ethernet netwerken maar kan worden gebruikt voor grootschalige VPN oplossingen ook.
Het protocol Seppl vertrouwt op is niet compatibel met andere software. Het protocol is open en goed gedefinieerd, maar er is geen andere dan deze referentie-software implementatie.
Waarom SEPPL, zijn er al IPSEC, CIPE, ...?
CIPE kan worden gebruikt alleen voor point-to-point verbindingen. Het heeft tunnel structuur en introduceert daarom de nieuwe IP-adressen. Dit is niet altijd wenselijk. Het vereist een gebruikersruimte daemon.
IPSEC / freeswan is uiterst ingewikkeld om te gebruiken. Door de vreemde routing systeem is het bijna onmogelijk te gebruiken in combinatie met routing daemons. IPSEC is zwaargewicht.
Seppl is echt peer-to-peer. Het versleutelt naadloos al het uitgaande verkeer en dus compatibel met routing daemons. Het is zeer eenvoudig te gebruiken als goed, want het maakt geen wijziging van de normale routing gedrag. Seppl is extreem licht.
De Implementatie
De implementatie bestaat uit drie Linux kernel modules: seppl.o, ipt_CRYPT.o en ipt_DECRYPT.o. De eerste is de in-kernel belangrijkste manager, de laatste zijn de twee nieuwe netfilter targets. Beide zijn afhankelijk van seppl.o.
seppl.o moet worden gestoken in de kernel in de eerste plaats. De sleutel beheerder kan worden benaderd met het bestand / proc / net / seppl_keyring. Het bevat binaire belangrijke data, en is aanvankelijk leeg. U kunt een nieuwe sleutel toevoegen door te schrijven naar dat bestand.
De twee Python scripts Seppl-ls en Seppl-gen-key me gebruikt worden voor managers op sleutelposities. Seppl-ls kunnen worden gebruikt voor het omzetten Seppl sleutels tussen de binaire formaat dat door / proc / net / seppl_keyring en leesbare XML gebaseerd formaat. Bel gewoon Seppl-ls voor een lijst van alle momenteel actieve toetsen. Seppl-gen-key genereert een nieuwe sleutel van / dev / urandom. Standaard is de XML-formaat zal gebruiken. De parameter -x krachten binaire modus. U kunt genereren en te activeren twee sleutels "Linus" en "alan" door de uitgifte van de volgende opdracht regels:
Seppl-gen-key -n Linus -x> / proc / net / seppl_keyring
Seppl-gen-key -n alan -x> / proc / net / seppl_keyring
Seppl-ls zonder argument geeft de nieuwe sleutels opgeslagen in de kernel sleutelhanger. U kunt alle (momenteel ongebruikte) sleutels te verwijderen door de uitgifte:
echo duidelijk> / proc / net / seppl_keyring
Aangezien Seppl is gebaseerd op de symmetrische cryptografie met gedeelde sleutels moet je nieuw gegenereerde sleutels kopiëren naar elke host die u wilt aansluiten op uw Seppl infrastructuur. (Bij voorkeur via SSH of een andere veilige bestandsoverdracht) Je krijgt een binaire kopie van uw huidige sleutelhanger door de uitgifte:
cat / proc / net / seppl_keyring> keyring.save
Kopieer nu het bestand keyring.save aan alle andere hosts en het volgende commando er:
cat keyring.save> / proc / net / seppl_keyring
Dat is simpel, is het niet?
Na het doen dus je kan je firewall-instellingen op elke host configureren:
iptables -t mangel -Een POSTROUTING -o eth0 j CRYPT de- toets linus
iptables -t mangel -Een PREROUTING -i eth0 j DECRYPT
Dit zal al het uitgaande verkeer te versleutelen op eth0 met de toets "Linus". Alle inkomend verkeer wordt gedecodeerd met ofwel "linus" of "Alan", afhankelijk van de belangrijkste opgegeven in de specifieke netwerkpakket. Ongecodeerde binnenkomende pakketten worden in stilte vallen. Gebruik
iptables -t mangel -Een PREROUTING -p 177 -i eth0 j DECRYPT
voor het toestaan van zowel versleutelde en onversleutelde inkomend verkeer.
Dat is het. Je bent klaar. Al uw verkeer op het lokale subnet is nu versleuteld met Seppl.
De standaard cipher is AES-128. Als u niet de naam van de gebruikte sleutel wordt standaard "def" opgeeft.
Een SysV init script /etc/init.d/seppl wordt verstrekt. Het zal Seppl's kernel modules laden en schrijf alle sleutels uit de directory / etc / Seppl aan de kernel sleutelhanger. Het zal geen firewall-regels toe te voegen, echter.
Prestatieproblemen
De netwerkpakketten zijn vergroot wanneer ze worden versleuteld, omdat twee nieuwe headers en IV worden toegevoegd. (36 bytes gemiddeld) Deze conflicten op een of andere manier met de MTU beheer van de Linux kernel en de resultaten in het hebben van alle grote pakketten (dat is: verpakkingsgrootte buurt MTU) gefragmenteerd in een grote en nog een zeer klein pakket. Dit zal netwerkprestaties kwetsen. Een work-around van deze beperking wordt met behulp van de TCPMSS doelwit van netfilter aan de MSS-waarde in de TCP header om kleinere waarden aan te passen. Dit zal TCP prestatie toenemen, aangezien TCP-pakketten van de grootte van de MTU niet meer gegenereerd. Er wordt dus geen fragmentatie nodig. Echter, TCPMSS is TCP specifieke, het zal niet helpen op UDP of andere IP-protocollen.
Voeg de volgende lijn voor encryptie om uw firewall setup:
iptables -t mangel -Een POSTROUTING -p tcp --tcp-vlaggen SYN, RST SYN -o eth0 j TCPMSS --set-mss $ ((1500-40-8-16-6-15))
Het Protocol
Bij codering iedere versleutelde pakket wordt genomen en omgezet in een gecodeerde één. Geen enkele verdere pakket wordt steeds verzonden.
Originele SEPPL tegenhanger
+ ------------ + + ----------------------- +
| IP-Header | | gewijzigd IP-Header | |
+ ------------ + + ----------------------- + |
| Payload | | SEPPL-Header |> Onversleutelde
+ ------------ + + ----------------------- + |
| Initialisatie Vector | |
+ ----------------------- + /
| SEPPL-Header |
+ ----------------------- + | Crypted
| Payload | |
+ ----------------------- + /
De originele IP header wordt zoveel mogelijk gehouden. Slechts drie velden worden vervangen door nieuwe waarden. Het protocol nummer is ingesteld op 177, wordt het fragment offset ingesteld op 0 en de totale lengte wordt gecorrigeerd naar de nieuwe lengte. Alle andere gebieden worden als wordt gehouden, met inbegrip van IP-opties.
De ongecodeerde Seppl header bestaat uit een één-byte cipher nummer en een belangrijke naam. Momenteel alleen 0 en 1 worden gedefinieerd als cipher nummers voor AES met 128bit-toets, resp. AES met 192bit sleutel. Toetsnaam (7 bytes) worden gebruikt om een specifieke toets in groter sleutelring selecteren.
De IV wordt gebruikt voor codering van het CBC code gebruikt. Het verschilt van pakket tot pakket, maar niet willekeurig gegenereerd. Door prestatie redenen, wordt alleen de eerste IV tijdens de systeemstart gerandomiseerde, alle volgende infusen worden gegenereerd door het verhogen van de voorgaande.
De gecodeerde Seppl header bestaat uit drie opgeslagen velden van de oorspronkelijke IP-header (protocol nummer, fragment offset, totale lengte) en een byte die altijd 0 voor het opsporen unmatching toetsen.
De payload is het oorspronkelijke IP-playload van de TCP / UDP / andere header aan het einde.
Beperkingen:
· Seppl interfereert met aansluiting volgen netfilter in een bepaalde manier. Zo zult u niet in staat zijn om NAT te gebruiken in combinatie met Seppl. Als u verbindingen volgen gebruiken op een andere manier samen met Seppl uw snelheid kan variëren.
· Seppl is getest met Linux 2.6.1. Gebruik versie 0.3 voor Linux 2.4.
Vereisten:
· Seppl werd ontwikkeld en getest op Debian GNU / Linux "testen" van november 2003, zou moeten werken op de meeste andere Linux distributies en Unix-versies, omdat het gebruik maakt van GNU Autoconf en GNU libtool voor broncode configuratie en gedeelde bibliotheek management.
· Seppl vereist Linux 2.6. {0,1} (geconfigureerd bronnen geïnstalleerd) en iptables 1.2.8 of nieuwer.
· De volledige userspace tool set vereist Python 2.1 of nieuwer. Een uitgeklede set in C is ook beschikbaar.
Installatie:
Als dit pakket wordt gemaakt met de GNU autotools moet u ./configure draaien binnen de distributie map voor het configureren van de source tree. Daarna moet je lopen te maken voor compilatie en make install (als root) voor de installatie van Seppl.
Wat is er nieuw in deze release:
· Port naar Linux 2.6, geen andere veranderingen. Versie 0.4 is niet langer verenigbaar met de kernel 2.4. Gebruik versie 0.3 voor kernel 2.4, het is functioneel gelijkwaardig.
Software informatie:
Versie: 0.4
Upload datum: 3 Jun 15
Licentie: Gratis
Populariteit: 40
Reacties niet gevonden