seppl

Software screenshot:
seppl
Dettagli del software:
Versione: 0.4
Data di caricamento: 3 Jun 15
Sviluppatore: Lennart Poettering
Licenza: Libero
Popolarità: 7

Rating: nan/5 (Total Votes: 0)

Seppl è sia una definizione di protocollo e una implementazione software di un nuovo strato di crittografia per IPv4. progetto Seppl fa uso della crittografia simmetrica per la crittografia dell'intero traffico su una rete. La sua attuazione è stato progettato intorno Linux netfilter / iptables.
Seppl introduce due nuovi obiettivi di netfilter: CRIPTA e decifrare. Una regola firewall può quindi essere utilizzato per codificare / decodificare il traffico di rete in entrata e in uscita. Questo rende Seppl straordinariamente facile da usare, dato che nessun demone bisogno di correre per la comunicazione sicura.
Seppl utilizza il motore di crittografia delle API di Linux Cryptographic che è disponibile nel kernel 2.4.22 e successivi.
Seppl è destinato principalmente per la cifratura LAN wireless (come sostituto sicuro della crittografia WEP rotto) e reti Ethernet locali, ma può essere utilizzato per soluzioni VPN su larga scala come bene.
Il Seppl protocollo si basa non è compatibile con qualsiasi altro software. Il protocollo è aperto e ben definito, ma non ci sono implementazioni altro che questo software di riferimento.
Perché SEPPL, ci sono già IPSEC, CIPE, ...?
CIPE può essere usato solo per le connessioni point-to-point. Ha la struttura del tunnel e quindi introduce nuovi indirizzi IP. Questo non è sempre desiderabile. Richiede un demone in user space.
IPSEC / freeswan è estremamente complicato da usare. Grazie al suo sistema di instradamento strano è quasi impossibile da utilizzare insieme con i demoni di routing. IPSEC è pesante.
Seppl è davvero peer-to-peer. Si crittografa perfettamente tutto il traffico in uscita e quindi compatibile con i demoni di routing. È estremamente facile da usare e, come si fa alcuna modifica al normale comportamento di routing. Seppl è estremamente leggero.
L'Implemento
L'applicazione si compone di tre moduli del kernel di Linux: seppl.o, ipt_CRYPT.o e ipt_DECRYPT.o. Il primo è il gestore delle chiavi in-kernel, questi ultimi sono i due nuovi obiettivi di netfilter. Entrambi dipendono seppl.o.
seppl.o deve essere inserito nel kernel in primo luogo. Il manager chiave può essere letta con il file / proc / net / seppl_keyring. Esso contiene dati chiave binari, ed è inizialmente vuota. È possibile aggiungere una nuova chiave scrivendo a quel file.
I due script Python Seppl-LS e Seppl-gen-chiave me essere utilizzato per la gestione delle chiavi. Seppl-ls possono essere utilizzati per la conversione chiavi Seppl tra il formato binario usato da / proc / net / seppl_keyring e un formato XML leggibile based. Basta chiamare Seppl-ls per un elenco di tutte le chiavi attualmente attivi. Seppl-gen-chiave genera una nuova chiave da / dev / urandom. Per impostazione predefinita, verrà utilizzato il formato XML. Le forze parametro -x modalità binaria. È possibile generare e attivare due tasti "Linus" e "Alan" eseguendo i seguenti righe di comando:
Seppl-gen-chiave -n linus -x> / proc / net / seppl_keyring
Seppl-gen-chiave -n alan -x> / proc / net / seppl_keyring
Seppl-ls senza argomenti elenca le nuove chiavi memorizzate nel portachiavi kernel. È possibile rimuovere tutti i tasti (attualmente non utilizzati) mediante emissione di:
echo clear> / proc / net / seppl_keyring
Poiché Seppl è basata su crittografia simmetrica con chiavi condivise è necessario copiare le chiavi appena generato per ogni host si desidera collegare all'infrastruttura Seppl. (Preferibilmente tramite SSH o qualsiasi altro trasferimento sicuro dei file) È possibile ottenere una copia binaria del vostro portachiavi corrente mediante l'emissione di:
cat / proc / net / seppl_keyring> keyring.save
Ora copiate il file keyring.save a tutti gli altri host e eseguire il seguente comando lì:
cat keyring.save> / proc / net / seppl_keyring
Cioè semplice, non è vero?
Dopo aver fatto questo è possibile configurare le impostazioni del firewall su ciascun host:
iptables -t mangle linus -A POSTROUTING -o eth0 -j CRIPTA --key
iptables -t mangle -A PREROUTING -i eth0 -j DECRYPT
Questo criptare tutto il traffico in uscita su eth0 con il tasto "linus". Tutto il traffico in entrata viene decifrato sia con "Linus" o "alan", a seconda del nome chiave specificata nel pacchetto di rete specifica. Pacchetti in ingresso non crittografate sono silenziosamente eliminati. Uso
iptables -t mangle -A PREROUTING -p 177 -i eth0 -j DECRYPT
per consentire il traffico in entrata sia criptato e in chiaro.
Questo è tutto. Hai finito. Tutto il traffico della subnet locale è ora criptato con Seppl.
La cifratura predefinito è AES-128. Se non si specifica il nome dei default è chiave utilizzate per "def".
Viene fornito un SysV script di init /etc/init.d/seppl. Si caricare i moduli del kernel di Seppl e scrivere tutte le chiavi dalla directory / etc / Seppl al portachiavi kernel. Essa non aggiungerà le regole del firewall, però.
Problemi di prestazioni
I pacchetti di rete sono aumentate in termini di dimensioni, quando sono criptate, visto che due nuove intestazioni e il IV sono aggiunti. (36 byte in media) Questo conflitti in qualche modo con la gestione MTU del kernel Linux e risultati di avere tutti i pacchetti di grandi dimensioni (ovvero: dimensioni pacchetto vicino MTU) frammentato in un unico grande e un altro pacchetto molto piccolo. Questo farà male le prestazioni della rete. Un work-around di questa limitazione sta usando l'obiettivo TCPMSS di netfilter per regolare il valore MSS nell'intestazione TCP a valori più bassi. Ciò aumenterà TCP perfomance, poiché i pacchetti TCP delle dimensioni della MTU non sono generati. Così non è necessario alcun frammentazione. Tuttavia, TCPMSS è TCP specifica, non aiuterà a UDP o altri protocolli IP.
Aggiungere la seguente riga prima di crittografia per la configurazione del firewall:
iptables -t mangle -A POSTROUTING -p tcp --tcp-flags SYN, RST SYN -o eth0 -j TCPMSS --set-mss $ ((1500-40-8-16-6-15))
Il protocollo
Per la crittografia ogni singolo pacchetto non cifrato è preso e convertito in uno criptato. Non un solo ulteriore pacchetto viene mai inviato.
   Original SEPPL controparte
