Впервые, когда я столкнулся с анонимной сетью TOR (2007 год), то потратил не один день, чтобы настроить ее и добиться максимально возможной анонимности в Интернет. Существует огромное количество статей, обзоров, инструкций по настройке Tor’a, но все они разбросаны в разных уголках сети. Хранить все эти чужие обрывки мыслей в конце концов надоело и было принято решение написать статью, основанную на личном опыте использования анонимной сети и анализа ошибок, которые возникали в ходе экспериментов.
Research
Инсайд – пожалуй, самое ущербное явление в корпоративной среде. Как в прямом, так и переносном смысле. Грамотно продуманная техническая сторона защиты периметра корпоративной инфраструктуры еще не гарантирует полной безопасности циркулирующей в ней информации. В данном случае работает всем известный принцип: защищенность системы в целом определяется степенью защищенности ее самого слабого звена. Самым слабым звеном является человеческий фактор. Персонал, через который проходит определенный объем информации, может ее «выносить» за пределы защитного периметра.
Материал появился в результате анализа замечаний и предложений, поступивших от тех, кто прочитал статью “Кухня распределенных вычислений”. Отсутствие явного распределения задачи сервером между клиентами и отсутствие конкретной задачи в принципе заставили автора иначе подойти к изложению своих идей. Если предыдущая статья и прилагающийся к ней код были в какой-то степени концепцией, то в данном материале будет использоваться код приложения, реализующего в полной мере поставленные задачи. Однако не стоит ждать от приложения дополнительного оформления, коим являются GUI, конфигурационные файлы, продолжительные диалоги и тому подобные вещи, никак не относящиеся к цели.
Несколько слов о предмете статьи. В качестве объема работы, который будет распределяться, выступает перебор MD5-хеша (поиск коллизии) по диапазону символов. Задача достаточно актуальна и позволяет наглядно продемонстрировать методы своего распределения. Как результат, получится система распределенных вычислений типа «грид-сеть».
Данный материал рассматривает процесс создания программного обеспечения, реализующего распределенные вычисления. Будучи рассчитанным на невысокий уровень подготовки читателя, он не претендует на открытие чего-либо нового. Автор попытался поэтапно описать процесс создания программы с наиболее детальными комментариями к коду и объяснить значение каждой команды в листингах. Гуру программирования получат отличную площадку для критики и возможность предложить свои идеи, касающиеся оптимизации кода.