будут хранится на сервере. Можно ли как-то защитить приватники от утечки? Что бы условно работник хостинга на смог зайти ко мне на сервер и взять приватник
Удалить исходный код, и оставить ток бинарник и его запускать?
Как вариант. Но я пишу на ноде, она легко декомпилируется
В оперативку положить через зашифрованный http запрос
при запуске вводить с консоле и доступ организовывать через mprotect
А такие случаи были?
Еще как
Ни один из предложенных способов не решит проблему злоумышленника имеющего доступ к гипервизору. Может разве что отдалить. Если пароль попал хотя бы в память виртуалки, он может быть вытащен из дампа оперативной памяти
Так если это арбитраж в блокчейне, мб будешь хранить деньги на смарт контракте, а функцию вывода назови как-то иначе, чем какой-то recover_erc20. Тогда если у него будут доступы к правтникам, то он все равно не сможет вывести деньги с контракта
Я не думаю что это кого-то остановит. Та и в целом хотелось бы знать как защищаться в подобных случаях, не только при арбитражном боте
Не знаю, может здесь есть решение https://aws.amazon.com/ru/blogs/database/part1-use-aws-kms-to-securely-manage-ethereum-accounts/
Вообще вариант хранить средства на контракте кажется одним из самых надёжных, правда защищать вывод надо не странным названием функции, а установкой пароля: передаем в контракт хэш пароля, и вывод разрешаем только когда с транзакцией передаем оригинал пароля(они должны быть одноразовые, условно на каждый withdraw надо передавать оригинал пароля, и хэш от нового пароля) Хотя здесь остаётся уязвимость, что если вы работаете вообще с любыми токенами, то через контракт смогут провести сделку в rug pool. Здесь что то типа whitelist надо делать, что бы транзакции могли идти только в разрешенные биржи/пары.
Та я условно придумал тему про арбитраж, просто нужно безопасно хранить приватник на сервере
Обфускация приватного ключа: Храните посимвольно каждый байт ключа, раскидаете его по разным структурам, файлам, хранилищам. Напишите сложный алгоритм восстановления, обфусцируйте и его. Когда нужно будет подписать транзакцию - соберите оригинал, подпишите транзакцию и удалите из памяти. Это защитит от простых алгоритмов где поиск по шаблону
Думаю на это время тратиться будет, когда нужно срочно подписат и забродкастить
Ещё такой вариант есть https://en.m.wikipedia.org/wiki/Hardware_security_module
Обсуждают сегодня