Написать программу «Защищенный блокнот» реализующую шифрование и просмотр зашифрованных текстовых файлов алгоритмом AES, режим обратной связи по выходу (OFB — Output Feed Back).
- Серверная часть программы:
- хранит текстовые файлы,
- генерирует случайный сеансовый ключ по запросу клиента
- отправляет клиенту зашифрованный открытым ключом RSA сеансовый ключ.
- отправляет клиенту зашифрованный сеансовым ключом текстовый файл
- Клиентская часть программы:
- Генерирует и отправляет серверу открытый ключ RSA (единожды).
- Отправляет серверу запрос с именем файла.
- Расшифровывает сеансовый ключ при помощи закрытого ключа RSA.
- Расшифровывает и отображает текстовый документ при помощи сеансового ключа.
- Ключ RSA сохраняется (генерируется по нажатию кнопки). Придумать свой метод хранения закрытого ключа.
- Дополнительно
-
В рамках одной сессии добавить возможность создавать, удалять и редактировать файлы. (Соединение шифруется одним ключом)
-
Добавить поддержку многих пользователей.
-
Добавить в программу аутентификацию по паролю.
-
Использовать вместо RSA ECDSA или GM алгоритмы.
-
Добавить срок годности к сеансовому ключу.
-
Защитить данные на сервере от взломщика, у которого есть доступ к хранилищу.
-
Продемонстрировать атаку man-in-the-middle для вашей системы.