Разработка программы генерирующей пароли пользователей
Заказать уникальную курсовую работу- 34 34 страницы
- 8 + 8 источников
- Добавлена 18.05.2022
- Содержание
- Часть работы
- Список литературы
- Вопросы/Ответы
СОДЕРЖАНИЕ
ВВЕДЕНИЕ…………………………………………………….………………3
1 Анализ существующих систем…………………………………...…………5
1.1 Менеджер паролей KeePass……………………………...…………6
1.2 Менеджер паролей LastPass………………………………………...7
1.3 Менеджер паролей 1Password………………………………………9
1.4 Менеджер паролей Kaspersky Password Manager…………………11
1.5 Выделение существенных функций……………………………….13
2 Проектирование……………………………………………………………14
2.1 Выбор архитектуры ………………………………………………...14
2.2 Выбор средства разработки. Язык программирования………...…16
2.3 Среда разработки……………………………………………………16
2.4 Метод шифрования…………………………………………………17
3 Разработка…………………………………………………………………..22
ЗАКЛЮЧЕНИЕ………………………...………………………………………27
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ…………...…………...
zip из JDK, после чего навигация работает[11]. Подобным же образом можно настроить переход в исходные коды любых используемых классов. Имеет удобное переключение "перспектив" в правой верхней части окна наборов показываемых на экране окон (один набор служит для редактирования исходного кода, другой для отладки, и т. д.). Отличается интересной, но несколько раздражающей особенностью редактора исходного кода при наведении мыши на имя элемента сразу показывается всплывающая подсказка по этому элементу. Поддерживает работу с языками Java, C, C++, Ruby, Groovy, JavaScript, JRuby, Rails, Grails, Flex, XSL, HTML, CSS, XML, XHTML, технологиями JSP, EJB, AJAX, GWT, Hibernate, JPA, Spring, Web Services, Struts. Поддерживает тестирование с помощью модулей JUnit и импорт проектов JBuilder.
Плагин Python для Eclipse поддерживается всеми известными операционными системами. Он обрабатывает доработки кода, интегрирует отладки Python, добавляет токен-браузер, инструменты рефакторинга и многое другое.
2.4 Метод шифрования
Алгоритм AES-256 Advanced Encryption Standard (AES), также известный как Rijndael (Рэндал) симметричный алгоритм блочного шифрования (размер блока 128 бит, ключ 128/192/256 бит), был принят в США правительством как стандарт шифрования по результатам конкурса AES [11]. Этот алгоритм детально изучен со всех сторон и сейчас широко применяется, как это было с его предшественником DES. По аналитике за 2019 год AES - это один из наиболее распространённых алгоритмов симметричного шифрования.
Алгоритм AES является информационным блоком, заданным как двумерный байтовый массив размером 4x4{\displaystyle 4x4 \,\!}. Все операции выполняются над отдельными байтами массива, а также над независимыми столбцами и строками.
В каждом раунде алгоритма выполняются следующие преобразования (рис. 6):
Рисунок 6 – Схема раунда шифрования
1. Операция SubBytes выполняет табличную замену каждого байта списка данных
Рисунок 7 – SubBytes
2. Операция ShiftRows отвечает за циклический сдвиг влево всех строк массива данных, кроме нулевой (рис. 8). Сдвиг i{\displaystyle i\,\!}-ой строки массива (для i=1,2,3{\displaystyle i = 1, 2, 3 \,\!}) выполняется на i{\displaystyle i\,\!} байт.
Рисунок 8 – ShiftRows
3. Операция MixColumns умножает каждый столбец массива данных (рис. 5) на фиксированный полином a(x){\displaystyle a(x) \,\!}:a(x)=3x3+x2+x+2{\displaystyle a(x) = 3x^3 + x^2 + x + 2 \,\!}Умножение производится по модулю x4+1{\displaystyle x^4 + 1 \,\!}.
Рисунок 9 – MixColumns
4. Операция AddRoundKey накладывает на массив данных материала ключа. А именно, на i{\displaystyle i\,\!}-ый столбец массива данных (i=0...3){\displaystyle (i = 0...3) \,\!} побитовой логической операцией «исключающее или» (XOR){\displaystyle (XOR) \,\!} накладывается определенное слово расширенного ключа W4r+i{\displaystyle W_{4r+i} \,\!}, где r{\displaystyle r\,\!} – номер текущего раунда алгоритма, начиная с 1 (процедура расширения ключа будет описана ниже). Операция AddRoundKey показана на рис. 10.
Рисунок 10 – AddRoundKey
Количество раундов алгоритма R{\displaystyle R\,\!} зависит от размера ключа следующим образом:
Размер ключа, бит R 128 10 192 12 256 14
Перед первым раундом такого способа шифрования выполняется предварительное наложение материала ключа с помощью операции AddRoundKey, которая выполняет наложение на открытый текст первых четырех слов расширенного ключа W0...W3{\displaystyle W_0 ... W_3 \,\!}.
Последний же раунд отличается от предыдущих тем, что в нем не выполняется операция MixColumns.
Расшифровка выполняется в обратном порядке по аналогичному принципу. Общепринятая точка зрения, что используемый в AES ключ длиной в 128 бит является отличной защитой против примитивной атаки перебором комбинаций, то есть согласно правил математики подобрать правильный пароль из всех возможных практически невозможно [11]. Даже при наличии некоторых недостатков AES, несанкционированно получить доступ к данным под его защитой практически нереально. В любом метод криптографии необходимо наличие ключа размером в строго определенное количество бит, чтобы зашифровать информацию. Вот эта самая длина ключа и влияет на решение о целесообразности подбором ключа алгоритмом полного перебора, ведь чем длиннее ключ, тем по экспоненте растет его защищенность ко взлому. Если посмотреть сухую статистику, то сразу можно обнаружить что защищенная этим алгоритмом информация никогда не была взломана. Впрочем, все это работает при размере ключа минимум в 128 бит, поскольку более ранние шифровальные алгоритмы все же не выдерживали испытания на прочность. Несмотря на то, что скорость вычисления компьютеров увеличивается в геометрической прогрессии согласно закону Мура, 128-битного ключа вполне должно хватить на много лет вперед. Остановим свой выбор на алгоритме AES-256, так как благодаря описанным преимуществам, AES остается предпочтительным алгоритмом для правительственных организаций, банков и других систем, требующих высокий уровень безопасности по всему миру.
3 Разработка
На этапе разработки и написание кода был создан простой менеджер паролей с возможностью сохранения таблицы паролей в файл или просмотром в консоли. По умолчанию пароли генерируются шифруются с помощью AES шифрования.
Реализация программного кода состоит из нескольких модулей. Модули - совокупность небольших независимых блоков структура и поведение которых подчиняются определённым правилам. Использование модульного программирования позволяет упростить тестирование программы и обнаружение ошибок. В данной работе четыре модуля (Рис. 7).
Рисунок 7 – UML Class Diagram
Модуль Main содержит скрипт Main.py, который запускает программу, вызывает функции, создающие учетную запись, мастер пароль и другие. Utils содержит набор вспомогательных функций. Далее модуль User, который содержит User.py - основной класс пользователя и модуль Cipher, содержащий класс, отвечающий за шифрование.
Для запуска скрипта необходимо наличие установленного Python 3.5+ Зависимости от библиотек, следующие:
pandas 1.1.3
cryptography 3.1.1
Установка зависимостей может быть выполнена через команды:
conda install (Anaconda)
pip install (PyPi)
Для начала работы с программой пользователю необходимо зарегистрироваться. Регистрация проходит в один этап. Пользователь придумаем логин и средство защиты: мастер-пароль (Рис. 8).
Рисунок 8 – Регистрация
Для добавления новой учетной записи нужно выбрать опцию 2. Затем, у пользователя запрашиваются название ресурса, электронная почта, необязательная для заполнения, и логин (Рис. 9). Далее автоматически генерируется пароль из 16 символов и шифруется.
Рисунок 9 – Добавление учетной записи
Чтобы посмотреть пароль, пользователю необходимо выбрать опцию 3. Если мастер-пароль не был введен или был введен неправильно, пароль возвращается в зашифрованном виде (Рис. 10).
Рисунок 10 – Просмотр записей пользователя
Данные записываются в таблицу, которая хранится в операционной памяти. Опция 4 позволяет пользователю записать данные в файл в формате CSV в зашифрованном или расшифрованном виде (Рис. 11). Это текстовый формат, предназначенный для представления табличных данных.
Рисунок 11 – Запись данных в файл
Опция 5 позволяет пользователю применить настройки. В данном случае изменить запись электронной почты на ту, что задана по умолчанию.
В дальнейшем планируется расширение функционала: добавление связи с облачной СУБД, псевдографический интерфейс для CLI. Также планируется реализация web-приложения с фреймворком Python + Flask.
ЗАКЛЮЧЕНИЕ
Один из лучших способов сохранить данные в безопасности — использовать уникальный пароль для каждого сайта и сервиса. Чтобы хранить все пароли в одном месте, стоит использовать менеджер паролей. Менеджеры паролей помогают создавать надежные уникальные пароли, а также не волноваться за их безопасность. Пароль и безопасность для многих людей могут казаться синонимами. Но когда ставится вопрос о безопасности самих паролей, то непосредственно безопасность выходит на первое место.
В ходе проектирования и разработки менеджера паролей цель достигнута и решены все поставленные задачи:
- рассмотрены и проанализированы все существующих наиболее популярных менеджеров паролей;
- на основе анализа существующих программ был составлен общий список требований к разрабатываемой программной системе;
- спроектирован менеджер паролей;
- разработан программная часть как совокупность небольших независимых блоков, называемых модулями.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1 Яремчук, С. Менеджеры паролей. [Электронный ресурс] / С. Яремчук // Мой Компьютер, 2007г С. 189/94.
2 Пиковский М. Обзор кроссплаформенных менеджеров паролей [Электронный ресурс]: // Интернет-журнал «Хакер» / М.Пиковский – Режим доступа: https://xakep.ru/2013/10/31/cross-platform-password-managers/ Дата обращения: 27.05.2021
3 Популярные менеджеры паролей в сравнение [Электронный ресурс] // Новостной форум «Хабрахабр» - Режим доступа: https://habrahabr.ru/post/125248/ Дата обращения: 27.05.2021
4 Завертайлов В. Менеджеры паролей краткий обзор [Электронный ресурс] // Новостной форум «Хабрахабр» / В.Завертайлов – Режим доступа: https://habrahabr.ru/post/225053/ Дата обращения: 27.05.2021
7 Харрисон, М. Как устроен Python [Текст] / Е. Матвеев – Москва: «Прогресс книга». – 2020. – С. 251-255/692
8 Алгоритм шифрования AES для самых маленьких [Электронный ресурс] // Портал посвященный вопросам информационной безопасности «Technology Box» - Режим доступа: http://teh-box.ru/programming/algoritmshifrovaniya-aes-dlya-samyx-malenkix.html Дата обращения: 29.05.2021
30
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1 Яремчук, С. Менеджеры паролей. [Электронный ресурс] / С. Яремчук // Мой Компьютер, 2007г С. 189/94.
2 Пиковский М. Обзор кроссплаформенных менеджеров паролей [Электронный ресурс]: // Интернет-журнал «Хакер» / М.Пиковский – Режим доступа: https://xakep.ru/2013/10/31/cross-platform-password-managers/ Дата обращения: 27.05.2021
3 Популярные менеджеры паролей в сравнение [Электронный ресурс] // Новостной форум «Хабрахабр» - Режим доступа: https://habrahabr.ru/post/125248/ Дата обращения: 27.05.2021
4 Завертайлов В. Менеджеры паролей краткий обзор [Электронный ресурс] // Новостной форум «Хабрахабр» / В.Завертайлов – Режим доступа: https://habrahabr.ru/post/225053/ Дата обращения: 27.05.2021
7 Харрисон, М. Как устроен Python [Текст] / Е. Матвеев – Москва: «Прогресс книга». – 2020. – С. 251-255/692
8 Алгоритм шифрования AES для самых маленьких [Электронный ресурс] // Портал посвященный вопросам информационной безопасности «Technology Box» - Режим доступа: http://teh-box.ru/programming/algoritmshifrovaniya-aes-dlya-samyx-malenkix.html Дата обращения: 29.05.2021
Вопрос-ответ:
Какие программы для генерации паролей существуют?
На сегодняшний день существуют различные программы для генерации паролей, такие как KeePass, LastPass, 1Password и Kaspersky Password Manager.
Чем отличается менеджер паролей KeePass от остальных?
KeePass - это бесплатная и с открытым исходным кодом программа, которая позволяет хранить и генерировать пароли. Кроме того, она обладает высоким уровнем безопасности и поддерживает различные операционные системы.
Какую функцию выполняет менеджер паролей LastPass?
LastPass - это программа, которая хранит пароли в облаке. Она автоматически заполняет данные для входа на веб-сайты и генерирует сложные пароли для новых аккаунтов. Помимо этого, LastPass имеет функцию автозаполнения форм и шифрования данных.
Что такое менеджер паролей 1Password и какие функции он предлагает?
1Password - это программа, которая помогает сохранить и управлять всеми паролями пользователя. Она предлагает функции автозаполнения форм, генерации безопасных паролей и синхронизации данных между устройствами. Кроме того, 1Password имеет функцию организации паролей по категориям и поддерживает многоуровневую аутентификацию.
Какие существенные функции имеет менеджер паролей Kaspersky Password Manager?
Kaspersky Password Manager позволяет сохранять и хранить пароли в зашифрованном виде. Он также предлагает функцию автозаполнения данных для входа на веб-сайты и генерации сложных паролей. Дополнительно, Kaspersky Password Manager обеспечивает безопасное хранение кредитных карт и персональных данных.
Какие менеджеры паролей существуют?
На данный момент существует несколько популярных менеджеров паролей, таких как KeePass, LastPass, 1Password и Kaspersky Password Manager.
Что такое менеджер паролей KeePass?
KeePass - это программа для управления паролями, которая позволяет генерировать и хранить сложные пароли для различных аккаунтов.
В чем особенность менеджера паролей LastPass?
LastPass - это онлайн-сервис, который позволяет сохранять и синхронизировать пароли на разных устройствах.
Какой функционал предоставляет менеджер паролей 1Password?
1Password предоставляет возможность генерации безопасных паролей, хранения данных для заполнения форм, а также синхронизации информации между устройствами.
Что такое Kaspersky Password Manager?
Kaspersky Password Manager - это программа, разработанная компанией Kaspersky Lab, которая помогает защитить пароли и другие конфиденциальные данные.
Какие менеджеры паролей существуют на рынке?
На рынке существует много различных менеджеров паролей, например, KeePass, LastPass, 1Password, Kaspersky Password Manager и другие.
Какую архитектуру выбрать для разработки программы генерации паролей?
Выбор архитектуры зависит от множества факторов, таких как требования к безопасности, уровень сложности программы, доступность ресурсов и т. д. Необходимо провести анализ и выбрать наиболее подходящую архитектуру для данного проекта.