26.09.2005 15:19:46HCRYPTKEY Ответов: 2
Евгений
Использую средства CryptoAPI и симметричное шифрование. Конкретно - СКЗИ Крипто ПРО, ГОСТ 89. Генерирую сессионый ключ функцией CryptGenKey. Возникает необходимость в силу специфики разрабатываемого приложения получать сессионный ключ в чистом виде, то есть как некоторый участок памяти, по которому можно восстановить HCRYPTKEY и расшифровать данные. Вопрос в том, можно ли это вообще сделать? Как дела обстоят с Крипто ПРО? Поиск по форуму практически ничего не дал.
 
Ответы:
26.09.2005 17:30:00Василий
Значение сессионного ключа в чистом виде недоступно приложению. Это требование безопасности. Приложение работает с хендлом ключа, а CSP, когда это необходимо, обращается непосредственно к ключу.
Если нужно повторное использование сессионного ключа - ключ можно сохранить в зашифрованном виде в блоб и записать этот блоб в файл. При этом сессионный ключ зашифровывается на ключе, полученном по схеме Диффи-Хеллмана с использованием долговременного закрытого ключа AT_KEYEXCHANGE (из контейнера ключа) и открытого ключа (из сертификата или незашифрованного блоба).
Общий пример шифрования данных (частью которого является сохранение сессионного ключа) можно посмотреть на http://www.cryptopro.ru/CryptoPro/forum/myforum.asp?q=4 или в http://www.cryptopro.ru/CryptoPro/test/sample2_0.zip
26.09.2005 19:46:37Евгений
Спасибо. Будем искать другие методы.