Мы разрабатываем программу Win32 (= host), которая позволяет сторонним разработчикам писать плагины.Поскольку некоторые плагины содержат ценный кусок кода (например, высококачественный скаляр видео), сторонние производители хотят ограничить свой плагин для работы только с нашей хост-программой .
Наша идея - использовать технологию Microsoft Authenticode для подписи хоста.Затем третьим сторонам предлагается реализовать следующие алгоритмы для проверки хоста.(Предполагается, что третьи стороны будут делать достаточную обфускацию кода для алгоритма).
Используйте WinVerifyTrust (), чтобы убедиться, что сертификат хоста действителен (= не отозван, не подделан,и т.д.).
Проверьте сертификат о том, что субъектом является наша компания.
Вопрос касается шага (2).Сторонние организации не могут просто проверить отпечаток большого пальца или серийный номер, поскольку цифровой сертификат хоста будет обновлен после истечения срока действия сертификата.
Моя идея состоит в том, чтобы проверить части отличительного имени субъекта, в частности, «страна (C)» и «общее имя (CN)», предполагая, что в Соединенных Штатах не существует конфликта названий компаний.Мы не должны проверять другие атрибуты, такие как штат и город, потому что наша компания может переместиться - фактически, мы переехали из одного города в другой всего год назад.
Вопрос: Это хороший способ для достижения цели?