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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Randoom  
#1 Оставлено : 3 августа 2009 г. 19:49:16(UTC)
Randoom

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

Группы: Участники
Зарегистрирован: 15.06.2009(UTC)
Сообщений: 89
Откуда: Уфа, РРЦ "АйТи"

Если ли в Sharpei данный функционал или это можно решить стандартными инструментами .net?
Если не сложно помогите примером кода внедрения штампа времени на .net .
Offline Randoom  
#2 Оставлено : 4 августа 2009 г. 15:36:43(UTC)
Randoom

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

Группы: Участники
Зарегистрирован: 15.06.2009(UTC)
Сообщений: 89
Откуда: Уфа, РРЦ "АйТи"

Также очень интересует есть ли какие либо спецификации, госты и т.д. по встраиванию штампа времени в ЭЦП XML документа.

В контексте того что решается вопрос об использовании именно средств Крипто-Про во всей цепочке работы с ЭЦП надеюсь на скорый ответ.
Offline Павел Смирнов  
#3 Оставлено : 4 августа 2009 г. 17:58:37(UTC)
Павел Смирнов

Статус: Вам и не снилось

Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 831
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 48 раз в 44 постах
Встривание штампов времени на .NET возможно.

Основных вариантов два. Примеров нет. Краткие комментарии приведены ниже.

Подпись CMS - путь будет не простой.
Последовательность шагов примерно такая:
1. Создаётся подписанное сообщение (здесь можно использовать класс SignedCms).
2. Через интерфейс TSPCOM получается штамп времени на подпись, который затем экспортируется в блоб (массив байтов).
3. Через P/Invoke вызываются низкоуровневые функции CryptoAPI (CryptMsg*) для добавления нового неподписанного атрибута в существующую подпись (класс SignedCms этого делать не позволяет).

Подпись XMLDSIG. Здесь лучше действовать по стандарту XAdES и добавить неподписанный атрибут (аналогично CMS) со штампом времени. Штамп времени получить через TSPCOM в виде блоба.

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

Техническую поддержку оказываем тут.
Наша база знаний.
Offline Randoom  
#4 Оставлено : 5 августа 2009 г. 12:41:37(UTC)
Randoom

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

Группы: Участники
Зарегистрирован: 15.06.2009(UTC)
Сообщений: 89
Откуда: Уфа, РРЦ "АйТи"

Спасибо за подсказку в сторону XAdES. Шарпей умеет с ней работать ? (всмысле чтобы не руками выставлять дополнительные атрибуты? там ведь, я так понимаю, разница только в дополнительных полях?)

И второй вопрос - хожу к тестовому TSP серверу Криптопро через пакет от Org.BouncyCastle (похоже всетаки придется сменить его на TSPCOM - кстати - имеется ввиду просто подцепление ActiveX объекта ?) и получаю статус TSP ответа == 2 (по спецификации - rejection (2) ), подскажите пожалуйcта из-за чего это может происходить ?

Используемые параметры :
"http://www.cryptopro.ru/tsp/tsp.srf",
tsqGenerator.SetCertReq(true);
tsqGenerator.SetReqPolicy("1.2.643.2.2.38.4");
Алгоритм хеширования X509ObjectIdentifiers.IdSha1,
nonce = BigInteger.ValueOf(DateTime.Now.Ticks);

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

Offline Челпанов А.  
#5 Оставлено : 5 августа 2009 г. 19:11:37(UTC)
Челпанов А.

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

Группы: Участники
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 390
Мужчина
Откуда: КриптоПро

Поблагодарили: 2 раз в 2 постах
Цитата:
Спасибо за подсказку в сторону XAdES. Шарпей умеет с ней работать ? (всмысле чтобы не руками выставлять дополнительные атрибуты? там ведь, я так понимаю, разница только в дополнительных полях?)
Нет. Ни тестов, ни примеров, ничего.
Цитата:
И второй вопрос - хожу к тестовому TSP серверу Криптопро через пакет от Org.BouncyCastle (похоже всетаки придется сменить его на TSPCOM - кстати - имеется ввиду просто подцепление ActiveX объекта ?) и получаю статус TSP ответа == 2 (по спецификации - rejection (2) ), подскажите пожалуйcта из-за чего это может происходить ?
Совместное функционирование не проверяли. Но на сколько мне известно, поддержки ГОСТ в BC нет.
С уважением, Александр.
Offline Randoom  
#6 Оставлено : 5 августа 2009 г. 19:22:08(UTC)
Randoom

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

