Какие функции безопасности встроены в стандартное программное обеспечение Биткойн?

Я много читал об алгоритме Биткойн и его основе шифрования, однако мало что было сказано о внутренней безопасности программного обеспечения.

Какие решения уже встроены в программу, а какие планируются?

Проблемы, которые я вижу:

  • На данный момент он использует сети IRC для определения местонахождения других. (IRC довольно небезопасен и его легко отключить с помощью простого DDoS)

  • Кошельки по умолчанию не зашифрованы. (Физический или удаленный доступ к жесткому диску позволяет любому получить кошелек даже без пароля.)

  • Кошельки представляют собой сложные структуры данных без инструментов резервного копирования. (Их нельзя легко создать резервную копию на физическом носителе или в защищенной цифровой копии. По крайней мере, без использования стороннего программного обеспечения, такого как PGP или TrueCrypt.)

  • Протоколы связи с сервером по умолчанию используют обычный текст вместо SSL или другого зашифрованного трафика.

Ответы (1)

По сути, почти нет. Но все проблемы на самом деле не особенно серьезны, или предлагаемые решения все равно не очень помогают.

Последняя версия клиента по умолчанию не использует IRC, хотя он по-прежнему поддерживается, чтобы помочь старым клиентам находить новых клиентов. Вместо этого используется DNS. Но на самом деле это не точки отказа, потому что список известных работающих законных узлов жестко запрограммирован в клиенте. И как только вы сможете найти один узел, он все равно может отправить вам текущий список рабочих узлов.

Кошельки не зашифрованы по умолчанию, но если бы они были, нас бы завалили жалобами «я забыл пароль кошелька», и люди все равно потеряли бы свои биткойны. Кроме того, существуют сложные технические причины, по которым защита кошелька паролем на самом деле не работает против типичной модели угроз (массово распространяемое вредоносное ПО со специфическими знаниями о биткойнах).

Клиент поддерживает команду «резервный кошелек». Но кошелек в формате BerkeleyDB. Хотелось бы, чтобы у клиента был собственный формат кошелька специально для резервных копий. Ведется работа над полностью детерминированными кошельками, поэтому вы можете «создать резервную копию» своего кошелька, просто зная кодовую фразу, даже без файлов резервных копий. Это законная проблема, над которой ведется работа.

Сервер по умолчанию использует обычный текст, но по умолчанию он также использует связь только с локальным хостом, и вы должны настроить пароль, чтобы запустить его в режиме сервера. (В режиме графического интерфейса проблем нет.)

Все эти вопросы прорабатываются. Клиент довольно сырой на данный момент, определенно.

Следует добавить, что шифрование кошелька часто рассматривается как единственное лекарство от всего, хотя на самом деле это не так. Причина в том, что сложные вирусы все еще могут украсть незашифрованные ключи из памяти, если у них есть повышенные привилегии, и существует несколько других эксплойтов, поэтому предоставление шифрования может привести к ложному чувству безопасности. Тем не менее, новая линейка клиентов версии 0.4 будет иметь функцию шифрования, которая по умолчанию отключена.
Вирусы, прежде всего, являются единственной точкой отказа, которую вы действительно не можете победить. Антивирусное программное обеспечение ловит их только после того, как они выходят в дикую природу, и очень редко некоторые эвристики что-то обнаруживают. Вы можете написать код для защиты от многих векторов атак, но почти никогда не сможете найти их все. Меня беспокоит более преднамеренный доступ, кража компьютера или что-то в этом роде, для чего и подходит шифрование кошелька.