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

Уведомление

Icon
Error

14 Страницы123>»
Опции
К последнему сообщению К первому непрочитанному
Offline SeregaZ  
#1 Оставлено : 27 июля 2012 г. 21:40:52(UTC)
SeregaZ

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

Группы: Участники
Зарегистрирован: 23.06.2012(UTC)
Сообщений: 65
Откуда: Almaty, KZ

не являюсь потомственным программистом, без программисткого образования, но очень хотел бы доделать свою программу регистрации сертификата в браузере.
поясняю: есть некая программа тумар для работы всяких интернет банкинков, гос закупа и статической отчетности, после установки которой "ломается" функционал импортирования сертификатов rsa.p12 в браузер (или систему) стандартными методами. есть у нас система для сдачи налоговой отчетности, выдается ключик формата гост, который потом конвертируем в сертификат rsa.p12 на том портале, и который потом используется для входа в эту систему. этот сертификат должен импортироваться в момент конвертирования путем использования ява апплета. по идее он должен положить полученный сертификат в "Личные". программа тумар же в эту папку "Личные" добавляет свою тумарскую папку, в результате в этой "Личные" две папки, и видимо из-за этого стандартный метод не работает. то есть при наличии программы тумар регистрировать сертификат приходится вручную, помечая галку отображения физического хранилища и выбирая четко путь "Личные\Реестр":
UserPostedImage
только после этого наш сертификат запоминается системой.

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

изучая форумы вроде как нашлись некоторые команды крипто апи, которые все это могут воспроизвести, однако примеры все в основном на с++ мне их придется еще переводить в свой, менее распространенный язык. из последних были изучены две команды: PFXImportCertStore и CertCloseStore. насколько я понимаю необходимо сделать копию или образ сертификата в памяти, и после подсунуть его в PFXImportCertStore, эта команда вроде как должна записать сертификат куда надо и после этого следует закрыть все это дело CertCloseStore.
Код:
Structure CRYPT_DATA_BLOB
  cbData.l
  *pbData
EndStructure

; необходимо "познакомить" мой язык программирования с функциями из
; чужой библиотеки. для этого объявляется прототип с описаниями
; переменных и сам вызов функции
Prototype.i ProtoPFXImportCertStore(*pPFX, szPassword.c, dwFlags.l)
Global PFXImportCertStore.ProtoPFXImportCertStore

Prototype.i ProtoCertCloseStore(hCertStore.i, dwFlags.l)
Global CertCloseStore.ProtoCertCloseStore