Группы: Участники
Зарегистрирован: 15.06.2009(UTC)
Сообщений: 89
Откуда: Уфа, РРЦ "АйТи"

Челпанов А. написал:
Цитата:
Спасибо за подсказку в сторону XAdES. Шарпей умеет с ней работать ? (всмысле чтобы не руками выставлять дополнительные атрибуты? там ведь, я так понимаю, разница только в дополнительных полях?)
Нет. Ни тестов, ни примеров, ничего.
Цитата:
И второй вопрос - хожу к тестовому TSP серверу Криптопро через пакет от Org.BouncyCastle (похоже всетаки придется сменить его на TSPCOM - кстати - имеется ввиду просто подцепление ActiveX объекта ?) и получаю статус TSP ответа == 2 (по спецификации - rejection (2) ), подскажите пожалуйcта из-за чего это может происходить ?
Совместное функционирование не проверяли. Но на сколько мне известно, поддержки ГОСТ в BC нет.


Есть поддержка GOST3411
http://bouncycastle.gva....e/tsp/TSPAlgorithms.html
Нужно как то явно указывать его использование (простите - слишком плохо знаком с протоколом TSP) или все должно происходить автоматически?

Вообщем, я так понимаю - это именно тот гост который нужен, и он поддерживается, куда можно копать дальше по поводу Статуса TSP ответа == 2?
p.s. не совсем понятно что имеется ввиду все же под поддержкой гост - формирование хеша документа или что ?

Отредактировано пользователем 5 августа 2009 г. 19:44:14(UTC)  | Причина: Не указана

Offline Челпанов А.  
#7 Оставлено : 5 августа 2009 г. 20:07:42(UTC)
Челпанов А.

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

Группы: Участники
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 390
Мужчина
Откуда: КриптоПро

Поблагодарили: 2 раз в 2 постах
Не понял о каком BouncyCastle идет речь.
О Java? Вы ссылку дали на Java.
С уважением, Александр.
Offline Павел Смирнов  
#8 Оставлено : 5 августа 2009 г. 20:07:53(UTC)
Павел Смирнов

Статус: Вам и не снилось

Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 831
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 48 раз в 44 постах
Шарпей XAdES не реализует. Добавление неподписанного атрибута делается довольно легко. Главно - правильно оформить XML-узел.

Тестовый TSP сервер не работал из-за протухшего сертификата. Сейчас должен работать, пробуйте.

TSPCOM - это COM-комонент. Вам нужно будет создать объект TSPRequest, заполнить его поля, позвать метод Send, проверить ответ и экспортировать его в блоб.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline Randoom  
#9 Оставлено : 5 августа 2009 г. 21:02:18(UTC)
Randoom

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

Группы: Участники
Зарегистрирован: 15.06.2009(UTC)
Сообщений: 89
Откуда: Уфа, РРЦ "АйТи"

Челпанов А. написал:
Не понял о каком BouncyCastle идет речь.
О Java? Вы ссылку дали на Java.

ссылку дал на Javadoc потому что он такой же и для .net ... только еще и публичный
Вообщем не суть... Клиент от BC заработал сразу после смены сертификата.

Смирнов написал:
Шарпей XAdES не реализует. Добавление неподписанного атрибута делается довольно легко. Главно - правильно оформить XML-узел.


вопрос не столько в добавлении - сколько в проверке, будет ли проверяться стандартным способом подпись у такого документа - или надо будет писать кастомизированую проверку ?

Смирнов написал:


TSPCOM - это COM-комонент. Вам нужно будет создать объект TSPRequest, заполнить его поля, позвать метод Send, проверить ответ и экспортировать его в блоб.


Я так понимаю - это компонент производства Криптопро? Где можно скачать библиотеку ?
Update| Вопрос закрыт - инсталляха лежит в tspsdk.msi, достаточно просто открыть архиватором

Отредактировано пользователем 6 августа 2009 г. 12:34:11(UTC)  | Причина: Не указана

Offline Павел Смирнов  
#10 Оставлено : 6 августа 2009 г. 13:13:49(UTC)
Павел Смирнов

Статус: Вам и не снилось

Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 831
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 48 раз в 44 постах
Randoom написал:
вопрос не столько в добавлении - сколько в проверке, будет ли проверяться стандартным способом подпись у такого документа - или надо будет писать кастомизированую проверку ?

