Bitcoin Forum

Local => Новички => Topic started by: IeSua on April 22, 2019, 09:42:39 PM



Title: Проверка PGP подписи на примере Electrum BTC
Post by: IeSua on April 22, 2019, 09:42:39 PM

[Детальная инструкция:] проверка PGP подписи и путей доверия на примере биткоин кошелька Electrum.

Этот метод применим для проверки подписей любых других дистрибутивов.


Что для этого потребуется:

Для начала мы создадим собственную пару ключей. Чтобы не повторятся, нам потребуется уже существующая тема на форуме - https://bitcointalk.org/index.php?topic=5103575.0 (PGP Подпись - Шифровка / Дешифровка сообщения). В теме есть указатель Содержание, нам понадобиться все вплоть до Создание сообщения и подписи PGP. Переходи по ссылке, читаем и делаем все, что выделено зеленым прямоугольником:

https://s16.directupload.net/images/190421/7flfhw98.jpg
резервное изображение: https://imgur.com/Jatirky

После того как вы создали собственную пару ключей, приступаем к основной части

Прежде всего нам нужен PGP PUBLIC KEY Thomas Voegtlin (ThomasV), ссылка на который есть на загрузочной странице официального сайта Electrum.

https://s16.directupload.net/images/190421/h4bbix9c.jpg
резервное изображение: https://imgur.com/pOrFMFR

Нажимаем на сайте ссылку ThomasV и видим публичный ключ автора. Далее, нам надо импортировать этот ключ в программу Kleopatra.  Для этого выделяем и копируем все содержимое Ctrl+A -> Копировать.

https://s16.directupload.net/images/190421/kk5c6lxy.jpg
резервное изображение: https://imgur.com/MXz5n9G

Импортируем этот ключ в Kleopatra: Tools -> Clipboard -> Certificate Import

https://s16.directupload.net/images/190421/hmgyrvh5.jpg
резервное изображение: https://imgur.com/HJtYeHv

Получаем:

https://s16.directupload.net/images/190421/bidlktor.jpg
резервное изображение: https://imgur.com/CktHnDo
sudopurgewot - это мой тестовый ключ, созданный по инструкции о которой я говорил в самом начале.

