Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Наши способы организации безопасного удалённого доступа к рабочим местам и корпоративным ресурсам
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline Ceridan  
#1 Оставлено : 13 августа 2013 г. 11:53:06(UTC)
Ceridan

Статус: Участник

Группы: Участники
Зарегистрирован: 31.07.2013(UTC)
Сообщений: 10
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 1 раз
Здравствуйте!

Автоматизирую встраивание подписи с использованием SDK для КриптоПРО ЭЦП (Интерфейс COM), язык C#.
Пользователь при работе "вручную" в КриптоАРМ, в разделе "Настройки" создал свою настройку через которую работает. Можно ли программно получить доступ к этой настройке и использовать ее для автоматического встраивания подписи? Если да, то как, подскажите пожалуйста?

Спасибо!
Offline Юрий  
#2 Оставлено : 13 августа 2013 г. 12:16:03(UTC)
Юрий

Статус: Активный участник

Группы: Участники
Зарегистрирован: 22.01.2008(UTC)
Сообщений: 667
Мужчина
Российская Федерация
Откуда: Йошкар-Ола

Сказал «Спасибо»: 2 раз
Поблагодарили: 93 раз в 67 постах
Все настройки хранятся в реестре. По крайней мере в последней КриптоАРМ версии которую я написал настройки хранились в реестре по адресу:
HKEY_CURRENT_USER\SOFTWARE\DIGT SmartServices\Install\КриптоАРМ\
С уважением,
Юрий Строжевский
Offline Ceridan  
#3 Оставлено : 13 августа 2013 г. 14:03:56(UTC)
Ceridan

Статус: Участник

Группы: Участники
Зарегистрирован: 31.07.2013(UTC)
Сообщений: 10
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 1 раз
Спасибо, действительно, нашел.
Но возник еще вопрос: если у пользователя вбит в эту настройку пин-код e-token'а, могу ли я как-то автоматизировать процесс создания подписи, чтобы не заставлять пользователя каждый раз вводить его явно?
Offline Юрий  
#4 Оставлено : 13 августа 2013 г. 14:37:31(UTC)
Юрий

Статус: Активный участник

Группы: Участники
Зарегистрирован: 22.01.2008(UTC)
Сообщений: 667
Мужчина
Российская Федерация
Откуда: Йошкар-Ола

Сказал «Спасибо»: 2 раз
Поблагодарили: 93 раз в 67 постах
Автор: Ceridan Перейти к цитате
Спасибо, действительно, нашел.
Но возник еще вопрос: если у пользователя вбит в эту настройку пин-код e-token'а, могу ли я как-то автоматизировать процесс создания подписи, чтобы не заставлять пользователя каждый раз вводить его явно?

Да, вы можете как-то автоматизировать этот процесс :)
С уважением,
Юрий Строжевский
Offline Юрий  
#5 Оставлено : 13 августа 2013 г. 14:39:40(UTC)
Юрий

Статус: Активный участник

Группы: Участники
Зарегистрирован: 22.01.2008(UTC)
Сообщений: 667
Мужчина
Российская Федерация
Откуда: Йошкар-Ола

Сказал «Спасибо»: 2 раз
Поблагодарили: 93 раз в 67 постах
В общем ищите на этом форуме по ключевому слову CRYPT_SILENT.
С уважением,
Юрий Строжевский
Offline Ceridan  
#6 Оставлено : 15 августа 2013 г. 15:09:14(UTC)
Ceridan

Статус: Участник

Группы: Участники
Зарегистрирован: 31.07.2013(UTC)
Сообщений: 10
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 1 раз
Автор: Юрий Перейти к цитате
В общем ищите на этом форуме по ключевому слову CRYPT_SILENT.


Искал по этому словосочетанию, но так и не нашел того, что мне нужно. Насколько я понял, CRYPT_SILENT используется, когда мы занимаемся шифрованием данных, а мне нужна на данный момент только подпись. Где хранится PIN-код в настройках в реестре понятно - в SignPIN, но хранится он там, как я понял, в зашифрованном виде.