Подпись будет проверяться стандартно, а вот брать и проверять штамп придётся самостоятельно.

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

Техническую поддержку оказываем тут.
Наша база знаний.
Offline Randoom  
#11 Оставлено : 6 августа 2009 г. 13:47:27(UTC)
Randoom

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

Группы: Участники
Зарегистрирован: 15.06.2009(UTC)
Сообщений: 89
Откуда: Уфа, РРЦ "АйТи"

Смирнов написал:
Randoom написал:
вопрос не столько в добавлении - сколько в проверке, будет ли проверяться стандартным способом подпись у такого документа - или надо будет писать кастомизированую проверку ?

Подпись будет проверяться стандартно, а вот брать и проверять штамп придётся самостоятельно.

Если это возможно хотелось бы помощи с следующими моментами

1) XAdES-C (как расширение для XAdES-T) подразумевает два дополнительных списка - CompleteCertificateRefs (и CompleteRevocationRefs) вводящих меня в некоторое замешательство.
Из объекта TSPCOM мы получаем Serial и Hash(+алгоритм), соответственно вставляем их в поля :
Код:

< UnsignedSignatureProperties >
   < CompleteCertificateRefs >
      < CertRefs >
         < Cert >
            < CertDigest >
               < DigestMethod xmlns=" http ://www.w3.org/2000/09/xmldsig #" Algorithm=" http ://www.w3.org/2000/09/xmldsig #sha1"/ >
               < DigestValue xmlns=" http ://www.w3.org/2000/09/xmldsig #">gkBzQxlGGptYR4pniNVJEGsgDio=< /DigestValue >
            < / CertDigest >
            < IssuerSerial>
               < X509IssuerName xmlns=" http ://www.w3.org/2000/09/xmldsig # " >C=EE,O=AS Sertifitseerimiskeskus,CN=Juur-SK,emailAddress=pki@sk.ee</X509IssuerName >
               < X509SerialNumber xmlns=" http ://www.w3.org/2000/09/xmldsig # " >1110287047< /X509SerialNumber >
            < / IssuerSerial >
         < / Cert >
      < / CertRefs >
   < / CompleteCertificateRefs >


А где в объекте TSPStamp собственно cам TimeStamp ?

UPDATE^
нашел случайно на форуме что-то в таком духе
Код:
Timestamp data itself is stored in base64 format in < EncapsulatedTimeStamp > child element.


т.е. вроде как :
TSPStamp tspStamp = tspRequest.Send(true);
CAPICOM.Utilities utilities = new Utilities();
hashDataInfo.InnerText = utilities.Base64Encode(tspStamp.Export());

a) Я так понимаю - сам timestamp именно так и получается ? .... просто в примерах он обычно много меньше по размеру ....

Код:


< SignatureTimeStamp Id="S0-T0" >
   < Include URI="#S0-SIG" >< /Include >
   < EncapsulatedTimeStamp >MIIMYzADAgEAMIIMWgYJKoZIhvcNAQcCoIIMSzCCDEcCAQMxCzAJBgUrDgMCGgUAZSQAy4ewaA==      
   < /EncapsulatedTimeStamp>
< /SignatureTimeStamp >



а в тестовом случае получается

Код:

