26.08.2005 12:51:51носители ключей Ответов: 11
zebra
Скажите пожалуйста, возможно ли в качестве носителей ключей использовать жесткий диск (файл).
Ведь насколько я понял, носителями могу выступать реестр, дисковод, таблетки Touch-Memory и т.д.
А возможно ли ключи записывать в файл на диски и при шифрации\дешифрации считывать их из этого фала?

спасибо.
 
Ответы:
26.08.2005 14:25:13Василий
Нет. Во всяком случае, на Win.
Для UNIX (Solaris 9, FreeBSD 5, RedHat 9) и CSP 3.0 - можно.
26.08.2005 14:40:49Игорь
Почему нельзя? А экспорт/импорт?
26.08.2005 15:34:39Василий
Игорь, конечно, Вы правы. Но! Экспорт сессионного ключа (а также ключевой пары) возможен только на ключе Диффи-Хеллмана (который делается с помощью ключа из контейнера, а как раз контейнер-то человек и не хотел использовать).
26.08.2005 16:43:55zebra
>>"а как раз контейнер-то человек и не хотел использовать".
Вы правы. Но получается экспорт ключевой пары можно сделать всегда, имея контейнер. Допустим. Но на др. стороне надо делать импорт, и опять в реестр?!

получается как то убоговато все время с реестром работать)
в экселенсе можно было с файлами -контейнерами работать... кому то это было необходимо...
26.08.2005 17:28:19Василий
> Но получается экспорт ключевой пары можно сделать всегда, имея контейнер

Экспорт можно сделать только если он разрешён (когда при создании контейнера был указан соответствующий флажок).

Далее. Приведите конкретные аргументы в пользу того, почему (и кому) неудобно хранить ключ в ключевом контейнере. И вообще, странно получается - данные зашифрованы, а ключ - вот он, в файле, рядом лежит, любой расшифровать может. А если не любой имеет доступ к файлу с ключом (т.е. либо пароль на открытие, либо аутентификация и проверка прав, либо съёмный носитель) - то чем это будет принципиально отличаться от контейнера ключа?
26.08.2005 17:40:08Василий
Да, дополню ещё.

Импорт сессионного ключа из блоба делается не в реестр, а в оперативную память (приложения или сервиса). При закрытии контекста контейнера информации о сессионном ключе в контейнере не останется.
26.08.2005 17:47:25zebra
>>>>Приведите конкретные аргументы в пользу того, почему (и кому) неудобно хранить ключ в ключевом контейнере.

наверное не смогу ответить вразумительно... Но у старших программистов, узнавших о том, что нельзя хранить контейнер в в отдельном файле, волосы поднялись дыбом..)
На сервере хранится около сотни контейнеров. Имеется порядочное количество фирм (порядка 15-30). В старом варианте (когда была возможность работы с файлами-контейнерами) файлы - контейнеры распихивались по папкам фирм: каждой фирме - свои ключи. Поэтому выбор нужного ключа для шифрации\дешифрации из приложения можно было легко выбрать (просто выбрав нужную папку и ключ). Подразумевалось, что пользователь одной фирмы, не будет пользоваться ключами из папки другой фирмы. Видимо, всё на доверии.

А при работе с реестром, такой четкой структуры пользователь не получает. Приходится вводить имя контейнера и аттрибуты сертификата (например, искать по CERT_FIND_SUBJECT_STR)...

В принципе, всё это единичный случай, но всё таки...)
26.08.2005 18:01:27Василий
Тут есть хитрость. Которая облегчит Вам жизнь.
Можно хранить в файле не сам закрытый ключ, а сертификат открытого ключа. Тогда хендл контейнера получаем из контекста сертификата, открытого из файла.

Естественно, предварительно, сертификат устанавливается (с привязкой к секретному ключу) в хранилище Личные того пользователя, который имеет право расшифровывать информацию из этой папки.
Ну, или жить под одним аккаунтом пользователя для всех папок, контейнеров и сертификатов.
26.08.2005 18:05:48zebra
>>>"Можно хранить в файле не сам закрытый ключ, а сертификат открытого ключа. Тогда хендл контейнера получаем из контекста сертификата, открытого из файла."

Интересно. Получаем хендл сертификата из файла, и шифруем/дешифруем. А закрытые ключи используются из контейнера( в реестре), к которуме привязан сертификат. Так выходит?

26.08.2005 18:09:00Василий
Да.
Только ключевой контейнер не обязан быть в реестре.
26.08.2005 18:13:19zebra
СПАСИБО большое!!!!!!!