Проверка целостности дистрибутива административного пакета осуществляется с использованием утилиты stverify, разработанной компанией S-Terra CSP. Утилита stverify размещена на поставляемом CD диске.
Синтаксис
Вычисление контрольной суммы:
stverify -mk full_name_with_path_of_file [-alg algId] [-inverted_halfbytes 0|1]
Проверка контрольной суммы:
stverify full_name_with_path_of_file hash [-alg algId] [-inverted_halfbytes 0|1]
где
-mk full_name_with_path_of_file полное имя файла и путь с нему.
-alg algId алгоритм вычисления контрольной суммы. Необязательный параметр. Возможны следующие значения:
GR3411 – ГОСТ 34.11-94 (значение по умолчанию).
GR3411_2012_256 – ГОСТ 34.11-2012 c длиной ключа 256 бит.
GR3411_2012_512 – ГОСТ 34.11-2012 c длиной ключа 512 бит (данный алгоритм в текущей версии Продукта не реализован).
G28147_MAC – имитовставка ГОСТ 28147-89 с таблицами замены ТК26 Z.
GRC32_C – алгоритм CRC32-С (полином by G. Castagnoli, S. Braeuer and M. Herrmann, см. RFC 3720).
ACTUAL – для выбора актуального для текущей версии Продукта алгоритма (GR3411_2012_256). Дефолтным (при отутствии параметра ‘-alg’) остается ГОСТ 34.11-94. Актуальный алгоритм – оптимальный для применения в момент выпуска текущей версии Продукта.
hash контрольная сумма.
-inverted_halfbytes
0|1 ключ
формата вывода для совместимости с выводом утилиты от Крипто-Про –
cpverify, при
котором в выводимом байте полубайты инвертируются. Так, число 0xAB выводилось
как строка “BA”.
Значение ключа 0 означает отсутствие такой
инверсии.
Значение ключа 1 означает явное присутствие
такой инверсии.
Отсутствие ключа означает использовать «значение
по умолчанию». Оно индивидуально для каждого алгоритма.
Формат
вывода:
При выборе CRC32_C байты выводятся, начиная
со старшего (big endian). Инверсия по умолчанию отсутствует. Длина вывода
– 8 символов.
При выборе ГОСТ 28147 имитовставки байты выводятся,
начиная с младшего (первого). Инверсия по умолчанию отсутствует. Длина
вывода – 8 символов.
При выборе ГОСТ 34-11-94 либо ГОСТ 34.11-2012
байты выводятся, начиная с младшего. Инверсия по умолчанию включена. Длина
вывода 64 символа. Следует отметить несовместимость «инверсии по умолчанию»
для ГОСТ 34.11-2012: у утилиты stverify
– включена, у cpverify
– выключена.
Для вычисления контрольной суммы по каждому файлу дистрибутива, например, setup.exe, и выдачи результата на экран выполните команду (указав пути к файлам):
stverify –mk setup.exe –alg ACTUAL
Полученное значение сравните с эталонным значением контрольной
суммы, записанным в файл hashes из
состава дистрибутива, который содержит строки вида
<hash> <file_name>,
где
<hash> – эталонное значение контрольной суммы
<file_name> – имя файла, для которого подсчитана контрольная сумма.
Для вычисления контрольной суммы для файла дистрибутива и автоматического сравнения с эталонным значением, например, для файла setup.exe, выполните команду (указав пути к файлам):
stverify setup.exe hash_from_file –alg ACTUAL,
где
hash_from_file – эталонное значение контрольной суммы для файла setup.exe, скопированное из файла hashes (вставить в командную строку можно при помощи нажатия правой кнопки мыши и выбора предложения “Вставить”).
Возможные сообщения об ошибках
Сообщение об ошибке |
Описание проблемы |
Verification COMPLETED |
Успешное окончание проверки. |
USAGE:
stverify -mk <full_name_with_path_of_file> |
Недостаточное количество параметров в командной строке вызывает вывод подсказки в использовании. |
ERROR: Unknown command line format. |
Третьим параметром выступает не ключ ‘-alg’ |
ERROR: GOST 34.11-2012 512bit implementation don't supported now. |
Выбран алгоритм ГОСТ 34.11-2012 с длиной ключа 512 бит, который в текущей версии не поддерживается. |
ERROR: Unknown algorithm ID. |
Указан нераспознаваемый идентификатор алгоритма. |
ERROR: Hash initialization fault |
Внутренняя ошибка инициализации системы вычисления хеша. |
ERROR: Invalid hash value |
Отсутствует или имеет неверный формат значение контрольной информации для проверки. |
ERROR Open file is fault. <далее строка описания ошибки в формате операционной системы> |
Ошибка открытия проверяемого файла. |
ERROR: Read file is fault. <далее строка описания ошибки в формате операционной системы> |
Ошибка чтения содержимого проверяемого файла. |
ERROR: Verification unsuccessfull. |
Проверка выявила несоответствие предложенного значения контрольной информации и вычисленного значения. Возможно проверяемый файл поврежден. |
ERROR: Calculation unsuccessfull. |
Ошибка вычисления контрольной информации |