Similar presentations:
Этичный хакинг на Python: надень «белую шляпу»
1.
ИТОГОВЫЙ ТВОРЧЕСКИЙ ПРОЕКТ«Этичный хакинг на Python:
надень «белую шляпу»»
Преподаватель : Пантелеев
Сергей Владимирович
2.
АВТОРЫ:-Деев Олег Кириллович
-Андрианов Дмитрий Олегович
-Арсланов Алихан Арсланович
-Бондарчук Никита Евгеньевич
-Дементьев Ярослав Павлович
-Зотов Антон Алексеевич
-Крутских Никита Дмитриевич
-Крючков Максим Андреевич
-Кузьмин Владислав Михайлович
-Лемешко Никита Андреевич
-Мазур Арсений Алексеевич
-Мертехин Михаил Дмитриевич
-Павлов Тимур Максимович
-Пихтелев Михаил Валерьевич
3.
ЦельРазработать систему управления
паролями на Python
Задачи
1. Генерация паролей
2. Хранение паролей
3. Управление паролями
4. Обеспечение безопасности
1
4.
Описание проекта1.Менеджер паролей
“SecurePassword”
1.Идея: Безопасное хранение
пользовательских паролей
локально на их компьютерах
1.Используемые модуля:
Cryptography, flask, bleach
5.
База данныхСтруктура Базы данных
• Таблица “Users”
• id: Уникальный идентификатор
пользователя
• username: Имя пользователя в
менеджере паролей
• password: Пароль пользователя для
доступа к менеджеру.
6.
База данныхТаблица “Password”
• id: Уникальный идентификатор
записи о пароле (первичный ключ)
• user_id: Связь с пользователям (внеш.
ключ к “Users”)
• username: Имя пользователя, к
которому относится пароль.
• password: Зашифрованный пароль
• service: Сервис для кот. используется
пароль
• description: Описание сервиса
7.
База данныхСУБД и Степень защиты
• СУБД: SQLite
• Степень защиты:
• Использование ORM SQLAlchemy обеспечивает
защиту от SQL-Инъекций за счет
параметризированных запросов к бд
• Пароли пользователей хранятся в
зашифрованном виде.
• Ключи шифрования хранятся в отдельном файле.
• Использование сессий Flask с секретным ключом
обеспечивает безопасность аутентификации
пользователей и предотвращает подделку
сеансов.
8.
Пользовательскийинтерфейс
Функциональные блоки
1.Регистрация и вход в систему
• Форма регистрации с проверкой
уникальности имени пользователя.
• Форма входа с проверкой правильности
введенного пароля.
2.Управление паролями
• Добавление нового пароля с указанием
сервиса, имени пользователя и описания.
• Просмотр списка сохраненных паролей с
возможностью редактирования и удаления.
3.Обновление паролей
• Форма обновления пароля для определенного
сервиса и имени пользователя.
9.
Пользовательскийинтерфейс
Элементы интерфейса
1.Формы регистрации и входа
• Поля для ввода имени пользователя и пароля.
• Кнопки для отправки данных и перехода между
формами.
2.Управление паролями
• Форма добавления нового пароля с полями для
ввода сервиса, имени пользователя, пароля и
описания.
• Список сохраненных паролей с возможностью
редактирования и удаления.
3.Обновление паролей:
• Поля для ввода имени пользователя, сервиса и
нового пароля.
10.
Пользовательскийинтерфейс
Взаимодействие элементов между собой и
пользователем
1.Пользователь может вводить данные в поля форм и
отправлять их для обработки.
2.Система проводит проверку введенных данных на
корректность и безопасность.
3.После успешной обработки данных система
отображает соответствующие сообщения об
успешном выполнении операции или ошибках, если
имеются.
4.Пользователь может просматривать список
сохраненных паролей, редактировать и удалять их
по необходимости.
5.При обновлении пароля система обновляет
соответствующую запись в базе данных.
11.
Обеспечениебезопасности
Принятые меры безопасности
● Шифрование паролей
○ Используется библиотека cryptography.fernet для
симметричного шифрования паролей перед
сохранением в БД. Ключи хранятся в отдельном
файле
● Сатанизация пользовательского ввода
■ Функция `satanize_input` из библиотеки `bleach`
для очистки пользовательского ввода от
вредоносного кода
● Использование Сессий
○ Flask сессии с секретным ключом для
управления аутентификацией пользователей.
12.
Обеспечениебезопасности
Защита от различных атак
1.Защита от SQL инъекций
a.Использование ORM SQLAlchemy для
взаимодействия с БД, что исключает
возможность SQL инъекций.
2.Защита от XSS
a.Сатанизация пользовательского ввода с
использованием функции `satanize_input`
13.
Обеспечениебезопасности
Шифрование
● Шифрование паролей
○ Функция `encrypt_password` для
шифрования паролей пользователя
перед их сохранением
○ Функция `decrypt_password` для
расшифровки паролей при их выводе.
● Безопасное хранение паролей
○ Генерация и хранение ключей
шифрования с помощью функции
`load_key` и `generate_key`
14.
Реализация на Flask● Используемые технологии
○ HTML
○ CSS
○ Python (Flask)
○ ORM SQLALCHEMY
○ cryptography
● Используемые маршруты
○ “/” (index): Главная страница
○ “/login”: Вход в аккаунт
○ “/register”: Регистрация нового
пользователя
○ “/main”: Отображение паролей
пользователя
○ “/add_password”: Добавление паролей
○ “/update_password”: Обновление паролей