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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Dennisw  
#1 Оставлено : 25 ноября 2009 г. 12:26:58(UTC)
Dennisw

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

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

Здравствуйте

Есть приложение WEB на IIS.
Существует ли возможность осуществления подписи информации определенного типа (строки, набора byte()), на стороне клиента с использованием его Сертификатов (установленных на стороне клиента), при работе с веб приложением?
Если да то каким образом осуществляется поиск сертификата в Хранилищах клиента,и его последующее использование.

Спасибо.
Offline Dennisw  
#2 Оставлено : 25 ноября 2009 г. 15:27:05(UTC)
Dennisw

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

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

Нашел вот такой пример
Код:

function SignData()
{
    // Необходимые константы    
    var CAPICOM_STORE_OPEN_READ_ONLY = 0;
    var CAPICOM_CURRENT_USER_STORE = 2;
    // проверяем, что поддерживаются ActiveXObject (Internet Explorer)
    if (window.ActiveXObject) {
        try {
            // Подписываемые данные
            var tbDataText = document.getElementById('<%= tbDataText.ClientID %>');
            //Создаем необходимые объекты ActiveX
            var CertStore = new ActiveXObject("CAPICOM.Store");
            var Signer = new ActiveXObject("CAPICOM.Signer");
            var SignedAuth = new ActiveXObject("CAPICOM.SignedData");
            //Открываем хранилище сертификатов пользователя только для чтения 
            CertStore.Open(CAPICOM_CURRENT_USER_STORE, "MY", CAPICOM_STORE_OPEN_READ_ONLY);
            //Выводим пользователю окно выбора сертификата 
            try {
                var certificate = CertStore.Certificates.Select(
                    "Выберите сертификат для подписи документа."
                        , "Выберите один из сертификатов", false);
            }
            catch (e) {
                // Пользователь не выбрал сертификат
                return false;
            }
            //Подписываемые данные
            SignedAuth.Content = "Дата подписи: " + (new Date()) + ", Данные: " + tbDataText.value;
            //Выбранный сертификат
            Signer.Certificate = certificate.Item(1);
            //Сюда запишем данные (можно писать в hidden поле, тут сделано для примера)
            var lblData = document.getElementById('<%= tbSignedData.ClientID %>');
            // Подписываем
            lblData.value = SignedAuth.Sign(Signer, false);
        } catch (e) {
            alert('Невозможно подписать данные. Убедитесь что браузером разрешно использование ActiveX. Добавьте сайт в Trusted Sites.');
            return false;
        }
        return true;
    }
    else {
        alert('Используйте Internet Explorer для просмотра данного сайта');
        return false;
    }
}


В принципе все работает в этом примере.
Если есть еще какие то варианты, возможно без использования CAPICOM, буду признателен за пример или ссылочку.
Offline Dennisw  
#3 Оставлено : 26 ноября 2009 г. 10:39:28(UTC)
Dennisw

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

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

А можно ли через CAPICOM осуществлять подписи несколькими ключами
по схеме:

1. набор данных подписали - сохранили
2. подняли сохраненный набор данных - подписали еще одной подписью - сохранили
3. подняли набор данных - проверили - увидели что стоит 2е подписи

?
Offline Kirill Sobolev  
#4 Оставлено : 26 ноября 2009 г. 16:26:45(UTC)
Кирилл Соболев

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

Группы: Участники
Зарегистрирован: 25.12.2007(UTC)
Сообщений: 1,732
Мужчина
Откуда: КРИПТО-ПРО

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