<код>наизнанку</код>

View on GitHub
23 October 2025

Конспект к школьному этапу ВсОШ по ИБ

by Комнда Inside Out <3

Системы разграничения прав доступа

Что это такое?

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

Какие системы разграничения прав доступа существуют?

Мандатная система разграничения прав доступа

Данная система разграничения прав доступа основывается на уровне секретности каждого документа и сотрудника. Сотрудик сможет читать все документы, уровень секретности которых меньше или равен уровню доступа сотрудника.

Рассмотрим следующий пример:
Пользователь Уровень доступа
Виктор Баринов (руководитель) 5
Максим Лавров (стажер) 1
Лев Соловьев (помощник руководителя) 4
Объект Необходимый уровень доступа
Кабинет руководителя 5
Склад с продуктами 1
Кухня 3

Никто кроме руководителя не имеет доступа к его кабинету. На кухне могут находиться все, кроме Максима Лаврова. На складе с продуктами могут работать все.

Ролевая система разграничения прав доступа

Данная система основывается на специальных ролях пользователей. Например, у доставщика еды, сотрудника службы поддержки, разработчика платформы и обычного пользователя будут разные роли.

Роль Адрес клиента История заказов Банковские данные
Доставщик + - -
Пользователь + + +
Сотрудник службы поддержки - + -
Пользователь Роль
Сергей Пользователь
Виктор Доставщик
Анастасия Сотрудник службы поддержки

Дискреционная система разграничения прав доступа

В этой системе у каждого пользователя системы нужно будет указывать все права доступа.

Роль Адрес клиента История заказов Банковские данные
Сергей (Доставщик) + - -
Виктор (Доставщик) + - -
Анастасия (Пользователь) + + +
Алексей (Доставщик) + - -
Егор (Пользователь) + + +

Преимущества и недостатки каждой из систем разграничения прав доступа

Сравнительная таблица систем разграничения доступа

Параметр Дискреционная Мандатная Ролевая
Гибкость Высокая Низкая Средняя
Безопасность Низкая Очень высокая Высокая
Масштабируемость Низкая Средняя Высокая
Сложность администрирования Низкая Высокая Средняя

Компьютерные сети: основы

Зачем нужны сети?

Сети соединяют компьютеры между собой - чтобы домашние гаджеты общались между собой, а твой компьютер мог подключиться к серверу на другом конце света.

Что такое протокол?

Протокол - это соглашение, стандарт, описывающий то, как данные передаются от одной точки к другой. Все компьютерные сети работают потому, что люди договорились, что данные передаются так, а не иначе. Как именно - расскажем дальше:)

Модель OSI

Модель OSI - эталонная модель, описывающая различные уровни, на которых работают сетевые протоколы. Очевидно, что для того, чтобы разработать протокол для интернет-звонков, сначала нужно понять, как передать данные от компьютера до роутера. Вот все уровни OSI:

  1. Физический. Содержит в себе протоколы самого низкого уровня - к примеру, определяет, как кодируются биты для передачи по сетевому кабелю.
  2. Канальный. Описывает, как данные передаются между физически соединенными хостами. К примеру - ethernet/wi-fi. В первом случае протокол описывает, как два компьютера общаются по кабелю, в другом - по воздуху.
  3. Сетевой. Определяет, каким путем передаются данные между разными хостами. К примеру, когда вы обращаетесь к сайту, данные доходят до сервера именно с помощью сетевых протоколов. Пример - IP протокол. Да, IP-адрес берется именно из него
  4. Транспортный. Когда у нас есть возможность доставить данные из точки А в точку Б, появляется необходимость делать это, к примеру, без потерь. То, как именно передаются данные, определяется на этом уровне - примеры: TCP, UDP.
  5. Сеансовый. Обеспечивает поддержание связи на протяжении долгого времени.
  6. Уровень представления. Отвечает за преобразование данных между различными протоколами и представлениями.
  7. Прикладной. Тут обитают протоколы, необходимые для работы конечных приложений - к примеру, HTTP для доставки контента с сайтов, RDP для удаленного подключения к компьютеру.

На самом деле