Для автоматизации процесса подписывания я использую CAdESCOM.dll, которая в свою очередь мне предлагает единственную опцию автоматизировать ввод ПИН-кода - это метод ICPSigner4.KeyPin(), который принимает ПИН-код в явном не зашифрованном виде. Не могли бы вы пояснить, как я могу все-таки использовать информацию из реестра из поля SignPIN, чтобы автоматизировать процедуру создания электронной подписи документов?

Отредактировано пользователем 15 августа 2013 г. 15:16:37(UTC)  | Причина: Не указана

Offline Юрий  
#7 Оставлено : 15 августа 2013 г. 15:19:37(UTC)
Юрий

Статус: Активный участник

Группы: Участники
Зарегистрирован: 22.01.2008(UTC)
Сообщений: 667
Мужчина
Российская Федерация
Откуда: Йошкар-Ола

Сказал «Спасибо»: 2 раз
Поблагодарили: 93 раз в 67 постах
Я тут помогать отказываюсь - я люблю тех, кто умеет находить если ему подсказывают направление.

P.S.: На всякий случай поискал сам: первая же ссылка привела к необходимому алгоритиму.
С уважением,
Юрий Строжевский
Offline Ceridan  
#8 Оставлено : 15 августа 2013 г. 15:49:38(UTC)
Ceridan

Статус: Участник

Группы: Участники
Зарегистрирован: 31.07.2013(UTC)
Сообщений: 10
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 1 раз
Хорошо, в любом случае спасибо за подсказку.
Offline Ceridan  
#9 Оставлено : 21 августа 2013 г. 8:53:36(UTC)
Ceridan

Статус: Участник

Группы: Участники
Зарегистрирован: 31.07.2013(UTC)
Сообщений: 10
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 1 раз
Нашел решение, в моем случае это воспользоваться КриптоАРМ SDK, которое позволяет получить доступ к созданным профилям (настройкам) пользователя.
Offline Андрей Писарев  
#10 Оставлено : 21 августа 2013 г. 8:57:35(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 9,553
Мужчина
Российская Федерация

Сказал «Спасибо»: 343 раз
Поблагодарили: 1371 раз в 1059 постах
Автор: Ceridan Перейти к цитате
Нашел решение, в моем случае это воспользоваться КриптоАРМ SDK, которое позволяет получить доступ к созданным профилям (настройкам) пользователя.


Для следующих поколений, ссылка
Техническую поддержку оказываем тут
Наша база знаний
Offline Bagir  
#11 Оставлено : 14 октября 2013 г. 13:23:13(UTC)
Bagir

Статус: Новичок

Группы: Участники
Зарегистрирован: 14.10.2013(UTC)
Сообщений: 7
Российская Федерация

Отличное руководство, понятные примеры, и почти все получилось сразу. Для подписания и шифрования файла, использую примеры из глав "Добавление подписи" и "Шифрование данных". С созданием подписи нет проблем. А вот шифрование отказывается архивировать файл, и шифрует без архивации. В профиле галка стоит. Через интерфейс самой программы КриптоАРМ все получается. НА выходе получаю .sig.zip.enc. По его размеру видно, что перед шифрованием он был зазипован. А вот кодом не получается.
Код:

Set objProfile = objProfiles.DefaultProfile

oPKCS7Message.Profile = objProfile

oPKCS7Message.Load DT_PLAIN_DATA, NAME_DATA_FILE & ".sig", ""
oPKCS7Message.Encrypt
oPKCS7Message.Save DT_ENVELOPED_DATA, BASE64_TYPE, NAME_DATA_FILE & ".sig.zip.enc"

Получаю зашифрованный но не сжатый файл. Профиль у меня только один. И если опросить объект objProfile, он подтвердит его имя. Галка архивации в профиле точно установлена. Да в прочем это можно проверить.
objProfile.Name равно имени моего профиля
objProfile.EncryptArchiveFiles будет равно True

Пока что, приходится вначале подписывать файл .Sign, сохранять его, сжимать своим зипом, загружать и шифровать .Encrypt
Подскажите пожалуйста, где грабли и куда копать?

Отредактировано пользователем 14 октября 2013 г. 13:49:24(UTC)  | Причина: Не указана

Offline Андрей Писарев  
#12 Оставлено : 14 октября 2013 г. 13:25:35(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 9,553
Мужчина
Российская Федерация

