logo
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline Alex_DotNETAlexAlex_DotNET112358  
#1 Оставлено : 22 августа 2019 г. 11:59:36(UTC)
Alex_DotNETAlexAlex_DotNET112358

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

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

Сказал(а) «Спасибо»: 3 раз
посоветуйте литературу
спасибо
Offline Агафьин Сергей  
#2 Оставлено : 22 августа 2019 г. 12:56:47(UTC)
Агафьин Сергей

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

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

Сказал «Спасибо»: 1 раз
Поблагодарили: 71 раз в 66 постах
Автор: Alex_DotNETAlexAlex_DotNET112358 Перейти к цитате
посоветуйте литературу
спасибо


"Программирование алгоритмов защиты информации". В целом, информация ОЧЕНЬ старая, но логика работы CryptoAPI не изменилась.
С уважением,
Сергей Агафьин,
Начальник отдела разработки ФКН.
Техническую поддержку оказываем здесь.
Наша база знаний.
Offline Alex_DotNETAlexAlex_DotNET112358  
#3 Оставлено : 22 августа 2019 г. 13:00:56(UTC)
Alex_DotNETAlexAlex_DotNET112358

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

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

Сказал(а) «Спасибо»: 3 раз
Автор: Агафьин Сергей Перейти к цитате
Автор: Alex_DotNETAlexAlex_DotNET112358 Перейти к цитате
посоветуйте литературу
спасибо


"Программирование алгоритмов защиты информации". В целом, информация ОЧЕНЬ старая, но логика работы CryptoAPI не изменилась.

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

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



Offline Андрей Писарев  
#4 Оставлено : 22 августа 2019 г. 23:41:24(UTC)
Андрей Писарев

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

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

Сказал «Спасибо»: 279 раз
Поблагодарили: 1151 раз в 912 постах
Автор: Alex_DotNETAlexAlex_DotNET112358 Перейти к цитате
Автор: Агафьин Сергей Перейти к цитате
Автор: Alex_DotNETAlexAlex_DotNET112358 Перейти к цитате
посоветуйте литературу
спасибо


"Программирование алгоритмов защиты информации". В целом, информация ОЧЕНЬ старая, но логика работы CryptoAPI не изменилась.

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

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






Полно утилит (CertMgr.exe)\скриптов(vbs с CAPICOM) для этого,
кода на разных языках (открыть хранилище, импортировать сертификат..).
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей Писарев  
#5 Оставлено : 22 августа 2019 г. 23:51:34(UTC)
Андрей Писарев

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

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

Сказал «Спасибо»: 279 раз
Поблагодарили: 1151 раз в 912 постах
примерно так:
Код:
 
X509Certificate2 certificate = new X509Certificate2();
byte[] rawCertificate  = File.ReadAllBytes( );
certificate.Import(...)

X509Store store = new X509Store( );
store.Open(OpenFlags.ReadWrite);
store.Add(certificate); 
store.Close();
 
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей Писарев  
#6 Оставлено : 22 августа 2019 г. 23:53:29(UTC)
Андрей Писарев

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

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

Сказал «Спасибо»: 279 раз
Поблагодарили: 1151 раз в 912 постах
Техническую поддержку оказываем тут
Наша база знаний
Offline two_oceans  
#7 Оставлено : 23 августа 2019 г. 7:31:05(UTC)
two_oceans

Статус: Эксперт

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

Сказал(а) «Спасибо»: 32 раз
Поблагодарили: 127 раз в 122 постах
Автор: Alex_DotNETAlexAlex_DotNET112358 Перейти к цитате
конкретно сейчас задача следующая
нужно программно считать сертификаты пользователя, сохранить их в БД, установить их программно другим пользователям

закрытые ключи хранятся на токенах.
Закрытые ключи хранить в базе не нужно.
устанавливать пользователям сертификаты нужно без закрытого ключа.
желательно что бы программа не запрашивала токен, если это возможно
Интересная задача, адресная книга что ли? Подозреваю у аутглюков уже через какое-нибудь облако Майкрософт такая задача сделана.

Offline Alex_DotNETAlexAlex_DotNET112358  
#8 Оставлено : 23 августа 2019 г. 10:00:45(UTC)
Alex_DotNETAlexAlex_DotNET112358

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

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

Сказал(а) «Спасибо»: 3 раз
спасибо за советы.

