Как пересчитать хеш личных данных из Hyperledger Fabric - PullRequest
1 голос
/ 01 октября 2019

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

  • Как получить доступ к хешу личных данных?
  • Какой метод используется для пересчета хеша, сохраненного в регистре?

Заранее спасибо.

Я использую Hyperledger Fabric v1.4.2 с личными данными. Я следовал примеру мрамора.

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

Ответы [ 2 ]

0 голосов
/ 21 октября 2019

Не используйте это, личные данные - это дыра в безопасности.

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

Логика скрытых данных проста: она помещает данные в локальное встроенное хранилище данных и помещает хэш этих данных в блокчейн.

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

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

Хеширование дешево, стоимость каждого хэша на обычном ядре процессора ноутбука составляет около 3 микросекунд, в основном я могу создать 1 миллиард хэшей-кандидатов в течение одного часа на одном ядре процессора ноутбука и сравнить ихк хэшам Hyperledger Fabric DLT.

И я просто говорю об использовании на ноутбуке одного ядра, даже не 50% мощности моего ноутбука

Почему это опасно? Потому что, если злоумышленник подключен к системе Blockchain, злоумышленник знает диапазон хешируемых данных (и т. Д., Торговый идентификатор, название товара, название банка, адрес, номер мобильного телефона), поэтому вы можете легко создать словарную атаку, чтобы получитьистинные данные за хэшем.

Как насчет добавления соли к каждой хэшируемой информации? Ну, это одна вещь, которую Hyperledger Fabric не сделала.

Для их защиты Hyperledger не реализовал соль, потому что трудно передать соли контрагентам. Вы не можете использовать DLT для передачи солт-значения, потому что злоумышленники увидят его, поэтому вам нужно создать еще одно P2P-соединение с контрагентом. Если вам необходимо установить связь со всеми контрагентами, какой смысл использовать Blockchain?

Просто страшно, что так много людей используют это целое безопасности.

0 голосов
/ 20 октября 2019

, чтобы получить хеш SHA256 (используя API-интерфейс контракта Fabric 1.4.x), используйте:

let pdHashBytes = await ctx.stub.getPrivateDataHash(collectionA, readKey);
let actual_hash = pdHashBytes.toString('hex');

Вы можете рассчитать личные данные, написанные в Ubuntu, как показано ниже.

echo -n "{\"name\":\"Joe\",\"quantity\":999}" |shasum -a 256

и убедитесь, что они совпадают.

...