Назад в библиотеку

ActiveX и Authenticode

Авторы: Gene Spafford, Simson Garfinkel
Источник: Источник (англ.): Сетевая безопасность и коммерция, Джин Спаффорд, Симсон Гарфинкель [источник оригинальной статьи]


ActiveX – это набор технологий, протоколов и API, разработанных Microsoft, которые используются для загрузки исполняемого кода через Интернет. Код объединен в один файл, называемый элементом управления ActiveX. Файл имеет расширение OCX.

Microsoft смущающе позиционирует ActiveX как альтернативу Java. ActiveX более правильно рассматривается как альтернатива подключаемым модулям Netscape. Элементы управления ActiveX – это подключаемые модули, которые автоматически загружаются и устанавливаются по мере необходимости, а затем автоматически удаляются, когда в них больше нет необходимости. Вводит в заблуждение тот факт, что элементы управления ActiveX могут быть написаны на Java!

Несмотря на сходство между элементами управления ActiveX и плагинами Netscape, есть несколько существенных отличий:

Виды элементов управления ActiveX

Элементы управления ActiveX могут выполнять простые анимации или могут быть чрезвычайно сложными, реализуя базы данных или электронные таблицы. Они могут добавлять элементы меню в веб-браузер, получать доступ к информации на монтажном столе, сканировать жесткий диск пользователя или даже выключать компьютер пользователя.

По сути, существует два вида элементов управления ActiveX:

Эти два разных вида элементов управления ActiveX имеют принципиально разные последствия для безопасности. В первом случае ActiveX – это просто средство для быстрой загрузки и запуска программы с машинным кодом. Программист выбирает, следовать ли API-интерфейсам ActiveX, использовать собственные API-интерфейсы операционной системы или пытаться напрямую манипулировать оборудованием компьютера. Невозможно легко проверить функции элемента управления ActiveX в большинстве операционных систем ПК.

С другой стороны, элементы управления ActiveX, которые загружаются как байт-код Java, могут подвергаться всем тем же ограничениям, которые обычно применяются к программам Java. Эти элементы управления могут запускаться браузером в изолированной программной среде Java. Альтернативно, веб-браузер может предоставить этим элементам управления определенные привилегии, такие как возможность записи в определенном каталоге или инициирование сетевых подключений к определенному компьютеру в Интернете. Возможно, наиболее важно то, что действия элемента управления ActiveX, написанного на Java, могут быть проверены – при условии, конечно, что используемая среда выполнения Java позволяет такой аудит.

Хотя поддержка ActiveX была перенесена на различные платформы, элементы управления ActiveX, которые загружаются в виде машинного кода, в основном зависят от процессора и операционной системы. Эти элементы управления ActiveX скомпилированы для определенного процесса и с определенным набором API. С другой стороны, элементы управления ActiveX, написанные на Java, могут не зависеть от операционной системы и процессора – при условии, что используемый веб-браузер поддерживает как Java, так и ActiveX.

Элементы управления ActiveX можно автоматически загружать и запускать на веб-страницах с помощью тега . Параметры тега указывают, откуда загружается элемент управления ActiveX и идентификатор класса, который должен быть запущен. После тега указываются именованные параметры, которые передаются в элемент управления ActiveX после его запуска.