BTChip аппаратный бумажник Bitcoin / altcoin в USB смарт-карты - низкая стоимость, безопасный и доступный сейчас - купить от https://buy.hardwarewallet.com (Ограниченное рекламное предложение, 2 карты для 20 Ђ, выплачивается в Bitcoins)
См установке и настройке инструкции по http://www.hardwarewallet.com - BTChip работает из коробки с GreenAddress (Приложение Chrome & Android кошелек) и Электрум (Предстоящий релиз)
Для разработчиков:
- Последняя документация прошивки всегда доступна на https://btchip.github.io/btchip-doc/bitcoin-technical.html или https://github.com/btchip/btchip-doc
- C API: https://github.com/btchip/btchip-c-api
- Java API: https://github.com/btchip/btchip-java-api
- Веб-интерфейсы (Chrome / Chromium только): https://github.com/btchip/btchip-js-api - Образец: интеграция KryptoKit https://github.com/btchip/btchip-kryptokit
- API для Python: https://github.com/btchip/btchip-python
Обновления всегда размещены на твиттере: https://twitter.com/btchip
учебники пользователей:
Отзывы Пользователей :
- Кодирование In My Sleep: http://codinginmysleep.com/hands-on-with-btchips-hw-1/
- Bitvoid: http://bitvoid.net/btchip/
- BitcoinInformation:
- Gabridome:
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
(Слово предупреждения для людей, которые получили образец на 29c3 и планируют напасть на него - там будет каким-то чип спойлера во время этого поста)
Здравствуй
Аппаратные средства Bitcoin проекты, связанные выглядят совершенно живыми & пиная в 2012 году, который является большим вот мой взгляд на тему смарт-карт кошельков, с реальным осуществлением мира
Smartcard бумажник против аппаратного бумажника
Во-первых, мы надеемся, unbiaised сравнение между смарт-карт кошельков и аппаратных кошельков:
Pro смарт-кошелек
- Оборудование безопасности: убедившись, что злоумышленник, который получил устройство будет иметь очень трудное время, извлекая что-то полезное из него. Кроме защиты от атак со стороны канала, особенно во время известных к утечке криптографических операций.
- Стоимость: не считая дополнительный читатель, первоначальную целевую цену за единицу в пределах от 0,5 до 1 BTC реалистична (не считая больших объемов). Стоимость доставки будет ниже, тоже, как отправка аппаратного бумажника в простом письме конверт кажется Сильнее.
- Прочность: ограниченные возможности отказа с одной аппаратной составляющей.
Против смарт-карт бумажника
- Не Open Source: смарткарты чипы и связанные с ними компилированными инструментами сильно покрыты НДОМ, что делает обмен источнику на боль. Это, конечно, можно выпустить приложение смарт-карт бумажника Open Source работает на открытой платформе смарт-карты, но вам все равно нужно доверять платформу.
- Ограниченная защита от вредоносных программ пользовательского атакующей Bitcoin операций: аппаратный кошелек предложит дисплей или кнопки для обзора операций. Это еще можно предложить некоторую защиту против этого в смарткарту, как мы увидим, но не так широко.
- Ограниченные возможности кода: современный смарт-карты F.E. SC000 основе искать все больше и больше похожи на типичные микроконтроллеры, если не учитывать размер оперативной памяти - однако это еще не то, что вы получаете в типичной безопасной продукции. Кроме кодирования по принципу "открытый" платформы, такие как Java Card ограничивает вас, что криптографический API может предложить, что может быть проблемой для протокола Bitcoin (F.E. ECDSA подписи предоставляется только по SHA-1 для одной из самой последней версии Java Card, учитывая карты поддерживает ECDSA первый)
проект BTChip
http://www.btchip.com
спецификация 1.4.4 прошивки
Этот проект был начат как более или менее 2-х недель хака родового смарт-карты OS предложить Bitcoin дружественных API. Первоначальная мотивация, чтобы увидеть, если это может быть сделано, а также удовольствие от настройки проекта изначально было посвящено банковских приложений для поддержки что-то вне системы
Чип, используемый является ST23YT66 что ваш обычный смарт-карт микроконтроллер с твист: поддержка USB. Это означает, что может быть непосредственно подключен в USB-порт, без считывателя необходимо.
Он имеет реализацию
Вот план на ближайшие недели, которые будут обновляться, как все делается:
Выпуск первых образцов в 29c3- сделанный- Улучшение генерации ключей & Скорость подписания.
Целевая меньше 2s, может быть меньше, чем 1sСейчас 900 мс для генерации ключей / 900 мс подписать Может бытьподдерживать продвинутую модель бумажника (обсуждение нижепроверьте спецификацию),но это маловероятно.- Поддержка дополнительных богатых клиентов - до сих пор есть прототип для bitcoinj и интеграция в официальный клиент находится в стадии разработки. Если вы разработчик клиента и хотите образец, чтобы играть, не стесняйтесь и пишите мне в ПМ
- Поддержка веб-клиентов -
даже если безопасность Java была немного спорной в последние месяцы (и Java поддержка браузера превратилась в больную шутку на OS X) Я имел хороший успех javahidapi работает в контейнере апплета и Java все еще должен быть доступен на общедоступных компьютерах, так что он может быть отправной точкой.так как я написал это безопасность Java стала еще хуже (шляпы в Oracle, это большое достижение), поэтому браузер плагин здесь мы приходим Разоблачение hidapi через FireBreath довольно легко, так что это предпочтительный подход до сих пор.
Несколько слов о GlobalPlatform
Спецификации GlobalPlatform карты представляет собой набор спецификаций, реализованных самыми последние смарткарты несколько приложений - они определяют, как приложения карты и криптографические материалы изолированы, а также о том, как установить безопасный транспортный канал (Secure Channel - подумайте TLS с аутентификацией и опциональная конфиденциальность, используя только симметричные ключи ) между картой и внешним объектом.
Реализации смарт-карт бумажник будет опираться на концепции GlobalPlatform к:
- Определить, как ключи вставлены в карту
- Аутентифицировать пользователь для проверки прав доступа для доступа к определенным ключам
- При желании проверить подлинность ответов карты
Smartcard архитектура бумажник
Мы предполагаем, что пользователь хранить много ключей, не обязательно связан друг с другом (то есть не обязательно порождается детерминированным бумажником)
Для поддержки этой модели, ни одна клавиша ECDSA не будет храниться на смарт-карты и смарт-карты будет управлять только частный компонент ключа ECDSA (S, 32 байта) в зашифрованном виде.
Ключ, используемый для шифрования частного компонента ключа ECDSA называется Контекст Key. Контекстные ключи хранятся на самой смарт-карты и никогда не раскрывал. Предложенный алгоритм шифрования Triple DES в режиме CBC (потому что Triple DES, способные cryptoprocessors все еще гораздо более распространены, чем AES, способных cryptoprocessors в настоящее время на смарт-карт, чипов).
Bitcoin клиент хранит секретный ключ в зашифрованном виде вместе с ссылкой Ключа контекст, используемый для доступа к нему. Затем он посылает SHA-256 хэшей подписать на смарт-карты для не сделки осведомлены смарт-кошелек, или каждый компонент сделки подписать для сделки осведомлены смарт-кошелек вместе с зашифрованным закрытым ключом подписать с.
Контекст Ключ может быть связан с конкретной GlobalPlatform Secure Channel. В этом случае пользователь должен пройти проверку подлинности защищенного канала, прежде чем быть в состоянии подписать сделку.
Основные смарт-кошелек (не сделка в курсе)
Основной смарт-карты бумажник просто знает, как сгенерировать пару ключей по кривой Bitcoin ECDSA, и что-то подписать. Он не знает ни о чем другом Bitcoin конкретно, и не нужно поддерживать SHA-256 либо.
Определены следующие интерфейсы:
Генерация ключей : Берет ключ ссылки Context, генерирует пару ключей над secp256k1, возвращает общественную составляющую ключа (W) и зашифрованного компонента частного ключа (S ') с использованием контекста ключа.
Импорт закрытого ключа : Берет ключ ссылки и контекст в открытом виде закрытого ключа компонент (S), возвращает зашифрованный секретный компонент ключа (S ') с помощью контекстного ключа.
Знак : Принимает шифрованный секретный ключ компонент (S '), то SHA-256 хэш подписать, и возвращает ASN-1 закодированные компоненты подписи.
проверить (По желанию): принимает общественный компонент, ключ (W), то SHA-256 хэш для проверки, подпись и возвращает нормально или нет нормально.
Расширенный смарт-кошелек (сделка в курсе) (Старая версия, проверить сообщения ниже для обновленной версии)
Следующее описание в основном устарели и сохраняются только для справки - проверить спецификация прошивки вместо
Усовершенствованная смарт-предложение бумажника использует простую концепцию, чтобы победить полезные вредоносный: все выходные адреса должны быть заверены картами при включении в транзакции.
В этой модели, прежде чем начать операцию вы бы взять выходные адреса, предоставить их на карту, чтобы шифровать на доверенном компьютере или на другой платформе, то идти с подписанием сделки.
Два новых типа ключей определены, адрес ключа, который используется для шифрования адреса и Secure Hash ключ, который используется для шифрования контекста SHA-256.
В этом варианте осуществления смарт-карта должна поддерживать SHA-256 и, возможно, RIPEMD-160, если автоматическая генерация ключей для изменения желательно
Определены следующие интерфейсы:
Генерация ключей для изменения : Берет ключа ссылки Context, ключ ссылка Адреса, генерирует пару ключей над secp256k1, возвращает общественную составляющую ключа (W), зашифрованный частный компонент ключа (S ') с помощью контекстного ключа, и связанный с ним зашифровать адрес ,
Encode Адрес : Принимает выходной адрес, ключ ссылку адреса и возвращает зашифрованный адрес, смарт-карта будет аутентифицировать позже.
Secure Hash Generic : Принимает общую часть сделки, которая не является выход сценария, защищенным контекст Hash (или ничего, если создать новый хэш), ключевой опорный Secure Hash и возвращает обновленный (или новый) Secure Hash контекста. Безопасный контекст хеширования содержит контекст хэша SHA-256, зашифрованный с помощью смарт-карты. Он отправляется обратно к хозяину вместо того, чтобы держать в памяти в случае, если люди заинтересованы, чтобы иметь распределенную реализацию. Эта функция должна подтвердить представленные данные т.е. убедитесь, что ни один выход сценарий не может быть хэшируются этой функцией (F.E. фрагментируя его в бессмысленные части).
Secure Hash Output Script : Принимает выходной сценарий, защищенный контекст Hash, ссылка Secure Hash ключа, список зашифрованных адресов и связанные с ними адресами Основных ссылок и возвращает обновленный Secure Hash контекст. Структура выходного сценария анализируется и принимается только, если данный адрес совпадает с одним из зашифрованных адресов, которые передаются.
Вход Secure Hash : Принимает шифрованный секретный ключ компонент (S '), защищенный контекст Hash, ключевую ссылку Secure Hash и возвращает ASN-1 закодированных компоненты подписи.
Защита от вредоносных программ на заказ
Создание нескольких контекстных клавиш может быть эффективным защищена Secure Channel может помочь фрагментации риски для больших кошельков - допуская всемогущи вредоносным схватил ключ аутентификации защищенного канала и могут играть операции, риски ограничены приватным ключи, связанных с этим Контекст Key.
Еще один простой способ защиты от пользовательских вредоносных программ с помощью реализации USB может полагаться на досадном факте: выключения питание устройства USB с помощью программного обеспечения является болезненным. Используя эту модель, мы можем выбрать, чтобы принять одну подписи для каждого сеанса и заставить пользователь отключить / подключить снова устройство для каждого подписанного вывода - дешевый способ проверить, что никакие дополнительные выходы не были добавлены, но требуют свободных пальцев сосчитать и Безразлично» т предотвратить вредоносные программы, которые бы просто заменить законную сделку по самозванки вместо добавления выходов к легитимной.
Не стесняйтесь комментировать и улучшить это