MIIFYAYJKoZIhvcNAQcCoIIFUTCCBU0CAQMxDDAKBgYqhQMCAgkFADBxBgsqhkiG
9w0BCRABBKBiBGAwXgIBAQYHKoUDAgImBDAfMAcGBSsOAwIaBBRwG5mp5SsqVgEV
K6kl1fsFA+PhqQIOAJg6WMV2AAAAAANBFE4YDzIwMDkwODEwMDk0NzU3WjAEAgIH
CAIIVf3YAIp2lfWgggLwMIIC7DCCApmgAwIBAgIKFrU8PgACAAAnWDAKBgYqhQMC
AgMFADBlMSAwHgYJKoZIhvcNAQkBFhFpbmZvQGNyeXB0b3Byby5ydTELMAkGA1UE
BhMCUlUxEzARBgNVBAoTCkNSWVBUTy1QUk8xHzAdBgNVBAMTFlRlc3QgQ2VudGVy
IENSWVBUTy1QUk8wHhcNMDkwODA1MTE0NzQ4WhcNMTAwODA1MTE1NzQ4WjApMQsw
CQYDVQQGEwJSVTEaMBgGA1UEAxMRRGVtbyBUU0EgT3BlcmF0b3IwYzAcBgYqhQMC
AhMwEgYHKoUDAgIjAQYHKoUDAgIeAQNDAARA/0u5tRAd6aT5XRay1zRqHiJ52wGQ
dUyKrvqwzHtVyD2qzjfZpQkGeVkV0Fea9lvdruZFKPylmfkTilw0qMJ5k6OCAWEw
ggFdMA4GA1UdDwEB/wQEAwIGwDATBgNVHSUEDDAKBggrBgEFBQcDCDAdBgNVHQ4E
FgQUCxUeprj1nFjQvzhFGJUP+3uRKi0wHwYDVR0jBBgwFoAUbY9eBdlfrJEXlB6V
mgUwODd6ECowVQYDVR0fBE4wTDBKoEigRoZEaHR0cDovL3d3dy5jcnlwdG9wcm8u
cnUvY2VydGVucm9sbC9UZXN0JTIwQ2VudGVyJTIwQ1JZUFRPLVBSTygyKS5jcmww
gZ4GCCsGAQUFBwEBBIGRMIGOMDMGCCsGAQUFBzABhidodHRwOi8vd3d3LmNyeXB0
b3Byby5ydS9vY3NwbmMvb2NzcC5zcmYwVwYIKwYBBQUHMAKGS2h0dHA6Ly93d3cu
Y3J5cHRvcHJvLnJ1L0NlcnRFbnJvbGwvQ3J5cHRvX1Rlc3QlMjBDZW50ZXIlMjBD
UllQVE8tUFJPKDIpLmNydDAKBgYqhQMCAgMFAANBAB7MvtRfJNglXoomheod+/WR
vkY5pOqPow7R3mo6+ihP1SOllxMjiDBVsv5caiMp6k1zqgX74f3+gF0FGAg/Gocx
ggHRMIIBzQIBATBzMGUxIDAeBgkqhkiG9w0BCQEWEWluZm9AY3J5cHRvcHJvLnJ1
MQswCQYDVQQGEwJSVTETMBEGA1UEChMKQ1JZUFRPLVBSTzEfMB0GA1UEAxMWVGVz
dCBDZW50ZXIgQ1JZUFRPLVBSTwIKFrU8PgACAAAnWDAKBgYqhQMCAgkFAKCB+DAa
BgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJKoZIhvcNAQkEMSIEIGYgPzX5
shFvHhnSta24WMYmSzCddBZx5PG6n1czfySsMIGoBgsqhkiG9w0BCRACDDGBmDCB
lTCBkjCBjwQU91wXrGcSpk/0rWKBxzm3yeMuzlEwdzBppGcwZTEgMB4GCSqGSIb3
DQEJARYRaW5mb0BjcnlwdG9wcm8ucnUxCzAJBgNVBAYTAlJVMRMwEQYDVQQKEwpD
UllQVE8tUFJPMR8wHQYDVQQDExZUZXN0IENlbnRlciBDUllQVE8tUFJPAgoWtTw+
AAIAACdYMAoGBiqFAwICEwUABED7sEGRqtlkYYUwLrVgbYXHtJQTf3wVIPOctcez
EjOEGT3jxTRDS8COMytg6yt+KReKRWHJpltMXuJY7IQ96ODl


b) зачем в tspStamp.Import вторым параметром tspRequest ? т.е. как правильно поднимать объект timeStamp (и вообще - нужно ли? - не совсем понимаю технологию проверки) ?

2) Каким образом происходит проверка (интересуют оба варианта и онлайн (XAdES-T) и offline (XAdES-C и далее)) штампа времени, хотя бы "на пальцах"? Я смутно предполагаю, что это действие аналогичное проверке CAdES-T(-C и далее), а у Вас, вроде как есть опыт в этом вопросе.

перефразирую ... через TSP я могу получить метку времени системы долгосрочного хранения электронных документов (Serial?).
a) Как я могу обратиться, в данном случае к TSA Крипто-Про (как к поставщику услуг) для проверки штампа времени документа ?
b) Могу ли я сделать возможной offline проверку timestamp ?

p.s. в свете того что информации по данной теме, да еще и в свете .net + XML в инете ну очень мало - буду рад любой помощи.
p.p.s. пока жду ответа - часто меняю вопросы - так как приходит понимание и осознание глупости предшествующей формулировки, так что не обезсудьте )

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

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