Конспект к школьному этапу ВсОШ по ИБ
by Комнда Inside Out <3
Системы разграничения прав доступа
Что это такое?
Представим компанию, специализирующуюся на доставке продуктов на дом. Такой компании понадобится хранить много конфиденциальных данных пользователей: от адреса проживания до номера карточки. Система разграничения прав доступа отвечает за доступ сотрудников к различным данным. Например, благодаря системам разграничения прав доступа доставщик еды знает о пользователе только адрес, чего достаточно для его работы.
Какие системы разграничения прав доступа существуют?
Мандатная система разграничения прав доступа
Данная система разграничения прав доступа основывается на уровне секретности каждого документа и сотрудника. Сотрудик сможет читать все документы, уровень секретности которых меньше или равен уровню доступа сотрудника.
Рассмотрим следующий пример:
| Пользователь | Уровень доступа |
|---|---|
| Виктор Баринов (руководитель) | 5 |
| Максим Лавров (стажер) | 1 |
| Лев Соловьев (помощник руководителя) | 4 |
| Объект | Необходимый уровень доступа |
|---|---|
| Кабинет руководителя | 5 |
| Склад с продуктами | 1 |
| Кухня | 3 |
Никто кроме руководителя не имеет доступа к его кабинету. На кухне могут находиться все, кроме Максима Лаврова. На складе с продуктами могут работать все.
Ролевая система разграничения прав доступа
Данная система основывается на специальных ролях пользователей. Например, у доставщика еды, сотрудника службы поддержки, разработчика платформы и обычного пользователя будут разные роли.
| Роль | Адрес клиента | История заказов | Банковские данные |
|---|---|---|---|
| Доставщик | + | - | - |
| Пользователь | + | + | + |
| Сотрудник службы поддержки | - | + | - |
| Пользователь | Роль |
|---|---|
| Сергей | Пользователь |
| Виктор | Доставщик |
| Анастасия | Сотрудник службы поддержки |
Дискреционная система разграничения прав доступа
В этой системе у каждого пользователя системы нужно будет указывать все права доступа.
| Роль | Адрес клиента | История заказов | Банковские данные |
|---|---|---|---|
| Сергей (Доставщик) | + | - | - |
| Виктор (Доставщик) | + | - | - |
| Анастасия (Пользователь) | + | + | + |
| Алексей (Доставщик) | + | - | - |
| Егор (Пользователь) | + | + | + |
Преимущества и недостатки каждой из систем разграничения прав доступа
Сравнительная таблица систем разграничения доступа
| Параметр | Дискреционная | Мандатная | Ролевая |
|---|---|---|---|
| Гибкость | Высокая | Низкая | Средняя |
| Безопасность | Низкая | Очень высокая | Высокая |
| Масштабируемость | Низкая | Средняя | Высокая |
| Сложность администрирования | Низкая | Высокая | Средняя |
Компьютерные сети: основы
Зачем нужны сети?
Сети соединяют компьютеры между собой - чтобы домашние гаджеты общались между собой, а твой компьютер мог подключиться к серверу на другом конце света.
Что такое протокол?
Протокол - это соглашение, стандарт, описывающий то, как данные передаются от одной точки к другой. Все компьютерные сети работают потому, что люди договорились, что данные передаются так, а не иначе. Как именно - расскажем дальше:)
Модель OSI
Модель OSI - эталонная модель, описывающая различные уровни, на которых работают сетевые протоколы. Очевидно, что для того, чтобы разработать протокол для интернет-звонков, сначала нужно понять, как передать данные от компьютера до роутера. Вот все уровни OSI:
- Физический. Содержит в себе протоколы самого низкого уровня - к примеру, определяет, как кодируются биты для передачи по сетевому кабелю.
- Канальный. Описывает, как данные передаются между физически соединенными хостами. К примеру - ethernet/wi-fi. В первом случае протокол описывает, как два компьютера общаются по кабелю, в другом - по воздуху.
- Сетевой. Определяет, каким путем передаются данные между разными хостами. К примеру, когда вы обращаетесь к сайту, данные доходят до сервера именно с помощью сетевых протоколов. Пример - IP протокол. Да, IP-адрес берется именно из него
- Транспортный. Когда у нас есть возможность доставить данные из точки А в точку Б, появляется необходимость делать это, к примеру, без потерь. То, как именно передаются данные, определяется на этом уровне - примеры: TCP, UDP.
- Сеансовый. Обеспечивает поддержание связи на протяжении долгого времени.
- Уровень представления. Отвечает за преобразование данных между различными протоколами и представлениями.
- Прикладной. Тут обитают протоколы, необходимые для работы конечных приложений - к примеру, HTTP для доставки контента с сайтов, RDP для удаленного подключения к компьютеру.
На самом деле
На самом деле, в реальной жизни все устроено чуть проще - в частности, вот как обычно выглядит твое подключение к сайту с точки зрения сетей:
- Через провод/wi-fi ты подключаешься к своему роутеру, чтобы получить выход в сеть.
- С помощью протокола IP запросы с твоего компьютера впринципе достигают сервер.
- Чтобы целостность данных не была нарушена, открывается TCP - сессия. TCP - протокол, гарантирующий, что данные дойдут до сервера без потерь.
- Если подключение происходит по HTTPS, открывается сессия TLS - криптографического протокола, обеспечивающего безопасную передачу данных внутри себя.
- В безопасной сессии отправляется запрос - GET /index.html HTTP/1.1
- Вы продолжаете общение дальше:)
Важно понять, что данные каждого следующего протокола передаются через предыдущий - у каждого из протоколов есть свой способ передать данные внутри себя. Таким образом, на каждом уровне передаются служебные данные протокола, к примеру адреса отправителя и получателя, и данные.
К примеру: В Wi-Fi пакеты кладутся IP пакеты в которые кладутся TCP пакеты в которые кладутся TLS пакеты в которые кладутся HTTP данные. Да, вот так:)
Как увидеть это своими глазами?
С помощью инструмента WireShark (https://www.wireshark.org/download.html), можно захваатывать и просматривать трафик, идущий сквозь твой компьютер. Подробней про то, как работать с этим инструментом, расскажем на курсах:)
Что может пригодиться на школьном этапе?
Не стоит ждать сложных заданий - скорее всего, могут быть задания на понимание IP сетей. Подробней о них ниже:)
IP
Каждый компьютер, находящийся в IP сети, получает свой уникальный адрес. Адрес состоит из 4 байт, и выглядит, к примеру, так:
172.0.1.18
Обычно четыре байта записывают как 4 числа через точку. Понятно, что числа будут от 0 до 255. Однако, компьютеры должны находиться в какой-то сети. Как она определяется? Для этого существует маска подсети. Это - двоичное число из 32 бит (4 байт), в котором сначала идут все единички, потом - все нули. Рассмотрим двоичную запись адреса 172.0.1.18 и маски 255.255.255.0.
10101100.00000000.00000001.00010010 11111111.11111111.11111111.00000000
Тогда, чтобы получить сеть, в которой находится этот адрес, надо применить поразрядное “И” (and, &, конъюнкцию) между адресом и маской:
10101100.00000000.00000001.00010010 & 11111111.11111111.11111111.00000000 = 10101100.00000000.00000001.00000000
Переведем обратно в десятичную, получим адрес сети 172.0.1.0.
Часто адрес компьютера пишут вместе с маской, к примеру такая запись:
172.0.1.18/24
Значит, что к адресу нужно применить маску, в которой идут подряд 24 единицы, затем нули. Очевидно, что их будет 32 - количество единиц.
Количество доступных IP адресов в одной сети
Очевидно, что если сеть задается маской длины k, доступных адресов в ней будет 2^(32-k) - во всех разрядах, где в маске стоят нули, может стоять что угодно. При этом важно помнить, что существует два особенных адреса - тот, у которого в разрядах, где в маске стоят нули, тоже стоят нули, и наоборот - единицы.
К примеру: 172.0.1.0/24, 172.0.1.63/26.
Адрес, в котором стоят все нули, называется адресом сети - он называет конкретную сеть. Адрес, в котором стоят все единицы, называется широковещательным - сообщение ему пересылается всем участникам сети. Эти адреса не могут быть присвоены обычным компьютерам - значит, в сети с маской длины k может быть 2^(32-k) - 2 компьютеров.
Основы комбинаторики
Комбинаторика помогает решать задачи подсчета количества способов сделать что-либо. Например, часто попадается задача посчитать количество паролей, соответствующее каким-то конкретным условиям.
Правило произведения
Если объект A можно выбрать m способами, и после каждого такого выбора объект B можно выбрать n способами, независимо от выбора A, то выбрать пару (A, B) можно m * n способами.
Пример: У вас 3 рубашки и 4 пары брюк. Сколькими способами можно составить комплект из рубашки и брюк?
Решение: Для каждой из трех рубашек мы можем выбрать любую из четырех пар брюк и составить новый комплект одежды. Тогда всего различных комплектов одежды будет 3 * 4 = 12
Основные формулы
Все формулы ниже отвечают на вопрос: “Сколькими способами можно выбрать из n элементов какие-то k из них?”
Ответ зависит от двух факторов:
- Важен ли порядок элементов?
- Повторяются ли элементы?
Размещения
Эта формула используется в ситуациях, когда нам важен порядок и когда из n элементов нужно выбрать k неповторяющихся.
Формула: n! / (n - k)!
Пример: Из 5 бегунов нужно выбрать трёх для присуждения 1, 2 и 3 мест. Сколькими способами?
Решение: На первое место мы можем поставить любого из пяти бегунов. На второе место можно поставить любого из четырех оставшихся, так как один и тот же бегун не может занимать одновременно два места (т.е. элементы не повторяются). На третье место можно поставить любого из оставшихся трех бегунов.
5 * 4 * 3 = 5! / (5-3)! = (5 * 4 * 3 * 2 * 1) / (2*1) = 60
Перестановки с повторениями
Если среди n элементов есть одинаковые: n₁ элементов одного типа, n₂ — другого, …, nₖ — k-го типа, то число различных перестановок:
Формула: n! / (n₁! * n₂! * ... * nₖ!)
Пример: Сколько различных слов можно составить из букв слова “МАМА”?
Решение: n = 4, буква “М” — n₁ = 2, буква “А” — n₂ = 2
4! / (2! * 2!) = 24 / (2 * 2) = 6
Сочетания
- Порядок важен? Нет
- Повторения? Нет
- Формула:
n! / (k! * (n - k)!)
Пример: Из 5 человек нужно выбрать двоих для дежурства. Сколькими способами?
Решение: Порядок не важен
5! / (2! * 3!) = (5*4) / (2*1) = 10
Размещения с повторениями
- Порядок важен? Да
- Повторения? Да
- Формула:
nᵏ
Пример: Сколько существует всех 4-значных пин-кодов?
Решение: На каждую из 4 позиций можно поставить любую из 10 цифр (0-9). Порядок важен.
10⁴ = 10 000
Пример задачи, которая может встретиться на школьном этапе
Условие
Алиса забыла четырёхзначный пароль от своего планшета. Она точно помнит, что:
- пароль состоит из цифр от 0 до 9
- первая цифра — нечётная
- последняя цифра — нечётная
- цифры могут повторяться
Сколько всего существует возможных вариантов такого пароля?
Решение
- Пароль имеет вид:
[X₁ X₂ X₃ X₄] - X₁ — нечётная цифра
- X₄ — нечётная цифра
- X₂, X₃ — любые цифры от 0 до 9
Общее количество =
5 * 10 * 10 * 5 = 2500
Ответ: 2500
Историческая криптография
Почти на каждом теоретическом туре встречаются задачи на историческую криптографию. Эти задачи связаны с шифрами древности - нужно понимать, как работают алгоритмы шифрования и расшифрования.
Шифр Цезаря
Краткое описание алгоритма
Каждая буква в исходном тексте заменяется на другую букву, стоящую в алфавите на фиксированное число позиций (ключ) правее.
Шифрование
Возьмем алфавит:
А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
Теперь выберем ключ - число k, определяющее сдвиг букв, мы возьмем k = 3 (сдвиг на 3 позиции вправо). Таким образом, зашифровав букву А мы получим букву Г. Если для буквы нельзя сделать сдвиг вправо, мы просто зацикливаем алфавит: например, зашифровав букву Я мы получим букву В.
Исходный алфавит:
А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
Шифрованный алфавит (k=3):
Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я А Б В
Задача: Зашифровать “ПРИВЕТ” с ключом k=3
| Исходная буква | П | Р | И | В | Е | Т |
|---|---|---|---|---|---|---|
| Шифрованная | С | У | Л | Е | И | Х |
Результат: "ПРИВЕТ" → "СУЛЕИХ"
Дешифрование
Применяется обратная операция: сдвигаем каждую зашифрованную букву налево.
k = 2
ХЁВЩК ПВ ЪМРНЮПРО ЯФВСЖ!
Шифр Плейфера
Формирование ключа
Символы алфавита вносятся в прямоугольную таблицу в особом порядке. Для русского алфавита формируется таблица 6×6: сам алфавит, а также специальные символы (точка, запятая, пробел)
Шифрование
Исходный текст делится на пары символов (биграммы)
После разбиения текста на биграммы, каждая биграмма шифруется отдельно по следующим правилам:
Пример ключа:
| А | Б | В | Г | Д | Е |
|---|---|---|---|---|---|
| Ё | Ж | З | И | Й | К |
| Л | М | Н | О | П | Р |
| С | Т | У | Ф | Х | Ц |
| Ч | Ш | Щ | Ъ | Ы | Ь |
| Э | Ю | Я | . | , |
Если символы в одной строке
- Каждый символ заменяется на соседа справа
- Для символа в крайнем правом столбце соседом справа считается символ из крайнего левого столбца той же строки
На примере ключа, расположенного выше:
АБ -> БВ
Если символы в одном столбце
- Каждый символ заменяется на соседа снизу
- Для символа в самой нижней строке соседом снизу считается символ из самой верхней строки того же столбца
На примере ключа, расположенного выше:
ЗН -> НУ
Если символы в разных строках и столбцах
- Символы заменяются на символы, находящиеся в тех же строках, но в столбцах друг друга
- Фактически: берутся противоположные углы прямоугольника, образованного биграммой
На примере ключа, расположенного выше:
МФ -> ОТ
Если два одинаковых символа в биграмме
Применяется правило для строки
На примере ключа, расположенного выше:
ММ -> НН
Это правило может поменяться, в условии задания обычно рассказывают, какую из вариаций используют
Дешифрование
Процесс обратный шифрованию с изменением направлений сдвигов:
- Одна строка → сдвиг влево
- Один столбец → сдвиг вверх
- Прямоугольник → правило работает идентично шифрованию
Заключение
Надеюсь, этот конспект вам поможет. Удачи вам на школьном этапе!
tags: всош - теория