На момент написания этой статьи, вместе с ключом ThomasV импортируется еще одна запись - Animazing. Исходя из информации на github (https://github.com/spesmilo/electrum/blob/cb6989cea61894ab79a0ccccbc44affff9f030e4/AUTHORS) и сообщений на форуме (https://bitcointalk.org/index.php?topic=5121057.msg50182515#msg50182515), Animazing - это один из разработчиков Electrum.

https://s16.directupload.net/images/190421/l6li8ywd.jpg
резервное изображение: https://imgur.com/dt4TTto

Ключ Animazing нам не нужен -  смело его удаляем.

https://s16.directupload.net/images/190421/daeyrjle.jpg
https://imgur.com/sUwarih

Проверка подлинности открытого ключа

Как же убедиться в том, что импортированный нами ключ на самом деле принадлежит автору программы Thomas Voegtlin? На все 100% - никак. Но мы можем значительно увеличить вероятность этого. Для этого нам нужен публичный ключ или отпечаток ключа (fingerprint) доверенного человека. Как доверенных, будем рассматривать людей которые имеют непосредственное отношение к блокчейну и биткоину.

Вариант номер 1:

Luke Dashjr - один из Bitcoin Core разработчиков. У него есть учетная запись на bitcointalk - https://bitcointalk.org/index.php?action=profile;u=3318, множество тем с его проектами в которых присутствуют ссылки на его PGP ключ. Допустим, в этой теме (https://bitcointalk.org/?topic=877081) или на одном из его сайтов Bitcoin Knots, ссылки на которые присутствуют в его сигнатуре на форуме.


Вариант номер 2:

Наш любимый администратор theymos - https://bitcointalk.org/index.php?action=profile;u=35

Его PGP публичный ключ можно найти во множестве его же постов на форуме: https://bitcointalk.org/index.php?topic=155002.msg1643270#msg1643270


Или в этой теме https://bitcointalk.org/index.php?topic=1588906.msg15956529#msg15956529 есть ссылка https://bitcointalk.org/verify_pubkeys.txt в которой присутствует его публичный ключ, а также ключи многих BitCore разработчиков, в том числе Wladimir J. van der Laan, Gregory Maxwell и вышеупомянутый Luke Dashjr (Luke-Jr).


Не будем трогать нашего уважаемого администратора (на всякий случай ;)), а за основу для проверки возьмем публичный ключ Luke Dashjr. Тем более проверить мы его можем сразу в двух местах, из ранее указанных его собственных постов (https://bitcointalk.org/?topic=877081) и по ссылке от theymos (https://bitcointalk.org/verify_pubkeys.txt). (Необязательно использовать именно этот. Можете выбрать любой другой.)

Копируем его ключ и импортируем в Kleopatra. В общем, проделываем тоже, что и с ключом Thomas Voegtlin в самом начале. Получаем еще одну запись в программе.


PGP pathfinder & key statistics

Теперь у нас есть два публичных ключа: Thomas Voegtlin и Luke Dashjr, а значит мы можем провести поиск путей доверия при помощи сайта https://pgp.cs.uu.nl/

https://s16.directupload.net/images/190421/nf3tiivd.jpg
https://imgur.com/Nl2yOiF

Путь доверия - это последовательность подписей, в которых человек №1 подтверждает подлинность личности №2, №2 подтверждает подлинность личности №3, №3 подтверждает личность №4 и т. д..

Для проверки нам нужны Fingerprint Thomas Voegtlin и Luke Dashjr. Найти их можно кликнув правой кнопкой по нужному идентификатору и выбрать Details

https://s16.directupload.net/images/190421/ogskrwjz.jpg
https://imgur.com/dcbeoch

https://s16.directupload.net/images/190421/jihjh36x.jpg
https://imgur.com/ovNxTRu

Fingerprint Thomas Voegtlin: 6694 D8DE 7BE8 EE56 31BE D950 2BD5 824B 7F94 70E6
Fingerprint Luke Dashjr: E463 A93F 5F31 17EE DE6C 7316 BD02 9424 21F4 889F

Переходим на сайт https://pgp.cs.uu.nl/ и проверяем пути доверия. В from вставляем последние 16 символов из Fingerprint Luke Dashjr (BD02 9424 21F4 889F), а в to последние 16 символов из Fingerprint Thomas Voegtlin (2BD5 824B 7F94 70E6) и нажимаем кнопку trust paths.

https://s16.directupload.net/images/190421/9299bjxx.jpg
https://imgur.com/2V7FyJ3

В итоге получится вот такой список из 8 путей доверия https://pgp.cs.uu.nl/paths/bd02942421f4889f/to/2bd5824b7f9470e6.html
(На скриншоте только 4)

https://s16.directupload.net/images/190421/y8sjo53v.jpg
https://imgur.com/toNnJAe

Первый путь доверия (который выделен зеленой рамкой), говорит о том, что Luke Dashjr подтверждает ключ Peter Todd, а Peter Todd подтверждает подлинность ключа Thomas Voegtlin. И так далее.

Теперь мы с определенной долей уверенности можем сказать, что ранее импортированный ключ Thomas Voegtlin (ThomasV), является верным. И раз это так, то теперь мы можем изменить уровень доверия для публичного ключа Thomas Voegtlin в программе Kleopatra. Для этого нажимаем правой кнопкой на идентификатор и выбираем Change Certification Trust.

https://s16.directupload.net/images/190421/fsm5jqdw.jpg
https://imgur.com/3c704mN

Выбираем уровень доверия и нажимаем OK
https://s16.directupload.net/images/190421/beqg44fd.jpg
https://imgur.com/8xTLJUT

Снова нажимаем правой кнопкой на идентификатор ThomasV и выбираем Certify...
https://s16.directupload.net/images/190421/68dn4vkz.jpg
https://imgur.com/0aQBNBR

Выставляем чекбоксы как на скришоте ниже и нажимаем Далее

https://s16.directupload.net/images/190421/uabcx6v5.jpg
https://imgur.com/Ua1Ac57

В следующем окне выберите Certify only for myself, нажмите кнопку Sertify и введите пароль от своей пары ключей, созданной вами в самом начале
https://s16.directupload.net/images/190421/zbtuejna.jpg
https://imgur.com/PONKr2M

Осталось самое простое. Проверка PGP подписи кошелька Electrum

Перейдите на официальный сайт Electrum (ссылки не даю, ищите сами), загрузите программу и файл подписи .asc (правый клик по signature и Сохранить объект как... или Сохранить ссылку как..., в зависимости от браузера) который ей соответствует.


Поместите программу и файл подписи в одну папку. Далее 2 варианта.
Вариант №1. Если вы установили вместе с Kleopatra весь пакет gpg4win, то при правом клике мышью в вашем контекстном меню появится новый пункт Другие параметры GpgEX -> Проверить.

https://s16.directupload.net/images/190422/6twc34dl.jpg
https://imgur.com/EwEpsnB

Вариант №2. Если вы установили только Kleopatra. Перейдите в окно программы, выберите Decrypt/Verify..., найдите ранее сохраненный файл подписи .asc и нажмите Открыть


В итоге вы должны получить результат, который говорит о том, что файл был подписан ключом PGP с отпечатком 6694 D8DE 7BE8 EE56 31BE D950 2BD5 824B 7F94 70E6, который, как мы убедились, принадлежит Thomas Voegtlin. А это значит, что установочный файл Electrum кошелька является подлинным.



Title: Re: Проверка PGP подписи для биткоин кошелька Electrum
Post by: IeSua on April 22, 2019, 09:42:56 PM
В предыдущем посте расписано как все сделать совсем правильно. Но можно и намного проще, менее надежно, но быстрее.

- скачать и установить программу Kleopatra
- импортировать PGP PUBLIC KEY Thomas Voegtlin (ThomasV) в Kleopatra (смотреть первый пост)
или нажмите Lookup on server на панели инструментов и введите отпечаток Thomas Voegtlin: 6694 D8DE 7BE8 EE56 31BE D950 2BD5 824B 7F94 70E6. Результат должен быть только один. Выберите его и нажмите на кнопку Import

https://s16.directupload.net/images/190422/8zq73l5n.jpg
резерв: https://imgur.com/cJ0tOOQ


- скачать кошелек Electrum и файл подписи
- поместите программу и файл подписи в одну папку
- перейдите в окно программы, выберите Decrypt/Verify..., найдите ранее сохраненный файл подписи .asc и нажмите Открыть

https://s16.directupload.net/images/190422/mzruo2v9.jpg
резерв:https://imgur.com/PoR51aX

Как только подпись была успешно проверена, вы должны увидеть вот такой результат:

https://s16.directupload.net/images/190422/vg27stim.jpg
резерв:https://imgur.com/gdPXFEQ

Не стоит волноваться по поводу надписи выделенной жирным текстом “The data could not be verified”. Это говорит только о том, что вы не подписали ключ Thomas Voegtlin и не сделали его доверенным. Самое главное здесь это то, что подсвечено синим: ThomasV <thomasv1@gmx.de> (2BD5 824B 7F94 70E6).

Если бы проверка подписи не удалась, то вы бы увидели другое сообщение - “Invalid signature” на красном фоне.

https://s16.directupload.net/images/190422/pozyg5rw.jpg
резерв:https://imgur.com/2jzud7n

Ссылки:
документация Kleopatra: https://docs.kde.org/stable5/en/pim/kleopatra/index.html
документация GnuPG: https://www.gnupg.org/documentation/
профиль автора программы Thomas Voegtlin на форуме: https://bitcointalk.org/index.php?action=profile;u=3137
PGP Подпись - Шифровка / Дешифровка сообщения: https://bitcointalk.org/index.php?topic=5103575.0
Список серверов ключей: http://dmoztools.net/Computers/Security/Products_and_Tools/Cryptography/PGP/Key_Servers/, https://sks-keyservers.net/overview-of-pools.php
Reddit: https://www.reddit.com/r/Electrum/
Известный на сегодняшний день Fingerprint Thomas Voegtlin: 6694 D8DE 7BE8 EE56 31BE D950 2BD5 824B 7F94 70E6


Title: Re: Проверка PGP подписи для биткоин кошелька Electrum
Post by: IeSua on April 22, 2019, 09:43:03 PM
резерв


Title: Re: Проверка PGP подписи для биткоин кошелька Electrum
Post by: chimk on April 23, 2019, 02:42:24 PM
фотки в теме слетели, поправьте пожалуйста. в ближайшее время займусь самообучением с помощью вашей темы


Title: Re: Проверка PGP подписи для биткоин кошелька Electrum
Post by: IeSua on April 23, 2019, 03:30:46 PM
фотки в теме слетели, поправьте пожалуйста. в ближайшее время займусь самообучением с помощью вашей темы

Вот же зараза. Раньше проблем с этим хостингом изображений не было. Сейчас займусь.

Upd: Это сам хостинг глючил. Сейчас вроде все нормально. Добавил резервные копии.
Спрашивайте, если что-нибудь непонятно будет.


Title: Re: Проверка PGP подписи для биткоин кошелька Electrum
Post by: johhnyUA on April 23, 2019, 09:52:24 PM
Хороший гайд  :)
В случае с Линукса все намного проще, так как работает через консоль со встроенным pgp и парой команд.  
Code:
gpg --import ThomasV.asc 
(перед этим скачиваем паблик кей по ссылке)
Code:
gpg --fingerprint ThomasV
(смотрим все фингерпринты, и сравниваем с официальными отпечатками)
Code:
gpg --verify filenamaElectrum.asc
И вуаля   :)
А официальный fingerprint Томаса можно получить с того же официального сайта электрум, там есть ссылка на видео в юутубе где он личной персоной на фоне своего фингерпринта  ;)

