Что использовать для проверки конкретной подписи файла EXE?

я нашел эта статья MSDN это объясняет, как получить информацию для исполняемых файлов с подписью Authenticode. Он извлекает данные в следующем формате:

Signer Certificate:

Serial Number: 00 90 1a 1a 1b 1c 1c 26 3d 4f 56 61 70 8f 94 7f e0
Issuer Name: COMODO Code Signing CA 2
Subject Name: Signer's Name

Моя цель здесь состоит в том, чтобы убедиться, что EXE-файл подписан конкретным сертификатом подписи, который принадлежит компании. Для этого я, очевидно, могу проверить Subject Name, но мне любопытно Serial Number:

  1. Можно Serial Number использоваться для проверки того, что EXE-файл подписан конкретным сертификатом? Мои тесты показали, что это не изменится, если я подпишу более одного файла.

  2. Этот серийный номер останется прежним при обновлении сертификата?

1

Решение

Сочетание полей IssuerRDN (набор полей, идентифицирующих эмитента) и полей SerialNumber однозначно идентифицирует сертификат в соответствии с RFC 5280.

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

Следовательно, для вашей задачи лучшим подходом будет

  1. полностью проверить цепочку сертификатов, чтобы обеспечить целостность и подлинность сертификата
  2. проверить имя эмитента
  3. проверить имя субъекта
  4. проверьте поле использования ключа.

Это гарантирует, что сертификат действителен и авторизован для этой компании, и в то же время этот алгоритм избавляет вас от ошибки проверки ровно одного сертификата (эта ошибка может привести к проблемам, если сертификат по какой-либо причине отозван и заменен на новенький).

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]