seppl既是一個協議定義和軟件實現一個新的加密層的IPv4。 seppl項目利用對稱加密技術加密的網絡對整個交通。它的實施是圍繞Linux的網絡過濾/ iptables的設計。
seppl引入了兩個新的netfilter的目標:CRYPT和解密。防火牆規則可因此被用於加密/解密的傳入和傳出的網絡流量。這使得seppl非常容易使用,因為沒有後台程序需要運行安全通信。
seppl使用Linux加密API,它是在內核2.4.22和更新現有的加密引擎。
seppl主要用於加密無線局域網(作為破WEP加密的安全的替代品),本地以太網網絡,但也可以用於大規模的VPN解決方案為好。
該協議seppl依賴於不與任何其他軟件兼容。該協議是開放的,明確定義的,但沒有實現比該基準軟件等。
為什麼SEPPL,已經有IPSEC,CIPE,...?
CIPE可以用於點對點僅連接。它具有隧道結構,從而引入了新的IP地址。這並不總是理想的。它需要一個用戶空間的守護進程。
IPSEC /的freeswan是極其複雜的使用。由於其奇怪的路由方案幾乎是不可能一起使用具有路由守護進程。 IPSec是重量級的。
seppl是忠實地的對等體。它無縫地加密所有傳出流量,並將其與因而路由守護程序兼容。這是非常容易使用為好,因為它並沒有改變正常的路由行為。 seppl是極其輕便。
實施
實施包括三個Linux內核模塊:seppl.o,ipt_CRYPT.o和ipt_DECRYPT.o。前者是在內核密鑰管理器,後者是兩個新的netfilter的目標。都依賴於seppl.o。
seppl.o必須插入到內核中排在首位。密鑰管理器可與文件/ proc /網絡/ seppl_keyring進行訪問。它包含二進制密鑰數據,和最初是空的。您可以通過將其寫入到文件添加一個新的密鑰。
這兩個Python腳本seppl-LS和seppl根密鑰我被用於密鑰管理。 seppl-LS可以用於轉換所用的/ proc /淨/ seppl_keyring和人類可讀的基於XML的格式的二進制格式之間seppl密鑰。只需撥打seppl-LS所有當前活動鍵的列表。 seppl根密鑰生成從/ dev / urandom的一個新的密鑰。默認情況下它會使用XML格式。參數-x力量二進制模式。您可以生成並激活兩個鍵“萊納斯”和“阿蘭”通過發出以下命令行:
seppl根密鑰-n萊納斯-x>的/ proc /網絡/ seppl_keyring
seppl根密鑰-n艾倫-x>的/ proc /網絡/ seppl_keyring
seppl-LS沒有參數列表保存在內核鑰匙圈新的密鑰。您可以通過發出刪除所有(當前未使用)鍵:
迴聲清晰>的/ proc /網絡/ seppl_keyring
由於seppl使用共享密鑰基於對稱加密你必須新生成的密鑰複製到你想連接到您的基礎設施seppl每個主機。 (最好是通過SSH或其他任何安全文件傳輸)可以通過發行得到您當前的鑰匙圈的二進制副本:
執行cat / proc /網絡/ seppl_keyring> keyring.save
現在,將該文件拷貝到keyring.save所有其他主機並發出以下命令有:
貓keyring.save>的/ proc /網絡/ seppl_keyring
說起來很簡單,不是嗎?
經過這樣做,你可以在每個主機上配置防火牆設置:
iptables的-t軋-A POSTROUTING -o eth0的-j CRYPT --key萊納斯
iptables的-t軋-A PREROUTING -i eth0的-j DECRYPT
這將加密在eth0與鍵“萊納斯”的所有出站流量。所有傳入流量進行解密或者“的linus”或“阿蘭”,這取決於在特定的網絡分組中指定的鍵名稱。未加密的傳入數據包被丟棄。使用
iptables的-t軋-A PREROUTING -p 177 -i eth0的-j DECRYPT
允許加密的雙方和未加密的傳入流量。
就是這樣。你完成了。所有本地子網中的流量被加密的,現在用seppl。
默認密碼是AES-128。如果沒有指定的使用關鍵則默認為“高清”之名。
提供了一種SysV初始化腳本/etc/init.d/seppl。它會加載seppl的內核模塊和從目錄/ etc / seppl內核鑰匙圈寫的所有鍵。它不會但是添加任何防火牆規則。
性能問題
該網絡數據包的大小增加它們加密的時候,因為兩個新的頭和IV加入。 (平均36個字節),這對衝突某種方式與Linux內核的MTU管理和結果讓所有的大數據包(即:封裝尺寸接近MTU)分段於一體的大型和另外一個非常小的封裝。這將損害網絡性能。這個限制的解決辦法是使用TCPMSS netfilter的目標來調整在TCP頭較小值的MSS值。這將增加TCP性能比較,因為MTU大小的TCP數據包不再產生。因而沒有碎裂是必要的。然而,TCPMSS是TCP具體,它不會在UDP或其他IP協議幫助。
添加以下線路加密到你的防火牆設置之前:
iptables的-t軋-A POSTROUTING -p tcp的--tcp-SYN標誌,RST SYN -o eth0的-j TCPMSS --set-MSS $((1500-40-8-16-6-15))
該議定書
用於加密每一個未加密的數據包被取和轉換成一個加密的之一。不是一個單一的數據包再是不斷發送。
原來SEPPL對口
+ ------------ + + + -----------------------
| IP報頭| |修改IP報頭| |
+ ------------ + + + ----------------------- |
|載荷| | SEPPL報頭|>未加密
+ ------------ + + + ----------------------- |
|初始化向量| |
+ ----------------------- + /
| SEPPL報頭|
+ ----------------------- + |加密後
|載荷| |
+ ----------------------- + /
原始IP報頭盡可能保留。只有三個場被替換為新值。協議號被設定為177,該片段的偏移設置為0,並且總長度修正為新的長度。所有其他領域都保持原樣,包括IP選項。
未加密的seppl頭由一字節的加密號碼和密鑰名稱。目前,只有0和1定義為AES加密的數字與128位密鑰,RESP。 AES與192bit的密鑰。鍵名(7個字節)可以被用來選擇在一個更大的密鑰環的特定密鑰。
IV是用來使用的加密的CBC編碼。它不同於分組到分組,但並不隨機生成的。由於性能比較的原因,只在系統啟動時的初始IV是隨機的,通過增加以前的生成所有的IV如下。
該加密的seppl頭由原始IP報頭三個領域的保存(協議號,分片偏移,總長度)和一個字節始終是0用於檢測不匹配的鑰匙。
有效負載是原來的IP-playload,從TCP / UDP /其他標題的結束。
局限性:
·seppl干擾以某種方式的netfilter的連接跟踪。因此,你將無法使用NAT結合seppl。如果以其他方式使用連接跟踪與seppl您的里程可能會有所不同。
·seppl與Linux的2.6.1進行測試。使用0.3版本,為Linux 2.4。
要求:
·seppl的開發,並從2003年11月測試在Debian GNU / Linux的“測試”,它應該工作在其他大多數Linux發行版和Unix版本,因為它使用GNU的Autoconf和GNU libtool的源代碼配置和共享庫管理。
·seppl需要的Linux 2.6。{0,1}(配置資源安裝)和iptables 1.2.8或更高版本。
·完整的用戶空間工具集需要Python 2.1或更高版本。在C A精簡集可用。
安裝方式:
由於這個包是用GNU自動工具,你應該運行./configure分發目錄裡面配置源代碼樹。之後,你應該運行make編譯和make install(作為root)安裝seppl的。
什麼是新的,在此版本:
·移植到Linux 2.6,沒有其他變化。 0.4版本不再與2.4內核兼容。使用0.3版本的內核2.4,它在功能上是等價的。
按類別搜索
熱門軟件
-
LibreOffice 20 Jan 18
-
Xandros Desktop OS 3 Jun 15
-
K3b 17 Aug 18
-
Oracle Solaris 22 Jun 18
-
AirSnort 3 Jun 15
-
Tiny Core Linux 2 Sep 17
-
BlackArch Linux 22 Jun 18
評論沒有發現