18.02.2002 19:09:46шиф-е докум-в на разных компьютерах одними ключами Ответов: 7
Влад Степанов
Здравствуйте!

По заказу одного из банков, использующего нашу систему "Банк+Клиент" мы начали разработку ее клона с поддержкой СКЗИ "Крипто ПРО". К сожалению мы наткнулись на следующую проблему: невозможность запуска функции шифрации на произвольной машине в локальной сети при необходимости использования одного и того же секретного ключа. Проблема усугубляется тем, что подобная функция используется подавляющим большинством клиентов банка, при этом ныне применяемая система криптозащиты им это позволяет. Говоря про большое число клиентов мы имеем в виду, что использование ручных операций, таких как копирование содержимого реестра с машины на машину нежелательно.
Также нежелательно использовать гибкие диски для хранения ключей и нежелательно использовать сертификаты.

Нас интересует возможность использования сетевой версии нашего ПО с возможностью шифрования документов на разных компьютерах одними и теми же ключами. Какие в этой ситуации у Вас есть предложения на базе Вашей текущей реализации?

Заранее спасибо
С уважением,
Влад Степанов, ЗАО "Компания СФТ"
 
Ответы:
19.02.2002 13:24:13kure
Можно поподробнее о пожеланиях использования.
Правильно ли я понимаю (если не так, поправьте), что:
1. Ключи должны быть не на дискете и вообще не на носителе, а на диске.
2. ЭЦП нужна
3. Пользователь должен иметь возможность работать с разных компьютеров и при этом с разных компьютеров шифровать и подписывать (или к подписи это не имеет отношение).
4. Операционки могут быть разными (от 95 до XP).
19.02.2002 13:49:51Vlad Stepanov
>1. Ключи должны быть не на дискете и вообще
> не на носителе, а на диске.

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

> 2. ЭЦП нужна

Да

> 3. Пользователь должен иметь возможность
> работать с разных компьютеров и при этом с
> разных компьютеров шифровать и подписывать (или
> к подписи это не имеет отношение).

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

> 4. Операционки могут быть разными (от 95 до
> XP).

К сожалению, да.
19.02.2002 13:50:05Vlad Stepanov
>1. Ключи должны быть не на дискете и вообще
> не на носителе, а на диске.

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

> 2. ЭЦП нужна

Да

> 3. Пользователь должен иметь возможность
> работать с разных компьютеров и при этом с
> разных компьютеров шифровать и подписывать (или
> к подписи это не имеет отношение).

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

> 4. Операционки могут быть разными (от 95 до
> XP).

К сожалению, да.
19.02.2002 14:08:46kure
Ну тогда попробую описать вариант.
1. Хранить личные ключи на диске (точнее в реестре) можно, но по требованиям безопаснсоти - плохо. Если заказчик это понимает и может обеспечить их безопасное хранение на диске - это его проблема.
2. Если хранить ключи в реестре то для их использования на другом компьютере нужно часть реестра перенести, что не желательно.
3. Вариант - личные ключи хранятся на дискете.
Для ЭЦП вообще больше ничего не надо. Пользователь всегда имеет свой ключ, ничего устанавливать не нужно, все работает через уровень Base Cryptographic Function. Т.е. открыли контекст провайдера, посчитали хеш, подписали ключом с дискеты. Вопрос при реализации - создание формата сообщения, чтобы получивший мог проверить подпись. Ну этом вам решить как и где открытый ключ пользователя зарегистрировать и как его сопоставить с пользователем (раз не хочется использовать сертификаты).
4. Шифрование. Имеем два способа решения.
4.1. Шифруем через те же функции. Для этого нужно определить открытые ключи получателей. Расшифровываем всегда на своем ключе (дискета).
4.2. Неправильный вариант (не рекомендуется использовать) но работать будет.
Пользуемся функций DeriveKey и у вас один ключ шифрования для всех или не для всех.

Только в этом случае сначала надо порешать вопрос: от кого защищаемся.
19.02.2002 15:07:10Vlad Stepanov
Спасибо

>Если хранить ключи в реестре то для их
>использования на другом компьютере нужно часть
>реестра перенести, что не желательно.

Как все-таки корректно осуществлять этот перенос?
Документирован ли формат хранения ключей КриптоПро в реестре? Будет ли поддерживаться в следующих версиях Вашего продукта?
19.02.2002 16:26:42Vlad Stepanov
P.S. еще - возможно ли перенести ключи с дискеты в реестр?
19.02.2002 21:08:03Greg Chudov
> Как все-таки корректно
> осуществлять этот перенос?
> Документирован ли формат
> хранения ключей КриптоПро
> в реестре?
> Будет ли поддерживаться
> в следующих версиях Вашего продукта?
Местоположение контейнера в реестре
видимо будет оставаться неизменным
от версии к версии.
Формат ключей несуществен для переноса -
копируется целиком весь ключевой контейнер.
Для перечисления содержимого контейнера удобно использовать функцию RegEnumValue;