Подписи .issig: Введение

Inno Setup включает встроенную проверку целостности и подлинности ваших файлов, которая может быть выполнена при компиляции – перед включением файлов в установочный пакет или во время установки – перед копированием файлов в систему пользователя.

Подписи создаются при помощи утилиты Inno Setup Signature Tool (ISSigTool.exe) и хранятся в отдельных файлах с расширением .issig. Поскольку подписи записаны в отдельных файлах, оригинальные файлы остаются без изменений. Таким образом, любой тип файла может быть подписан и проверен.

Для создания подписей .issig не требуется сертификат от центра сертификации, что делает этот процесс совершенно бесплатным.

Обратите внимание, подписи .issig не могут быть использованы для устранения предупреждения «Неизвестный издатель», которое показывает Windows при запуске программы установки или другого EXE-файла. Для этого требуется совершенно другой тип цифровой подписи (Authenticode), встроенной в EXE-файл с помощью инструмента signtool.exe от Microsoft, а также сертификат, полученный от центра сертификации. Однако вы можете использовать для одного файла как signtool.exe, так и ISSigTool.exe, причем в указанном порядке. Дополнительную информацию о signtool.exe см. в разделе SignTool.

Быстрый старт: проверка файлов во время компиляции

В командах issigtool, показанных ниже, укажите путь к Inno Setup и заключите его в кавычки. Например, "%ProgramFiles(x86)%\Inno Setup 6\issigtool".

  1. Создайте файл закрытого ключа, который будет использоваться для подписи:

    issigtool --key-file="MyKey.isprivatekey" generate-private-key
    

    Файл с именем MyKey.isprivatekey будет создан в текущей папке. При необходимости можете указать для него желаемый путь.

    Этот файл не следует передавать другим лицам или размещать в публичных хранилищах. Чтобы снизить риск случайного раскрытия данных, рекомендуется хранить его вне исходного кода проекта.

  2. Создайте файл, который следует пописать, а затем создайте подпись:

    echo Hello > MyFile.txt
    issigtool --key-file="MyKey.isprivatekey" sign "MyFile.txt"
    

    Будет создан файл подписи с именем MyFile.txt.issig.

  3. В сценарии Inno Setup добавьте секцию [ISSigKeys] с записью вашего файла закрытого ключа, а в секции [Files] для файла MyFile.txt укажите флаг issigverify:

    [ISSigKeys]
    Name: MyKey; KeyFile: "MyKey.isprivatekey"
    
    [Files]
    Source: "MyFile.txt"; DestDir: "{app}"; Flags: issigverify
    

    Примечание: здесь желательно указать файл открытого ключа; см. раздел Советы и рекомендации ниже.

  4. Выполните сборку сценария. На вкладке вывода сообщений компилятора вы увидите строку с результатом успешной проверки файла:

       Compressing: MyFile.txt
          Verification successful.
    
  5. Теперь убедитесь, что компилятор действительно выявляет повреждение или подмену файла.

    Измените содержимое MyFile.txt — напр. добавьте или измените один символ.

  6. Попробуйте снова выполнить сборку сценария. На этот раз вы должны получить сообщение об ошибке, подобную следующей:

    Signature is not valid for source file "MyFile.txt": file hash incorrect.
    

Проверка внешних файлов во время установки

Процедура настройки проверки внешних файлов по существу аналогична описанной выше процедуре проверки во время компиляции, за исключением:

Советы и рекомендации