Характерный пример. В интервью для журнала Salon в 1998 году Эрик рассказывал, как помогал одному человеку настраивать sendmail. Проблема была достаточно сложной, и ее пришлось обсуждать несколько раз по e-mail и телефону, но в конце концов решение было найдено. Затем Эрик узнал, что он и его программа помогли совершить первый обмен электронной почтой между школьниками из двух школ Чикаго и Москвы. Дело было еще до развала Советского Союза, и важность этого события нам сейчас оценить трудно – ведь мы привыкли вести переписку со всем миром (кроме, быть может, Северной Кореи). Но тогда это было больше чем технический успех. "Это один из величайший моментов в моей жизни", – признается Эрик.
Однако неожиданности бывают не только приятными, и возможности, заложенные в технологию, созданную в одном окружении, могут стать фатальными, когда это окружение изменится – а исправить ситуацию будет уже очень трудно. Во времена написания sendmail Интернет был другим не только в техническом, но и в социальном плане. "Сеть превратилась из тесно взаимодействующего сообщества, похожего на маленький городок, где все знают друг друга и где нет необходимости запирать свои дома, в мегаполис, в котором горожанам нужны замки на дверях и нужно думать о том, что рядом есть плохие люди. Вам приходится защищать себя сейчас", – говорит Эрик, обсуждая больные темы современного Интернета: вирусы, спам, фишинг… Они тесно связаны с особенностями протоколов электронной почты – например, вы можете отправить письмо, написав произвольный обратный адрес, чем с успехом пользуются фишеры. Тем не менее возможность анонимной переписки Эрик считает очень важной, и радикальные решения в стиле "поголовной паспортизации" его не привлекают – более того, он говорит, что степень нынешней анонимности e-mail порой недостаточна: "Протокол SMTP никогда не был столь анонимным, как многие считают. Вы всегда можете отследить IP-адрес отправителя, а IP-адрес далеко не анонимен". Впрочем, в отличие от Лоуренса Лессига, Эрик не согласен с тем, что со временем Интернет становится менее анонимным и более регулируемым. "Сеть сейчас гораздо более анонимна, чем была тогда, когда я начинал с нею работать, – вспоминает он. – В то время была пара сотен компьютеров в Сети и была книга – обычная печатная книга, в которой перечислялись имена, фамилии, адреса, номера телефонов всех людей, имеющих интернет-аккаунты".
Предлагаемые Оллменом решения тоже носят двойственный характер. С одной стороны, он говорит о необходимости создания анонимизирующих сервисов, позволяющих отправлять сообщения, полностью скрывая свою личность, – но не позволяющие осуществлять массовые рассылки. С другой – он работает над технологией аутентификации DomainKeys Identified Mail (DKIM), находящейся на рассмотрении IETF как "предложенный стандарт" (proposed standard), но уже использующейся Yahoo, Google и некоторыми другими компаниями (см. врезку). Не будучи панацеей от всех бед, она должна сделать e-mail более цивилизованной и создать определенную систему репутаций отправителей, что по крайней мере затруднит деятельность спамеров и фишеров.
Удастся ли одному из "отцов" электронной почты искоренить ее врожденные недостатки? Никто не знает: ведь дети такие непредсказуемые…
Открытый код, Inc.Ветераны Интернета часто говорят, что открытость технологий, на которых он основан, была ключевым фактором в его быстром развитии и нынешнем успехе. В то время, когда Эрик Оллмен начинал программировать, практически все исходники были доступны для изучения и модификации, и когда ему захотелось разобраться во внутреннем устройстве операционной системы, он мог это сделать. "Я подумал: здорово, я могу изменить вот здесь и вот здесь – и я это делал".
Эрик любит подчеркивать, что в Университете Беркли свободный софт создавался и распространялся еще в 70-х годах, задолго до того, как было сформулировано его определение, основан Free Sofware Foundation и написана GPL. Оллмен участвовал в создании одной из первых реляционных СУБД (Ingres): "Мы делали ее приниципиально open source, хотя уже тогда существовали проприетарные базы данных. Это был исследовательский проект, мы хотели продвинуть нашу новую концепцию реляционной базы данных, а проще всего достичь этого – сделать базу как можно более доступной".
Впрочем, надо заметить, что между хакерским сообществом Университета Беркли, к которому принадлежит Эрик, и Ричардом Столлменом всегда существовали идеологические разногласия. "Я понимаю соображения Ричарда, – говорит Эрик, – но мне кажется, что он заходит слишком далеко. Я не большой фанат GPL отчасти из-за того, как она написана – наполовину юридическая лицензия, наполовину политический манифест. Это не очень хорошая смесь". Лицензию, принятую в Беркли (BSD License), помимо краткости существенно отличает от GPL то, что она некопилефтная – программу, основанную на BSD-лицензированном коде, можно перелицензировать на других условиях, в том числе сделать проприетарной. Споры на тему копилефта между двумя сообществами продолжаются не один десяток лет и носят "религиозный" характер.
"Политически я предпочитаю BSD-лицензии", – говорит Эрик. Первоначально sendmail распространялась именно под BSDL. Однако сейчас условия изменились, и в Sendmail license имеются требования, аналогичные копилефту. Удивительно, но это было вызвано соображениями, очень далекими от риторики Столлмена. "Бизнес, только бизнес", – объясняет Эрик. В 1998 году он основал компанию Sendmail, Inc., дабы зарабатывать на своих разработках. Тогда же стало ясно, что BSDL не очень подходит для выбранной бизнес-модели, и лицензия сменилась: "Откровенно говоря, это было сделано, чтобы конкуренты не могли просто взять наш код и использовать его против нас. Если вы – коммерческая компания и хотите открыть свой код, выпустите его под GPL. Например, Microsoft в свое время заимствовала TCP/IP-стек из BSD. Этого не могло бы произойти под GPL – точнее, MS пришлось бы открыть код".
Часть бизнес-модели Sendmail, Inc. – создание проприетарных решений. Сам по себе базовый код sendmail остается открытым, но компания создает некоторые продукты на его основе, зачастую включающие проприетарные решения – в том числе лицензированные у сторонних производителей (антивирусы, антиспам-системы). Однако другая существенная часть деятельности Sendmail, Inc. построена вокруг сервисов. Фронт работы здесь очень широкий: речь идет не только и не столько об установке готового ПО, сколько о создании системы хождения корреспонденции, которая удовлетворяла бы некоторым требованиям. Сейчас эти требования могут диктоваться, например, законами о сохранности личной информации, – компания, работающая с такой информацией, обязана их соблюдать, а нарушение (скажем, утечка из-за сбоя в работе почтовой системы) может повлечь за собой серьезную ответственность. Эта проблема естественным образом ложится на плечи вендора системы обмена корреспонденцией (или системного интегратора) – ему приходится заниматься такими вопросами, как управление рисками.
Грани свободыСам зарабатывая деньги на программном обеспечении, Эрик Оллмен далек от того, чтобы считать "плохими" все софтверные компании – в том числе и работающие в проприетарных бизнес-моделях. Для него важнее другое. "Всегда существовали "злые" компании и хорошие и честные компании. Нельзя судить обо всех компаниях, смотря на деятельность только некоторых. Например, некоторые компании не заботятся об окружающей среде, стремясь заработать как можно больше денег в наикратчайшие сроки. Однако есть множество фирм, которые собираются существовать сотни лет, и они понимают, что если будут пытаться получить максимум прибыли сейчас, то уничтожат свой бизнес завтра".
Если говорить о программах, то свобода широкого конфигурирования и настройки под пользователя, присущая многим классическим open source-разработкам (включающим и саму sendmail, и Apache), для Эрика значит гораздо больше, чем формальная открытость кода: "Разработчики одного из open source-мейлеров, которым я когда-то пользовался, решили, что не нужно давать возможность пользователю его настраивать. Они считают, что знают лучше, как пользоваться e-mail. Я хочу работать не так, как вы привыкли, а так, как я привык. Мейлер, который я использую сейчас, не открытый, но конфигурируемый".
Завершая беседу, я спросил Эрика, как меняется мир открытого ПО в последнее время. Подумав минуту, он ответил, что сейчас идут два параллельных процесса: количество стандартов сокращается, а количество их реализаций растет. На заре Интернета было множество несовместимых друг с другом почтовых систем и протоколов. "Ныне же есть SMTP – это ограничивает нас в выборе, но не создает особых проблем. С другой стороны, когда-то, выбирая MTA, вы могли поставить sendmail, sendmail или sendmail; сейчас же sendmail – один из многих", – говорит Эрик. И добавляет: "Мне кажется, что это хорошо".
DKIM: Откуда дровишки?Идея технологии DomanKeys Identified Mail (DKIM) состоит в том, что компания, владеющая некоторым доменом (например, brandname.com), криптографически подписывает всю легитимную почту, исходящую с SMTP-серверов, действительно принадлежащих этой компании. Проверка подписи осуществляется через DNS-сервер, обслуживающий данный домен. Если же кто-то захочет отправить письмо с обратным адресом в @brandname.com через сторонний SMTP-сервер (или, скажем, с помощью компьютера, зараженного троянской программой), не имея доступа к DNS-серверу brandname.com, подделать подпись он не сможет – письмо будет отправлено, но без подписи (или с неверной подписью). Если известно, что данный домен всегда подписывает свою исходящую почту (например, речь идет о банке, который таким образом борется с фишинг-атаками), неподписанное письмо покажется очень подозрительным и скорее всего будет отвергнуто либо исследовано получателем «под микроскопом». Первыми станут подписывать свои сообщения те компании, для которых это критично (те же банки), но со временем количество внедрений будет возрастать, и неподписанные сообщения станут редкостью и будут вызывать подозрения. С другой стороны, аутентификация сообщений происходит на уровне сервисов и компаний, а не на уровне отдельных пользователей, и не входит в противоречие с анонимностью почтового обмена.
Идея технологии DomanKeys Identified Mail (DKIM) состоит в том, что компания, владеющая некоторым доменом (например, brandname.com), криптографически подписывает всю легитимную почту, исходящую с SMTP-серверов, действительно принадлежащих этой компании. Проверка подписи осуществляется через DNS-сервер, обслуживающий данный домен. Если же кто-то захочет отправить письмо с обратным адресом в @brandname.com через сторонний SMTP-сервер (или, скажем, с помощью компьютера, зараженного троянской программой), не имея доступа к DNS-серверу brandname.com, подделать подпись он не сможет – письмо будет отправлено, но без подписи (или с неверной подписью). Если известно, что данный домен всегда подписывает свою исходящую почту (например, речь идет о банке, который таким образом борется с фишинг-атаками), неподписанное письмо покажется очень подозрительным и скорее всего будет отвергнуто либо исследовано получателем «под микроскопом». Первыми станут подписывать свои сообщения те компании, для которых это критично (те же банки), но со временем количество внедрений будет возрастать, и неподписанные сообщения станут редкостью и будут вызывать подозрения. С другой стороны, аутентификация сообщений происходит на уровне сервисов и компаний, а не на уровне отдельных пользователей, и не входит в противоречие с анонимностью почтового обмена.
Фото предоставлены организаторами Interop Moscow 2007.
ТЕМА НОМЕРА: Круговорот толпы
Автор: Родион Насакин
Проторчав час в пробках, вы таки доехали до места и припарковались у торгового центра, в котором, по уверениям вашей половины, есть магазин с чудесными африканскими вазами, вошли в здание и… растерялись. Редкие невразумительные таблички со стрелками, сопровождаемыми не менее загадочными обозначениями, ни одного информационного терминала в зоне видимости и отрешенный от суетного мира охранник.
Поначалу вы неслись вместе с толпой, но вскоре поняли, что основной поток устремляется в продуктовый супермаркет, где искомыми вазами и не пахнет, после чего вышли из мейнстрима и стали плутать по пустынному многоэтажному лабиринту, вглядываясь в витрины и надеясь увидеть знакомые названия или, на худой конец, мало-мальски толковый указатель. Вполне возможно, что в конце концов вам повезло, и вы случайно обнаружили нужный магазин, убив, однако, гораздо больше времени, чем предполагали.
Подобные случаи, думаю, могут припомнить многие. Прелести общества потребления принесли с собой новые проблемы. Многие промышленные объекты и прочие просторные сооружения немедля были переоборудованы под торговые нужды, правда, ни о каком серьезном подходе к навигации покупателей тогда никто не думал. Да и позднее девелоперы, возводившие торговые центры, частенько игнорировали вопросы регулирования перемещений посетителей внутри зданий.
Это, конечно, неприятно, но не смертельно, к тому же неудачное проектирование плачевно сказывается на прибыльности торгового центра, так что застройщики начинают уделять этому аспекту больше внимания. Гораздо серьезнее, когда подобные недоработки приводят к скоплению людей на критических участках во время чрезвычайных ситуаций. Паникующую толпу контролировать нельзя, однако, как будет показано ниже, ее поведение вполне можно предсказать, тем самым минимизировав и даже сведя к нулю количество возможных жертв.
Эвакуация по науке
Автор: Родион Насакин
Должное внимание вопросам безопасности уделяется нечасто, но дело здесь вовсе не в безалаберности архитекторов, а в том, что универсальных инструментов прогнозирования поведения толпы раз-два и обчелся. Опыт расчетов движения людей у российских (советских) застройщиков довольно скромен (за исключением, может быть, составления планов эвакуации при пожаре, да и то научное обоснование этих планов вызывает сомнения). Отечественных исследований по моделированию динамики толпы тоже было немного.
По мере того как появлялись все более и более крупные общественные сооружения, вроде гипермаркетов, проблема обострялась. Корректно смоделировать систему передвижения людей в большом пространстве без использования новых теоретических наработок было практически невозможно. А между тем, помимо заботы о потребителе, моделирование людских потоков с последующим использованием результатов при проектировании зданий играет ключевую роль с точки зрения безопасности и организации эвакуации при стихийных бедствиях, авариях, пожарах и терактах.
Газодинамическая аналогияСерьезно этот вопрос прорабатывал сотрудник физфака МГУ М. Е. Степанцов, который еще в 1997 году занялся созданием модели динамики толпы и опубликовал несколько статей по этой тематике. Его работа была поддержана Российским фондом фундаментальных исследований и ГНТП "Безопасность".
Особое внимание Степанцов уделял проблеме практически неизбежной паники среди людей в случае возникновения чрезвычайных ситуаций в общественном месте. Главной задачей исследователя было смоделировать ситуацию с беспорядочным движением большой неорганизованной группы людей (то есть толпы), чтобы выявить те элементы и особенности конструкций, которые могут спровоцировать давку или "пробку". Степанцов полагает, что помимо общего потока пассажиров в проектировании городских пешеходных коммуникаций стоит также учитывать данные детального мониторинга движения потоков на отдельных участках.
Наиболее уместным решением в данном случае является использование класса математических моделей, известных как "клеточные автоматы", которые активно применяются, например, в газодинамике. Степанцов считает, что моделирование ситуаций с активным участием людей на данном этапе научного прогресса практически невозможно, так как исследователю приходится иметь дело с критически большим количеством скрытых факторов. Однако по мере увеличения количества участвующих в модели людей роль рациональных и иррациональных факторов, описывающих поведение отдельного человека, снижается, и поведение группы может быть описано вероятностным образом, то есть спрогнозировано. Это характерная иллюстрация действия закона больших чисел. Даже если исследователь не учитывает причин, которые могут заставить индивидуума действовать нестандартным образом, его поведение вряд ли скажется на действиях общей группы.
Клеточные автоматы – дискретные системы, то есть параметры, описывающие пространство и время, принимают значения из конечного небольшого набора. Клеткой называется узел пространственной решетки, ближайшие ячейки называются соседями. Каждому узлу присваивается некоторый набор значений, описывающий его текущее состояние, которое может изменяться по заданным правилам в зависимости от состояния соседей.
В данном случае клеточный автомат имеет два состояния клетки (наличие/отсутствие в ней человека) и учитывает две составляющие движения: хаотичное и направленное. Интересно, что данные условия схожи с уже существующей моделью, описывающей диффузионные процессы (окрестность Марголуса). Степанцов модифицировал правила этой модели, добавив к диффузионной составляющей движения направленную и представив движение частицы (человека) как суперпозицию случайного и направленного перемещения.
Далее была программно реализована работа клеточного автомата и исследованы некоторые модельные задачи. Так, на рис. 1 отражена ситуация, в которой люди выбегают из узкого выхода. При этом измеряется временная зависимость плотности числа людей до сужения и после. В данном случае плотность в широкой части прохода выше, а значит, данный выход может спровоцировать затор. Этого не произошло при изменении конфигурации прохода (рис. 2). Таким образом, модель позволяла описывать возникновения эффекта пробки и "отрицательной вязкости" (более быстрое движение у границ прохода).
Привнесенный интеллектВпоследствии Степанцов дважды вносил изменения в свою модель – в 1999 и 2003 гг. Главной целью доработки был учет решений человека, который стремится выбрать оптимальный путь к выходу, даже находясь в толпе. Раннюю версию исследователь называл моделью "слепых котят", так как выбор способа движения в заданном направлении отдавался на волю случая.
Для привнесения элементов анализа ситуации людьми выдвигается предположение, что каждый индивид старается передвигаться в нужном направлении и если видит непреодолимое препятствие или значительное скопление других людей на своем пути, то меняет траекторию движения в область с минимальными затруднениями. Для этого в модель вводится понятие "просмотра" на некое расстояние (добавляется параметр r). Если в направлении движения на этом расстоянии встречается клетка с препятствием, то она и все лежащие за ней клетки считаются занятыми. Тогда человек начинает смещаться в сторону, стараясь придерживаться общего вектора (для этого просто нужно увеличить вероятность движения в направлении выхода).