Сказал «Спасибо»: 343 раз
Поблагодарили: 1371 раз в 1059 постах
Автор: Bagir Перейти к цитате
Отличное руководство, понятные примеры, и почти все получилось сразу. Для подписания и шифрования файла, использую примеры из глав "Добавление подписи" и "Шифрование данных". С созданием подписи нет проблем. А вот шифрование отказывается архивировать файл, и шифрует без архивации. В профиле галка стоит. Через интерфейс самой программы КриптоАРМ все получается. НА выходе получаю .sig.zip.enc. По его размеру видно, что перед шифрованием он был зазипован. А вот кодом не получается.
Цитата:
Set objProfile = objProfiles.DefaultProfile

oPKCS7Message.Profile = objProfile

oPKCS7Message.Load DT_PLAIN_DATA, NAME_DATA_FILE & ".sig", ""
oPKCS7Message.Encrypt
oPKCS7Message.Save DT_ENVELOPED_DATA, BASE64_TYPE, NAME_DATA_FILE & ".sig.zip.enc"

Получаю зашифрованный но не сжатый файл. Профиль у меня только один. И если опросить объект objProfile, он подтвердит его имя. Галка архивации в профиле точно установлена. Да в прочем это можно проверить.
objProfile.Name равно имени моего профиля
objProfile.EncryptArchiveFiles будет равно True

Пока что, приходится вначале подписывать файл .Sign, сохранять его, сжимать своим зипом, загружать и шифровать .Encrypt
Подскажите пожалуйста, где грабли и куда копать?


Разработчикам уже сообщили?



Техническую поддержку оказываем тут
Наша база знаний
Offline Bagir  
#13 Оставлено : 14 октября 2013 г. 13:27:08(UTC)
Bagir

Статус: Новичок

Группы: Участники
Зарегистрирован: 14.10.2013(UTC)
Сообщений: 7
Российская Федерация

Нет, только в пятницу начал изучать примеры.
Offline Андрей Писарев  
#14 Оставлено : 14 октября 2013 г. 13:35:43(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 9,553
Мужчина
Российская Федерация

Сказал «Спасибо»: 343 раз
Поблагодарили: 1371 раз в 1059 постах
Автор: Bagir Перейти к цитате
Нет, только в пятницу начал изучать примеры.



Цитата:
EncryptArchiveFiles
Свойство позволяет получить/установить флаг архивирования исходных файлов перед
выполнением операции шифрования

Техническую поддержку оказываем тут
Наша база знаний
Offline Bagir  
#15 Оставлено : 14 октября 2013 г. 13:37:25(UTC)
Bagir

Статус: Новичок

Группы: Участники
Зарегистрирован: 14.10.2013(UTC)
Сообщений: 7
Российская Федерация

Да, все точно так, и я смотрел на это свойство, но хоть оно и True, все равно не архивирует.
Вот выложу весь код шифрования файла:
Код:

Option Explicit
'enum FORMAT
Const BASE64_TYPE = 0
Const DER_TYPE = 1
'enim PROFILESTORETYPE (профили)
Const REGISTRY_STORE = 0
'enum DATATYPE (тип данных)
Const DT_PLAIN_DATA = 0
Const DT_SIGNED_DATA = 2
Const DT_ENVELOPED_DATA = 3
'enum WIZARD_TYPE and RESULTTYPE
Const SIGN_WIZARD_TYPE = 1
Const ENCRYPT_WIZARD_TYPE = 64
'enum CHECKING_WIZARD
Const ALL_OK = 0

Const NAME_DATA_FILE = "D:\R1_0000000000.xml"