Есть большая компания, много сертификатов, они все проходят чз службу безопасности
сотрудник службы безопасности устанавливает их на свою машину, сертификаты попадут в БД ms sql server, при помощи самописной программы дает права конкретному пользователю на конкретный сертификат
как только пользователь включит компьютер, сертификат автоматически будет установлен ему в реестр

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

как то так

Отредактировано пользователем 23 августа 2019 г. 10:01:42(UTC)  | Причина: Не указана

Offline Андрей Писарев  
#9 Оставлено : 23 августа 2019 г. 10:42:17(UTC)
Андрей Писарев

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

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

Сказал «Спасибо»: 279 раз
Поблагодарили: 1151 раз в 912 постах
Автор: Alex_DotNETAlexAlex_DotNET112358 Перейти к цитате

как только пользователь включит компьютер, сертификат автоматически будет установлен ему в реестр

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

как то так


А зачем устанавливать сертификат в реестр, если нет контейнера (закрытого ключа)?
Техническую поддержку оказываем тут
Наша база знаний
Offline Alex_DotNETAlexAlex_DotNET112358  
#10 Оставлено : 23 августа 2019 г. 10:44:52(UTC)
Alex_DotNETAlexAlex_DotNET112358

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

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

Сказал(а) «Спасибо»: 3 раз
Автор: Андрей Писарев Перейти к цитате
Автор: Alex_DotNETAlexAlex_DotNET112358 Перейти к цитате

как только пользователь включит компьютер, сертификат автоматически будет установлен ему в реестр

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

как то так


А зачем устанавливать сертификат в реестр, если нет контейнера (закрытого ключа)?


есть сертификаты с закрытым ключем в реестре
а есть сертификаты с закрытым ключем на токене
оба нужно установить

если закрытый ключ на токене, то в реестр писать ничего не надо, просто устанавливаем сертификат
Offline two_oceans  
#11 Оставлено : 23 августа 2019 г. 10:52:57(UTC)
two_oceans

Статус: Эксперт

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

Сказал(а) «Спасибо»: 32 раз
Поблагодарили: 127 раз в 122 постах
Автор: Alex_DotNETAlexAlex_DotNET112358 Перейти к цитате
если закрытый ключ на токене, то установка должна произойти автоматически, а для подписи документов токен придется передать
Это выходит такая самописная замена службе "Распространение сертификатов", так как если сертификат в контейнера на токене, а токен у пользователя "на руках", как только пользователь вставляет токен служба пытается установить драйвер токена и установить сертификат с токена в хранилище "Личные". На рабочей станции служба отлично справляется (и если служба не потушена, то ей будет все равно на разрешения в БД, какой пользователь активен на компьютере тому и поставит сертификат с вновь вставленного токена), значит городить огород имеет смысл в случае сервера терминалов (и специально потушить службу для разграничения прав своей программой) или если в контейнере на токене нет сертификата или если контейнер в реестре/на флешке.

Отредактировано пользователем 23 августа 2019 г. 10:55:21(UTC)  | Причина: Не указана

Offline Alex_DotNETAlexAlex_DotNET112358  
#12 Оставлено : 23 августа 2019 г. 10:56:16(UTC)
Alex_DotNETAlexAlex_DotNET112358

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

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

Сказал(а) «Спасибо»: 3 раз
Автор: two_oceans Перейти к цитате
Автор: Alex_DotNETAlexAlex_DotNET112358 Перейти к цитате
если закрытый ключ на токене, то установка должна произойти автоматически, а для подписи документов токен придется передать
Это выходит такая самописная замена службе "Распространение сертификатов", так как если сертификат в контейнера на токене, а токен у пользователя "на руках", как только пользователь вставляет токен служба пытается установить драйвер токена и установить сертификат с токена в хранилище "Личные". На рабочей станции служба отлично справляется (и если служба не потушена, то ей будет все равно на разрешения в БД, какой пользователь активен на компьютере тому и поставит сертификат с вновь вставленного токена), значит городить огород имеет смысл в случае сервера терминалов (и специально потушить службу для разграничения прав своей программой) или если в контейнере на токене нет сертификата.

да, но некоторые сертификаты в реестре
их больше всего
их тож нужно устанавливать на компьютеры, плюс нужна админка кому какой сертификат поставить
что бы безопасники могли управлять
Offline Андрей Писарев  
#13 Оставлено : 23 августа 2019 г. 12:18:03(UTC)
Андрей Писарев

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

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

