2.1.4.2 Проверка подписи с использованием GnuPG
Другой метод проверки целостности и подлинности пакета — использование криптографических подписей. Это более надёжный метод, чем использование контрольных сумм MD5, но требует больше усилий.
Мы подписываем загружаемые пакеты MySQL с помощью GnuPG (GNU Privacy Guard). GnuPG — это открытая альтернатива хорошо известному Pretty Good Privacy (PGP) от Фила Циммерманна. Большинство дистрибутивов Linux поставляют GnuPG по умолчанию. В противном случае, см. http://www.gnupg.org/ для получения дополнительной информации о GnuPG и способах его получения и установки.
Для проверки подписи конкретного пакета сначала необходимо получить копию нашего публичного ключа GPG, которую можно загрузить с http://pgp.mit.edu/. Искомый ключ имеет имя mysql-build@oss.oracle.com. Идентификатор ключа для пакетов MySQL 8.0.36 и выше, а также MySQL 8.3.0 и выше, равен A8D3785C. После получения ключа, перед использованием для проверки пакетов MySQL, необходимо сравнить его со значением ключа. В качестве альтернативы, вы можете скопировать и вставить ключ непосредственно из текста ниже.
Публичный ключ GPG сборки для более ранних релизов MySQL (идентификатор ключа 5072E1F5 или 3A79BD29), см. Раздел 2.1.4.5, «Публичный ключ GPG сборки для архивированных пакетов».
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: SKS 1.1.6
Comment: Hostname: pgp.mit.edu
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
cAZUlaj3id3TxquAlud4lWDz
=h5nH
-----END PGP PUBLIC KEY BLOCK-----
Чтобы импортировать ключ сборки в ваш личный открытый ключ GPG, используйте команду gpg --import. Например, если вы сохранили ключ в файл с именем mysql_pubkey.asc, команда импорта выглядит следующим образом:
$> gpg --import mysql_pubkey.asc
gpg: key B7B3B788A8D3785C: public key "MySQL Release Engineering
<mysql-build@oss.oracle.com>" imported
gpg: Total number processed: 1
gpg: imported: 1
Вы также можете загрузить ключ с сервера публичных ключей, используя идентификатор открытого ключа, A8D3785C:
$> gpg --recv-keys A8D3785C
gpg: requesting key A8D3785C from hkp server keys.gnupg.net
gpg: key A8D3785C: "MySQL Release Engineering <mysql-build@oss.oracle.com>"
1 new user ID
gpg: key A8D3785C: "MySQL Release Engineering <mysql-build@oss.oracle.com>"
53 new signatures
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg: new user IDs: 1
gpg: new signatures: 53
Если вы хотите импортировать ключ в вашу конфигурацию RPM для проверки установленных пакетов RPM, вы должны иметь возможность импортировать ключ напрямую:
$> rpm --import mysql_pubkey.asc
Если у вас возникнут проблемы или вам потребуется информация, специфичная для RPM, см. Раздел 2.1.4.4, «Проверка подписи с помощью RPM».
После загрузки и импорта публичного ключа сборки загрузите необходимый пакет MySQL и соответствующую подпись, которая также доступна на странице загрузки. Файл подписи имеет такое же имя, что и файл дистрибутива, с расширением .asc, как показано в примерах в следующей таблице.
Таблица 2.1 Файлы пакета и подписи MySQL для исходных файлов
| Тип файла | Имя файла |
|---|---|
| Файл дистрибутива | mysql-9.2.0-linux-glibc2.28-x86_64.tar.xz |
| Файл подписи | mysql-9.2.0-linux-glibc2.28-x86_64.tar.xz.asc |
Убедитесь, что оба файла хранятся в одном каталоге, а затем выполните следующую команду для проверки подписи файла дистрибутива:
$> gpg --verify package_name.asc
Если загруженный пакет действителен, вы должны увидеть сообщение Good signature, подобное этому:
$> gpg --verify mysql-9.2.0-linux-glibc2.28-x86_64.tar.xz.asc
gpg: Signature made Fri 15 Dec 2023 06:55:13 AM EST
gpg: using RSA key BCA43417C3B485DD128EC6D4B7B3B788A8D3785C
gpg: Good signature from "MySQL Release Engineering <mysql-build@oss.oracle.com>"
Сообщение Good signature указывает, что подпись файла действительна при сравнении с подписью на нашем сайте. Однако могут также отображаться предупреждения, например:
$> gpg --verify mysql-9.2.0-linux-glibc2.28-x86_64.tar.xz.asc
gpg: Signature made Fri 15 Dec 2023 06:55:13 AM EST
gpg: using RSA key BCA43417C3B485DD128EC6D4B7B3B788A8D3785C
gpg: Good signature from "MySQL Release Engineering <mysql-build@oss.oracle.com>"
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: BCA4 3417 C3B4 85DD 128E C6D4 B7B3 B788 A8D3 785C
Это нормально, поскольку они зависят от вашей конфигурации. Вот пояснения к этим предупреждениям:
gpg: нет ключей, имеющих окончательную надёжность: Это означает, что конкретный ключ не является «окончательно надёжным» для вас или вашей сети доверия, что допустимо для целей проверки подписей файлов.
ПРЕДУПРЕЖДЕНИЕ: Этот ключ не сертифицирован надёжной подписью! Нет указаний на то, что подпись принадлежит владельцу.: Это относится к вашему уровню доверия к тому, что у вас есть наш реальный публичный ключ. Это личное решение. В идеале разработчик MySQL вручил бы вам ключ лично, но чаще всего вы загружаете его. Была ли загрузка скомпрометирована? Вероятно, нет, но это решение зависит от вас. Создание сети доверия является одним из методов доверия к ним.
См. документацию GPG для получения дополнительной информации о работе с открытыми ключами.
© 2025 Oracle
Licensed under the GPLv2 License.