Техническое задание - mkolchenko/project GitHub Wiki
Инструмент для хранения паролей в одной базе данных
1. Введение
Безопасное хранение паролей — актуальная тема в любое время. Если хранить пароли в голове, возникает проблема отсутствия уникальности паролей для разных сервисов. Если же хранить пароли на бумаге, велика вероятность, что они могут быть прочитаны нежелательным лицом.
Чтобы сделать хранение паролей безопасным и уникальным, существуют специальные софты.
1.1. Существующие аналоги
KeePas
Мультиязычная бесплатная программа для хранения и генерации паролей с открытым кодом и рядом готовых плагинов — шифрованием, синхронизацией, генерацией произносимых и легко запоминающихся паролей.
Технологии
База паролей шифруется AES-256. Возможно использование многоходового преобразования ключа. Это увеличивает стойкость к прямым атакам — пожалуй, в этом плане KeePass надежнее других менеджеров паролей.
KeePass хранится в файле, который можно синхронизировать с помощью Dropbox.
Функции
- Создание записи.
- Дублирование записи.
- Сортировка записей — по столбцам, по тегам.
- Группы записей — дерево и сортировка.
- Поиск по записям — быстрый или расширенный.
- Копирование данных записи — двойной клик по полю для копирования, удаление из буфера обмена скопированной информации через определенный промежуток времени.
- AutoType для автоматического ввода данных в браузерах и других программах.
- Хранение дат.
- Генератор паролей, в том числе, с заданными параметрами.
- Кнопка блокировки — при повторном входе программа снова запрашивает мастер-пароль.
- Настройки базы и программы.
- Смена мастер-пароля.
- Триггеры.
- Файлы экспорта: TXT, HTML, XML, CSV.
- Файлы импорта: 35 форматов.
- Перенос базы данных.
eWallet
Версии
Существует в версиях для iPhone, iPad, Mac, Windows — не ниже 7. Windows-версия eWallet интегрируется с браузерами Internet Explorer, Firefox и Chrome, а версия для OS X — только с Safari. Программа платная, но есть тестовая версия на 30 дней.
Технологии
Файл базы данных зашифрован с использованием AES-256. База синхронизируется только вручную.
Функции
- Дерево категорий.
- Добавление карточки с кастомизацией.
- Кастомизация полей в карточках.
- Более 30 шаблонов — кредитные карты, пароли, банковские данные.
- Статистика по дереву — счетчики по типам информации.
- Список последних карточек.
- Генератор паролей.
- «Живые поля», например, звонок по клику на поле номера.
- Auto Pass — автоматическая подстановка логина и пароля в поле браузера.
- Smart Copy — быстрое копирование карточных номеров.
RoboForm
Версии
Windows и Mac OS X, приложения для мобильных платформ iOS, Android, BlackBerry, Windows Mobile, Palm OS и Symbian. При этом десктопная версия не предполагает импорта данных из Chrome.
Технологии
Синхронизируется с использованием облачной технологии, база зашифрована по стандарту AES-256.
Функции
- Создание записей.
- Поиск.
- Печать — логины, персоны, заметки.
- Auto Login.
- Генератор паролей.
- Дополнительная защита каждой записи. Для открытия данных требуется ввод мастер-пароля.
- Импорт введенных данных из браузера.
- Отправка записей по e-mail — требуется ввод мастер-пароля.
- Создание ярлыков на рабочем столе и в браузере.
- Интеграция с Windows Login.
- Возможность открытия нескольких окон программы.
- Администрирование: создание, редактирование групп пользователей, шаринг записей на группы пользователей, синхронизация баз при редактировании пользователями, проверка, к каким записям обращался конкретный пользователь.
- Профили разных пользователей на одной копии программы.
- Бэкапы.
- Портативная версия базы, которую можно хранить на флешке.
- Управляющие символы юникода.
- Заполнение длинных форм в интернет-магазинах одним кликом.
- Экранная клавиатура
LastPass
Версии
Расширение для основных браузеров — IE, Firefox, Safari, Chrome, Opera, работает только в сети. Существуют версии для мобильных устройств iPhone, iPad, Android, BlackBerry и других. Возможно управление базой паролей через web-интерфейс на сайте LastPass — это довольно удобно.
Есть портативный клиент для Windows — загружаете базу, после чего можете использовать ее офлайн.
Технологии
LastPass — облачный сервис, не требующий синхронизации. База зашифрована по алгоритму AES-256.
Функции
- Поиск.
- Автозаполнение.
- Вход одним кликом.
- Настройки — общие, безопасность и т.д.
- Многофакторная аутентификация.
- Одноразовые пароли.
- Проверка безопасности для поиска ненадёжных паролей.
- Автоматическая защита учетных данных от кражи на фишинг-сайтах.
- Поиск незащищенных объектов на компьютере.
- Импорт из предыдущего менеджера паролей.
- Запрещенные адреса.
- Обмен паролями (управление доступом).
- Автоматическая синхронизация пользователей.
- Администрирование: отчеты и управление пользователями.
- Закладки.
- Экранная клавиатура.
- Программа бесплатна, но за дополнительные функции вроде выявления слабых паролей, экранной клавиатуры, защиты от фишинга придется платить.
1Password
Версии
Поддержка Mac OS X, Windows, нативный клиент под iOS, приложение для Android. Интегрируется с Safari, Firefox, Chrome (Mac), с Firefox, Chrome и Internet Еxplorer (Windows).
Технологии
Синхронизации базы с помощью сервиса Dropbox и iCloud проходят локально по Wi-Fi. База данных зашифрована по алгоритму AES-128. Есть встроенные средства интеграции с браузерами и операционной системой.
Функции
- Создание записей — быстрые кнопки для создания разных типов.
- Навигационная колонка — все записи, избранное, категории, папки, теги.
- Поиск.
- Избранное.
- Генератор паролей.
- AutoType — автоматическая подстановка пароля в выбранные окна.
- Модуль для браузеров.
- Поделиться доступами: группы, iMessage, e-mail.
- Секьюрити-аудит — записи со слабым, старым, дублирующимся паролем.
- Очистка буфера обмена через определенный промежуток времени.
- Корзина.
- Бэкапы.
- Импорт, экспорт.
- Чек апдейтов.
- Куча настроек.
2. Техническое задание
Разработать программу под операционную систему Windows, выполняющую хранение в одной базе данных логинов и паролей для разных сервисов (почта, социальные сети и т. д.). Целью проекта является обеспечить безопасность хранения, зашифровывая вводимые пользователем данные.
В основу проекта заложена следующая идея: пользователю необходимо ввести логин, пароль, имя сервиса и ответить на контрольный вопрос. Программа шифрует информацию. Далее, если пользователь захочет просмотреть свои данные, ему необходимо верно ответить на контрольный вопрос.
Для обеспечения безопасности хранения информации предлагается использовать симметричный алгоритм шифрования. Все данные хранятся на локальном компьютере пользователя и шифруются произвольным ключом, указанным пользователем.
Для реализации задачи предлагается выделить следующие пункты:
- Реализовать базу данных для хранения информации пользователя
- Реализовать симметричный алгоритм шифрования
- Сделать интерфейс пользователя интуитивно понятным и простым
3. Данные
На вход поступают следующие данные:
- Название сервиса, логин, пароль, IP, UIP, Комментарий
- Ответ пользователя на контрольный вопрос
На выходе:
- Зашифрованные поля перечисленные выше
Окно приложения имеет следующий вид:
Таблица состоит из столбцов:
- ID - порядковый номер сервиса в таблице;
- Service name - название сервиса;
- Login - логин
- Password - пароль для соответствующего логина;
- IP
- UID - идентификатор пользователя
- Комментарий
Пользователь вводит свои данные в соответствующие столбцы, выбирает один из контрольных вопросов, пишет ответ и нажимает кнопку "Зашифровать". После этого данные зашифрованы, и доступ к ним можно получить, только правильно ответив на контрольный вопрос.