Сказал «Спасибо»: 279 раз
Поблагодарили: 1151 раз в 912 постах
Автор: Alex_DotNETAlexAlex_DotNET112358 Перейти к цитате

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


Т.е. в теме просто объединены понятия сертификат и контейнер с закрытым ключом?
И "установить сертификат в реестр" - это означает:
установить сертификат в Личное с привязкой к соответствующему контейнеру (который в реестре).
Верно?
Техническую поддержку оказываем тут
Наша база знаний
Offline Агафьин Сергей  
#14 Оставлено : 23 августа 2019 г. 12:40:12(UTC)
Агафьин Сергей

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

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

Сказал «Спасибо»: 1 раз
Поблагодарили: 71 раз в 66 постах
Код:
csptest -absorb -certs -pattern SCARD

Установит в хранилище с правильными привязками все сертификаты с токенов. Меняете SCARD на REGISTRY - будут ставиться из Реестр. Убираете ключ pattern вообще - установятся все сертификаты из всех доступных ключей.
С уважением,
Сергей Агафьин,
Начальник отдела разработки ФКН.
Техническую поддержку оказываем здесь.
Наша база знаний.
thanks 1 пользователь поблагодарил Агафьин Сергей за этот пост.
Андрей Писарев оставлено 23.08.2019(UTC)
Offline Alex_DotNETAlexAlex_DotNET112358  
#15 Оставлено : 23 августа 2019 г. 13:07:33(UTC)
Alex_DotNETAlexAlex_DotNET112358

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

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

Сказал(а) «Спасибо»: 3 раз
Автор: Андрей Писарев Перейти к цитате
Автор: Alex_DotNETAlexAlex_DotNET112358 Перейти к цитате

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


Т.е. в теме просто объединены понятия сертификат и контейнер с закрытым ключом?
И "установить сертификат в реестр" - это означает:
установить сертификат в Личное с привязкой к соответствующему контейнеру (который в реестре).
Верно?


да, совершенно верно
сорри, только начал изучать эту тему
Offline Alex_DotNETAlexAlex_DotNET112358  
#16 Оставлено : 23 августа 2019 г. 13:08:15(UTC)
Alex_DotNETAlexAlex_DotNET112358

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

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

Сказал(а) «Спасибо»: 3 раз
я так понимаю сертификатом называют связку 2х ключей, закрытого и открытого
Offline basid  
#17 Оставлено : 23 августа 2019 г. 13:09:25(UTC)
basid

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

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

Сказал(а) «Спасибо»: 5 раз
Поблагодарили: 92 раз в 84 постах
Сертификатом называют открытый ключ, "вложенный" в специальный "конверт".
Offline Агафьин Сергей  
#18 Оставлено : 23 августа 2019 г. 13:22:26(UTC)
Агафьин Сергей

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

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

Сказал «Спасибо»: 1 раз
Поблагодарили: 71 раз в 66 постах
Автор: Alex_DotNETAlexAlex_DotNET112358 Перейти к цитате
я так понимаю сертификатом называют связку 2х ключей, закрытого и открытого


Если очень просто с кучей допущений, всё работает примерно так.

Ключевая пара = закрытый ключ + открытый ключ. Закрытый ключ используется для подписи. Открытый ключ - для проверки подписи. Когда кто-то хочет подписать документ, он выполняет вычисляет подпись как "подпись = S(документ, закрытый ключ)". Когда кто-то хочет проверить подпись, он выполняет функцию "V(открытый ключ, документ, подпись) ?= TRUE/FALSE". Подробное описание этих функций можете посмотреть в ГОСТ Р 34.10-2012.

Чтобы ни один нарушитель не выдал себя за подписывающего простой подменой чужого открытого ключа на свой, придумали инфраструктуру PKI. Человек со своим открытым ключом идёт в ответственную организацию (удостоверяющий центр), которая делает структуру вида [имя человека, открытый ключ, служебная информация] и подписывает её своим закрытым ключом. Эта структура и называется сертификат. Открытые ключи УЦ (они нужны, чтобы проверить подпись под сертификатом пользователя и убедиться, что он настоящий - "построить цепочку доверия от сертификата до УЦ") в виде самоподписанных сертификатов (сертификат подписан своим же закрытым ключом) распространяются доверенным образом: чаще всего они встроены в браузеры и операционные системы. Некоторые важные корневые сертификаты ставит в операционную систему и наш криптопровайдер.

