id: Гость   вход   регистрация
текущее время 21:38 19/04/2024
Автор темы: Alex_B, тема открыта 23/01/2008 09:47 Печать
Категории: криптография, софт, gnupg, инфобезопасность, безопасная разработка
http://www.pgpru.com/Форум/ТехническиеВопросы/БезопасностьХранилищаКлючей
создать
просмотр
ссылки

Безопасность хранилища ключей


Каждый раз, после добавления нового ключа, программа winPT предлагает сохранить копию хранилища ключей в удобном для вас месте (по умолчанию для хранилища секретных ключей предлагается название secring_bak.gpg).


Насколько защищен такой файл-хранилище секретных ключей? Для использования секретного ключа все рано нужно указать пароль.


Как лучше хранить хранилище ключей (мне нужно к нему регулярно обращаться из своей программы)? Как это делает сама gpg?


Спасибо.


 
Комментарии
— SATtva (23/01/2008 11:17)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Связка закрытых ключей — это простая индексированная база данных. Каждый ключ (или подключ) — это одна запись БД. Если для ключа установлен пароль, его секретный материал будет зашифрован. Никаких дополнительных мер защиты БД нет. Конкретные рекомендации по хранению связки зависят от сценария использования.

Если речь идёт об использовании GnuPG в веб-сервисе, держите secring.gpg за пределами публичной директории веб-сервера, ограничьте доступ на чтение файла только процессом веб-сервера, запретите запись в файл. В принципе, при таком сценарии использования пароли к ключам не играют особой роли, я бы их снял. Если снимать не хочется, можно передавать пароль скрипту из любого файла.

А обычные пользовательские ключи (которые Вы используете сами) лучше держать вне машины на отторгаемом носителе.

Вообще GnuPG позволяет легко разбить одну большую связку на множество мелких (каждая должна содержать минимум один ключ); тогда к каждой из них можно применять собственные политики безопасности.
— Alex_B (23/01/2008 13:58)   профиль/связь   <#>
комментариев: 143   документов: 31   редакций: 143
Спасибо за развернутый ответ.
— Alex_B (18/02/2008 10:15)   профиль/связь   <#>
комментариев: 143   документов: 31   редакций: 143
Как можно непосредственно посмотреть какие поля есть в БД, где хранятся публичные ключи?

Вот такая ситуация:
Есть база данных MS SQL. В ней будут храниться публичные ключи и даты начала (не обязательно совпадает с датой создания) и окончания их использования.

Нужно иметь возможность по отпечатку ключа находить сам ключ. Искать ключи по дате использования.

Вопрос:
Стоит ли полностью дублировать структуру хранилища ключей в MS SQL?
Или просто засовывать в MS SQL весь «PGP PUBLIC KEY BLOCK» не разбивая? (естественно поля даты и отпечатка ключа тоже будут в БД)

Спасибо.
— Alex_B (18/02/2008 11:05)   профиль/связь   <#>
комментариев: 143   документов: 31   редакций: 143
наверно и не надо хранить сами ключи, только отпечатки. Для хранения есть кеусерверы
— SATtva (18/02/2008 14:49)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Как можно непосредственно посмотреть какие поля есть в БД, где хранятся публичные ключи?

Скачайте исходники gpg и смотрите файл doc/DETAILS.

Стоит ли полностью дублировать структуру хранилища ключей в MS SQL?

В БД связки ключей сертификат ключа не разбивается на составляющие (на пакеты и субпакеты); он хранится целиком. Если Вам нужна возможность индексирования и/или поиска ключа по каким-то атрибутам сертификата в собственной БД, Вы должны будете тем или иным образом извлечь эти атрибуты из сертификата при вводе ключа в базу и сохранить их в отдельном поле БД. Сделать это проще всего, используя команды gpg --with-colons --list-keys (читайте man). Можете, конечно, написать и собственный парсер, но делать этого не советую.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3