Define hdll.l
CoInitialize_(0)
hdll=OpenLibrary(#PB_Any,"Crypt32.dll")
PFXImportCertStore=GetFunction(hdll,"PFXImportCertStore")
CertCloseStore=GetFunction(hdll,"CertCloseStore")

  ;file$ = OpenFileRequester("Select a file","","certificate (.p12)|*.p12|All files (*.*)|*.*",0)
  file$ = "D:\RSA.p12"
  ; путь до файла сертификата
  If file$
    If ReadFile(0, file$)
      length = Lof(0)                      ; чтение длинны файла
      *MemoryID = AllocateMemory(length)   ; резервирование необходимого количества памяти
      If *MemoryID
        ReadData(0, *MemoryID, length)     ; чтение файла в тот зарезервированный участок
      EndIf
      CloseFile(0)      
      blob.CRYPT_DATA_BLOB
      blob\cbData = length
      blob\pbData = *MemoryID      
      hStore = PFXImportCertStore(blob,#Null,0)
      ;Debug hStore      
      ErrorCode = GetLastError_()
      If ErrorCode
        ErrorBuffer$ = Space(255)
        FormatMessage_(#FORMAT_MESSAGE_FROM_SYSTEM, 0, ErrorCode, 0, @ErrorBuffer$, Len(ErrorBuffer$), 0)
        Debug ErrorBuffer$
      EndIf      
      If hStore
        CertCloseStore(hStore,0);
      EndIf      
    EndIf
  EndIf
  
CoUninitialize_() 
CloseLibrary(hdll)

приведенный код вроде бы как работает. PFXImportCertStore возвращает какое-то число, GetLastError молчит и не выдает каких-либо ошибок, а CertCloseStore возвращает единичку. но ничего в браузере в личных не показывает и в certmgr.msc тоже отсутствует этот мой сертификат.




вторая проблема, которая может быть связана с первой:
в данном случае тип переменной szPassword определен как константа szPassword.c. сертификат изначально без пароля и используется в качестве пароля параметр #Null. по идее же для определения типа пароля следует использовать string szPassword.s, а не константу - однако в этом случае PFXImportCertStore(blob,"",0) - то есть "" в качестве отсутствующего в сертификате пароля - возвращает ошибку что сетевой пароль не верный. если же подсунуть сертификат с паролем и указать пароль в кавычках - то тогда все работает PFXImportCertStore(blob,"12345",0) то есть не ругается что пароль не верен, но тем не менее сертификат в личных не появляется. почему PFXImportCertStore не хочет кушать "" если сертификат изначально без пароля - не понимаю :)

ну это я еще поищу как можно определить тип переменной чтобы и константа и string могли быть скормлены этой функции для своего языка программирования. в крайнем случае можно сделать два варианта одной и той-же функции в теле программы.



система виндовс xp sp3, используется только одна учетная запись - администраторская. чего мне не хватает для регистрации сертификата четко в "Личные\Реестр"? кроме мозгов... мозгов то точно не хватает...
Offline Андрей Писарев  
#2 Оставлено : 27 июля 2012 г. 21:46:33(UTC)
Андрей *

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

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

Сказал «Спасибо»: 577 раз
Поблагодарили: 2307 раз в 1807 постах
Цитата:

есть некая программа тумар


Криптопровайдер ... Tumar CSP ...
Техническую поддержку оказываем тут
Наша база знаний
Offline SeregaZ  
#3 Оставлено : 27 июля 2012 г. 22:48:38(UTC)
SeregaZ

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

Группы: Участники
Зарегистрирован: 23.06.2012(UTC)
Сообщений: 65
Откуда: Almaty, KZ

имеет ли значение в каком формате произошло чтение файла сертификата в память?

#PB_Ascii : Reads the strings as ascii
#PB_UTF8 : Reads the strings as UTF8
#PB_Unicode: Reads the strings as unicode

если компилировать с галкой "create unicode executable" - то пароль в PFXImportCertStore понимается верно, в случае если сертификат с паролем, то есть ошибки в программе нет. если пароль в скобках указан не верно - тогда выдается сообщение что пароль не верный. если галки "create unicode executable" не стоит - то тогда даже при наличии пароля в самом сертификате и указанном правильном пароле в функции - пишет ошибку что пароль не верный.

Отредактировано пользователем 27 июля 2012 г. 22:59:15(UTC)  | Причина: Не указана

Offline Андрей Писарев  
#4 Оставлено : 27 июля 2012 г. 23:03:56(UTC)
Андрей *

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

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

Сказал «Спасибо»: 577 раз
Поблагодарили: 2307 раз в 1807 постах
SeregaZ написал:
имеет ли значение в каком формате произошло чтение файла сертификата в память?

безусловно...
Техническую поддержку оказываем тут
Наша база знаний
Offline SeregaZ  
#5 Оставлено : 28 июля 2012 г. 0:05:33(UTC)
SeregaZ

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

Группы: Участники
Зарегистрирован: 23.06.2012(UTC)
Сообщений: 65
Откуда: Almaty, KZ

и я так понял PFXImportCertStore не производит импорт сертификата в личные?
Offline SeregaZ  
#6 Оставлено : 30 июля 2012 г. 14:19:45(UTC)
SeregaZ

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

Группы: Участники
Зарегистрирован: 23.06.2012(UTC)
Сообщений: 65
Откуда: Almaty, KZ

или может есть какие-то автоматические регистраторы сертификатов? типа команды в консоли указал и он сам все это дело зарегистрировал? тут кстати народ на форуме толковый бывает? а то может я зря воду в ступе молочу и время теряю.
Offline Андрей Писарев  
#7 Оставлено : 30 июля 2012 г. 14:39:55(UTC)
Андрей *

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

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

Сказал «Спасибо»: 577 раз
Поблагодарили: 2307 раз в 1807 постах
SeregaZ написал:
или может есть какие-то автоматические регистраторы сертификатов? типа команды в консоли указал и он сам все это дело зарегистрировал?


конечно есть

SeregaZ написал:

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

так на форуме производителя не помогли или "его не существует\не работает"?
Техническую поддержку оказываем тут
Наша база знаний
Offline SeregaZ  
#8 Оставлено : 30 июля 2012 г. 14:50:08(UTC)
SeregaZ

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

Группы: Участники
Зарегистрирован: 23.06.2012(UTC)
Сообщений: 65
Откуда: Almaty, KZ

а зачем мне форум производителя? вопрос по программированию, по использованию крипто апи, а не столько по решению проблемы, которая вызывается использованием программы тумар. решение как бы мне итак известно - ручная регистрация, указывая физическое хранилище. поэтому интересуюсь программным методом произведения подобной регистрации, причем не зависимо установлен ли тумар или его нет.
Offline Андрей Писарев  
#9 Оставлено : 30 июля 2012 г. 14:53:40(UTC)
Андрей *

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

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

Сказал «Спасибо»: 577 раз
Поблагодарили: 2307 раз в 1807 постах
SeregaZ написал:
а зачем мне форум производителя? вопрос по программированию, по использованию крипто апи, а не столько по решению проблемы, которая вызывается использованием программы тумар. решение как бы мне итак известно - ручная регистрация, указывая физическое хранилище. поэтому интересуюсь программным методом произведения подобной регистрации, причем не зависимо установлен ли тумар или его нет.


а в SDK этого нет?
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей Писарев  
#10 Оставлено : 30 июля 2012 г. 14:56:32(UTC)
Андрей *

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

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

Сказал «Спасибо»: 577 раз
Поблагодарили: 2307 раз в 1807 постах
Цитата:
есть некая программа тумар для работы всяких интернет банкинков, гос закупа и статической отчетности, после установки которой "ломается" функционал импортирования сертификатов rsa.p12 в браузер


Как это сейчас относится к КриптоПРО?

Все вопросы - текущему производителю этого криптопровайдера
Tumar CSP работает как с ГОСТ, так и с RSA - опишите проблему производителю...
это сложно?

Отредактировано пользователем 30 июля 2012 г. 14:58:13(UTC)  | Причина: Не указана

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