Дополнительные модули хуже всего, поскольку они автоматически считаются надежными. Это – программные модули, которые вы можете добавить к своему браузеру, чтобы расширить его функциональные возможности, например средства просмотра файлов формата PDF, медиапроигрыватели или что-нибудь еще. У них нет никакой системы безопасности. Если вы их загружаете и устанавливаете, значит, вы им доверяете. Точка.
Безопасность Веб
HTTP (протокол, используемый в Веб), как и большая часть информации, блуждающей в Интернете, незашифрован и неаутентифицирован. Многие боятся доверять номера своих кредитных карт незашифрованной веб-связи. (Я не думаю, что в этом есть смысл, но кое-что я бы посылать по Сети незашифрованным не стал.) Чтобы решить эту проблему, в ранние версии Netscape Navigator включали специальный протокол, так называемый SSL. Этот протокол, который был со временем переименован в TLS, обеспечивает шифрование и аутентификацию веб-связи. SSL довольно хорош, и все его проблемы касаются сертификатов и их применения (подробности – в главе 15). Некоторые веб-сайты предоставляют вам возможность выбрать защищенный SSL сеанс связи с браузером. (Веб-страница должна иметь этот параметр; браузер не будет использовать SSL, если на сервере нет соответствующих установок.) Браузер и веб-сервер применяют шифрование открытым ключом для обмена ключами и симметричное шифрование для кодирования данных. Присутствие в нижней части браузера зеленого ключа или желтого замка дает пользователю возможность почувствовать себя намного свободнее.
Однако нельзя упускать из виду, что пока пользователь не проверит вручную присланный сервером сертификат, он не имеет ни малейшего представления о собеседнике. Я повторяю, SSL устанавливает безопасную связь между браузером и кем-то на другом конце соединения. Если пользователь не проверит, кто находится на другом конце соединения, он не будет знать, с кем он секретничает. Представьте себе, что двое незнакомых друг с другом людей входят в абсолютно темную комнату со звуконепроницаемыми стенами. Они знают, что их разговор никто не подслушает. Но кто доверит свои секреты незнакомцу? Это одна из проблем, возникающих при использовании SSL-сертификатов.
Кроме того, SSL не обеспечивает защиты данных на сервере. В начале 2000 года хакеры неоднократно взламывали веб-сайты и крали информацию: номера кредитных карт, информацию о лицевых счетах и многое другое. SSL не в состоянии это предотвратить.
Взлом URL
На унифицированный указатель информационного ресурса (URL) направлен целый ряд атак, некоторые из них рассчитаны на ошибку пользователя, а некоторые – просто на его необразованность. Первый класс – это атаки, при которых разные серверы крадут трафик друг у друга. Может быть, на ваш взгляд, это ерунда – зачем веб-сайту, продающему водопроводное оборудование, трафик веб-сайта финансовых новостей, – но некоторые сайты, например порнографические, таким образом хотят повысить посещаемость своих страниц.
Один из способов получить чужой трафик – обмануть поисковую машину. Машины поиска в большинстве своем довольно глупы: вы спрашиваете их о сайтах про водопроводное оборудование и получаете в ответ все веб-страницы, на которых где-то в тексте есть словосочетание «водопроводное оборудование». (Более современные машины поиска чуть умнее, но основной принцип сохранился.) Некоторые сайты имеют на своих страницах посторонний текст в качестве приманки для поисковой машины. Этот текст не отображается на экране – он может быть спрятан (например, белый текст на белой странице), может быть представлен в виде ключевых слов или мета-тегов в непечатаемой части страницы, – но он просматривается поисковой машиной. Так, на порнографическом сайте могут находиться слова: «котировки ценных бумаг; погода; выборы президента; Кливленд; кулинария; садоводство», и при поиске по этим словам машина найдет, в числе прочих, этот порносайт.
Создатели некоторых веб-сайтов идут еще дальше, используя переключатели страниц. Подстраивая свои ключевые слова и мета-теги (встроенные в веб-страницы команды, которые сообщают поисковой машине параметры страницы), эти сайты обманывают поисковую машину, которая не отличает их от популярных вебсайтов и при выводе результата помещает их непосредственно перед этими популярными сайтами. Ничего не подозревающие пользователи загружают поддельный сайт вместо настоящего. Главным образом, такую тактику применяли создатели порнографических сайтов, чтобы привлечь посетителей, но вы можете себе представить взлом по типу переключателя страниц, при котором поддельный сайт еще и выглядит как настоящий. Это было бы неприятной проблемой.
Атаки такого рода не ограничиваются веб-страницами и поисковыми машинами. Небольшие компании иногда включают в свои пресс-релизы название и эмблему более крупной компании, и в результате люди, которые ищут ту большую компанию, получат и этот пресс-релиз. Это называется столкновением наименований (ticker symbols mashing) и может выглядеть примерно так: «SmallCompany com объявила, что ее новая программа не имеет ничего общего с Microsoft». Даже при описании лота на аукционе eBay используются слова, которые будут притягивать к нему поиск: «Этот дешевый свитер (не Прада, не Армани) красного цвета».
Возвращаясь к Веб, отмечу, что одним из способов подобных атак является регистрация сайтов, имена которых похожи на имена популярных сайтов. Этим занимаются тайпсквоттеры («пираты» опечаток). Например, адрес wwwpainewebber com (без точки, вместо www painewebber com) приведет кого-то на порнографический сайт. Люди, которые неправильно набрали название страховой компании (Geigo вместо Geico), окажутся на сайте, которым владеет Progressive Insurance. (Эти атаки, происходящие в результате опечаток пользователя, скорее всего, уже никому не повредят; во время написания книги проходили несколько судебных процессов как раз по такому поводу.)[33]
Подобные инциденты могут возникать и спонтанно. Компания eToys попыталась возбудить судебный процесс против группы артистов etoy, несмотря на то что доменное имя etoy com было зарегистрировано за два года до того, как появилось eToys com. (Хотя имена доменов действительно совпали случайно, оказалось, что etoy занимались переключением страниц на сайты Playboy.)
Все перечисленные выше случаи не относятся к киберсквоттингу. Этим термином обозначают регистрацию имени домена, которое может представлять интерес для кого-то. Например, кому-то другому, но не мне принадлежат имена applied-cryptography com и applied-cryptography com, а именно так называется моя первая книга[34].
Веб-спуфинг (Web-spoofing), или получение доступа обманным путем, – еще один вариант мошенничества в Интернете. Подделывая адреса URL на сайте клиента, злоумышленник может вынудить жертву всегда совершать поиск через определенный сайт. Этот сайт, которым владеет злоумышленник, может перехватывать весь сеанс поиска жертвы. Злоумышленник может сохранить записи о том, на какие сайты заходила его жертва, ее различные учетные записи, пароли и т. п. Злоумышленник может также слегка изменять различные страницы, например менять адрес отправления купленного жертвой продукта.
Такая атака возможна даже при SSL-связи. Как я отмечал ранее, SSL гарантирует только то, что канал связи недоступен посторонним. А если секретная связь установлена со злоумышленником, это мало поможет. Несколько других трюков облегчают нападение, поэтому выключение JavaScript в браузере дает некую защиту. Некоторые веб-сайты, например AskJeeves, усугубляют проблему, размещая у себя веб-страницы других людей и представляя их информацию как свою. В момент написания книги не было данных о существовании такого рода атак «в диком виде».
Cookies
Cookies – это программная хитрость, встроенная в браузеры Всемирной Сети изобретательными программистами. По своей сути cookies – это небольшие порции информации, которую веб-сервер поставляет браузеру. Браузер сохраняет эти данные на компьютере пользователя и отсылает их на сервер всякий раз, когда браузер возвращается к серверу. Cookies позволяют сделать массу полезных и хороших вещей. Но, к сожалению, они также допускают множество разрушительных действий. В первую очередь я объясню, как они работают, а затем расскажу о проблемах, с ними связанных.
HTTP – по сути, протокол, не идентифицирующий пользователя. Это значит, что сервер не знает, кто с ним работает. Сервер просто обслуживает веб-страницы. Браузер запрашивает веб-страницу – сервер ему ее выдает. Сервер не имеет представления, тот ли это браузер, что и раньше, или другой – ему все равно. Такой подход замечательно работает для простых, статических веб-сайтов, содержащих только страницы с фиксированным содержанием.
Сложные веб-сайты имеют динамическое устройство. На веб-сайтах розничной торговли есть «корзины», с которыми вы перемещаетесь при просмотре сайта. На информационных сайтах с платным доступом имя пользователя и пароль требуется вводить при переходе со страницы на страницу. (На мой взгляд, утомительно набирать имя пользователя и пароль каждый раз, когда я хочу посмотреть еще одну статью на веб-сайте New York Times.) Cookies дают возможность управиться с этим.