Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
10 мая 2011, 1:22:05 PM   # 1
 
 
Сообщения: 1050
Цитировать по имени
цитировать ответ
по умолчанию Re: [RFC] В памяти ключ схема шифрования

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Прежде всего, извините эта идея формируется только после того, как патч рабочего шифрования был уже разработан, но я считаю, что следующая схема будет идеальным для шифрования кошельков.

Существует один бумажник широкий мастер-ключ, сам по себе симметрично зашифрован (AES-CBC-256) с идентификационной фразы. Мы используем шифрование с открытым ключом здесь, чтобы шифрование бумажника privkeys без знания парольной фразы, требуя при этом кодовую фразу для их расшифровки.

Единственное место в источнике, где необходимы реальные частные ключи, это во время подписания. Это означает, что только для этой операции потребовалась бы ключевая фраза. Новые ключи могут быть сгенерированы и сохранены без пароля.

Он не может иметь смысл криптографический, но так как N-разрядное EC криптография предлагает только N / 2 бита безопасности, я предложил бы использовать более сильный кривой, чем secp256k1 ("только" 128 бит безопасности) - скажем secp384r1 - для мастер-шифрования.

Таким образом, за весь кошелек мастер secp384r1 пар ключи должны храниться - Публичный в открытом виде, в privkey зашифрован. При использовании сжатия точки и только хранение частному сам параметр, который требует 49 байт + 48 байт на каждую ключевую фразу.

Каждый walletkey затем, будут зашифрованы с использованием отдельного 256-битного AES ключа, полученного с помощью ECDH из главного ключа и каждого walletkey эфемерного ключа secp384r1 (= ИС-IES). В IV может быть использован хэш Публичных. Так как мы в любом случае обновление формата бумажника, можно сразу перейти только хранить частный параметр бумажника privkey (32 байта) вместо полного OpenSSL-кодированном виде (279 байт). Нам нужно будет добавить Публичную часть эфемерного ключа, хотя, добавляя 49 байт (при использовании сжатия точки). Таким образом, шифрованный бумажник privkeys можно хранить, используя 81 байт для каждого ключа.

Преимущества:
* ключи могут быть созданы и хранятся в зашифрованном виде, не зная кодовую фразу
* Множественные ключевые фразы могут присутствовать в одном бумажнике (за счет хранения частного мастер-ключ более одного раза)
* Изменение ключевой фразы тривиальна
* закрытые ключи могут оставаться в зашифрованном виде в памяти, расшифровывая их только при создании транзакции
* В сочетании с переходом на более эффективное представление закрытых ключей и используя сжатие точки, требования для хранения / памяти для закрытых ключей все еще идут вниз фактор 3

Вопросов:
* Является ли это криптографический звук?
* Имеет ли смысл использовать большую кривую EC для главного ключа / шифрования самого privkeys?
* Является ли использовать сжатие точек варианта? Я слышал, есть патенты на него, но он реализован в OpenSSL. Если нет, то главный ключ потребует 97 байт + 48 байт на каждую ключевую фразу, и бумажник privkeys потребуется 129 байт.
Pieter Wuille сейчас офлайн Пожаловаться на Pieter Wuille   Ответить с цитированием Мультицитирование сообщения от Pieter Wuille Быстрый ответ на сообщение Pieter Wuille


Как заработать Биткоины?
Без вложений. Не майнинг.


10 мая 2011, 7:27:52 PM   # 2
KGO
 
 
Сообщения: 549
Цитировать по имени
цитировать ответ
по умолчанию Re: [RFC] В памяти ключ схема шифрования

Получил 1806 Биткоинов
Реальная история.





Я думал о том, пластыре, чтобы зашифровать бумажники, но я все еще учусь в кодовом. Могли бы вы дайте мне знать, где существующий шифрования патч? Я новичок на все это.

Мои тиски только тиски с вашей стратегией, почему вы думаете, создавая частный ключ являются безопасным вариантом и шифрование с открытым ключом являются хорошей идеей? Я думаю, что вы хотите, чтобы убедиться, что вы единственный человек, который мог бы создать новую пару ключей. Если нет, то злоумышленник может создать ключ, где у них есть собственная часть, и вставить его в бумажник. Тогда в конечном итоге вы получите свой 99th ключ, а кто-то есть копия.

