Основы информационной безопасности
Способы хранения паролей:
- 1. Пароли хранятся как есть. При взломе такой базы все пароли станут известны.
- 2. Хранятся только хеши паролей. Найти пароли можно используя заранее подготовленные таблицы хешей.
Такие таблицы составляются из хешей простых или популярных паролей.
- 3. К каждому паролю добавляется несколько случайных символов (их называют «соль») и результат хешируется.
Полученный хеш вместе с «солью» сохраняются в открытом виде. Найти пароль с помощью таблиц таким методом
не получится.
Правила хранения личной информации:
- Сбор данных должен быть честным, законным и быть открытым в отношении того, как данные будут использоваться.
- Данные могут быть собраны только для определенной цели.
- Собранные данные должны быть необходимыми и не чрезмерными для своей цели.
- Данные должны быть точными и актуальными.
- Данные должны храниться только на время, когда это необходимо.
- Данные должны храниться в безопасности.
- Контроллеры/операторы и обработчики несут ответственность за соблюдение законодательства и должны иметь
возможность продемонстрировать соблюдение.
Social Engineering attacks
Social Engineering attacks - психологическое манипулирование людьми с целью совершения определенных действий или
разглашения конфиденциальной информации.
- Dumpster diving - поиск личной информации в мусоре.
- Shoulder surfing - подсматривание за работой находясь рядом.
- Impersonation - выдавать себя за другого человека.
- Baiting - приманивать, использую интересный для жертвы контент.
Способы атак
- Man-in-the-middle attack
- Brute-force attack(метод «грубой силы», перебор) - подбор правильного значения методом перебора.
Словарь
Идентификация - процедура распознания субъекта по его идентификатору. Проще говоря по имени, логину или
номеру. Есть ли такой в списке.
Аутентификация(Authentication) - проверка подлинности. Это процесс проверки учетных данных: идентификатора
пользователя(имени, адреса электронной почты, номера телефона) и пароля. Это то, кем вы являетесь.
Авторизация(Authorization) - происходит после того, как личность пользователя успешно аутентифицируется системой.
Процесс авторизации определяет, имеет ли прошедший проверку человек доступ к определенным ресурсам:
информации, файлам, базе данных.
Security through obscurity(Безопасность через неясность) - принцип, используемый для обеспечения безопасности
в различных сферах деятельности человека. Основная идея заключается в том, чтобы скрыть внутреннее устройство
системы или реализацию для обеспечения безопасности.
Session
Session - вид авторизации.
Особенности
- Храниться в cookies. Сервер кладет id сессии в cookies, который отправляет при успешной авторизации.
- При каждом запросе отправляет на сервер.
- Server-side(в основном).
- Не для публичного API.
- Также дополнительно можно добавлять информацию системы клиента(браузер, локацию и тд.) для доп проверки.
Token
Token - в отличии, от session более современный подход авторизации.
Особенности
- Для публичного API(SSO и др.) и Микросервисной архитектуры
- Обычно отправляются в заголовках запроса.
- В браузере храниться либо в DOM-хранилищах(sessionStorage/localStorage), либо в тех же Cookies.
- Короткое время жизни.
JWT
JWT - JSON Web Tokens. Это JSON-объект, который определен в стандарте RFC 7519. Нужен для безопасного
способа передачи информации.
Состоит из
- Header(заголовок) - содержит информацию, как должна вычисляться JWT подпись. Пример: {"alg": "HS256", "typ": "JWT"}
- Payload(полезная нагрузка) - поля которые мы хотим передать. Не шифруется, то есть не безопасно. Пример: {"userID": "1"}
- Signature(подписи) - алгоритм base64ulr кодирует header и payload. Алгоритм соединяет закодированные
строки через точку. Далее эту строку хэширует алгоритмом заданным в header на основе нашего секретного ключа.
Далее через точки соединяем все 3 компонента.
В итоге будет - Header.Payload.Signature
Шаги работы
- Пользователь проходит аутентификацию на Аутентификационном сервере.
- Аутентификационный сервер возвращает пользователю JWT token.
- Пользователь добавляет JWT token в каждый запрос на Application Server.