Litvek - онлайн библиотека >> Майкл Шмидт >> Web-дизайн и др. >> Безопасность HTML5

Безопасность HTML5. Иллюстрация № 1



Безопасность HTML5 – часть первая


Данный документ содержит выдержки из магистерской диссертации Майкла Шмидта. Здесь отражены рассмотренные в диссертации аспекты HTML5, касающиеся безопасности.

 Автор: Michael Schmidt (Compas Security)


Обзор документа

Данный документ содержит выдержки из магистерской диссертации Майкла Шмидта. Здесь отражены рассмотренные в диссертации аспекты HTML5, касающиеся безопасности.



Безопасность HTML5. Иллюстрация № 2

Атаки с помощью HTML5


Необходимо учитывать, что содержимое данного документа было опубликовано в мае 2011 года. Компания Compas Security постоянно обновляет информацию о своих ноу-хау, относящихся к HTML5, и предоставляет дополнительную информацию. Пожалуйста, посетите www.csnc.ch или свяжитесь с нами для получения актуальной версии документа.


Глава 1. Введение.

1.1 История HTML5 и текущая модель Всемирной паутины

На данный момент действующим стандартом HTML (Hypertext Markup Language), установленным W3C (World Wide Web Consortium или Консорциумом Всемирной паутины), является HTML 4.01 [1]. Этот стандарт определяет, как должен использоваться HTML для описания веб-страниц. XHTML 1.0 и XHTML 1.1 обладают в основном той же функциональностью, что и HTML 4.01, за исключением нескольких ограничений и расширений HTML. Однако, эти два стандарта основаны на XML (Extensible Markup Language), а не на SGML (Standard Generalized Markup Language) [2].

HTML5 (HTML версии 5) является потомком HTML 4.01, XHTML 1.0 и XHTML 1.1. Производители браузеров: Apple Computer, Inc., Mozilla Foundation и Opera Software ASA основали сообщество WHATWG (Web Hypertext Application Technology Working Group или Рабочую группу по развитию технологии гипертекстовых веб-приложений) в 2004 году с намерением развивать и расширять новые веб-технологии сперва под знаком Web Application 1.0, а позднее под именем HTML5. Одна из основных причин создания WHATWG заключалась в том, что среди производителей барузеров росло беспокойство по поводу предложенной W3C концепции XHTML2. W3C в это время разрабатывало стандарт XHTML2, но прекратило над ним работу в 2009 для ускорения разработки HTML5 [6]. С этого момента и W3C, и WHATWG работают над HTML5, но поддерживают свои версии спецификаций, которые немного отличаются в некоторых вопросах. Однако, главный автор, Ян Хиксон, работает над версией WHATWG. Поскольку разработка HTML5 определяется в основном WHATWG, некоторые критикуют HTML5 за то, что он испытывает слишком большое влияние со стороны производителей браузеров и слишком малое со стороны пользователей Всемирной паутины [8]. Это может отразиться на безопасности, что и показывает данный документ.

HTML5 по версии WHATWG имеет статус "Living Standard" [9], а по версии W3C - "Working Draft" (Рабочий проект) [3]. Несколько производителей браузеров уже реализовали множество возможностей HTML5. Статус кандидата в рекомендации планируется к 2012, а статус официальной рекомендации к 2022 [5]. Для тестирования поддержки браузером тех или иных возможностей HTML5 существуют веб-сайты вроде [10]. Тем не менее, в октябре 2010 года W3C официально заявил, что HTML5 еще не готов для использования в современных веб-приложениях из-за проблем с возможностями взаимодействия [11]. По этой причине положения, дающиеся в данном документе, могут измениться, то есть необходимо внимательно рассматривать контекст, в котором описаны атаки и средства противодействия им. Изменения в спецификации HTML5 могут как смягчить описанные атаки, так и породить новые уязвимости.

HTML5 предоставляет новые возможности веб-приложениям, но также рождает новые проблемы безопасности. Один из известных примеров некорректного использования HTML5 – вечные куки [12], которые открыто обсуждались в новостях безопасности [13]. С помощью этих вечных куки и нескольких технологий можно попытаться скоррелировать пользовательские сессии. Кроме того, новые технологии HTML5 вроде Web Storage используются для хранения уникальных идентификаторов в браузере на стороне клиента. При обсуждении реализации веб-приложений на основе HTML5 нужно учитывать эти проблемы безопасности, равно как и новые возможности.

На рисунке 1 показана высокоуровневая модель Всемирной паутины, на которой основана вторая глава. Рамка обозначает поставщика веб-приложений, который состоит из веб-сервера, обслуживающего по крайней мере один сайт и хранящего данные в базе. Сайт в ответ на запросы предоставляет ресурсы клиентам через Интернет.


Безопасность HTML5. Иллюстрация № 3

Рисунок 1. Стандартная модель Всемирной паутины


Вот более детальное описание показанных на рисунке сущностей:

Ресурсы: Ресурсы – любые сетевые данные или сервисы, доступные через Интернет. Их местоположение определяется через URI (унифицированный идентификатор ресурса) [14]. Примерами ресурсов являются веб-страницы, содержащие HTML/CSS и JavaScript код, а также ссылки на дополнительные ресурсы вроде рисунков и видео.

Пользовательский агент (ПА, User-Agent, UA): ПА – это потребитель веб-приложений, который запрашивает ресурсы у поставщика веб-приложений. Ресурсы обрабатываются ПА, рендерятся и отображаются для конечного пользователя. ПА имеет возможность установления HTTP (Hypertext Transfer Protocol) соединений с веб-серверами для корректного рендеринга html/css и выполнения JavaScript. Более того, в ПА реализованы стандарты HTML 4.01 и HTML 5 и соответствующие возможности вроде Geolocation API (раздел 2.8) или Web Storage (раздел 2.3).

Веб-приложение – общий термин, обозначающий поставщика веб-ресурсов, который состоит из трех главных частей:


Веб-сайт. Веб-сайт состоит из нескольких отдельных веб-ресурсов и доступен по своему URI.

Веб-сервер. Веб-сервер предоставляет хостинг для по меньшей мере одного веб-сайта. HTTP(S)-соединение устанавливается между ПА и веб-сервером. Помимо хостинга сайтов, веб-сервер также предоставляет дополнительные ресурсы. Другие соединения, вроде Web Socket API (раздел 2.7), также устанавливаются между ПА и веб-сервером.

База данных. Базы данных хранят любые данные, необходимые для веб-приложений, например, персональную информацию о пользователях.


Интернет. ПА получает доступ к веб-приложениям через Интернет. ПА может соединяться с любым веб-приложением и не ограничен в целях. Веб-приложения, в свою очередь, доступны из любой точки Интернета. На Рисунке 1 представлена глобальная модель, рассматриваемая в главе 2. Однако, конкретные модели, используемые в дальнейших разделах, могут немного отличаться в зависимости от