На самом деле, в реальной жизни все устроено чуть проще - в частности, вот как обычно выглядит твое подключение к сайту с точки зрения сетей:

  1. Через провод/wi-fi ты подключаешься к своему роутеру, чтобы получить выход в сеть.
  2. С помощью протокола IP запросы с твоего компьютера впринципе достигают сервер.
  3. Чтобы целостность данных не была нарушена, открывается TCP - сессия. TCP - протокол, гарантирующий, что данные дойдут до сервера без потерь.
  4. Если подключение происходит по HTTPS, открывается сессия TLS - криптографического протокола, обеспечивающего безопасную передачу данных внутри себя.
  5. В безопасной сессии отправляется запрос - GET /index.html HTTP/1.1
  6. Вы продолжаете общение дальше:)

Важно понять, что данные каждого следующего протокола передаются через предыдущий - у каждого из протоколов есть свой способ передать данные внутри себя. Таким образом, на каждом уровне передаются служебные данные протокола, к примеру адреса отправителя и получателя, и данные.

К примеру: В 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 из них?”
Ответ зависит от двух факторов:

  1. Важен ли порядок элементов?
  2. Повторяются ли элементы?

Размещения

Эта формула используется в ситуациях, когда нам важен порядок и когда из 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

Сочетания

Пример: Из 5 человек нужно выбрать двоих для дежурства. Сколькими способами?
Решение: Порядок не важен
5! / (2! * 3!) = (5*4) / (2*1) = 10

Размещения с повторениями

Пример: Сколько существует всех 4-значных пин-кодов?
Решение: На каждую из 4 позиций можно поставить любую из 10 цифр (0-9). Порядок важен.
10⁴ = 10 000

Пример задачи, которая может встретиться на школьном этапе

Условие

Алиса забыла четырёхзначный пароль от своего планшета. Она точно помнит, что:

Сколько всего существует возможных вариантов такого пароля?

Решение

Ответ: 2500

Историческая криптография

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

Шифр Цезаря

Краткое описание алгоритма

Каждая буква в исходном тексте заменяется на другую букву, стоящую в алфавите на фиксированное число позиций (ключ) правее.

Шифрование

Возьмем алфавит:
А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я

Теперь выберем ключ - число k, определяющее сдвиг букв, мы возьмем k = 3 (сдвиг на 3 позиции вправо). Таким образом, зашифровав букву А мы получим букву Г. Если для буквы нельзя сделать сдвиг вправо, мы просто зацикливаем алфавит: например, зашифровав букву Я мы получим букву В.

Исходный алфавит:
А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я

Шифрованный алфавит (k=3):
Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я А Б В

Задача: Зашифровать “ПРИВЕТ” с ключом k=3

Исходная буква П Р И В Е Т
Шифрованная С У Л Е И Х

Результат: "ПРИВЕТ""СУЛЕИХ"

Дешифрование

Применяется обратная операция: сдвигаем каждую зашифрованную букву налево.

k = 2

ХЁВЩК ПВ ЪМРНЮПРО ЯФВСЖ!

Шифр Плейфера

Формирование ключа

Символы алфавита вносятся в прямоугольную таблицу в особом порядке. Для русского алфавита формируется таблица 6×6: сам алфавит, а также специальные символы (точка, запятая, пробел)

Шифрование

Исходный текст делится на пары символов (биграммы)

После разбиения текста на биграммы, каждая биграмма шифруется отдельно по следующим правилам:

Пример ключа:
А Б В Г Д Е
Ё Ж З И Й К
Л М Н О П Р
С Т У Ф Х Ц
Ч Ш Щ Ъ Ы Ь
Э Ю Я . ,  
Если символы в одной строке

На примере ключа, расположенного выше:

АБ -> БВ

Если символы в одном столбце

На примере ключа, расположенного выше:

ЗН -> НУ

Если символы в разных строках и столбцах

На примере ключа, расположенного выше:

МФ -> ОТ

Если два одинаковых символа в биграмме

Применяется правило для строки

На примере ключа, расположенного выше:

ММ -> НН

Это правило может поменяться, в условии задания обычно рассказывают, какую из вариаций используют

Дешифрование

Процесс обратный шифрованию с изменением направлений сдвигов:

  1. Одна строка → сдвиг влево
  2. Один столбец → сдвиг вверх
  3. Прямоугольник → правило работает идентично шифрованию

Заключение

Надеюсь, этот конспект вам поможет. Удачи вам на школьном этапе!

tags: всош - теория