Отредактировано пользователем 23 августа 2019 г. 13:23:26(UTC)  | Причина: Не указана

С уважением,
Сергей Агафьин,
Начальник отдела разработки ФКН.
Техническую поддержку оказываем здесь.
Наша база знаний.
Offline Alex_DotNETAlexAlex_DotNET112358  
#19 Оставлено : 23 августа 2019 г. 13:41:29(UTC)
Alex_DotNETAlexAlex_DotNET112358

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

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

Сказал(а) «Спасибо»: 3 раз
Автор: Агафьин Сергей Перейти к цитате
Автор: Alex_DotNETAlexAlex_DotNET112358 Перейти к цитате
я так понимаю сертификатом называют связку 2х ключей, закрытого и открытого


Если очень просто с кучей допущений, всё работает примерно так.

Ключевая пара = закрытый ключ + открытый ключ. Закрытый ключ используется для подписи. Открытый ключ - для проверки подписи. Когда кто-то хочет подписать документ, он выполняет вычисляет подпись как "подпись = S(документ, закрытый ключ)". Когда кто-то хочет проверить подпись, он выполняет функцию "V(открытый ключ, документ, подпись) ?= TRUE/FALSE". Подробное описание этих функций можете посмотреть в ГОСТ Р 34.10-2012.

Чтобы ни один нарушитель не выдал себя за подписывающего простой подменой чужого открытого ключа на свой, придумали инфраструктуру PKI. Человек со своим открытым ключом идёт в ответственную организацию (удостоверяющий центр), которая делает структуру вида [имя человека, открытый ключ, служебная информация] и подписывает её своим закрытым ключом. Эта структура и называется сертификат. Открытые ключи УЦ (они нужны, чтобы проверить подпись под сертификатом пользователя и убедиться, что он настоящий - "построить цепочку доверия от сертификата до УЦ") в виде самоподписанных сертификатов (сертификат подписан своим же закрытым ключом) распространяются доверенным образом: чаще всего они встроены в браузеры и операционные системы. Некоторые важные корневые сертификаты ставит в операционную систему и наш криптопровайдер.

понятно, спасибо
вцелом я так и думал

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

про цепочку и самоподписанные не совсем понял, загуглю
Offline Alex_DotNETAlexAlex_DotNET112358  
#20 Оставлено : 23 августа 2019 г. 13:42:09(UTC)
Alex_DotNETAlexAlex_DotNET112358

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

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

Сказал(а) «Спасибо»: 3 раз
Автор: Alex_DotNETAlexAlex_DotNET112358 Перейти к цитате
Автор: Агафьин Сергей Перейти к цитате
Автор: Alex_DotNETAlexAlex_DotNET112358 Перейти к цитате
я так понимаю сертификатом называют связку 2х ключей, закрытого и открытого


Если очень просто с кучей допущений, всё работает примерно так.

Ключевая пара = закрытый ключ + открытый ключ. Закрытый ключ используется для подписи. Открытый ключ - для проверки подписи. Когда кто-то хочет подписать документ, он выполняет вычисляет подпись как "подпись = S(документ, закрытый ключ)". Когда кто-то хочет проверить подпись, он выполняет функцию "V(открытый ключ, документ, подпись) ?= TRUE/FALSE". Подробное описание этих функций можете посмотреть в ГОСТ Р 34.10-2012.

Чтобы ни один нарушитель не выдал себя за подписывающего простой подменой чужого открытого ключа на свой, придумали инфраструктуру PKI. Человек со своим открытым ключом идёт в ответственную организацию (удостоверяющий центр), которая делает структуру вида [имя человека, открытый ключ, служебная информация] и подписывает её своим закрытым ключом. Эта структура и называется сертификат. Открытые ключи УЦ (они нужны, чтобы проверить подпись под сертификатом пользователя и убедиться, что он настоящий - "построить цепочку доверия от сертификата до УЦ") в виде самоподписанных сертификатов (сертификат подписан своим же закрытым ключом) распространяются доверенным образом: чаще всего они встроены в браузеры и операционные системы. Некоторые важные корневые сертификаты ставит в операционную систему и наш криптопровайдер.

понятно, спасибо
вцелом я так и думал

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

про цепочку и самоподписанные не совсем понял, загуглю


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