课程
Технологии кибербезопасности будущего
Продолжительность курса – 24 часа (12 пар).
Курс читается сотрудниками АО Сбербанк
Технологии сети Интернет (Гурьев Д.Е.)
Часы: 54 Практикум: да 18 часов
Преподаватель: Гурьев Д.Е.
Описание
Знать
архитектуру стека протоколов TCP/IP, основные протоколы этого стека (IP,ICMP,TCP,UDP), понимать принципы работы маршрутизаторов, службы имен (DNS), ориентироваться в уязвимостях информационной безопасности в Интернет, понимать назначение и принципы работы межсетевых экранов, принципы разработки программного обеспечения для сети Интернет.
Уметь
работать со стандартами Интернет (RFC), руководствами и справочными документами по протоколам Интернет, техническим средствам Интернет, уметь настроить небольшую сеть на основе стека протоколов TCP/IP
Владеть
необходимой терминологией; владеть навыками управления службами маршрутизации, имен (DNS) и межсетевого экрана (в среде FreeBSD)
Введение в криптографию (Лапонина О.Р.)
Часы: 36
Преподаватель: Лапонина О.Р.
Описание
Курс предполагает изучение методологических и алгоритмических основ, стандартов, а также механизмов и сервисов безопасности информационных технологий. Значительное внимание уделяется изучению наиболее важных сервисов и механизмов защиты информации, криптографических алгоритмов и протоколов, проблем информационной безопасности в сети интернет. В частности рассмотрены основные алгоритмы симметричного шифрования: DES, 3DES, IDEA, ГОСТ 28147, Blowfish, Rijndael, а также режимы их использования; рассмотрены алгоритмы шифрования с открытым ключом RSA, Диффи-Хеллмана и DSS, рассмотрены принципы распределения открытых ключей, стандарт Х.509 третьей версии и принципы создания инфраструктуры открытого ключа.
Практикум
- Тема 1. Основные принципы создания надежной и безопасной ИТ-инфраструктуры.
Основы администрирования межсетевого экрана.
Разграничение доступа между двумя локальными сетями с помощью межсетевого экрана. - Тема 2. Технологии межсетевых экранов.
Создание политики без проверки состояния. Создание политик для традиционного (или исходящего) NAT. Создание политик для двунаправленного (Two-Way) NAT, используя метод pinholing. - Тема 3. Протоколы канального уровня.
Соединение двух локальных сетей протоколом L2TP, аутентификация с использованием общего секрета. - Тема 4. Протоколы сетевого уровня.
Протокол GRE. Соединение двух локальных сетей IPSec в туннельном режиме, аутентификация с ис-пользованием общего секрета. Использование аутен-тификации по стандарту XAuth. Использование пре-образования NAT в протоколе IPSec. Использование протокола DPD в протоколе IPSec. Способы аутенти-фикации участников и распределение ключей.
Объектно-ориентированные CАSE-технологии (Романов В.Ю.)
Преподаватель: Романов В.Ю.
Описание
В результате обучения учащийся будет
Знать: способы представления с помощью графической нотации языка UML понятий используемых при объектно-ориентированном проектировании и программировании, структуру метамодели стандартного языка моделирования UML, классы метамодели, отношения между классами метамодели
Уметь: отображать проекты, представленные с помощью графической нотации языка UML, в тексты программ на объектно-ориентированных языках программирования C#, C++ и Java, представлять различные точки зрения на программы, написанные на языках программирования C#, C++ и Java, с помощью графической нотации UML
Владеть: навыками использования языка UML при проектировании программного обеспечения с помощью CASE-инструментов.
Способен использовать графическую нотацию языка UML при проектировании программного обеспечения с помощью CASE-инструментов при объектно-ориентированном проектировании и программировании на основе стандартного языка моделирования UML.
Описание
Тема 1. Графическая нотация языка UML описания статической структуры программной системы.
Средства нотации языка UML для описания сценариев использования моделируемой системы.
Диаграммы прецедентов (Use Case diagram) как средство описания взаимодействия моделируемой системы с внешней средой.
Средства языка UML для детализации поведения системы, описанного на диаграммах сценариев использования.
Средства нотации языка UML для описания статической структуры модели системы (Static Structure diagram). Классификаторы на диаграмме статической структуры. Средства нотации языка UML для описания статической структуры модели системы (Static Structure diagram). Отношения ассоциации, их атрибуты, роли, мощность и стереотипы. Отношение обобщения. Отношение реализации. Отношения зависимости и их стереотипы. Представление обозначений нотации языка UML для отношений с помощью конструкций языков C++, C#, Java.
Тема 2. Графическая нотация языка UML описания поведения программной системы
Диаграммы кооперации объектов (Collaboration diagram): описание способов видимости объектов друг другу, описание последовательности посылки сообщений между объектами и их синхронизации, описание потоков данных.
Диаграммы последовательности взаимодействия (Sequence diagram): описание временной последова-тельности посылки сообщений между диаграммами, описание областей активации на диаграммах, связь диаграммы и текста программы на объектно-ориентированном языке.
Диаграммы переходов и состояний (Statechart diagram): простые и составные состояния, события, простые и сложные переходы; переходы из составных состояний и в составные состояния; синхронизирующие состояния, внутренние переходы.
Диаграммы деятельности (Activity diagram): простые и составные состояния деятельности, узлы принятия решений, сложные переходы, распределение между классами объектов ответственности за деятельности, потоки объектов, синхронизирующие состояния, области прерывания.
Тема 3. Метамодель языка UML 2.0.
Моделирование отношения “владелец-собственность” с помощью базового класса метамодели Element.
Моделирование направленных отношений с помощью класса метамодели DirectedRelationship.
Моделирование пространств имен с помощью классов Namespace и NamedElement.
Моделирование импорта элементов модели в пространство имен с помощью классов PackageableElement, PackageImport.
Моделирование массивов и коллекций с помощью классов метамодели MultipleElement.
Моделирование типов и типизированных элементов с помощью классов метамодели Type и TypedElement.
Моделирование классификаторов и отношения наследования с помощью классов метамодели Classifier и Generalization.
Моделирование атрибутов и операций с помощью классов метамодели StructuralFeature и BehavioralFeature.
Моделирование операций с помощью классов метамодели Operation, Type, Parameter.
Моделирование классов и их атрибутов с помощью классов метамодели Class, Property и Association.
Моделирование пакетов с помощью классов метамодели Package, Namespace, PackageableElement и Type.
Программирование на языке Котлин
Преподаватель: Романов В.Ю.
В результате освоения учебной дисциплины студенты и слушатели должны овладеть следующими образовательными результатами:
Знать: объектно-ориентированные и функциональные парадигмы языка Kotlin; взаимодействие кода языка Kotlin c кодом на языках Java и JavaScript при разработке приложений на смеси языков программирования.
Уметь: использовать язык программирования Kotlin для разработки программных систем;
Владеть: навыками разработки больших программных систем в среде IntelliJ IDEA
Тема 1. Знакомство с объектно-ориентированными возможностями языка Kotlin.
Тема 2. Знакомство с функциональной парадигмой языка программирования Kotlin.
Тема 3. Построение DSL в Kotlin.
Тема 4. Корутины в Kotlin.
Тема 5. Совместное использование языков Kotlin и Java.
Тема 6. Совместное использование языков Kotlin и JavaScript.
Тема 7. Использование языка Kotlin для разработки native (специфичных для платформ) приложений.
Тема 8. Использование языка Kotlin для разработки многоплатформанных приложений.
Язык Java и разработка Java-приложений (Романов В.Ю.)
Преподаватель: Романов В.Ю.
Описание
В результате обучения учащийся будет
Знать:
конструкции языка Java предназначенные для объектно-ориентированного и функционального программирования
Уметь:
применять конструкции языка Java для разработки больших программных систем
Владеть:
навыками использования языка Java в средах разработки Eclipse и IntelliJ IDEA
Способен использовать возможности объектно-ориентированного и функционального программирования языка Java при разработке больших систем.
Описание
Тема 1. Классы, интерфейсы, перечисления и аннотации языка Java.
Тема 2. Структурирование программы с помощью пакетов.
Тема 3. Наследование полей и методов классов и интерфейсов в языке Java.
Тема 4. Вложенность классов и интерфейсов. Анонимные классы и интерфейсы.
Тема 5. Исключения (exceptions) в языке Java.
Тема 6. Стандартная библиотека коллекций языка Java.
Тема 7. Методы рефакторинга для преобразования структуры программы на языке Java.
Тема 8. Родовые типы в языке Java.
Тема 9. Потоки ввода и вывода языка Java.
Тема 10. Интернационализация программ в языке Java.
Тема 11. Функциональные интерфейсы и лямбда выражения в языке Java8.
Тема 12. Потоки в языке Java8.
Тема 13. Модули в языке Java9.
Тема 14. Особености языка Java версий с 10 по 16.
Тема 15. Назначение и структура библиотеки Standard Widget Toolkit.
Тема 16. Классы библиотеки Display, Shell, Composite и Canvas. Их стили, события и характерные методы
Тема 17. Структурирование интерфейса пользователя с помощью классов TabFolder и TabItem.
Тема 18. Отрисовка графических элементов с помощью класса Graphics Context (GC) библиотеки Standard Widget Toolkit.
Тема 19. Обработка событий в библиотеке Standard Widget Toolkit. Интерфейс обработчика события PaintListener для перерисовки изображений на экране.
Тема 20. Обработка событий от мыши и клавиатуры.
Тема 21. Списки и кнопки в интерфейсе пользователя.