Документация Miscellaneous Цифровые подписи

# Цифровые подписи

### Зачем нужно проверять цифровые подписи

Может так случиться, что установочный пакет VeraCrypt, который вы загружаете с нашего сервера, был создан или модифицирован взломщиком. Например, взломщик мог воспользоваться какой-либо уязвимостью в используемом нами серверном ПО и изменить хранящиеся на сервере установочные пакеты, либо он мог изменить любые файлы при их пересылке к вам.
По этой причине следует всегда проверять целостность и аутентичность любого установочного пакета VeraCrypt , который вы загружаете или получаете из какого-либо иного источника. Другими словами, следует всегда проверять, что файл создан именно нами и не был модифицирован злоумышленником. Единственный способ это сделать – проверить у файла так называемые цифровые подписи.

### Типы используемых нами цифровых подписей

В настоящий момент мы используем цифровые подписи двух типов:

- Подписи PGP (доступны для всех пакетов с бинарными файлами и с исходным кодом для всех операционных систем).
- Подписи X.509 (доступны для пакетов с бинарными файлами для Windows).

### Преимущества подписей X.509

По сравнению с подписями PGP, подписи X.509 имеют следующие преимущества:

- значительно проще проверить, что ключ, которым подписан файл, действительно наш (а не взломщика);
- чтобы поверить подлинность подписи X.509, не требуется загружать и устанавливать никакого дополнительного ПО (см. ниже);
- не нужно загружать и импортировать наш открытый ключ (он встроен в подписанный файл);
- не нужно загружать отдельный файл с подписью (она встроена в подписанный файл).

### Преимущества подписей PGP

По сравнению с подписями X.509, подписи PGP имеют следующее преимущество:

- они не зависят от источника сертификации (который может, например, фильтроваться/контролироваться неприятелем или быть ненадёжным по другим причинам).

### Как проверять подписи X.509

Обратите внимание, что в настоящий момент подписи X.509 доступны только для самораспаковывающихся установочных пакетов VeraCrypt для Windows. Подпись X.509, встроенная в каждый из таких файлов вместе с цифровым сертификатом VeraCrypt Foundation, выпущена общественной организацией сертификации. Чтобы проверить целостность и подлинность самораспаковывающегося установочного пакета для Windows, сделайте следующее:

1. Загрузите (скачайте) самораспаковывающийся установочный пакет VeraCrypt.
2. В Проводнике Windows щёлкните правой кнопкой мыши по загруженному файлу (‘VeraCrypt Setup.exe’) и выберите в контекстном меню пункт Свойства.
3. В диалоговом окне Свойства перейдите на вкладку Цифровые подписи.
4. На вкладке Цифровые подписи в поле Список подписей дважды щёлкните по строке с надписью "IDRIX" или "IDRIX SARL".
5. Появится диалоговое окно Состав цифровой подписи. Если вверху этого окна вы увидите следующую фразу, значит целостность и подлинность пакета успешно прошли проверку и подтверждены:
   "Эта цифровая подпись действительна."
   Если такой фразы нет, это означает, что файл скорее всего повреждён.
   Примечание. В ряде устаревших версий Windows проверка подписей не работает, так как отсутствуют некоторые необходимые сертификаты.

### Как проверять подписи PGP

Чтобы проверить подпись PGP, проделайте следующее:

1. Установите любую программу шифрования с открытым ключом, поддерживающую подписи PGP. Для Windows можно загрузить Gpg4win. См. подробности на сайте https://www.gnupg.org/.
2. Создайте закрытый (личный) ключ (о том, как это сделать, см. в документации на ПО шифрования с открытым ключом).
3. Загрузите наш открытый ключ PGP с сайта AM Crypto (https://amcrypto.jp/VeraCrypt/VeraCrypt_PGP_public_key.asc) или из надёжного репозитария (ID=0x680D16DE) открытых ключей и импортируйте загруженный ключ в свою связку ключей (keyring). О том, как это сделать, см. в документации на ПО шифрования с открытым ключом. Убедитесь, что его отпечаток – 5069A233D55A0EEB174A5FC3821ACD02680D16DE.
   - Для VeraCrypt версии 1.22 и старее проверка должна использовать открытый ключ PGP, доступный по адресу https://amcrypto.jp/VeraCrypt/VeraCrypt_PGP_public_key_2014.asc или из надёжного репозитария открытых ключей (ID=0x54DDD393), чей отпечаток – 993B7D7E8E413809828F0F29EB559C7C54DDD393.
4. Подпишите импортированный ключ своим личным ключом, чтобы пометить его как надёжный (о том, как это сделать, см. в документации на ПО шифрования с открытым ключом).
   Примечание: если вы пропустите этот шаг и попытаетесь проверить любую нашу PGP-подпись, то получите сообщение об ошибке, гласящее, что цифровая подпись неверна.
5. Загрузите цифровую подпись, нажав кнопку PGP Signature рядом с файлом, который вы хотите проверить (на странице загрузок).
6. Проверьте загруженную подпись (о том, как это сделать, см. в документации на ПО шифрования с открытым ключом).

В Linux эти шаги могут быть выполнены с помощью следующих команд:

- Проверьте, что отпечаток открытого ключа равен 5069A233D55A0EEB174A5FC3821ACD02680D16DE: gpg --import --import-options show-only VeraCrypt_PGP_public_key.asc (для старых версий gpg вместо этого введите: gpg --with-fingerprint VeraCrypt_PGP_public_key.asc)
- Если отпечаток такой, как ожидалось, импортируйте открытый ключ: gpg --import VeraCrypt_PGP_public_key.asc
- Проверьте подпись у установочного архива Linux (в этом примере – для версии 1.23): gpg --verify veracrypt-1.23-setup.tar.bz2.sig veracrypt-1.23-setup.tar.bz2