Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
java1_2013_2014 / java17.pptx
Скачиваний:
140
Добавлен:
16.04.2015
Размер:
417.03 Кб
Скачать

JAVA-ТЕХНОЛОГИЯ

Сафонов Владимир Олегович

Профессор кафедры информатики, руководитель лаборатории Java- технологии (http://polyhimnie.math.spbu.ru/jtl)

Email: vosafonov@gmail.com

Лекция 17 Безопасность в Java

Безопасность – основные понятия

Безопасность (security) – защита от внешних угроз и атак (threats, attacks), направленных на нарушение работоспособности оборудования, программ, целостности и конфиденциальности данных

Уязвимость (vulnerability) – ошибка или недостаток архитектуры программы, позволяющие организовать атаки

Устойчивость к атакам (resilience to attacks) – способность программного обеспечения обнаруживать атаки, предотвращать их или ослаблять (mitigate) их действие

(C)В.О. Сафонов. 2013

Безопасность: основные понятия

Полномочия безопасности (security permissions) – права или отсутствие прав у кода (пользователя) на выполнение определенных действий, например, чтения файла

Политика безопасности (security policy)

конфигурируемый набор полномочий безопасности и правила определения системой такого набора полномочий для кода (пользователя)

Identity (principal) – пользователь со своим набором прав доступа и ролей

(C)В.О. Сафонов. 2013

Безопасность: основные виды атак

Переполнение буфера (buffer overrun) – использование операций пересылки массивов и строк без явного указания длины для изменения (порчи) “чужой” области памяти

Пример (Си):

strcpy(dest, source); // длина источника больше длины получателя

Отказ в обслуживании (denial of service) – генерация очень большого числа фиктивных запросов к серверу с целью вывода его из строя (например, в результате исчерпания памяти)

Phishing – “Ловля” логинов и паролей излишне доверчивых пользователей

Pharming – Перенаправление пользователя на враждебный (malicious) Web-сайт

Spam – Рассылка враждебных писем по email с целью распространения сетевых вирусов и “червей” или похищения конфиденциальных данных пользователей (“Ваш банковский счет в опасности”… )

(C)В.О. Сафонов. 2013

Инициатива Trustworthy Computing

В 2002 г. Microsoft предложила инициативу Trustworthy Computing (TWC)

Four pillars of TWC безопасность (security);

надежность (reliability); соблюдение

конфиденциальности (privacy); оперативность и корректность бизнеса (business integrity)

Основная идея TWC: Следовать этим принципам на всех этапах разработки программы – выработка требований и целей, проектирование и моделирование, реализация, тестирование, сопровождение

Security Development Life Cycle (SDLC) – новая схема жизненного цикла рабработки безопасных программ(C) В.О. (Microsoft)Сафонов. 2013

Безопасность в Java

Безопасность приложений – обеспечивается управляемым выполнением (managed execution) программ с полным контролем типов, соблюдения границ массивов, использования указателей, распространения исключений и др.

Типовая атака buffer overrun, например, в Java невозможна (сработает контроль границ массивов)

Безопасность апплетов: в Java 1.0 / 1.1 – модель песочницы (sandbox); апплет не имеет права читать или изменять локальные файлы, устанавливать дополнительные сетевые соединения и др.

Начиная с версии 1.1, введены цифровые подписи и подписанные апплеты. Апплет с проверенной цифровой подписью приравнивается по своим правам к обычному приложению

Ранняя модель безопасности в Java (1.1, 1.2): класс SecurityManager, который может быть реализован по-разному в различных браузерах(C) В.О. Сафонов. 2013

В новых версиях Java реализована концепция провайдера

Эволюция безопасности в Java: Безопасность в JDK 1.0

(C) В.О. Сафонов. 2013

Эволюция безопасности в Java: Безопасность в JDK 1.1

(C) В.О. Сафонов. 2013

Эволюция безопасности в Java: Безопасность в JDK 1.2

(C) В.О. Сафонов. 2013

Эволюция безопасности в Java

JDK 1.0: Любая внешняя программа (апплет) исполнялся в “песочнице”

JDK 1.1: Реализовано понятие trusted (signed) applet

JDK 2.0: реализована концепция конфигурируемой политики безопасности

(C) В.О. Сафонов. 2013

Соседние файлы в папке java1_2013_2014