Переходите на Линукс, что сказать  :D


Title: Re: Проверка PGP подписи для биткоин кошелька Electrum
Post by: IeSua on April 24, 2019, 12:03:07 PM
Инструкция имеет всеобщий характер и применима к проверке достоверности подписи любых дистрибьютивов, а не только Электриум. Чтобы это было более понятным, наверное было бы неплохо изменить название на  "Проверка PGP подписи на примере Electrum", ИМХО

Согласен! Изменил заголовок.


Title: Re: Проверка PGP подписи на примере Electrum BTC
Post by: F1ak on May 19, 2019, 02:36:21 PM

- скачать и установить программу Kleopatra
У меня вот на этом этапе загвоздка наступила (есть предыдущий электрум, но недавно были проблемы с серверами, поэтому ставлю новый на вируталку) - скачал gpg4win проверяю его certutil -hashfile.... sha1 - и мне выдает вот это -  bd1d8a11b71dc8ef4ea856ffac0440d9005a9c40

а там же ниже на сайте (https://bitzuma.com/posts/how-to-verify-an-electrum-download-on-windows/) указано вот это

6db53bf3a350faceda861a3fd32c15106ce455bf  

получается я не тот gpg4win скачал?

а здесь (https://www.gpg4win.org/package-integrity.html)
Quote
SHA1 checksums
bd1d8a11b71dc8ef4ea856ffac0440d9005a9c40  gpg4win-3.1.7.exe
63644661a59ada50d33edbf986c4357e39fb8857  gpg4win-src-3.1.7.exe
8e5311fe3e8201ebf7a102d7952d147701a5dac3  gpg4win-3.1.7.tar.bz2


Title: Re: Проверка PGP подписи на примере Electrum BTC
Post by: IeSua on May 19, 2019, 05:46:48 PM

- скачать и установить программу Kleopatra
У меня вот на этом этапе загвоздка наступила (есть предыдущий электрум, но недавно были проблемы с серверами, поэтому ставлю новый на вируталку) - скачал gpg4win проверяю его certutil -hashfile.... sha1 - и мне выдает вот это -  bd1d8a11b71dc8ef4ea856ffac0440d9005a9c40

а там же ниже на сайте (https://bitzuma.com/posts/how-to-verify-an-electrum-download-on-windows/) указано вот это

6db53bf3a350faceda861a3fd32c15106ce455bf  

получается я не тот gpg4win скачал?

а здесь (https://www.gpg4win.org/package-integrity.html)
Quote
SHA1 checksums
bd1d8a11b71dc8ef4ea856ffac0440d9005a9c40  gpg4win-3.1.7.exe
63644661a59ada50d33edbf986c4357e39fb8857  gpg4win-src-3.1.7.exe
8e5311fe3e8201ebf7a102d7952d147701a5dac3  gpg4win-3.1.7.tar.bz2


На сайте (https://bitzuma.com/posts/how-to-verify-an-electrum-download-on-windows/) рассмотрен конкретный пример проверки версии 3.0.1. И для нее верен хэш 6db53bf3a350faceda861a3fd32c15106ce455bf

А Вы версию 3.1.7 скачиваете. Для нее верен хэш:

Quote
SHA1 checksums
bd1d8a11b71dc8ef4ea856ffac0440d9005a9c40  gpg4win-3.1.7.exe
63644661a59ada50d33edbf986c4357e39fb8857  gpg4win-src-3.1.7.exe
8e5311fe3e8201ebf7a102d7952d147701a5dac3  gpg4win-3.1.7.tar.bz2


Title: Re: Проверка PGP подписи на примере Electrum BTC
Post by: IeSua on October 10, 2019, 12:36:30 PM
UP