1

Тема: Сигнатура и выгрузка ключей из памяти

Вопрос к знатокам и к разработчикам: как настроить Сигнатуру, чтобы spki1utl.exe по завершении работы не выгружала ключи из памяти?
В общем задача у нас следующая: мы подписываем в командной строке несколько файлов, и, чтобы каждый раз не появлялись окна загрузки ключей, мы предварительно запускаем справочник сертификатов (C:\Program Files\MDPREI\spki\scs.exe) и при запущенном справочнике по-очереди подписываем файлы. После подписания файлов справочник закрывается. По-идее, при запущенном справочнике сертификатов spki1utl.exe не должна выгружать ключи из памяти после подписания файла и окна загрузки ключей появляться не должны. Но так работает на одном компьютере, на двух других - ключи выгружаются и на каждый файл появляются окна... Полностью сверял настройки, контрольные суммы файлов и т.п. - все совпадает... Каким же образом можно заставить spki1utl.exe на тех двух компьютерах не выгружать ключи после подписания файла?

Тестировали так:
1. подготовили несколько файлов, 10 штук, с именами 1.txt ... 10.txt
2. создали файл batch.cmd с содержимым:
for /L %%i in (1,1,10) do "C:\Program Files\MDPREI\spki\spki1utl.exe" -sign -detached -data %%i.txt -out %%i.sig -silent sign.log
3. запустили и проинициализировали Справочник сертификатов
4. запустили batch.cmd
Результат: на одном компьютере все 10 файлов подписываются без каких-либо дополнительных запросов действий от пользователя, на 2-х других - каждый раз запрашиваются ключи... Что делать???

2

Re: Сигнатура и выгрузка ключей из памяти

Добрый день!
Когда загружен справочник (scs.exe) то при загрузке spki1utl.exe загрузка ключа не должна требоваться.
Выгрузите все программы использующие сигнатуру
посмотрите не остался ли файл "VDPkiKeyTable" в каталоге Windows\Temp
если остался удалите его
запустите справочник (он обязательно должен запросить загрузку ключа)
далее можно пускать spki1utl.exe

3

Re: Сигнатура и выгрузка ключей из памяти

Вот в том то и дело, что не должны требоваться, но ведь требуются... На 2-х компьютерах из 3-х требуются, и не знаю что делать...

4

Re: Сигнатура и выгрузка ключей из памяти

Сколько у Вас профилей на компьютере?
Какой номер ключа просит справочник и какой spki1utl.exe?

5

Re: Сигнатура и выгрузка ключей из памяти

профиль только один - По умолчанию. Ключ только один - его и запрашивает справочник и утилита...

6

Re: Сигнатура и выгрузка ключей из памяти

Загрузите Справочник
Посмотрите файл Windows\TEMP\VDPkiKeyTable
пришлите мне его по e-mail

7

Re: Сигнатура и выгрузка ключей из памяти

выслал

8

Re: Сигнатура и выгрузка ключей из памяти

Файлы получил но ясности не наступило.
На компьютере, там где просит ключ 9973BCEHNQ01
Запустите справочник
а затем spki1utl.exe -sign -detached -data aaa.txt -out aaa.sig -silent sign.log
без командника
Посмотрите файл Windows\TEMP\VDPkiKeyTable до запуска утилиты и после
попросит ли утилита при первом запуске ключ? (при запущенном справочнике)
В  Windows\TEMP\VDPkiKeyTable в позиции 0x10 при повторной загрузке ключей должно быть записано 0x2 (когда утилита работает), по окончании работы утилиты счетчик вернется в 0x1

9

Re: Сигнатура и выгрузка ключей из памяти

После загрузки справочника при первом запуске утилиты ключи не запрашиваются. Ключи запрашиваются на 2-й и последующие файлы. После первой загрузки утилиты spki1utl.exe файл VDPkiKeyTable модифицируется путем дописывания в конец файла какой-то информации. В личку отправил ссылку на файл с материалами эксперимента.

