162012–2014

Trezor: ключи от Биткоина в карманном компьютере

Марек Палатинус и Павол Руснак искали способ, как подписывать платежи на компьютере, которому не обязательно доверять приватный ключ. Из прототипа в пражском хакерспейсе возникла первая генерация хардваровых кошельков.

Ранние биткоин-кошельки ставили пользователей перед неприятным выбором. Приватные ключи можно было хранить на подключенном к интернету компьютере и надеяться, что его не атакует вредоносное ПО, или спрятать их так тщательно, что удобно платить ими уже не получится. Marek «Slush» Palatinus и Pavol «Stick» Rusnák искали третий путь: небольшой специализированный компьютер, который никогда не выдаёт ключ, но по запросу подписывает правильно отображённую транзакцию. Первые прототипы создавались на Raspberry Pi в пражском хакерспейсе Brmlab. 29 июля 2014 года в продажу поступил Trezor Model One. Устройство не сделало хранение безошибочным, но перенесло его наиболее чувствительную часть из обычного компьютера в предмет, который пользователь мог держать при себе, проверять и резервировать.

01

Проблема не была в Bitcoin, а в компьютере вокруг него

Биткоин дает владельцу возможность контролировать монеты путем подписи без согласия банка. Та же самая особенность однако превращает утечку ключа в окончательную потерю. Если вредоносное ПО скопирует приватный ключ, оно может создать действительную транзакцию и сеть не имеет отделения жалоб, которое ее вернет. Обычный домашний компьютер при этом запускает браузер, электронную почту, документы и программы из многих источников.

Ранние руководства предлагали бумажные кошельки, зашифрованные диски или компьютеры, отключенные от сети. Эти решения могли уменьшить площадь атаки, но увеличивали требования к правильному созданию, резервному копированию и подписи. Истории Джеймса Хоуэлса и Стефана Томаса показали обратную грань: секреты можно защитить так успешно, что даже их владелец не сможет к ним получить доступ.

Палатинус уже знал, что значит управлять Mining Pool и какие риски несут онлайновые биткоин-сервисы. Вместе с Руснаком он искал ответ на практический вопрос: как отделить ключ подписи от компьютера, который могут взломать, не превращая каждый платёж в сложную техническую задачу? Пользователь по-прежнему готовил бы транзакцию в кошельке на компьютере, но подтверждал бы её на отдельном устройстве.

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

Целью не было устранить доверие ко всему аппаратному и программному обеспечению. Она была скромнее и более практична: уменьшить количество кода и ситуаций, в которых секретный ключ подвергается опасности. Устройство с единственной функцией может быть более тщательно проверено, чем весь ноутбук, и его ограниченный интерфейс дает пользователю возможность понять, что он действительно подписывает.

Обычный компьютер одновременно просматривает веб, открывает вложения, устанавливает драйверы и запускает тысячи фрагментов кода, не имеющих отношения к Bitcoin. Каждый из них расширяет пространство, в котором атакующий может ждать момента подписания. Однофункциональное устройство не отменит этот мир, но изолирует наиболее чувствительную операцию от его хаоса. Транзакция готовится снаружи, подписывается внутри, а приватный ключ не должен покидать устройство. Смысл дисплея и кнопок — дать пользователю независимый канал: компьютер может утверждать один адрес, но решающее подтверждение происходит на экране, которым управляет сам кошелёк.

02

Brmlab, Raspberry Pi и две кнопки

Первые попытки не выглядели как поздние потребительские изделия. В Brmlabе Палатинус и Руснák строили дополнительные платы к Raspberry Pi, дополняли небольшой дисплей, кнопки и USB-связь. Им нужно было проверить, что весь поток может функционировать: устройство безопасно создаст ключи, отобразит запрос и подпишет без их раскрытия.

Хакерспейс предоставил среду, где аппаратное и программное обеспечение могли меняться одновременно. Ошибка в расположении кнопок не отделялась от ошибки в протоколе; любая из них могла привести пользователя к подтверждению чего-то другого, чем он намеревался. Пригодность для использования не была последним слоем над криптографией. Она была условием, чтобы криптография защищала реального человека.

Две кнопки выражали важную границу. Компьютер мог запросить у устройства подпись, но окончательное подтверждение должно было прийти физически. Дисплей, в свою очередь, создавал второй канал, на котором можно было проверить адрес и сумму. Если зараженный ноутбук изменил получателя, правильно используемый Trezor должен был показать несоответствие.

Из прототипа возникла компания SatoshiLabs. Разработчикам пришлось решать проблемы производства, прошивки, обновлений, совместимости кошельков, а также поддержку людей, которые ничего не знали о иерархических ключах. Переход от платы в хакерспейсе к продукту означал, что идею безопасности должны были освоить не только ее авторы, но и человек, открывающий коробку дома.

Trezor называет себя первым аппаратным кошельком в мире. Более точно это первенство следует приписать производителю и конкретному определению продукта: одноканальному коммерческому устройству для хранения ключей и подтверждения биткоин-транзакций. История токенов безопасности шире, но Model One создал категорию, которой начал следовать биткоин-рынок.

03

Устройство, которое можно было восстановить из слов

