Инструменты пользователя

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
en:projects:safina:api_safina [2023/05/02 08:09] anelen:projects:safina:api_safina [2023/05/02 08:11] (текущий) – удалено anel
Строка 1: Строка 1:
-====== Начало работы ====== 
  
-Базовым идентификатором пользователя со стороны API является хэш публичного ключа из пары ключей, полученных с помощью алгоритма эллиптических кривых (Elliptic Curve SECP256k1). Хэш публичного ключа это так называемый "адрес", поле x-app-ec-from в запросе, который выступает в роли электронной подписи. 
- 
- 
-===== Обращение к API ===== 
- 
-Чтобы обратиться к API, обязательно требуется наличие трёх полей электронной подписи запроса (x-app-ec-sign-r, x-app-ec-sign-s, x-app-ec-sign-v) в заголовках запросов. Подписывается URL запроса и поля формы (если это POST запрос). После вызова функции API, создающей кошелёк, все последующие команды для работы с этим кошельком требуют электронной подписи именно теми ключами, которые были использованы для подписи команды на создание кошелька. 
- 
- 
-==== Безопасность ==== 
- 
-Для одной пары ключей (одного условного пользователя) можно создавать несколько кошельков, каждый кошелёк получает свой уникальный код (получение списка кошельков).  
-Более правильным является подход, когда для каждого конечного пользователя создается отдельная пара ключей. 
- 
-Можно использовать подход, когда пара ключей создается сразу для внешней системы, внутри которой уже разделяются кошельки пользователей. В этом случае кошельками всех пользователей можно управлять с помощью этой пары ключей. 
- 
-Важно помнить, что пара ключей открывает возможность тратить средства, находящиеся на кошельках, которые созданы с помощью этой пары. Поэтому необходимо обеспечить безопасное хранение этой пары. 
- 
-Существует несколько общедоступных библиотек, которые реализуют функции по созданию ключей, вычислению подписи и проверке подписи ().  
- 
-Для того, чтобы было удобно восстанавливать пару ключей, можно воспользоваться механизмом их генерации с использованием SID фразы (набора слов, обычно 12 или 24 слова, https://habr.com/ru/company/distributedlab/blog/413627/ ). 
- 
-В данном случае в надёжном месте сохраняется не сам ключ, а этот набор слов и при восстановлении ключей уменьшается вероятность опечатки. Обычно эта SID фраза записывается человеком от руки на бумагу или сохраняется на физическом носителе, которые впоследствии хранятся в защищённом от уничтожения и несанкционированного доступа месте. 
- 
-Особенности некоторых библиотек, предназначенных для работы с блокчейн сетями: модификация подписываемого сообщения, что не нужно в нашем случае (https://github.com/web3j/web3j/issues/208) 
- 
-Данные ключи не используются самой системой для работы с блокчейн сетями. Для каждого создаваемого кошелька система генерирует собственные ключи и уже их использует для работы с блокчейн сетями. 

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also, you acknowledge that you have read and understand our Privacy Policy. If you do not agree, please leave the website.

More information