Веб-кошелёк Monero на официальном monero-wallet-rpc: digest-авторизация, двухфазная отправка и BigInt вместо float
Разработчик представил собственную реализацию веб-кошелька Monero, построенную поверх официального компонента monero-wallet-rpc. Криптография целиком осталась за официальным инструментом, а автор сосредоточился на инфраструктурной логике: digest-авторизации, двухфазной отправке транзакций и корректной работе с большими числами. Материал будет полезен тем, кто самостоятельно разворачивает некастодиальные кошельки и задумывается о безопасности связки «узел — RPC — веб-интерфейс».
Подробности
Основная сложность оказалась не в криптографии, а в трёх инфраструктурных аспектах, которые автор выделил особо. Digest-авторизация. Взаимодействие с monero-wallet-rpc требует аутентификации, и вместо простой передачи учётных данных используется digest-схема. Это защищает от перехвата пароля в открытом виде, но накладывает требования к корректной реализации на стороне клиента и к защите канала связи. Двухфазная отправка транзакций. Отправка средств разбита на отдельные этапы, что позволяет контролировать состояние операции и снижает риск потери средств при сбоях. Такой подход типичен для работы с RPC-интерфейсами, где одна ошибка может привести к необратимым последствиям. BigInt вместо float. Работа с денежными значениями в формате с плавающей точкой — классический источник ошибок округления. В криптовалютных операциях, где важна точность до последнего атомарного значения, использование float недопустимо. Автор подчёркивает необходимость целочисленной арифметики произвольной точности. Стоит отметить, что в исходном материале не приводятся конкретные версии затронутых компонентов и не упоминаются CVE — это не разбор уязвимости, а описание архитектурных решений и подводных камней самостоятельной разработки.Что делать
Если вы планируете разворачивать собственный веб-кошелёк на базе monero-wallet-rpc, стоит учесть несколько практических моментов: - Не пытайтесь реализовывать криптографию самостоятельно. Делегируйте работу с ключами официальному monero-wallet-rpc. - Ограничьте доступ к RPC-интерфейсу: не выставляйте его в публичную сеть, используйте защищённые каналы и digest-авторизацию. - Для доступа к интерфейсу применяйте MFA и VPN там, где это возможно. - Применяйте целочисленную арифметику (BigInt) для всех операций с суммами — никаких float. - Разделяйте процесс отправки транзакции на этапы с явным контролем состояния, чтобы избежать необратимых ошибок. - Регулярно обновляйте узел Monero и monero-wallet-rpc, отслеживая официальные релизы и бюллетени безопасности. Итог: самостоятельный веб-кошелёк на официальном RPC — рабочий и достаточно безопасный сценарий при условии некастодиальной архитектуры, аккуратной авторизации и корректной работы с числами. Основные риски лежат не в криптографии, а в инфраструктурных деталях, которые легко недооценить.Источник: Хабр — Информационная безопасность

