Skip to content

ur-os/decent_hw-2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Домашнее задание №2

Сборка с помощью cmake:

$ git clone git@github.com:ur-os/decent_hw-2.git
$ cd hw-2_ur0s && mkdir build && cd build
$ cmake ./
$ make

Использование:

$ ./hw-2_ur0s

Краткое описание:

Основная мысль протокола состоит в том, что первый обмен публичными ключами произойдёт до того, как злоумышленник смог бы вмешаться в работу. Далее все действия происходят с ЭЦП. Протокол использует алгоритм цифровой подписи на эллиптической кривой secp256r1.

Два устройства инициализируются на заводе, и обмениваются публичными ключами, после чего передаваемые сообщения преобретают стойкость к подделыванию.

Формат передаваемых даных описан в Utils, и имеет 3 используемых поля:

  • command (текст передаваемой команды)
  • signature (собственно ЭЦП подпись)
  • publicKey (опциональное поле для передачи ключа в формате библиотеки Crypto++)

Тестовый пример:

1. Процесс инициализации, и обмена ключами на заводе:

Image alt

2. Легальный процесс выполнения команды разблокировки:

Image alt

3. Попытка хакера взорвать машину, подменив команду в сообщении:

Image alt

Crypto++ 8.3.0

Сборка библиотеки:

git clone https://github.com/weidai11/cryptopp.git
cd cryptopp
wget -O CMakeLists.txt https://raw.githubusercontent.com/noloader/cryptopp-cmake/master/CMakeLists.txt
wget -O cryptopp-config.cmake https://raw.githubusercontent.com/noloader/cryptopp-cmake/master/cryptopp-config.cmake
mkdir build
cd build
cmake ..
make -j4
cryptest.exe v

Если все тесты пройдены успешно, то у вас будут 2 библиотеки:

libcryptopp.a
libcryptopp.so

Добавьте libcryptopp.so в кэш библиотек, например sudo cp libcryptopp.so /usr/local/lib/

Обновите кэш библиотек sudo ldconfig

Убедитесь, что бибиотека успешно добавилась: sudo ldconfig -p | grep libcryptopp

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published