Я работаю над приложением, где я должен проверить, что 2 файла подписаны с тем же сертификатом (с нашим сертификатом). Если нет, то прервите программу.Каков наилучший способ проверки подлинности/сертификата?
я нашел в this вопрос, что я должен делать:
- Validate цепь сертификатов полностью обеспечить целостность и подлинность сертификата
- имя чекодателя
- Проверить имя субъекта
- Check ключевое поле использования.
Итак, для шага 1 я использую WinVerifyTrust
, затем я прочитал свойства и сравнил их друг с другом.
Пока все хорошо, но что, если кто-то создает сертификат и подписывает эти два файла с ними? Тогда он все равно будет работать. Я знаю, что если этот сертификат не будет добавлен как доверенный издатель, то WinVerifyTrust
не удастся. Но, допустим, он добавлен как доверенный издатель. Тогда это работает. Очевидно, что я не могу написать такие значения, как «мое название компании» в коде, и проверить, имеет ли свойство это значение.
Так как я могу проверить, действительно ли это мой сертификат? Если это действительно сертификат, который является «доверенным», он не только доверял мне или кому-то еще?
Заранее благодарен!
Возможный дубликат [WinVerifyTrust для проверки конкретной подписи?] (Http://stackoverflow.com/questions/1072540/winverifytrust-to-check-for-a-specific-signature) –
Я попытался бы проверить хеш сертификата или какой-либо другой номер, который нельзя легко подделать. –
@DavidGrayson: Звучит неплохо, но как я могу проверить хэш? – kampi