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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline kurev  
#1 Оставлено : 11 сентября 2009 г. 21:21:13(UTC)
kurev

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

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

Добрый день!

Имеем веб-клиента, в котором реализовано подписывание ЭЦП XML-файла.

примерно так:

function Sign(filepath){
try{
var fso = new ActiveXObject("Scripting.FileSystemObject");
var datafile = fso.OpenTextFile(filepath, 1);
var data = datafile.ReadAll();

var signedData = new ActiveXObject("CAPICOM.SignedData");
var signer = new ActiveXObject("CAPICOM.Signer");
signedData.Content = data;
s = signedData.sign(signer, "True", 0);
sf = fso.CreateTextFile("C:\\sign.txt", "True");
sf.Write(s);
return s;
}catch(Exception){
return "Error";
}
}


Далее файл с подписью передается на сервер (C#).
Проверка ЭЦП на сервере может давать результат, что ЭЦП неверна, если в XML-файле встречаются определенные спецсимволы, которые по-разному воспринимаются JavaScript и C# при чтении текстовых файлов.

Видимое решение:
Чтение XML-файлов, как потока бинарных данных.

Одним из вариантов может быть подписание с помощью ADODB.Stream. Но это решение считается не очень хорошим, т.к. необходимо отключить блокировку этой возможности в реестре (Microsoft же советует отключить возможности ADODB.Stream – и более того отключает ее в одном из обновлений Windows, ее включение открывает дополнительную уязвимость в системе).

Насколько решение ADODB.Stream действительно НЕправильное?
Файл большой (~100 Мб), поэтому подписание с помощью XMLDSIG - представляется не очень работоспособным (нужно поднимать DOM этого xml на клиенте), возможно мои сомнения неправильные.
Есть ли какой-либо иной способ?

Спасибо!
Offline cybermerlin  
#2 Оставлено : 2 мая 2012 г. 16:21:45(UTC)
cybermerlin

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

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

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 3 раз в 3 постах
signedData.Content as String
no use binary (but mb include bin data)

var:
1- bin data convert into base64
2- bin data hashed n sign

type xml == string

for c#
use System.Security Namespaces
http://msdn.microsoft.co...us/library/gg145025.aspx
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.