После того, как вы загрузили нужный вам пакет MySQL, и перед тем как вы будете его устанавливать, вам следует убедиться в том, что он в сохранности и не был кем-либо изменен.
MySQL AB предоставляет два способа проверить пакет: контрольная сумма MD5
и криптографическая подпись с использованиемп GnuPG
, GNU Privacy Guard
.
Проверка контрольной суммы MD5
После того как вы загрузили пакет, вы должны проверить, соответствует ли контрольная сумма MD5 загруженного пакета той, что указана на страничке загрузки пакетов. У каждого пакета своя контрольная сумма, которую вы можете проверить такой командой:
shell> md5sum <пакет>
Однако не все операционные системы поддерживают команду md5sum
- на некоторых
она просто называется md5
, а в других она вовсе не поставляется. На Linux
эта команда является частью GNU Text Utilities
, которые доступны для множества
разных платформ.
Вы можете загрузить исходный код по адресу
https://www.gnu.org/software/textutils/. Если у вас уже установлен
OpenSSL
, вы также можете использовать команду openssl md5 <пакет>
. Реализация md5
для DOS/Windows доступна по адресу
https://www.fourmilab.ch/md5/.
Пример:
shell> md5sum mysql-standard-4.0.10-gamma-pc-linux-i686.tar.gz 155836a7ed8c93aee6728a827a6aa153 mysql-standard-4.0.10-gamma-pc-linux-i686.tar.gz
Вы должны удостовериться, что результирующая контрольная сумма соответствует той, что указана на страничке загрузки возле соответствующего пакета.
Множество зеркальных сайтов также предоставляют файл с именем MD5SUMS
,
который также содержит MD5
контрольные суммы всех файлов из каталога
Downloads
. Однако заметьте, что этот файл достаточно легко изменить и
это не самый надежный метод проверки целостности пакета. Если вы в сомнениях,
вы должны посмотреть на другие зеркала и сравнить увиденное.
Проверка подписи с использованием GnuPG
Гораздо более надежный метод проверки целостности пакета это использование
криптографически сигнатур. MySQL AB использует ПО GNU Privacy Guard
(GnuPG
), открытая альтернатива весьма известному пакету Pretty Good Privacy
(PGP
) Фила Циммермана (Phil Zimmermann).
См. https://www.gnupg.org/ и http://www.openpgp.org/
для более подробной информации про OpenPGP/GnuPG и как его получить и поставить на
вашей системе. Большинство поставок Linux уже идут с GnuPG прямо в поставке.
Начиная с MySQL 4.0.10 (Февраль 2003), MySQL AB начала подписывать
загружаемые пакеты с помощью GnuPG
. Криптографические сигнатуры являются
гораздо более надежным методом проверки целостности и аутентичности файла.
Для проверки подписи конкретного пакета, вам в первую очередь следует
получить копию публичного ключа GPG <[email protected]>
. Вы можете
либо взять этот ключ прямо отсюда, либо взять его на
https://www.keyserver.net/.
Key ID: pub 1024D/5072E1F5 2003-02-03 MySQL Package signing key (www.mysql.com) <[email protected]> Fingerprint: A4A9 4068 76FC BD3C 4567 70C8 8C71 8D3B 5072 E1F5 Public Key (ASCII-armored): -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see https://www.gnupg.org mQGiBD4+owwRBAC14GIfUfCyEDSIePvEW3SAFUdJBtoQHH/nJKZyQT7h9bPlUWC3 RODjQReyCITRrdwyrKUGku2FmeVGwn2u2WmDMNABLnpprWPkBdCk96+OmSLN9brZ fw2vOUgCmYv2hW0hyDHuvYlQA/BThQoADgj8AW6/0Lo7V1W9/8VuHP0gQwCgvzV3 BqOxRznNCRCRxAuAuVztHRcEAJooQK1+iSiunZMYD1WufeXfshc57S/+yeJkegNW hxwR9pRWVArNYJdDRT+rf2RUe3vpquKNQU/hnEIUHJRQqYHo8gTxvxXNQc7fJYLV K2HtkrPbP72vwsEKMYhhr0eKCbtLGfls9krjJ6sBgACyP/Vb7hiPwxh6rDZ7ITnE kYpXBACmWpP8NJTkamEnPCia2ZoOHODANwpUkP43I7jsDmgtobZX9qnrAXw+uNDI QJEXM6FSbi0LLtZciNlYsafwAPEOMDKpMqAK6IyisNtPvaLd8lH0bPAnWqcyefep rv0sxxqUEMcM3o7wwgfN83POkDasDbs3pjwPhxvhz6//62zQJ7Q7TXlTUUwgUGFj a2FnZSBzaWduaW5nIGtleSAod3d3Lm15c3FsLmNvbSkgPGJ1aWxkQG15c3FsLmNv bT6IXQQTEQIAHQUCPj6jDAUJCWYBgAULBwoDBAMVAwIDFgIBAheAAAoJEIxxjTtQ cuH1cY4AnilUwTXn8MatQOiG0a/bPxrvK/gCAJ4oinSNZRYTnblChwFaazt7PF3q zIhMBBMRAgAMBQI+PqPRBYMJZgC7AAoJEElQ4SqycpHyJOEAn1mxHijft00bKXvu cSo/pECUmppiAJ41M9MRVj5VcdH/KN/KjRtW6tHFPYhMBBMRAgAMBQI+QoIDBYMJ YiKJAAoJELb1zU3GuiQ/lpEAoIhpp6BozKI8p6eaabzF5MlJH58pAKCu/ROofK8J Eg2aLos+5zEYrB/LsrkCDQQ+PqMdEAgA7+GJfxbMdY4wslPnjH9rF4N2qfWsEN/l xaZoJYc3a6M02WCnHl6ahT2/tBK2w1QI4YFteR47gCvtgb6O1JHffOo2HfLmRDRi Rjd1DTCHqeyX7CHhcghj/dNRlW2Z0l5QFEcmV9U0Vhp3aFfWC4Ujfs3LU+hkAWzE 7zaD5cH9J7yv/6xuZVw411x0h4UqsTcWMu0iM1BzELqX1DY7LwoPEb/O9Rkbf4fm Le11EzIaCa4PqARXQZc4dhSinMt6K3X4BrRsKTfozBu74F47D8Ilbf5vSYHbuE5p /1oIDznkg/p8kW+3FxuWrycciqFTcNz215yyX39LXFnlLzKUb/F5GwADBQf+Lwqq a8CGrRfsOAJxim63CHfty5mUc5rUSnTslGYEIOCR1BeQauyPZbPDsDD9MZ1ZaSaf anFvwFG6Llx9xkU7tzq+vKLoWkm4u5xf3vn55VjnSd1aQ9eQnUcXiL4cnBGoTbOW I39EcyzgslzBdC++MPjcQTcA7p6JUVsP6oAB3FQWg54tuUo0Ec8bsM8b3Ev42Lmu QT5NdKHGwHsXTPtl0klk4bQk4OajHsiy1BMahpT27jWjJlMiJc+IWJ0mghkKHt92 6s/ymfdf5HkdQ1cyvsz5tryVI3Fx78XeSYfQvuuwqp2H139pXGEkg0n6KdUOetdZ Whe70YGNPw1yjWJT1IhMBBgRAgAMBQI+PqMdBQkJZgGAAAoJEIxxjTtQcuH17p4A n3r1QpVC9yhnW2cSAjq+kr72GX0eAJ4295kl6NxYEuFApmr1+0uUq/SlsQ== =YJkx -----END PGP PUBLIC KEY BLOCK-----
Вы можете импортировать этот ключ в ваш публичный репозитарий ключей (public keyring)
используя gpg --import
. См. документацию на GPG
для более подробной информации
о том, как работать с публичными ключами.
После того, как вы загрузили и импортирлвали публичный ключ сборки, вы можете загрузить выбранный вами пакет MySQL и соответствующую подпись, доступную на той же страничке загрузки.
Файл сигнатуры имеет расширение .asc
. Например,
сигнатура для mysql-standard-4.0.10-gamma-pc-linux-i686.tar.gz
будет mysql-standard-4.0.10-gamma-pc-linux-i686.tar.gz.asc
.
Удостоверьтесь, чтобы оба файла находятся в том же самом каталоге и затем
запустите такую команду для проверки сигнатуры файла:
shell> gpg --verify <package>.asc Example: shell> gpg --verify mysql-standard-4.0.10-gamma-pc-linux-i686.tar.gz.asc gpg: Warning: using insecure memory! gpg: Signature made Mon 03 Feb 2003 08:50:39 PM MET using DSA key ID 5072E1F5 gpg: Good signature from "MySQL Package signing key (www.mysql.com) <[email protected]>"
Сообщение "Good signature" сообщает вам о том, что все в порядке.
Для пакетов RPM
, отдельного файла подписи не предоставляется - пакеты RPM
уже
сами по себе имеют встроенную поддержку подписей GPG
и контрольных сумм MD5
. Вы можете
проверить их такой командой:
shell> rpm --checksig <package>.rpm
Пример:
shell> rpm --checksig MySQL-server-4.0.10-0.i386.rpm MySQL-server-4.0.10-0.i386.rpm: md5 gpg OK
Внимание: Если вы используете RPM 4.1 и он сообщает следующее: (GPG) NOT OK (MISSING KEYS: GPG#5072e1f5)
(даже несмотря на то, что вы импортировали
ключ в ваш публичный репозиторий ключей GPG, keyring) - вам следует
импортировать ключ в репозиторий ключей RPM.
RPM 4.1 больше не использует ваш репозиторий ключей GPG (и GPG вообще), но
поддерживает свой репозиторий, поскольку RPM - это общесистемная утилита, а
репозиторий ключей GPG - это специфичный для пользователя файл).
Чтобы импортировать публичный ключ MySQL в RPM, используйте вот такую команду:
shell> rpm --import <pubkey>
Пример:
shell> rpm --import mysql_pubkey.asc
Если вдруг вы заметите что контрольные суммы MD5 или подпись GPG не совпадают,
попробуйте в первую очередь загрузить соответствующий пакет еще один раз, может
быть, даже с другого сервера. Если вы не сможете успешно удостовериться
в целостности пакета, пожалуйста, сообщите нам о подобных инцидентах, включая
полное имя пакета и адрес сайта, с которого вы пытались загрузить пакет, на адрес
<[email protected]>
или <[email protected]>
.