10

Re: Сигнатура и выгрузка ключей из памяти

Из присланных материалов видно что при старте утилиты счетчик на 2 не увеличился, следовательно по окончании ключ будет выгружен.
Такое поведение весьма странное, и так работать не должно.
Посмотрите пожалуйста версии файлов
Windows\system32\spki.dll
Windows\system32\asrdll.dll
версии scs.exe и spki1utl.exe

11

Re: Сигнатура и выгрузка ключей из памяти

у всех четырех файлов версия 3.5.260.10

12

Re: Сигнатура и выгрузка ключей из памяти

В общем, большое спасибо за помощь, сам разобрался. Оказывается на подобное поведение сигнатуры влияет установленное у нас средство защиты SecretNet версии 5.0, точнее какой-то из его механизмов (какой - сейчас выясняю). Я писал, что на одном из компьютере не запрашивает каждый раз ключи при подписании ряда файлов. Защитные механизмы SecretNet-а там были выключены. Включил - стало так же, как и на остальных двух компьютерах. Сейчас опытным путем выясняю какой из его компонентов влияет на подобное поведение.

13

Re: Сигнатура и выгрузка ключей из памяти

Спасибо за информацию, скорее всего SecretNet не давал доступ к файлу Windows\TEMP\VDPkiKeyTable, из-за этого там появлялся мусор и невозможно было увеличить счетчик.

14

Re: Сигнатура и выгрузка ключей из памяти

Опытным путем установлено, что виноват в подобном поведении "механизм затирания данных" SecretNet-а. При его включении Сигнатура и SecretNet на уровне драйверов не могут поделить файл VDPkiKeyTable. Дело в том, что по требованиям безопасности перед удалением файла его нужно в несколько циклов перезаписать произвольной информацией, чтобы "враг" не смог восстановить важную информацию smile . Очевидно счетчик в VDPkiKeyTable увеличивается путем пересоздания файла? Т.е. удаляется старый и создается новый с увеличенным значением в позиции 0x10. Если я правильно понял... Значит в момент удаления появляется SecretNet и начинает затирать файл мусором. Этот недоудаленный файл берет сигнатура и пытается увеличить счетчик. Тут то они и конфликтуют...

15

Re: Сигнатура и выгрузка ключей из памяти

Срочно! проблема! помогите!
У нас организация работает с двумя банками, где используется для подписания документов СКАД "Сигнатура". По вышеописанному у нас та же проблема: в Сигнатуре заведено 2 профиля, подписи на TM (стоит Secret NET), когда пользователь подписывает документы в программе АС ФК (спец ПО для органов Федерального казначейства-думаю Вы в курсе) )... у него на каждый подписываемый документ Сигнатура выводит окно с выбором профиля, это уже после того как был загружен и проинициализирован Справочник сертификатов (т.е. он сворачивается, а окно с выбором профиля пользователя появляется столько раз-сколько у нас документов - подписываем 100 документов - 100 раз щелкаем "OK", затем справочник автоматически закрывается)... как можно разрешить данную ситуацию к кому следует обратиться?)

16

Re: Сигнатура и выгрузка ключей из памяти

Попробуйте выключить "механизм затирания данных" SecretNet-а.

17

Re: Сигнатура и выгрузка ключей из памяти

уже пробовали...и сносили сам Secret net - не помогает...окно с выбором профиля всё равно появляется. Может дело в двух профилях в Справочнике сертификатов?

18

Re: Сигнатура и выгрузка ключей из памяти

Мне кажется что это проблема в "программе АС ФК", она написана (не нами) так что делает инициализацию на каждый документ, поэтому при наличии нескольких профилей будет выдаваться всегда окно выбора профиля. Чтобы решить Вашу проблему попробуйте оставить только один профиль, а второй справочник перенести под другой логин (вход с другим пользователем на данный же компьютер). Надеюсь это поможет не выбирать профиль 100 раз.