Моя идея была соленая-итерация мастер passhphrase который привыкает в качестве ключа AES256. Это похоже на то, как OpenPGP шифрует это секретные ключи, так что я думаю, что подход был продуман.

Возьмите пароль, добавьте соль, хэш его с SHA265 Х раз, когда у вас есть значение по умолчанию X = 128, но пользователи могут до этого. В форме JSon, вы в конечном итоге с:

{ "мастер ключ": {"поваренная соль":"А.А.","итерации": 128,"зашифрованный ключ","SDFSDFSDGSGDSDGSGDSGDGSD"}}

И тогда ключи ECC являются (де) шифрованными соответственно.

С другой стороны, мастер-ключ может подписать подразделы, как OpenPGP UID, но по-прежнему необходимо будет зашифрован симметрично.
KGO сейчас офлайн Пожаловаться на KGO   Ответить с цитированием Мультицитирование сообщения от КГО Быстрый ответ на сообщение KGO

10 мая 2011, 7:58:38 PM   # 3
 
 
Сообщения: 755
Цитировать по имени
цитировать ответ
по умолчанию Re: [RFC] В памяти ключ схема шифрования

Я думал о том, пластыре, чтобы зашифровать бумажники, но я все еще учусь в кодовом. Могли бы вы дайте мне знать, где существующий шифрования патч? Я новичок на все это.
https://github.com/bitcoin/bitcoin/pull/203.

Кроме того, Гэвины принесли хорошую точку на IRC раньше, если можно добавить ключ без знания пароля, может злоумышленник не добавить несколько своих собственные частные ключи keypool вашего бумажника, так что в следующий раз, когда клиент посылает к одному из keypool адресов, злоумышленник получает монету. Затем был обсужден ли или нет эта атака действительно должны рассматриваться как доступ на запись к файлам данных Bitcoin может означать в других эксплойтов, а также. Я склонен согласиться, как торговец, который работает Bitcoin экземпляр, чтобы быть как можно более безопасным, возможно, более ограничительный доступ к написанию двоичных файлов (например, изменения Bitcoin бинарного быть злыми) и независимо от того, что вы делаете, злоумышленник не может сделать Bitcoin потратить свои монеты, если он не может обмануть человека в это делать или если он не может изменить Bitcoin каким-то образом (в оперативной памяти / на диске, что угодно)
Мэтт Corallo сейчас офлайн Пожаловаться на Matt Corallo   Ответить с цитированием Мультицитирование сообщения от Matt Corallo Быстрый ответ на сообщение Matt Corallo

10 мая 2011, 10:41:41 PM   # 4
 
 
Сообщения: 314
Цитировать по имени
цитировать ответ
по умолчанию Re: [RFC] В памяти ключ схема шифрования

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

11 мая 2011, 7:45:18 AM   # 5
 
 
Сообщения: 755
Цитировать по имени
цитировать ответ
по умолчанию Re: [RFC] В памяти ключ схема шифрования

Единственная проблема у меня с этой идеей, является то, что пользователи будут почти guaranteedly использовать один и тот же пароль для обоих, и избавляется от всей точки внушения ГАРО как теперь вы можете также просто сохранить пароль для закрытых ключей в оперативной памяти и не беспокоить со всем открытым ключом шифрования ключей.
Мэтт Corallo сейчас офлайн Пожаловаться на Matt Corallo   Ответить с цитированием Мультицитирование сообщения от Matt Corallo Быстрый ответ на сообщение Matt Corallo

11 мая 2011, 9:03:56 AM   # 6
 
 
Сообщения: 1050
Цитировать по имени
цитировать ответ
по умолчанию Re: [RFC] В памяти ключ схема шифрования

Я специально пытался избежать необходимости необходимости ввести пароль для нормальной работы, за исключением отправки
сделки. Конечно, есть еще один вариант для тех, кто более параноидально, а также гарантировать, что частные ключи
не может быть подделаны, не зная, некоторый (возможно, другой) пароль, используя схему, такие как предполагают Халы.
Однако, как только злоумышленник имеет доступ к wallet.dat (или другим файлам) пишет, что он может сделать намного больше, например, перезапись известных адресов, давая вам поддельный блок цепь (не уверена, насколько жизнеспособно это), или даже перезапись Bitcoin двоичного. Таким образом, я не уверен, насколько реально это для защиты от этого сценария.
Pieter Wuille сейчас офлайн Пожаловаться на Pieter Wuille   Ответить с цитированием Мультицитирование сообщения от Pieter Wuille Быстрый ответ на сообщение Pieter Wuille

