Просто несколько случайных мыслей.
Хотя это не единственный способ сделать это (изо всех сил, например, вы можете использовать HMAC с конкретными ключами или просто алгоритм с открытым ключом, такой как RSA илиDSA самостоятельно) это, вероятно, лучший способ достичь того, что вы хотите сделать, с минимальными усилиями.
Конечно, я бы предположил, что в этом сценарии вы будете действовать как CA, и любая третья сторона может получить от вас подписанный сертификат?Если это не так, и вы просто скажете, например, сертификат Verisign и т. Д., Вы можете рассмотреть возможность проверки полей использования ключа и расширенного использования ключа сертификата, чтобы убедиться, что он подходит для подписи двоичных файлов (чтобы остановить кого-то, например, используя сертификат SSL),
Как указано в вышеприведенном комментарии, вы хотите проверить любые списки отзыва сертификатов, хотя они могут быть покрыты как подписанными, так и неподписанными.Возможно, вам также понадобится отдельный контрольный пример между файлом, который полностью не подписан, файлом, который подписан, но неправильно (скажем, открытые ключи не совпадают), и файлом, который подписан, но недействителен, например, подпись не помечена меткой времени доверенным органом.и сертификат истек, или материал CRL.
Также исключаете ли вы возможность, когда сертификат подписи является центром сертификации?Это глупо, но технически в этом нет ничего плохого.Вы можете даже просто пропустить весь компонент CA и попросить третье лицо создать собственный самозаверяющий сертификат и отправить его администратору сервера, который добавит его в список допустимых сертификатов для использования.Единственная причина для CA состоит в том, что они должны проверять информацию о человеке, который хочет этого, в зависимости от того, как вы планируете использовать эту систему, чем это может быть необязательно.