Проверка цифровой подписи сценария

Проверка цифровой подписи сценария

Применяя соответствующие политики безопасности, можно установить режим, при котором все запускаемые сценарии автоматически будут проверяться на предмет корректности их цифровой подписи (процесс настройки подобных политик безопасности описан ниже).

Кроме этого, можно самостоятельно из сценария WSH проверить достоверность цифровой подписи, которой снабжен тот или иной файл, и выяснить, входит ли сертификат создателя подписи в число сертификатов, к которым установлено доверие. Для такой проверки служит метод VerifyFile объекта Scripting.Signer. Данный метод имеет два параметра (File и ShowUI), первый из которых задает имя проверяемого файла, а второй является логическим флагом, позволяющим выводить или не выводить на экран диалоговое окно с информацией о состоянии сертификата, при помощи которого была создана цифровая подпись для этого файла. Если цифровая подпись проверяемого сценария является корректной, содержимое файла после создания подписи не изменялось, а к сертификату создателя сценария установлено доверие, то метод VerifyFile возвращает значение true, в противном случае — false.

В качестве примера в листинге 4.11 приведен сценарий Check.js, который проверяет цифровую подпись файла Signed.js.

Листинг 4.11. Проверка подлинности цифровой подписи сценария

/*******************************************************************/

/* Имя: Check.js                                                   */

/* Язык: JScript                                                   */

/* Описание: Проверка цифровой подписи файла Signed.js             */

/*******************************************************************/

var Signer, File, ShowUI, FileOK; //Объявляем переменные

//Создаем объект Scripting.Signer

Signer = WScript.CreateObject("Scripting.Signer");

File = "Signed.js";  //Имя проверяемого файла

ShowUI = false;

//Проверяем подпись в файле

FileOK = Signer.VerifyFile(File, ShowUI);

if (FileOK) WScript.Echo("Сценарий "+File+" является надежным.");

else WScript.Echo("Сценарий "+File+" НЕ является надежным.");

/*************  Конец *********************************************/