11 мая 2011, 9:09:34 AM   # 7
 
 
Сообщения: 755
Цитировать по имени
цитировать ответ
по умолчанию Re: [RFC] В памяти ключ схема шифрования

Я специально пытался избежать необходимости необходимости ввести пароль для нормальной работы, за исключением отправки
сделки. Конечно, есть еще один вариант для тех, кто более параноидально, а также гарантировать, что частные ключи
не может быть подделаны, не зная, некоторый (возможно, другой) пароль, используя схему, такие как предполагают Халы.
Однако, как только злоумышленник имеет доступ к wallet.dat (или другим файлам) пишет, что он может сделать намного больше, например, перезапись известных адресов, давая вам поддельный блок цепь (не уверена, насколько жизнеспособно это), или даже перезапись Bitcoin двоичного. Таким образом, я не уверен, насколько реально это для защиты от этого сценария.

Гектометр Я не согласен. Как я уже говорил выше, если бы я был правильно реализация торговцем, мой Bitcoin узел будет просто наблюдать за новые сделки на мои адреса и никогда не тратить эти монеты. Следовательно, он не должен иметь знания пароля (как ваше предложение позволяет). Однако, если я реализовывал должным образом, никто не будет иметь права на запись в любом случае к моему Bitcoin двоичного (или любому другому двоичному файлу в моей системе по этому вопросу). Если кто-то, чтобы иметь возможность запускать код на моей машине под пользователем Bitcoin, они будут иметь доступ только к записи в wallet.dat, который не помогает им ни, потому что они не получают свои монеты, и у меня есть резервная копия моего wallet.dat, который доступен только для чтения.
Мэтт Corallo сейчас офлайн Пожаловаться на Matt Corallo   Ответить с цитированием Мультицитирование сообщения от Matt Corallo Быстрый ответ на сообщение Matt Corallo

11 мая 2011, 9:16:16 AM   # 8
 
 
Сообщения: 1050
Цитировать по имени
цитировать ответ
по умолчанию Re: [RFC] В памяти ключ схема шифрования

Гектометр Я не согласен. Как я уже говорил выше, если бы я был правильно реализация торговцем, мой Bitcoin узел будет просто наблюдать за новые сделки на мои адреса и никогда не тратить эти монеты. Следовательно, он не должен иметь знания пароля (как ваше предложение позволяет). Однако, если я реализовывал должным образом, никто не будет иметь права на запись в любом случае к моему Bitcoin двоичного (или любому другому двоичному файлу в моей системе по этому вопросу). Если кто-то, чтобы иметь возможность запускать код на моей машине под пользователем Bitcoin, они будут иметь доступ только к записи в wallet.dat, который не помогает им ни, потому что они не получают свои монеты, и у меня есть резервная копия моего wallet.dat, который доступен только для чтения.

Конечно, существуют различные этапы записи доступа злоумышленник может получить. Addr.dat и wallet.dat при хранении на автономных средств массовой информации будет первым шагом, доступ к двоичным в последней писать. Я предполагаю, что я пытаюсь сказать, что когда-то один получает некоторый доступ к записи, все виды вещей, возможно, и те могут быть не реально защититься.

То, что мы пытаемся решить здесь, является то, что если злоумышленник может только читать доступ к wallet.dat, он не может потратить свои монеты. В ограниченной степени, он может попытаться свести к минимуму утечку ключей в свопе / дампы памяти, но это уже сложнее гарантировать.
Pieter Wuille сейчас офлайн Пожаловаться на Pieter Wuille   Ответить с цитированием Мультицитирование сообщения от Pieter Wuille Быстрый ответ на сообщение Pieter Wuille

11 мая 2011, 9:19:53 AM   # 9
 
 
Сообщения: 1050
Цитировать по имени
цитировать ответ
по умолчанию Re: [RFC] В памяти ключ схема шифрования

