{% assign version = '1.1.0' | split: '.' %}
{% include disclaimer.html translated="true" version=page.version %}
#  Верификация двоичных файлов: Linux, Mac и Windows с использованием инструментов CLI (руководство для продвинутых пользователей)

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

Для защиты целостности двоичных файлов команда Monero обеспечивает криптографически подписанный список всех хешей [SHA256](https://en.wikipedia.org/wiki/SHA-2) Если загруженный вами двоичный файл был изменён, он будет выдавать хеш, [отличающийся](https://en.wikipedia.org/wiki/File_verification) от того, что находится в файле.

Это руководство для продвинутых пользователей операционных систем Linux, Mac и Windows, которое подразумевает использование командной строки. В нём подробно рассматривается процесс установки необходимого программного обеспечения, импорта ключа подписи, загрузки необходимых файлов и, наконец, проверки аутентичности ваших двоичных файлов.

## Содержание:

### [1. Установка GnuPG](#1-installing-gnupg)
### [2. Верификация и импорт ключа подписи](#2-verify-and-import-signing-key)
  + [2.1. Получение ключа подписи](#21-get-signing-key)
  + [2.2. Верификация ключа подписи](#22-verify-signing-key)
  + [2.3. Импорт ключа подписи](#23-import-signing-key)
### [3. Загрузка и верификация хеш-файла](#3-download-and-verify-hash-file)
  + [3.1. Получение хеш-файла](#31-get-hash-file)
  + [3.2. Верификация хеш-файла](#32-verify-hash-file)
### [4. Download & Verify Binary](#4-download-and-verify-binary)
  + [4.1. Получение двоичного файла Monero](#41-get-monero-binary)
  + [4.2. Верификация двоичного файла под Linux и Mac](#42-binary-verification-on-linux-or-mac)
  + [4.3. Верификация двоичного файла под Windows](#43-binary-verification-on-windows)

## 1. Установка GnuPG

+ Для Windows: посетите [страницу загрузки Gpg4win](https://gpg4win.org/download.html) и следуйте инструкциям по установке.

+ Для Mac: посетите [страницу загрузки Gpgtools](https://gpgtools.org/) и следуйте инструкциям по установке.

+ Для Linux: GnuPG устанавливается по умолчанию.

## 2. Верификация и импорт ключа подписи

В данном разделе будет рассмотрен вопрос получения ключа подписи Monero, проверки его правильности и импорта ключа в GnuPG.

### 2.1. Получение ключа подписи

Для Windows или Mac можно взять [GPG ключ Fluffypony](https://raw.githubusercontent.com/monero-project/monero/master/utils/gpg_keys/fluffypony.asc), оторый он использует для подписи двоичных файлов Monero, и сохранить страницу как `fluffypony.asc` в вашей исходной, «домашней» директории.

Для Linux можно загрузить ключ подписи Fluffypony, используя следующую команду:

```
wget -O fluffypony.asc https://raw.githubusercontent.com/monero-project/monero/master/utils/gpg_keys/fluffypony.asc
```

### 2.2. Верификация ключа подписи

В случае со всеми операционными системами следует проверить отпечаток в `fluffypony.asc` используя следующую команду в консоли:

```
gpg --keyid-format long --with-fingerprint fluffypony.asc
```


Следует проверить совпадение отпечатков:

```
pub  2048R/7455C5E3C0CDCEB9 2013-04-08 Riccardo Spagni <ric@spagni.net>
      Key fingerprint = BDA6 BD70 42B7 21C4 67A9  759D 7455 C5E3 C0CD CEB9
sub  2048R/55432DF31CCD4FCD 2013-04-08
```

Если отпечаток **СОВПАДЕТ**, можно продолжать.

В случае **НЕСОВПАДЕНИЯ** отпечатка, **ПРОДОЛЖАТЬ НЕ СЛЕДУЕТ**. Вместо этого необходимо удалить файл `fluffypony.asc` и вернуться к [пункту 2.1](#21-get-signing-key).

### 2.3. Импорт ключа подписи

Используя консоль, импортировать ключ подписи:

```
gpg --import fluffypony.asc
```

Если ключ импортируется впервые, выход должен выглядеть так:

```
gpg: key 0x7455C5E3C0CDCEB9: 2 signatures not checked due to missing keys
gpg: key 0x7455C5E3C0CDCEB9: public key "Riccardo Spagni <ric@spagni.net>" importe
d
gpg: Total number processed: 1
gpg:               imported: 1
gpg: no ultimately trusted keys found
```

Если же ключ импортировался до этого, то выход будет следующим:

```
gpg: key 0x7455C5E3C0CDCEB9: "Riccardo Spagni <ric@spagni.net>" not changed
gpg: Total number processed: 1
gpg:              unchanged: 1
```

## 3. Загрузка и верификация хеш-файла

В данном разделе рассматривается вопрос загрузки хеш-файла и проверки его аутентичности.

### 3.1. Получение хеш-файла

В том случае, если установлена операционная система Windows или Mac, следует перейти на страницу [хеш-файлов на getmonero.org](https://getmonero.org/downloads/hashes.txt) и сохранить её в своей домашней директории как `hashes.txt`.

В том случае, если используется Linux, можно загрузить подписанный хеш-файл, используя следующую команду:

```
wget -O hashes.txt https://getmonero.org/downloads/hashes.txt
```

### 3.2. Верификация хеш-файла

Хеш-файл подписывается ключом `94B7 38DD 3501 32F5 ACBE  EA1D 5543 2DF3 1CCD 4FCD`, который является подключом ключа `BDA6 BD70 42B7 21C4 67A9  759D 7455 C5E3 C0CD CEB9` (что видно в выходе ниже).

В случае со всеми операционными системами следует проверить подпись хеш-файла, введя следующую команду в консоль:

```
gpg --verify hashes.txt
```

Если файл является аутентичным (подлинным), выход будет выглядеть так:

```
gpg: Signature made Thu 05 Apr 2018 06:07:35 AM MDT
gpg:                using RSA key 94B738DD350132F5ACBEEA1D55432DF31CCD4FCD
gpg: Good signature from "Riccardo Spagni <ric@spagni.net>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: BDA6 BD70 42B7 21C4 67A9  759D 7455 C5E3 C0CD CEB9
     Subkey fingerprint: 94B7 38DD 3501 32F5 ACBE  EA1D 5543 2DF3 1CCD 4FCD
```

Если в выходе видно, что подпись является **ПРАВИЛЬНОЙ**, как в примере, показанном выше, можно продолжать.

Если подпись в выходе является **НЕПРАВИЛЬНОЙ**, **ПРОДОЛЖАТЬ НЕ СЛЕДУЕТ.** Необходимо удалить файл `hashes.txt` и вернуться к [пункту 3.1](#31-get-hash-file).

## 4. Загрузка и верификация двоичного файла

Этот раздел посвящён загрузке подходящего для вашей операционной системы двоичного файла Monero, получению хеша `SHA256` для загруженного файла, а также проверки правильности этого файла.

### 4.1. Получение двоичного файла Monero

Если установлена операционная система Windows или Mac, необходимо перейти на [getmonero.org](https://getmonero.org/downloads/) и загрузить соответствующий используемой операционной системе файл, после чего сохранить его в домашней директории. **На данном этапе файлы извлекать не следует.**

Для Linux можно загрузить инструменты командной строки, используя следующую команду:

```
wget -O monero-linux-x64-v0.12.0.0.tar.bz2 https://downloads.getmonero.org/cli/linux64
```

### 4.2. Верификация двоичного файла под Linux и Mac

Этапы проверки для Linux и Mac ничем не отличаются. Используя консоль, необходимо получить хеш `SHA256` загруженного двоичного файла Monero. Для примера в этом руководстве взят двоичный файл для `Linux 64-bit` GUI. Следует заменить `monero-gui-linux-x64-v0.12.0.0.tar.bz2` на имя двоичного файла, загруженного в соответствии с [пунктом 4.1](#41-get-monero-binary).

```
shasum -a 256 monero-gui-linux-x64-v0.12.0.0.tar.bz2
```

Выход должен выглядеть так, как показано, но при этом он будет отличаться в случае с каждым двоичным файлом. Хеш SHA256 должен соответствовать указанному в файле hashes.txt двоичного файла.

```
fb0f43387b31202f381c918660d9bc32a3d28a4733d391b1625a0e15737c5388  monero-gui-linux-x64-v0.12.0.0.tar.bz2
```

При **СОВПАДЕНИИ** хеша можно завершить работу с настоящим руководством! Теперь файлы можно извлечь и установить.

В случае **НЕСОВПАДЕНИЯ** хеша, **ПРОДОЛЖАТЬ НЕ СЛЕДУЕТ.** Необходимо удалить загруженный двоичный файл и вернуться к [пункту 4.1](#41-get-monero-binary).

### 4.3. Верификация двоичного файла под Windows

Используя терминал, необходимо получить хеш `SHA256` загруженного двоичного файла Monero. Для примера в этом руководстве взят двоичный файл для `Windows, 64bit` GUI. Следует заменить `monero-gui-win-x64-v0.12.0.0.zip` на имя двоичного файла, загруженного в соответствии с [пунктом 4.1](#41-get-monero-binary).

```
certUtil -hashfile monero-gui-win-x64-v0.12.0.0.zip SHA256
```
Выход должен выглядеть так, как показано, но при этом он будет отличаться в случае с каждым двоичным файлом. Хеш `SHA256` должен соответствовать указанному в файле `hashes.txt` двоичного файла.

```
SHA256 hash of file monero-gui-win-x64-v0.12.0.0.zip:
4b 9f 31 68 6e ca ad 97 cd b1 75 e6 57 4b f3 07 f8 d1 c4 10 42 78 25 f4 30 4c 21 da 8a ac 18 64
CertUtil: -hashfile command completed successfully.
```

При **СОВПАДЕНИИ** хеша можно завершить работу с настоящим руководством! Теперь файлы можно извлечь и установить.

В случае **НЕСОВПАДЕНИЯ** хеша, **ПРОДОЛЖАТЬ НЕ СЛЕДУЕТ.** Необходимо удалить загруженный двоичный файл и вернуться к [пункту 4.1](#41-get-monero-binary).