Trezor Model One был официально представлен 29 июля 2014. Маленький дисплей, две кнопки и USB-кабель скрывали более существенное изменение: кошелек больше не должен был быть тождественен одному куску аппаратного обеспечения. Если устройство было потеряно или повреждено, пользователь мог восстановить ключи из набора слов.

Марек Палатинус и Павол Руснак — соавторы BIP 39. Предложение описывает, как представить случайно сгенерированные данные списком слов и вывести из него seed для кошелька. Seed Phrase позволила сохранять основу множества ключей в одной записи вместо копирования каждого ключа по отдельности. Если пользователь применяет ещё и passphrase, для восстановления нужна и она. Удобство резервной копии имеет обратную сторону: любой, кто получит необходимые секретные данные, сможет восстановить кошелёк.

BIP 44 далее описал иерархию целей, валют и счетов над детерминистическим кошельком. Стандарты позволили совместимому программному обеспечению из одной seed-фразы снова найти одну и ту же структуру адресов. Восстановление стало таким образом более пригодным для использования, но также зависимым от правильного понимания деривации и поддержки отдельных приложений.

Устройство таким образом защищало ключ во время обычного использования, в то время как бумажный или металлический резервный копирование защищало возможность восстановления. Без резервного копирования уничтоженный Trezor мог означать потерю. С раскрытым резервным копированием злоумышленник мог полностью обойти устройство. Безопасность не перестала опираться на человека, а лишь получила более четкое разделение ролей.

Эта модель помогла расширить собственное хранение за пределы узкого круга техников. Пользователь мог хранить долгосрочные средства и при этом время от времени подписывать платеж без импорта сидов в онлайн-компьютер. Продукт не упрощал Bitcoin тем, что бы скрывал ответственность. Он попытался организовать ее в шаги, которые можно разумно соблюдать.

04

Trezor не является монетой и не является страховкой

Аппаратная кошелек не хранит биткоины как монеты в сейфе. Она сохраняет тайны, необходимые для подписания перевода записанных в блокчейне выводов. Когда пользователь устройства уничтожает его, но имеет правильный seed, средства можно восстановить. Когда seed получает посторонний человек, он может перевести средства без исходного устройства.

Даже собственный дисплей не поможет, если человек не читает данные. Поддельное приложение может отобразить правильный адрес на компьютере и отправить другой в устройство; защита работает только тогда, когда пользователь сравнивает адрес на доверенном дисплее. Безопасностный элемент - это предложение проверки, а не автоматическая гарантия правильного решения.

Производителю и сообществу по-прежнему нужно исправлять ошибки прошивки, заниматься безопасностью цепочки поставок и обновлениями. Открытый код позволяет проверить, как работает устройство, но не обязывает каждого владельца лично изучать его строка за строкой. Self-Custody зависит также от порядка использования и доверия к выбранным инструментам. Устройство взяло на себя часть работы, но ответственность пользователя не исчезла.

История Trezor предлагает иной подход к проблеме потерянных дисков и забытых паролей. Его создатели не рассчитывали, что люди перестанут ошибаться. Они искали инструмент, который поможет предотвратить одни ошибки и вовремя заметить другие. Но его использование тоже налагает обязанности: записать слова восстановления, защитить эту резервную копию от пожара и посторонних глаз и потренироваться восстанавливать кошелёк до того, как возникнет экстренная ситуация.

С доски в пражском хакерспейсе появился глобальный продукт, поскольку он решал проблему, которая росла вместе с стоимостью сети. Чем больше было того, что нужно было защищать, тем менее приемлемым был выбор между онлайн-ключом и неудобным архивом. Trezor не исключил риск приватного ключа. Он дал ему физический интерфейс, на котором человек может действительно выполнять свою ответственность.

У этого разделения ответственности есть и неприятная сторона. Производитель может опубликовать проект и исправления, но не может за пользователя безопасно сохранить восстановительные слова, проверить каждый адрес или распознать мошеннический запрос на ввод сида. Устройство защищает определённый момент в процессе; безопасность возникает лишь при сочетании проверенного оборудования, надёжного программного обеспечения, физической резервной копии и внимательного человека. Trezor — это не коробочка, которая отменила необходимость понимать собственное хранение. Это попытка перевести абстрактную криптографическую ответственность в несколько видимых действий, в которых ошибку легче распознать до того, как она станет необратимой.

Atlas

Люди и понятия в Атласе

CZ·02TrezorSLUSHМарек «Slush» ПалатинусSTICKПавол «Stick» РуснакCZ·01SatoshiLabsHWHardware WalletKEYPrivate KeySEEDSeed PhraseKEYSСамостоятельное хранение
  1. 01
    Trezor — десятилетие пионерства

    Имена основателей, Brmlab, прототипы на Raspberry Pi и дата выпуска Model One.

  2. 02
    Trezor — О Trezor

    Временная шкала создания компании, BIP 39, BIP 44 и продукта Model One.

  3. 03
    BIP 39 — мнемонический код для генерации детерминированных ключей

    Техническая спецификация восстановительных слов, её объём и границы безопасности.

  4. 04
    BIP 44 — Иерархия многоуровневых счетов для детерминированных кошельков

    Техническая спецификация иерархии учётных записей, авторами которой являются Марек Палатинус и Павол Руснак.

Следующая история · 17Bitcoin Beach: деревня, которая начала действовать до закона