Кстати, Hal, у вас есть какие-либо конкретные комментарии по поводу схемы, или основных размеров используемых?
Pieter Wuille сейчас офлайн Пожаловаться на Pieter Wuille   Ответить с цитированием Мультицитирование сообщения от Pieter Wuille Быстрый ответ на сообщение Pieter Wuille

11 мая 2011, 9:42:13 AM   # 10
 
 
Сообщения: 755
Цитировать по имени
цитировать ответ
по умолчанию Re: [RFC] В памяти ключ схема шифрования

То, что мы пытаемся решить здесь, является то, что если злоумышленник может только читать доступ к wallet.dat, он не может потратить свои монеты. В ограниченной степени, он может попытаться свести к минимуму утечку ключей в свопе / дампы памяти, но это уже сложнее гарантировать.
Я не согласен там тоже. Я хочу, чтобы злоумышленник не тратить свои монеты, независимо от того, какого доступа у них есть. Если я никогда не вводить пароль, я не хочу, чтобы они были в состоянии потратить свои монеты, даже если они изменяют Bitcoin двоичные. Если я торговец бега Bitcoin для обработки подтверждения платежа, что возможно. Единственная проблема в том, если кто-то имеет доступ к Bitcoin двоичного (на диске / в памяти / и т.д.) писать они могут заставить вас думать, что они заплатили. Я не вижу такой атаки получили доступ к записи только ~ / .bitcoin (за исключением, возможно, какой-то Сибил после изменения blockchain + addr.dat, но это может умереть в конце концов, как Bitcoin может установить соединение с IRC / обмена пэра узел, а затем вы отлично). В любом случае, они до сих пор не могут тратить свои монеты.
Мэтт Corallo сейчас офлайн Пожаловаться на Matt Corallo   Ответить с цитированием Мультицитирование сообщения от Matt Corallo Быстрый ответ на сообщение Matt Corallo

12 мая 2011, 2:30:11 AM   # 11
 
 
Сообщения: 868
Цитировать по имени
цитировать ответ
по умолчанию Re: [RFC] В памяти ключ схема шифрования

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

(Обратите внимание, я не много думал о возможных дырах в этой схеме, но быстро прочитали, кажется, как хорошее использование асимметричной криптографии для создания простого, но более безопасного пользовательского опыта)
Стив сейчас офлайн Пожаловаться на Steve   Ответить с цитированием Мультицитирование сообщения от Steve Быстрый ответ на сообщение Steve

12 мая 2011, 10:51:59 AM   # 12
 
 
Сообщения: 755
Цитировать по имени
цитировать ответ
по умолчанию Re: [RFC] В памяти ключ схема шифрования

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

(Обратите внимание, я не много думал о возможных дырах в этой схеме, но быстро прочитали, кажется, как хорошее использование асимметричной криптографии для создания простого, но более безопасного пользовательского опыта)
Я полагаю, его довольно много решил, что пароли будут введены в посыле время. Вопрос заключается в том, чтобы сделать шифрование ... Должны ли мы держать его симметричны (лучше ИМХО) или пойти асимметричны, как предложение ГАРО здесь. Единственная разница в том, как добавляются ключи. В моей схеме, ключи добавляются в keypool при отправке монет, или при вызове команды topupkeypool RPC (который требует пароля бумажника). Если keypool пуст и клиенту нужен новый адрес, он должен цикл назад вокруг и получить старый адрес (или я предполагаю, что это может вернуть ошибку, но я предпочитаю езду на велосипед). Это означает, что вы получите немного меньше анонимности по умолчанию, и может означать, что резервные копии не содержат такого большого keypool, как вы могли бы (вы должны позвонить topupkeypool, прежде чем резервное копирование по этой причине). 
В схеме СИПА ключи могут быть добавлены свободно, как они зашифрованы асимметрично. Тем не менее, я думаю, что ключ-дополнение атаки слишком большой проблемой для потенциальных преимуществ. 
Мэтт Corallo сейчас офлайн Пожаловаться на Matt Corallo   Ответить с цитированием Мультицитирование сообщения от Matt Corallo Быстрый ответ на сообщение Matt Corallo

22 мая 2011, 1:41:32 AM   # 13
 
 
Сообщения: 314
Цитировать по имени
цитировать ответ
по умолчанию Re: [RFC] В памяти ключ схема шифрования

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



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW