18.06.2004 12:52:18Где можно хранить симметричный ключ? Ответов: 5
Дмитрий
Уважаемые гуру, планируется шифрование файлов в хранилище с постоянным симметричным ключом.
Извлечением файла из хранилища и занесением файла в хранилище должен заниматься некий программный сервис. То есть, получается, что этому сервису при работе с файлами необходимо откуда-то знать ключ для операций шифрации-дешифрации.
У меня вот какой вопрос:
Откуда сервис может читать ключ? Из какого хранилища? Из реестра – как-то не хочется. Из лежащего рядом файла – плохо. Как я понял, в контейнере ключей симметричные ключи нельзя хранить. Вообще, хотелось бы понять, как это обычно делается.
 
Ответы:
18.06.2004 13:19:48chip
имхо, так:
от пользователя требуют ввести что-то вроде пароля. Затем от этого пароля получают хеш, который является ключом для шифрования. В ГОСТе длина хеша = длине ключа шифрования, вот так.
18.06.2004 13:32:40Дмитрий
Нет нет, ввод пароля пользователем исключен. Пользователей много, а пароль(скорее ключ) всегда один, и знать его должен только упомянутый программный сервис. Так как только он уполномочен заниматься шифрацией-дешифрацией.
И откуда он может читать ключ? Я не совсем разбираюсь, может со смарт-карты? Или еще какой-нибудь стандартный способ?

ЗЫ. ну и e-mail я в первом посте написал :)
18.06.2004 14:56:15chip
имхо:
ну наверное тогда пароль можешь зашить в программу или организовать считывание с носителя. Способ хранения где и как выбирай как тебе удобнее, это может быть ключевой файл на дискете персональный для каждого пользователя и т.п.
22.06.2004 10:53:09Дмитрий
Господа, есть еще мысли, как это сделать наиболее правильно?
22.06.2004 11:58:45Александр
Вообще-то хранить один симметричный ключ и шифровать им всё подряд это не правильно. Потому что в конечном итоге накопиться большой объём шифрованной информации на основе которой можно разгадать ваш секретный ключ.
Можно сделать так:
1. У каждого пользователя есть сертификат;
2. Ваш сервис генерит секретный ключ;
3. Шифруем файл;
4. Шифруем секретный ключ на открытом ключе пользователя и помешаем эту последовательность в начало файла.
Расшифрование происходит в обратном порядке.(Закрытый ключ пользователя может храниться на дискете либо на другом носителе).
Не знаю на сколько вам этот вариант подойдёт. Смотрите сами.