В наше время трудно представить себе человека, не приобщившегося к миру высоких технологий. Анархисты больше не ограничиваются распространением бумажных листовок и газет. Возможность обеспечения оперативности, анонимности, безопасности информобмена, а также широты охвата аудитории - вот что в первую очередь привлекает в современных технологиях. Однако, новые средства связи порождают и новые опасности - и не всегда понятно, является ли описанная уязвимость реально серьезной проблемой, или же мифом, раздутым на ровном месте.
Чтобы уверенно пользоваться имеющимися средствами связи, а также разбираться в возможных уязвимостях и рисках, анархист должен понимать, как в принципе устроен информобмен.
Рассмотрим работу сети Интернет на примере, близком и понятном каждому анархисту.
Представьте себе, что вы сидите в одиночной камере в тюрьме. Вам нужно связываться с вашими товарищами, которые сидят в соседних камерах. И для этой цели вы решаете использовать единственное доступное средство - стучать по батарее.
Хаб
Если вас перестукивается двое, то никакие дополнительные ухищрения вам не нужны - знай барабань себе морзянку. Сначала все идет неплохо, за исключением того, что время от времени вы начинаете стучать одновременно, и в итоге не можете ни получить, ни передать информацию (в информационных технологиях это называется half duplex среда, т.е. в которой невозможно одновременно вести прием и передачу). Однако, остальные заключенные, прослышав про вашу придумку, присоединяются к информобмену. В итоге, в каждой камере раздается какофония, и никто никому ничего передать не может.
Чтобы решить эту проблему, вы вводите правило - перед тем, как начать стучать, каждый должен в течение определенного времени слушать, не стучит ли кто-то еще, и только после этого начинать передачу. При этом два человека все равно случайно могут начать стучать одновременно. В такой ситуации, как только они слышат, что кто-то еще стучит по батарее, они перестают стучать и начинают слушать. Каждый засекает для себя случайное время (при этом пределы, в которых выбирается случайное время, заранее обговорены между всеми заключенными), в течение которого он слушает, не начнется ли передача с той стороны. Если передача не идет, то заключенный начинает стучать по батарее сам. За счет того, что каждый участник процесса определяет время случайным образом в заранее определенном интервале, вероятность того, что при повторной передаче оба они начнут стучать одновременно снова, довольно мала. Этот механизм называется CSMA/CD.
При этом, разумеется, при увеличении количества участников информационного обмена вероятность коллизии (т.е. что несколько человек начнут стучать одновременно, даже после паузы) повышается. О мерах, принимаемых для решения этой проблемы, мы поговорим чуть позже, для начала затронув другие аспекты.
Вот механизм оговорен, диалог налажен. Однако, из-за того, что заключенных много, а среда передачи одна, все вынуждены при каждом стуке по батарее кидаться к ней и слушать, а не тебе ли это послание. Причем приходится слушать и вникать во все сообщение. Поэтому, общим заочным собранием вы решаете, что, отстукивая по батарее, каждый в начале сообщения выстукивает, кому оно предназначено, кто отправитель (кому отвечать в случае чего), а в конце сообщения передаете его контрольную сумму, чтобы получатель мог убедиться, что он все принял правильно. Таким образом, людям не приходится слушать полностью сообщение, а также разбираться, им ли оно адресовано - достаточно прослушать так называемый заголовок сообщения. То, что в итоге получилось, в теории сетей называется L2 Ethernet Frame.
Но что использовать в качестве идентификатора отправителя-получателя? Пусть это будет кличка, решаете вы. А также дополнительно вводите отдельный позывной, который означает, что сообщение предназначено для всех. Т.е., фактически, вводите MAC (или, по другому, физические) адреса.
При этом - никто не мешает заключенному слушать то, что не предназначено для его ушей. Таким образом, данный вид связи никак не защищен от злоумышленника, который имеет доступ к среде передачи данных (батарее).
Связь работает, но с течением времени в камерах меняются заключенные. И если "правила игры" они узнают сразу при попадании в ваш тюремный блок (допустим, они выцарапаны на стене), то список позывных - MAC-ов им не известен, равно как всем остальным неизвестно, какой позывной выберет новичок. Поэтому, даже без расширения, сеть нагружена широковещательными запросами, коллизии (т.е. попытки одновременной передачи, и, как следствие, необходимость перепосылки) нередки, что снижает полезную производительность информобмена.
То, как организована у вас связь в этот момент, аналогично тому, как работает сетевое устройство хаб. Очевидно, что на настоящий момент такие устройства полностью морально устарели. Типичное количество камер, которое мог обслуживать Хаб на нормальной скорости, редко превышало восемь.
К современным устройствам, использующих схожий принцип организации связи, относятся Wi-Fi точки доступа. Все клиенты используют общую среду передачи данных. Хотя есть и отличия - информобмен замкнут на отдельное центральное устройство - точку доступа, в силу специфики самих протоколов информационного обмена Wi-Fi.
Коммутатор
С целью усовершенствования процесса обмена информацией, вы все скидываетесь и подкупаете охрану. Вы договариваетесь, чтобы в 1 из камер завели трубы батарей из всех камер. При этом трубы, которые ведут из камеры в камеру (т.е. помимо тех, которые ведут из камеры в центральную) - отрезали. Т.е. теперь каждый арестант общается не со всеми сразу, а только с центральной камерой (за счет этого вероятность коллизий значительно снижается, поскольку одновременно могут начать передавать только два человека). Также в центральной камере трубы помечены соответственно номерам камер, а также имеются две доски и мел.
Как теперь выглядит информобмен? Допустим, один заключенный, который не знает позывной другого заключенного (но знает, как он выглядит, например), хочет отправить ему сообщение. Он подготавливает специальное сообщение, записывая в заголовок в качестве отправителя себя (позывной "Редиска"), в качестве получателя - ставит всех, а в теле сообщения пишет "Привет, я хочу пообщаться с рыжим анархистом, а еще он хромает и у него один глаз". И отстукивает его на батарее, ведущей к центральной камере.
Заключенный в центральной камере (далее будем называть его коммутатор) принимает сообщение и фиксирует его на первой доске мелом (при этом не анализируя текст). Далее он смотрит на заголовок сообщения и видит, что оно адресовано всем. "Всем - значит и мне",- решает коммутатор, и для начала читает содержимое. И не узнает себя в описании.
Также, увидев в заголовке позывной отправителя, он записывает на второй доске "Камера номер 5 - позывной Редиска).
После этого он отстукивает это послание на трубах, ведущих во все камеры, кроме камеры 5. При этом он не изменяет заголовок сообщения, по-прежнему оставляя в качестве отправителя Редиску, а в качестве получателя - всех. После чего стирает сообщение с доски.
Во всех камерах заключенные, получив сообщение и увидев в заголовке "Получатель - все", принимают тело сообщения и читают. Те, кто не попадает под описание - после прочтения просто пожимают плечами и возвращаются к своим делам.
int1Но тот единственный анархист, кто "рыжий, с одним глазом и хромой" - пусть его позывной "Везунчик" - понимает, что речь идет о нем. Также он видит по заголовку сообщения, что общаться с ним хочет анархист Редиска.
Поэтому он готовит ответное сообщение с отправителем "Везунчик", получателем "Редиска", и телом сообщения "Я рыжий хромой одноглазый анархист", после чего отстукивает сообщение на трубе батареи.
Коммутатор принимает сообщение от Везунчика, фиксирует его на первой доске. Далее, смотрит в заголовок и видит, что получатель - Редиска. Смотрит на вторую доску и видит, что Редиска сидит в 5 камере. Поэтому коммутатор сразу же (не анализируя тело сообщения) передает сообщение по трубе, ведущей только в 5 камеру, после чего стирает сообщение с 1 доски
Параллельно коммутатор записывает на 2 доску соответствие "Везунчик - 2 камера".
Готово. Теперь оба наших анархиста знают позывные друг друга, а коммутатор дополнительно знает, в каких камерах они сидят. И они могут начать уже полноценное общение. Описанный выше процесс выяснения позывных называется ARP, а вторая доска с соответствиями "позывной-камера" - MAC-таблицей или FIB (forwarding information base).
Здесь на первый взгляд может показаться, что обмен информацией стал только сложнее и запутаннее, чем был. Но тут важно понимать, что описанное выше взаимодействие выполняется только один раз, в начале диалога. А в дальнейшем процесс обмена сообщениями выглядит следующим образом:
1) Редиска готовит и передает сообщение с заголовком "Редиска-Везунчику блаблабла"
2) Коммутатор получает сообщение и по таблице соответствий передает его только в камеру 2.
3) Везунчик принимает сообщение и читает его.
4) В случае необходимости ответа пункты 1-3 повторяются в обратном порядке.
При этом во время всего (уже полезного) информобмена выше, он никак не влияет на общение этих заключенных с другими камерами, а также на общение других камер между собой. Коллизий не возникает, т.к. среды передачи данных разделены (точнее, их возникает значительно меньше, т.к. коллизия из-за одновременной передачи коммутатором и арестантом все еще возможна). А также каждый арестант получает только сообщения, предназначенные лично ему, (плюс широковещательные), в отличие от ситуации хаба, где анархист должен был слушать заголовки сообщений, предназначенных всем, чтобы отфильтровать предназначенные лично ему.
Снижение количества коллизий и отсутствие необходимости перепосылки значительно улучшает качество и скорость информационного обмена. Но чем больше заключенных общаются одновременно, тем быстрее нужно работать коммутатору (тем выше должна быть его производительность), чтобы успевать принимать и передавать сообщения. А также ему потребуются доски большего размера для фиксации сообщений и соответствий "камера-позывной". Понятное дело, что бесконечно расти производительность не может, и потому в реальном мире на один коммутатор приходится максимум 48 портов-камер (в среднем; понятное дело, что есть и ультра-производительные модели). В следующих частях мы поговорим о том, как можно решать проблему расширения экстенсивно и интенсивно.
Напоследок, дополним получившуюся схему информобмена еще одним усовершенствованием. А именно - на текущий момент коллизии практически устранены, за счет того, что по одной трубе одновременно начать стучать могут только два человека. Однако, из-за необходимости разделять по времени прием и передачу, производительность канала (т.е. количество информации, которые можно передать за единицу времени), в среднем, уменьшена вдвое. Плюс, коллизии, хоть изредка, но происходят. Как же нам избавиться от них окончательно и решить проблему ширины канала?
Правильный ответ - увеличить канал вдвое и разделить трубы для исходящего и входящего информобмена. Т.е. - самый простой вариант (есть и другие, менее распространенные) - проложить в каждую камеру по 2 независимые трубы, одна из которых будет использоваться только для общения "заключенный-коммутатор", а вторая - "коммутатор-заключенный". Такая среда называется full-duplex. Важно отметить, что, без разделения процессов приема и передачи, простое увеличение скорости канала в два раза не увеличило бы скорость информобмена в два раза - поскольку коллизии и перепосылки продолжали бы отъедать производительность.
В настоящее время работа в режиме полного дуплекса является стандартной для всех проводных коммутаторов. Однако, если говорить про Wi-Fi, то беспроводная среда по-прежнему остается полудуплексной, хотя в новых версиях протокола и появляются реализации полнодуплексной передачи, за счет разнесения каналов приема-передачи по разным частотам.
Безопасность в хабах и коммутаторах
Как нетрудно понять, безопасности на уровне хабов нет в принципе. Любой может прослушать все, что происходит в сети, и спасти может только шифрование содержимого (хотя и при этом злоумышленнику остается доступна информация о том, кто и кому передает).
Если говорить про реальное сетевое оборудование, то аналогичный (т.е. никакой на уровне сети) уровень безопасности вы имеете при использовании Wi-Fi. Любой человек, подключенный к той же точке доступа, что и вы, может захватывать ваш трафик, и беда если он не шифрован. А также, если вы с другом передаете по Wi-Fi информацию друг другу, будучи подключенными к одной точке доступа - злоумышленник может отслеживать "позывные" - MAC вашего оборудования, и с кем он общается.
Однако правильным будет упомянуть, что общий объем информации - очень велик. И оборудования, позволяющего "на лету" анализировать весь трафик (даже если бы он был не зашифрован), связи между отправителм и получаетелм и т.п. - по большому счету нет (или, как минимум, оно не установлено в вашем любимом МакДональдсе с бесплатным Wi-Fi).
И скорее тут стоит опасаться "адресного" захвата трафика - если у оперативных служб имеется информация, что вы с конкретного оборудования часто выходите в интернет в определенном кафе, то собрать информацию конкретно по вам им не составит труда, даже не привлекая к этому сетевых администраторов этого самого кафе.
Если же говорить про безопасность на уровне коммутаторов, то она чуть-чуть получше. Весь трафик слушать и анализировать может только коммутатор. Существуют, правда, и атаки на коммутаторы, направленные на то, чтобы, будучи одним из клиентских устройств (заключенным), так или иначе перехватить чужой трафик или нарушить работу сети - такие как подмена "позывного"- MAC-а, с целью выставить себя в качестве получателя вместо кого-то, или же зафлуживание сети широковещательными запросами, с целью затруднения информобмена у других пользователей. А также существуют стандартные предусмотренные разработчиками оборудования методы борьбы с этими атаками.
Однако для нас, как анархистов, это не очень интересно, поскольку, в любом случае, всегда остается коммутатор, который пропускает через себя весь информобмен.И для нас же безопаснее всегда предполагать, что ко всему, проходящему через него, враг может получить доступ.
Рассмотрим, как именно это может произойти. Возвращаясь к предложенной ранее аналогии, если коммутатор - крыса, он может записывать сообщения в тетрадочку, чтобы потом передать операм. Однако, как правило, тетрадочек у коммутатора мало, а сообщений - много (т.е. внутренняя память ограничена). Поэтому опера обычно протягивают себе отдельную трубу, чтобы крыса-коммутатор отстукивал к ним копии всех переданных им сообщений, включая заголовки (информацию об отправителях и получателях). А уже с другого конца трубы отдельный выделенный опер-сервер это все фиксирует.
Таким образом, отсюда следуют два правила:
- шифрование содержимого сообщений - не прихоть, а необходимость;
- если передавать информацию напрямую между двумя камерами, подключенными к одному коммутатору - враг, даже при шифровании содержимого, как минимум, может получить информацию, кто и кому передавал. Поэтому всегда лучше, чтобы трафик шел так, чтобы нельзя было отследить, от кого и к кому он идет (об этом подробнее в следующих статьях).
Но все же, не стоит и переоценивать опасность и впадать в крайности типа "ааа, мы под колпаком большого брата". Ведь излишние меры безопасности могут заморозить вашу деятельность не хуже действий сотрудников правоохранительных органов.
Объем трафика, циркулирующего по компьютерным сетям - просто гигантский. Анализировать весь и хранить его за все время - не хватит мощностей никакого провайдера. Потому основная опасность наступает, если ФСБ уже вышла на ваш след, и проводит адресный контроль. Но и в этом случае соблюдение двух правил выше обеспечит вашу безопасность, и в худшем случае вам смогут лишь задать вопрос "зачем вы так шифруетесь" (и на этот вопрос, разумеется, всегда надо иметь логичный и непротиворечивый ответ).
------------------------
Описание выше, безусловно, отображает лишь в упрощенном виде работу сети. Однако, я надеюсь, позволяет получить общее понимание, как все устроено, даже неспециалистам. В следующих частях планирую в аналогичном ключе рассмотреть L3 и выше, а также принцип работы VPN, TOR и так далее.
Также можно прочитать статью (и следить за обновлениями) в первоисточнике