+ ------------ + + ----------------------- +
| PI-Header | | Modificato IP-Header | |
+ ------------ + + ----------------------- + |
| Payload | | SEPPL-Header |> Unencrypted
+ ------------ + + ----------------------- + |
                            | Vettore di inizializzazione | |
                            + ----------------------- + /
                            | SEPPL-Header |
                            + ----------------------- + | Crypted
                            | Payload | |
                            + ----------------------- + /
L'intestazione IP originale viene mantenuta per quanto possibile. Solo tre campi vengono sostituiti con nuovi valori. Il numero di protocollo è impostato a 177, l'offset frammento è impostato a 0 e la lunghezza totale viene corretto alla nuova lunghezza. Tutti gli altri campi sono mantenuti così come sono, comprese le opzioni IP.
L'intestazione Seppl in chiaro è costituito da un numero di cifrario di un byte e un nome chiave. Attualmente solo 0 e 1 sono definiti come numeri di cifratura AES con chiave a 128 bit, resp. AES con chiave 192bit. Il nome della chiave (7 byte) può essere utilizzato per selezionare un tasto specifico in un portachiavi grande.
La IV è usato per CBC codifica del cifrario utilizzato. Si differenzia da pacchetto a pacchetto, ma non viene generato in modo casuale. Per motivi perfomance, solo la IV iniziale all'avvio del sistema è randomizzato, tutti i seguenti IV sono generate incrementando quelle precedenti.
L'intestazione Seppl criptato si compone di tre campi salvate del intestazione IP originale (numero di protocollo, offset frammento, lunghezza totale) e un byte, che è sempre 0 per rilevare le chiavi unmatching.
Il carico utile è l'originale IP-playload, dal TCP / UDP / altra intestazione alla fine.
Limitazioni:
· Seppl interferisce con il controllo del collegamento di netfilter in qualche modo. In questo modo non sarà in grado di usare NAT insieme a Seppl. Se si utilizza il controllo del collegamento in qualche altro modo con Seppl vostra situazione potrebbe essere diversa.
· Seppl è testato con Linux 2.6.1. Utilizzare la versione 0.3 per Linux 2.4.
Requisiti:
· Seppl è stato sviluppato e testato su "test" di Debian GNU / Linux da novembre del 2003, dovrebbe funzionare sulla maggior parte delle altre distribuzioni Linux e le versioni Unix in quanto utilizza GNU Autoconf e GNU libtool per la configurazione del codice sorgente e la gestione libreria condivisa.
· Seppl richiede Linux 2.6. {0,1} (fonti configurate installate) e iptables 1.2.8 o più recente.
· Il set di strumenti userspace completo richiede Python 2.1 o più recente. Una serie ridotta in C è disponibile pure.
Installazione:
Poiché questo pacchetto è fatto con i autotools GNU è necessario eseguire ./configure all'interno della directory di distribuzione per la configurazione dei sorgenti. Dopo di che si dovrebbe eseguire make per la compilazione e make install (come root) per l'installazione di Seppl.
Cosa c'è di nuovo in questo rilascio:
· Porta a Linux 2.6, senza altre modifiche. Versione 0.4 non è più compatibile con il kernel 2.4. Utilizzare la versione 0.3 per il kernel 2.4, che è funzionalmente equivalente.

Altri software di sviluppo Lennart Poettering

Commenti a seppl

I commenti non trovato
Aggiungi commento
Accendere le immagini!