Безопасность HTML5 [Майкл Шмидт] (fb2) читать постранично

- Безопасность HTML5 549 Кб, 59с. скачать: (fb2) - (исправленную)  читать: (полностью) - (постранично) - Майкл Шмидт

 [Настройки текста]  [Cбросить фильтры]



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


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

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


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

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



Атаки с помощью 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 показана высокоуровневая модель Всемирной паутины, на которой основана вторая глава. Рамка обозначает поставщика веб-приложений, который состоит из веб-сервера, обслуживающего по крайней мере один сайт и хранящего данные в базе. Сайт в ответ на запросы предоставляет ресурсы клиентам через Интернет.


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


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

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