Код:
Sub EncryptFile()
 Dim CheckResult
 Dim objProfile, objProfiles, objProfileStore
 
 'Получим профиль по умолчанию или создадим новый, если его нет
 Set objProfileStore = CreateObject("DigtCrypto.ProfileStore")
 
 objProfileStore.Open REGISTRY_STORE 'Открываем хранилище профилей
 Set objProfiles = objProfileStore.Store 'Получаем коллекцию профилей
 If objProfiles.count > 0 Then
   Set objProfile = objProfiles.DefaultProfile 'Получим профиль по умолчанию
 Else
   Set objProfile = CreateObject("DigtCrypto.Profile") 'Создадим новый профиль
 End If
 
 CheckResult = objProfile.CheckData(SIGN_WIZARD_TYPE)  'Проверим, все ли данные собраны

 'Приступим к получению подписи, используя данные, полученные из профиля
 If CheckResult = ALL_OK Then
  Dim oPKCS7Message As New DigtCryptoLib.PKCS7Message
  
  Debug.Print "objProfile.Name " & objProfile.Name 'Возвращает имя моего профиля
  Debug.Print "objProfile.EncryptArchiveFiles ", objProfile.EncryptArchiveFiles 'указания на архивирование перед шифрованием. Возвращает True
 'Debug.Print "objProfile.SignArchiveFiles ", objProfile.SignArchiveFiles
  
  oPKCS7Message.Profile = objProfile 'Установим профиль с настройками
  
  oPKCS7Message.Load DT_PLAIN_DATA, NAME_DATA_FILE & ".sig", ""     'Загрузим исходные данные
  oPKCS7Message.Encrypt
  oPKCS7Message.Save DT_ENVELOPED_DATA, BASE64_TYPE, NAME_DATA_FILE & ".sig.zip.enc"     'Сохраним данные
  
  Set oPKCS7Message = Nothing
 Else
  MsgBox "Профиль некорректно заполнен", vbCritical
 End If
End Sub

Отредактировано пользователем 14 октября 2013 г. 13:53:27(UTC)  | Причина: Не указана

Offline Bagir  
#16 Оставлено : 16 октября 2013 г. 11:01:04(UTC)
Bagir

Статус: Новичок

Группы: Участники
Зарегистрирован: 14.10.2013(UTC)
Сообщений: 7
Российская Федерация

Андрей, есть какие-нибудь идеи? Гуглить у меня по этому вопросу не очень то получается.
Offline Андрей Писарев  
#17 Оставлено : 16 октября 2013 г. 11:02:54(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 9,553
Мужчина
Российская Федерация

Сказал «Спасибо»: 343 раз
Поблагодарили: 1371 раз в 1059 постах
Автор: Bagir Перейти к цитате
Андрей, есть какие-нибудь идеи? Гуглить у меня по этому вопросу не очень то получается.


У меня нет возможности поэкспериментировать с этим софтом,
попробуйте обратиться к производителю с данным вопросом.

Техническую поддержку оказываем тут
Наша база знаний
Offline Bagir  
#18 Оставлено : 16 октября 2013 г. 11:17:50(UTC)
Bagir

Статус: Новичок

Группы: Участники
Зарегистрирован: 14.10.2013(UTC)
Сообщений: 7
Российская Федерация

Отписался, будут новости, сообщу.
Offline Bagir  
#19 Оставлено : 17 апреля 2019 г. 11:48:43(UTC)
Bagir

Статус: Новичок

Группы: Участники
Зарегистрирован: 14.10.2013(UTC)
Сообщений: 7
Российская Федерация

6 лет прошло, а операцию зипования так и делает заплата. SignArchiveFiles и так = True. По факту зипование перед шифрованием не происходит. Может кто сталкивался, напишите пожалуйста.
Offline Aleksandr G*  
#20 Оставлено : 17 апреля 2019 г. 12:07:50(UTC)
Aleksandr G*

Статус: Активный участник

Группы: Участники
Зарегистрирован: 13.09.2016(UTC)
Сообщений: 117

Сказал(а) «Спасибо»: 8 раз
Поблагодарили: 23 раз в 22 постах
̶А̶ ̶е̶с̶л̶и̶ ̶P̶R̶O̶F̶I̶L̶E̶:̶:̶E̶N̶C̶R̶Y̶P̶T̶A̶R̶C̶H̶I̶V̶E̶F̶I̶L̶E̶S̶ ̶и̶с̶п̶о̶л̶ь̶з̶о̶в̶а̶т̶ь̶,̶ ̶т̶о̶ж̶е̶ ̶н̶е̶ ̶р̶а̶б̶о̶т̶а̶е̶т̶ ̶а̶р̶х̶и̶в̶а̶ц̶и̶я̶?̶

(прочитал тему полностью)

Отредактировано пользователем 17 апреля 2019 г. 12:35:33(UTC)  | Причина: Не указана

RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.