Seppl є й визначення протоколу і програмна реалізація нового шару шифрування для протоколу IPv4. Seppl проект використовує симетричною криптографії для шифрування всього трафіку в мережі. Його реалізація будується навколо Linux Netfilter / IPTables.
Seppl вводить два нових NETFILTER мети: CRYPT і розшифрувати. Правила брандмауера можуть бути, таким чином, використовується для шифрування / дешифрування вхідного і вихідного мережевого трафіку. Це робить надзвичайно Seppl простий у використанні, оскільки не демони не потрібно запускати для безпечного зв'язку.
Seppl використовує шифрування двигун API Linux Cryptographic який доступний в ядрі 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 можуть бути використані для перетворення ключів Seppl між довічним форматі використовуваної / Proc / нетто / seppl_keyring і читається формат, заснований XML. Просто зателефонуйте Seppl-LS для списку всіх активних ключів. Seppl покоління ключ генерує новий ключ від / DEV / urandom. За замовчуванням він буде використовувати формат XML. Сили параметр -x довічним режимі. Ви можете створити і активувати дві клавіші "Лінус" і "Алан" шляхом видачі команд наступні рядки:
Seppl покоління ключ -n Лінус -х> / Праці / нетто / seppl_keyring
Seppl покоління ключ -n алан -x> / Proc / нетто / seppl_keyring
Seppl-LS без аргументу перераховані нові ключі, збережені в зв'язці ядра. Ви можете видалити всі ключі (в даний час не використовується) за допомогою команди:
відлуння чітке> / Праці / нетто / seppl_keyring
Так Seppl заснований на симетричній криптографії з використанням загальних ключів необхідно скопіювати новостворені ключі кожного хоста ви хочете підключитися до Seppl інфраструктури. (Переважно через SSH або будь-який інший безпечної передачі файлів), ви отримаєте бінарну копію поточного ключів за допомогою команди:
кіт / Праці / нетто / seppl_keyring> keyring.save
Тепер скопіюйте цей файл keyring.save всіх інших хостів і виконайте наступну команду там:
кішка keyring.save> / Праці / нетто / seppl_keyring
Це просто, чи не так?
Після цього ви можете налаштувати параметри брандмауера на кожному хості:
Iptables -t калічити -a -o eth0 POSTROUTING -j склепі --key Лінуса
Iptables -t калічити -А PREROUTING -i eth0 -j дешифрування DECRYPT
Це буде шифрувати весь вихідний трафік на eth0 з ключем "Linus". Всі вхідний трафік розшифровані або "Linus" або "алан", залежно від ключової ім'ям, зазначеним в конкретній мережевий пакет. Незашифровані вхідні пакети відкинуті. Використання
Iptables -t калічити -А PREROUTING -p -i eth0 177 -j дешифрування DECRYPT
за те, що і зашифрований і незашифрований вхідний трафік.
От і все. Ви зробили. Всі ваші рухи в локальній підмережі тепер Кодування з Seppl.
Шифр за замовчуванням AES-128. Якщо ви не вкажете ім'я використовуваних ключових нього значення "DEF".
SysV Init сценарій /etc/init.d/seppl надається. Вона буде завантажувати модулі ядра Seppl і написати всі ключі з каталогу / і т.д. / Seppl до зв'язки ключів ядра. Це не буде додавати будь-яких правил брандмауера, однако.
Проблеми продуктивності
Мережеві пакети збільшені в розмірах, коли вони Кодування, так як два нових заголовків і IV додаються. (36 байт) в середньому на це суперечить якимось чином з керівництвом МТУ ядра Linux і результати в мають усі великі пакети (тобто: розмір пакета MTU) біля фрагментовані в один великий і інший дуже невеликий пакет. Це буде боляче продуктивності мережі. Обійти це обмеження є використання мета TCPMSS з Netfilter, щоб налаштувати значення MSS в TCP заголовку до менших значень. Це дозволить збільшити TCP Perfomance, так TCP пакети з розміром MTU більше не генеруються. Таким чином, немає фрагментації не потрібно. Тим не менш, це TCPMSS TCP конкретні, це не допоможе на UDP або інших протоколів IP.
Додайте наступний рядок перед шифруванням з вашої установки брандмауера:
Iptables -t калічити TCP --tcp-прапори -a -p POSTROUTING SYN, RST SYN -j -o eth0 TCPMSS --set-MSS $ ((1500-40-8-16-6-15))
Протокол
Для шифрування кожен незашифрованому вигляді пакетів, перетвориться в зашифрований один. Не один ще пакет або надіслано.
Оригінал Seppl колега
+ ------------ + ----------------------- + +
| IP-заголовка | | Модифікована IP-заголовка, | |
+ ------------ + ----------------------- + + |
| Корисне навантаження | | Seppl-заголовок |> незашифрованому
+ ------------ + ----------------------- + + |
| Вектор ініціалізації | |
+ ----------------------- + /
| Seppl-заголовок |
+ ----------------------- + | Кодовані
| Корисне навантаження | |
+ ----------------------- + /
Вихідний заголовок IP-зберігається, наскільки це можливо. Тільки три поля замінюються новими значеннями. Номер протоколу встановлений на 177, зсув фрагмента встановлено в 0, а загальна довжина коригується на нову довжину. Всі інші поля зберігається як є, в тому числі варіантів ІС.
У незашифрованому вигляді заголовка Seppl складається з одного байта шифру числа та імені ключа. В даний час тільки 0 і 1 визначені як шифр номерів для AES 128bit з ключем, відповідно. AES з ключем 192bit. Ім'я ключа (7 байт) можуть бути використані для вибору конкретного ключа більшою ключів.
IV використовується для кодування CBC шифру використовується. Вона відрізняється від пакета до пакету, але не випадковим чином. З міркувань Perfomance, тільки початкова IV при запуску системи рандомізованих, все наступні крапельниці генеруються шляхом збільшення попередні.
Кодування заголовка Seppl складається з трьох збережених полів заголовка IP оригінальної (номер протоколу, зсув фрагмента, загальна довжина) і байт, які завжди 0 для виявлення unmatching ключі.
Корисне навантаження оригінальний IP-playload-, від TCP / UDP / інший заголовок до кінця.
Обмеження:
· Seppl заважає відстеження з'єднань NETFILTER в деякому роді. Таким чином, ви не зможете використовувати NAT в поєднанні з Seppl. Якщо ви використовуєте відстеження з'єднання в якийсь інший спосіб разом з Seppl ваш пробіг може варіюватися.
· Seppl тестується з Linux 2.6.1. Використовуйте версію 0.3 для Linux 2.4.
Вимоги:
· Seppl був розроблений і протестований на Debian GNU / Linux "тестування" з листопада 2003 року, він повинен працювати на більшості інших дистрибутивів Linux і Unix версії, так як він використовує GNU Autoconf і GNU Libtool для конфігурації вихідного коду і спільного управління бібліотеки.
· Seppl потрібно Linux 2.6. {0,1} (встановлюється налаштовані джерела) і Iptables 1.2.8 або новіше.
· Повний набір інструментів для користувача потрібно Python 2.1 або більш пізньої версії. Урізана в С є також доступні.
Установка:
Як цей пакет виконаний з Autotools GNU ви повинні запустити ./configure в директорії розподілу для конфігурації дерева вихідних кодів. Після цього ви повинні запустити зробити для компіляції і зробити установку (як корінь) для установки Seppl.
Що нового в цій версії:
· Порт Linux 2.6, будь-яких інших змін. Версія 0.4 більше не сумісні з ядром 2.4. Використовуйте версію 0.3 для ядра 2.4, це функціонально еквівалентні.
Дані програми:
Версія: 0.4
Дата завантаження: 3 Jun 15
Ліцензія: Безкоштовно
Популярність: 40
Коментар не знайдено