README.md 5.26 KB
Newer Older
Василий Волков's avatar
Василий Волков committed
# Описание проекта
Проект предназначен для создания ЭЦП и проверки ЭЦП в соответствии с ГОСТ 34.10-2012, используя хеш функцию sha256
Василий Волков's avatar
Василий Волков committed
```
ГОСТ 34.10-2012
Василий Волков's avatar
Василий Волков committed
Информационная технология
КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ИНФОРМАЦИИ
Процессы формирования и проверки электронной цифровой подписи
Василий Волков's avatar
Василий Волков committed
Настоящий стандарт определяет схему электронной цифровой подписи (ЭЦП) (далее - цифровая подпись), процессы формирования и проверки цифровой подписи под заданным сообщением (документом), передаваемым по незащищенным телекоммуникационным каналам общего пользования в системах обработки информации различного назначения.
Василий Волков's avatar
Василий Волков committed
Внедрение цифровой подписи на основе настоящего стандарта повышает по сравнению с ранее действовавшей схемой цифровой подписи уровень защищенности передаваемых сообщений от подделок и искажений.
```
Василий Волков's avatar
Василий Волков committed
# Возможности проекта
- Серверная часть
  - Реализация взаимодействия с пользователем с помощью команд 
  - Фактическая реализация подписи/проверки ЭЦП данных, полученных пользователем  
  - Взаимодействие с базой данных PostgreSQL для учета пользователей
  - Возможность скачивать и сохранять клиента на облаке, передавать файлы клиента
  - Создание директории для каждого пользователя после регистрации
- Клиентская часть
  - Создание ЭЦП с использованием закрытого ключа и проверка ЭЦП с помощью открытого
  - Хранение файлов на облаке 
  - Доступ к скачиванию файлов на облаке
# Загрузка и установка

1. Загрузка файлов
Василий Волков's avatar
Василий Волков committed
$ git clone http://studgit.smcm.space/vvolkov/signify.git
$ cd src
```
2. Загрузка требуемых библиотек
```
$ pip install -r requirements.txt 
```
3. Настройка параметров

По умолчанию сервер запуститься на 127.0.0.1:1234 (host, port), директория для создания папок для пользователей (storaGe_dir) по умолчанию в текущей папке. Токен для яндекс диска: https://yandex.ru/dev/disk/api/concepts/quickstart.html

server.py
```python
#Параметры
host = 'localhost'#
port = 1234
#Токен yandex диска
y = yadisk.YaDisk(token='y0_AgAAAAA6Qd7JAAoMJgAAAADlfHsiBIK6yTKwQduJv4vG9Sg4ZH8z2ug')
storage_dir = getcwd()
Василий Волков's avatar
Василий Волков committed
По умолчанию сервер запуститься на 127.0.0.1:1234 (host, port). **Указать в соответствии с сервером, инчае пользователь не сможет присоедениться к сессии.**
signify.py, gui_auth.py
```python
#Параметры
host = 'localhost'
port = 1234
```
По умолчанию подключение к PostgreSQL на 127.0.0.1:5432 (host, port) к стандартной базе данных. Установить пароль, требуемый при установке PostgreSQL.

base_api.py
```python
#Параметры 
host_ = "localhost"
port_ = 5432
user_ = "postgres"
password_ = "<YOUR PAS>" 
database_="postgres"
```
4. Генерация ключа
```
$ py key_gen.py
key name: key_test
```
Результат в папке: key_test.pem
Василий Волков's avatar
Василий Волков committed
5.Запуск сервера
```
$ py server.py
[Server listening...]
```
Василий Волков's avatar
Василий Волков committed
6.Запуск приложения
```
$ py signify.py
```
Василий Волков's avatar
Василий Волков committed
Сервер послед удачной регистрации и входа
```
[SERVER] rec command from [None]: login login1 d333caa8477e0ad6c22c1d594b05fa668eee01652f9297c71b3bfdf9cb98c197
[SERVER] Entered in app: login1
login1 d333caa8477e0ad6c22c1d594b05fa668eee01652f9297c71b3bfdf9cb98c197
[SERVER] rec command from [login1]: exit
[SERVER] client [ login1 ] disconnected
[New connection]: ('127.0.0.1', 57096)
[SERVER] active users 1
[SERVER] rec command from [login1]: dwnld_files
table.png.sig <SIZE>0.07
[SERVER] files in disk shared for login1
```
Василий Волков's avatar
Василий Волков committed
Консоль приложения
```
[CLIENT] login login1 d333caa8477e0ad6c22c1d594b05fa668eee01652f9297c71b3bfdf9cb98c197
[CLIENT] exit
[CLIENT] dwnld_files
```
Василий Волков's avatar
Василий Волков committed
## Дополнительная информация
Василий Волков's avatar
Василий Волков committed
Формат подписи .sig, формат ключей .pem, параметры кривой рекомендованные NIST: P-256, хэш функция для паролей базы данных и шифрования файла sha256.