Всем доброго времени суток!!! Есть следующая задача: необходимо обеспечить шифрование при передаче данных внутри локальной сети, на всех машинах которой стоит ОС Windows разных версий (2000, XP). Шифрование простое: xor с гаммой большого размера. При этом шифроваться должна любая исходящая и расшифровываться соответственно любая входящая информация. Шифрование должно осуществляться незаметно для пользователя (т.е. не должно быть какой-то специальной программы через которую осуществляется защищенный обмен, например при копировании файла на свой комп из расшаренной папки на другом компе путем перетаскивания иконки из одного окна Windows в другое информация должна передаваться также в закрытом подобным образом виде). Задачу поставили сегодня и я, честно говоря, зашел в тупик. Поэтому прежде чем начинать какие-либо телодвижения, связанные с разработкой, хочу посоветоваться касаемо направления куда копать... 1. (в надежде на халяву) может быть есть какие-нибудь готовые, простые в установке (важное требование!!!) агенты, работающие на уровне драйверов сетевой карты (или может как-то по-другому), позволяющие решать в том или ином приближении эту задачу? Дальше все по самостоятельной разработке... 2. На каком уровне шифровать? Первое, что приходит на ум - транспортный. Т.е. шифровать информационную часть TCP пакета перед его инкапсуляцией в IP дейтаграмму. Только в этом случае представляю как осуществлять синхронизацию, например в случае когда пользователь качает например с 2-х или более машин одновременно... Достаточно будет создать гамму размера 2^32 байта и шифровать информацию с байта гаммы равного номеру последовательности в заголовке TCP пакета. Тогда синхронизация будет сохраняться и при повторных передачах и во всех остальных случаях. Иначе синхронизация становится отдельной весьма нетривиальной задачей... 3. (как продолжение размышлений по 2-му вопросу) Какими средствами можно получить доступ к сформированному TCP пакету для его модификации перед его вставкой в IP? И вообще, любые мысли которые могут помочь в решении данной задачи.... Спасибо заранее!!!
IPSEC предложил сразу. Ответ отрицательный. С остальными протоколами сам никогда дел не имел, но, думаю, ответ был бы таким же. Основная идея и требование: сложение "искл. или" с гаммой, в моем случае представляющей собой оцифрованный тепловой шум, т.е. типа естественный случайный сигнал. За этим видят высокую защищенность. Не знаю насколько это верно с точки зрения криптографии, но сделать надо именно так. Решил попробывать написать самостоятельно... Т.к. раньше никогда с сетью не работал, прошу помочь на начальном этапе. Скачал WinpkFilter... Там есть пример passthru, который если верить описанию представляет собой ничего не делающий (т.е. просто принимающий пакеты и передающий их дальше) пакетный фильтр на уровне IP протокола. Но запустить пример не получилось. Закончилось все на сообщении "ntdsapi.dll не найдена", хотя она была в рабочем каталоге. Работаю в BDS 2006 на СBuilder. Подскажите как правильно запустить пример? Потом нашел информацию про WinPCap, про то, что он более стабилен, чем WinpkFilter и т.п. В чем между ними разница? Что лучше для решения этой задачи? Спасибо!
lepricon, тебе ж уже отписали - IPSec. А ты что-то там несёшь про xor, "самостоятельно" и "никогда с сетью не работал"... Поясняю: 1) ничего не надо придумывать и писать. Шифрование сетевых потоков существует от царч Гороха. Общее название - VPN tunnel. 2) IPSec и есть набор протоколов (спецификация) для созданя зашифрованных (и прозрачных/transparent) тоннелей 3) IPSec использует известные крипто-стойкие алгоритмы 4) реализация IPSec уже есть в Win200, WinXP, Win7 но можно проинсталить и другой софт.
s0larian, давай без оскорблений. Несут курицы, а я описываю задачу которая стоит передо мной. Есть люди, которых твои 1-4 волнуют как корову унитаз. IPSec НЕ ПОДХОДИТ!!! Остальное из стандарного тоже. А посему придется что-то придумывать и писать. Поэтому прошу помочь с вопросами, которые я задавал в своем предыдущем посте.
lepricon, задача сформулирована маразматически. Тут ничего не надо изобретать. Ну а если то что я отписал не волнует, то "пилите, Шура, пилите". P.S. про самопальные крипро-алго - отдельная песня.
Код (Text): задача сформулирована маразматически Сформулирована она нормально. А вот суть ее оставляет место для размышлений... Но дело теперь уже не в этом. Помогите с запуском какого-нибудь примера из WinpkFilter в Билдере 2006. Если можно по шагам или скиньте готовый проект если есть у кого.
2 Partner Для меня пока что что LSP, что NDIS - одинаково неподдающиеся вещи. Потом прочитал, что LSP не работает с сетевыми протоколами и стал ковырять в сторону NDIS intermidiate driver. Есть рабочие примеры работы с LSP (желательно с изменением трафика)?
LSP работает на уровне сокетов. Примеры есть у майкрософт http://connect.microsoft.com/WNDP/content/content.aspx?ContentID=1174
Ну попробуй напиши ^^ LSP это жесть =) Даже не думай сделать это если не знаешь. Состаришсо пока разберешся. Эт лично мое мнение.
Можешь сделать любой тунель ( компоненты для написания такого тунеля есть даже под дельфи ) и шифруй чем хочешь, трафик по сервисам или весь просто заварачивай в него, и ненужны никакие драйвера (кстати драйвер тоже программа)... и ещё: зашифровать то ты шумом можешь, а обратно то как (или у тебя синхронизованные шумогенераторы) ?