Как проверить цифровую подпись для распространяемой установки Visual C ++

22802
user1258361

Недавно я установил программу с цифровой подписью, и установщик запустил распространяемый изнутри Microsoft Visual C ++ распространяемый установщик.

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

Основная проблема: цифровая подпись была для установщика, нет никакой конкретной проверки каких-либо внутренних пакетов. Я проверил распространяемые пакеты в Панели управления -> Программы и компоненты, и щелкнули правой кнопкой мыши опции «Удалить и изменить».

При нажатии на кнопку «Изменить» открывается окно с кнопками «Восстановить / Удалить / Закрыть».

Есть ли удобный способ проверки цифровой подписи распространяемой установки Visual C ++? (в частности, убедитесь, что распространяемый пакет является подлинным и не был подделан?)

Установщик имеет только цифровую подпись для своего издателя.

4
Вы доверяете продавцу оригинальной упаковки? Если дополнительный установщик был упакован как внутренняя часть оригинального установщика, разве проверка исходного пакета также не подтверждает, что этот пакет соответствует первоначальному автору? heavyd 8 лет назад 0
Скачайте C ++ Redistributable от Microsoft и пропустите установку другим установщиком, если вы не доверяете ему, конечно, если вы доверяете установщику, потому что он подписан, вы должны доверять требуемому программному обеспечению также законно. Ramhound 8 лет назад 0
Доверие к оригинальному поставщику пакетов на практике имеет мало общего с целостностью подпакетов. Насколько я знаю, проверка пакета не является рекурсивной - поставщик может создать установщик A, содержащий установщик B. Установщик B каким-то образом изменяется (может быть случайное / случайное повреждение данных) перед включением в установщик A. Поставщик просматривает установщик A и помещает цифровая подпись на нем (содержит потенциально неисправный / неизвестный установщик B). Цифровая подпись означает, что поставщик подтверждает (и берет на себя юридическую ответственность) за пакет. Если сторонний установщик установил B, нет проверки источника user1258361 8 лет назад 0
@ user1258361 - Я все еще говорю, что это вопрос доверия. Вы либо доверяете источнику установщика, который сам содержит установщик, либо загружает установщик, соответствующей установке, либо нет. Большинство подписанных пакетов не могут быть подписаны, если все содержимое пакетов не подписано. Я знаю, как всегда работала функция MSBuild в Visual Studio. Ramhound 8 лет назад 0

1 ответ на вопрос

4
Marc.2377

There are two ways I can think of:

  1. Your installer must extract the Visual C++ Redistributable packages somewhere prior to installation. Usually it's put somewhere under %temp%. You can either clean that folder prior to installation, or run the installer on Sandboxie and then browsing the sandbox files to find it and check its digital signature.

  2. Install a HIPS (Host Intrusion Prevention) software, set it properly, and you'll be prompted for every package installation individually.

If you'd like to check the VC++ Redistributable DLLs already installed on your system, browse to %windir%\System32 and check the msvcpX.dll files (where X is the version number (ie msvcp140.dll for VC++ version 14.0.23918).

And kudos for keeping the good practice of checking digital signatures before granting full rights.

Вторично распространяемых пакетов не было в AppData \ Local \ Temp, однако я нашел несколько журналов установщика. Я открыл один из них, и они указали на местоположение в C: \ ProgramData \ Package Cache. Нашел кучу установочных пакетов Microsoft (файлы .msi / .msu) и некоторые кабинетные (.cab) файлы размером от 500 КБ до 4 МБ. Проверены их цифровые подписи. У меня есть строгие стандарты для предоставления привилегий администратора программ - разработчик / издатель / поставщик и цифровая подписывающая сторона должны иметь хорошую репутацию, должны быть отсканированы с использованием цифровой антивирусной и антивирусной программы с цифровой подписью. Нет подписи = нет прав администратора. user1258361 8 лет назад 1