Как программно удалить цифровую подпись из макросов VBA в Excel?

Есть ли способ программно удалить цифровую подпись из макросов VBA листа Excel?

то есть код, который эквивалентен входу в редактор VBA, зайдя в меню Инструменты -> Цифровая подпись и нажав Удалить.


person Community    schedule 29.07.2009    source источник


Ответы (1)


Интересный вопрос. Он намеренно не является частью объектной модели Excel из соображений безопасности.

Сертификат можно удалить из хранилища сертификатов. Для этого требуются вызовы Win32 api (которые могут быть сделаны из VB6 или VBA, но я не уверен в точном влиянии на ваш проект, как только вы это сделаете ... Это окончательно аннулирует сертификат, но я не знаю, будет ли он удалите его.Также вы можете не захотеть удалять сертификат из магазина (так как вы можете использовать его для чего-то другого).

Чтобы просмотреть хранилище сертификатов, введите certmgr.msc в командной строке.

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

Требования:
1. Вам необходимо загрузить Windows SDK для соответствующей платформы, чтобы получить библиотеки capicom, + regsvr32 их 2. Вам нужно будет извлечь открытый ключ из сертификата, который вы хотите удалить.
3. Сначала проверьте несущественную книгу, я понятия не имею, вызовет ли этот метод (помимо признания сертификата недействительным) также повреждение книги. Надеюсь, у кого-то есть предложение получше.

person Anonymous Type    schedule 20.01.2011
comment
+1 хороший ответ! однако OP больше не находится в SO (на что указывает серый цвет и отсутствие баллов), поэтому они никогда не смогут пометить ваш ответ как правильный. - person Todd Main; 21.01.2011
comment
@Otaku, это круто. Мое основное внимание в SO atm уделяется ответам на интересные вопросы по Office и VBA. как вы можете видеть по моему небольшому количеству повторений, я, вероятно, недостаточно работаю с углом повторения, да ладно, не беспокойтесь. Надеюсь, что кто-то в будущем получит пользу от такого ответа. Я получил много от ТАК - время отдавать! - person Anonymous Type; 21.01.2011
comment
Вопрос OPs был не об удалении сертификата, а об удалении цифровой подписи из файла excel (хотя подпись создана с помощью сертификата с закрытым ключом, подпись - это не одно и то же, и удаление сертификата из вашего хранилища сертификатов не приведет к аннулированию подписи) - person Marwie; 23.11.2016
comment
@ Марви, да? В своем ответе я четко заявил, что НИКАК не может использовать программную версию цифрового сертификата ›Метод удаления через пользовательский интерфейс VBA IDE. Предлагаемый метод удаляет базовый сертификат, поэтому, если его машина основана, это сделает сертификат файлов недействительным. - person Anonymous Type; 24.11.2016
comment
Вы делаете некоторые очень четкие предположения, не заявляя их: удаление сертификата CA из магазина похоже на использование кувалды, чтобы сломать орех - вы убьете доверие к любому другому сертификату, подписанному с этим CA. Хотя это может быть осуществимым способом в очень известных средах с самоподписанными сертификатами, чаще всего очень плохая идея - удалить ЦС или даже общедоступный доверенный ЦС, чтобы уничтожить доверие к одной подписи, поскольку это также убьет возможность безопасного использования этого машина для прочего как tls. Я думаю, это следует четко сформулировать и дифференцировать в развернутом ответе. - person Marwie; 24.11.2016
comment
Вы делаете несколько соответственно ложных предположений об использовании и природе сертификатов подписи кода. Это не то же самое, что сертификаты веб-сервера - они используются для таких вещей, как tls. Как вы говорите, если вы знакомы с окружающей средой и сертификатом, тогда это вряд ли будет кувалдой. Также я не думаю, что это подход типа кувалды, если это на самом деле единственный подход, который работает. - person Anonymous Type; 29.11.2016