Как использовать цифровой сертификат для проверки автора программы? - PullRequest
0 голосов
/ 20 марта 2011

Мы разрабатываем программу Win32 (= host), которая позволяет сторонним разработчикам писать плагины.Поскольку некоторые плагины содержат ценный кусок кода (например, высококачественный скаляр видео), сторонние производители хотят ограничить свой плагин для работы только с нашей хост-программой .

Наша идея - использовать технологию Microsoft Authenticode для подписи хоста.Затем третьим сторонам предлагается реализовать следующие алгоритмы для проверки хоста.(Предполагается, что третьи стороны будут делать достаточную обфускацию кода для алгоритма).

  1. Используйте WinVerifyTrust (), чтобы убедиться, что сертификат хоста действителен (= не отозван, не подделан,и т.д.).

  2. Проверьте сертификат о том, что субъектом является наша компания.

Вопрос касается шага (2).Сторонние организации не могут просто проверить отпечаток большого пальца или серийный номер, поскольку цифровой сертификат хоста будет обновлен после истечения срока действия сертификата.

Моя идея состоит в том, чтобы проверить части отличительного имени субъекта, в частности, «страна (C)» и «общее имя (CN)», предполагая, что в Соединенных Штатах не существует конфликта названий компаний.Мы не должны проверять другие атрибуты, такие как штат и город, потому что наша компания может переместиться - фактически, мы переехали из одного города в другой всего год назад.

Вопрос: Это хороший способ для достижения цели?

1 Ответ

0 голосов
/ 20 марта 2011

Несмотря на то, что схема работоспособна, можно относительно легко обойти защиту, просто исправив плагины, чтобы они полностью игнорировали подпись или пропускали проверку подписи.

Что еще более важно, - если вы планируете иметь несколько плагинов / поставщиков, вам будет трудно убедиться, что все поставщики правильно скрывают код проверки.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...