ПУБЛИКАЦИЯ 15-B / РАЗДЕЛ 9 — ГАРАНТИИ ХРАНЕНИЯ

Безопасность

Обзор

В этом разделе точно сказано, что мы храним и что нет, и полностью задокументирована модель шифрования. Перед обращением с вопросами о хранении см. псевдокод ниже.


Модель PIN

Ваш PIN никогда не хранится. Мы храним Argon2-хэш PIN для проверки. Отдельный ключ, выведенный Argon2 и XOR-ом с серверным секретом, шифрует ваш активный ключ Hive — дизайн двойного ключа.


Псевдокод двойного ключа

Ни сервер в одиночку, ни атакующий базу данных в одиночку не могут расшифровать ваш активный ключ. Необходимы и PIN (знает только вы), и серверный секрет (знаем только мы).

# Шифрование при установке PIN:
key_material  = Argon2(PIN) XOR KEY_ENCRYPTION_SECRET
encrypted_key = AES-256-GCM(active_key, key_material)

# Расшифровка во время транзакции:
key_material  = Argon2(PIN) XOR KEY_ENCRYPTION_SECRET
active_key    = AES-256-GCM.decrypt(encrypted_key, key_material)

Что мы храним

Ваш зашифрованный активный ключ (бесполезен в изоляции), строки баланса HIVE и WAGE, записи владения NFT и Argon2-хэш вашего PIN. Больше ничего.


Что мы НЕ храним

Ваш открытый PIN. Ваш расшифрованный активный ключ. Вашу seed-фразу. Ваш пароль от почты. Ничего, что позволило бы нам в одиночку перемещать ваши средства.


Честность RNG

Каждый бросок RNG при минте использует PRNG с серверным сидом; сид сохраняется в строку MintEvent. Любой аудитор может воспроизвести бросок по сиду и убедиться, что исход совпадает с записанным.


Блокировка PIN

Три подряд неудачные попытки ввода PIN блокируют аккаунт на пятнадцать минут. Счётчик сбрасывается при успешном вводе. Это основная защита от брутфорса.


Без восстановления PIN

Восстановление PIN отсутствует. Если вы потеряете PIN, ваш внутриигровой баланс HIVE и все развёрнутые NFT станут недоступны навсегда. Запишите PIN. Храните там, где найдёте снова.