Секретные ключи GPG
От: KOLRH Финляндия  
Дата: 15.11.17 13:32
Оценка:
Здравствуйте,

уже несколько дней бьюсь над проблемой раздачи секретных ключей PGP по серверам кластера.

Представим, что у меня 2-3 сервера стоящих за балансировщиком, которые расшифровывают файлы переданные от клиентов.
На одном из серверов я сгенерировал свой RSA ключ. Открытый я переслал клиентам, а секретный надо передать на остальные сервера, потому как не знаю какой из серверов будет обслуживать клиента.

Все мануалы говорят, что секретный ключ никогда не покидает своего сервера и должен храниться в зашифрованном виде. Так как тогда решить мою проблему?
Если я експортирую секретный ключ из GPG, то он будет записан на диск в не зашифрованном виде (уже плохо). Потом копирую его по SSH на другие сервера (теперь они покинули свой родной сервер, и там не зашифрованы). Там импортирую их свой хранилища GPG. И так каждый раз когда ключ устаревает. Разве это правильные подход? Чего я не понимаю?

PS! Нашел статьи по использовании subkeys, но проблема с раздачей секретных sub-ключей в не зашифрованном виде никуда не девается?
pgp gpg rsa private key
Re: Секретные ключи GPG
От: AleksandrN Россия  
Дата: 16.11.17 13:15
Оценка:
Здравствуйте, KOLRH, Вы писали:

KOL>PS! Нашел статьи по использовании subkeys, но проблема с раздачей секретных sub-ключей в не зашифрованном виде никуда не девается?


Не понял, в чём именно проблема — в автоматизации раздачи или в том, что нужно обеспечить безопасность ключа при передаче?
Re: Секретные ключи GPG
От: Sharowarsheg  
Дата: 16.11.17 14:19
Оценка:
Здравствуйте, KOLRH, Вы писали:

KOL>уже несколько дней бьюсь над проблемой раздачи секретных ключей PGP по серверам кластера.


KOL>Представим, что у меня 2-3 сервера стоящих за балансировщиком, которые расшифровывают файлы переданные от клиентов.

KOL>На одном из серверов я сгенерировал свой RSA ключ. Открытый я переслал клиентам, а секретный надо передать на остальные сервера, потому как не знаю какой из серверов будет обслуживать клиента.

KOL>Все мануалы говорят, что секретный ключ никогда не покидает своего сервера и должен храниться в зашифрованном виде.


Против какого рода атаки это должно защищать?

Кто-то захватит себе выключенный сервер? Кто-то захватит себе включенный сервер? Кто-то запустит руткит через дырку, и будет воровать ключ?
Re: Секретные ключи GPG
От: vsb Казахстан  
Дата: 16.11.17 14:24
Оценка:
Пускай клиент шифрует не одним ключом, а всеми. А ключ будет храниться на каждом сервере свой.
Re[2]: Секретные ключи GPG
От: KOLRH Финляндия  
Дата: 16.11.17 15:06
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Пускай клиент шифрует не одним ключом, а всеми. А ключ будет храниться на каждом сервере свой.


Да, такая идея тоже посещала мою голову, но отбросил из-за лишних сложностей для клиента.
Re[2]: Секретные ключи GPG
От: KOLRH Финляндия  
Дата: 16.11.17 15:18
Оценка:
Здравствуйте, AleksandrN, Вы писали:

AN>Здравствуйте, KOLRH, Вы писали:


KOL>>PS! Нашел статьи по использовании subkeys, но проблема с раздачей секретных sub-ключей в не зашифрованном виде никуда не девается?


AN>Не понял, в чём именно проблема — в автоматизации раздачи или в том, что нужно обеспечить безопасность ключа при передаче?


Наверно я просто слишком усложняю вещи и проблемы здесь никакой нет. После ехпорта субключ надо просто зашивровать и можно передавать спокоино.
А если еще проще, то ключи даже не нужно эксопртировать из GPG, а напрямую пересылать GPG контейнер со всеми ключами.
Re[2]: Секретные ключи GPG
От: KOLRH Финляндия  
Дата: 16.11.17 15:27
Оценка:
Здравствуйте, Sharowarsheg, Вы писали:

S>Здравствуйте, KOLRH, Вы писали:


KOL>>уже несколько дней бьюсь над проблемой раздачи секретных ключей PGP по серверам кластера.


KOL>>Представим, что у меня 2-3 сервера стоящих за балансировщиком, которые расшифровывают файлы переданные от клиентов.

KOL>>На одном из серверов я сгенерировал свой RSA ключ. Открытый я переслал клиентам, а секретный надо передать на остальные сервера, потому как не знаю какой из серверов будет обслуживать клиента.

KOL>>Все мануалы говорят, что секретный ключ никогда не покидает своего сервера и должен храниться в зашифрованном виде.


S>Против какого рода атаки это должно защищать?


S>Кто-то захватит себе выключенный сервер? Кто-то захватит себе включенный сервер? Кто-то запустит руткит через дырку, и будет воровать ключ?


Считаете я слишком доверяю мануалам? Вот я и мучаюсь над этим вопросом, каких атак по-настоящему бояться. Но это же вроде как best practices.
Re[3]: Секретные ключи GPG
От: Sharowarsheg  
Дата: 16.11.17 16:13
Оценка:
Здравствуйте, KOLRH, Вы писали:

S>>Против какого рода атаки это должно защищать?

S>>Кто-то захватит себе выключенный сервер? Кто-то захватит себе включенный сервер? Кто-то запустит руткит через дырку, и будет воровать ключ?

KOL>Считаете я слишком доверяю мануалам? Вот я и мучаюсь над этим вопросом, каких атак по-настоящему бояться. Но это же вроде как best practices.


За каждой Best Practice должен быть раздел Rationale, или что-то около того — обоснование, в той или иной форме.

Вот, например — http://all.net/books/gassp2/Principles.html

Если написано просто "пароли не должны быть короче 14 символов", а обоснования нету, то это не best practice, а религия.
Re[3]: Секретные ключи GPG
От: AleksandrN Россия  
Дата: 16.11.17 19:36
Оценка:
Здравствуйте, KOLRH, Вы писали:

KOL>Наверно я просто слишком усложняю вещи и проблемы здесь никакой нет. После ехпорта субключ надо просто зашивровать и можно передавать спокоино.

KOL>А если еще проще, то ключи даже не нужно эксопртировать из GPG, а напрямую пересылать GPG контейнер со всеми ключами.

Если я всё правильно понял, ключ передаётся через SSH внутри локальной сетки. Тогда можно не сильно заморачиваться и настроить SSH-авторизацию не по логину/паролю, а по сертификату. Тогда ключ для сервера будет передаваться по шифрованному каналу. Можно дополнительно шифровать ключ, передавать шифрованным и расшифровывать на другом сервере.

И написать скрипт, который всё это сделает автоматически.

#!/bin/bash

gpg --output secret.key.enc --encrypt --recipient user1@server1 secret.key

# авторизацию уже настроили и нужные файлы лежат в ~/.ssh
scp secret.key.enc user1@server1:/home/example/secret.key.enc
ssh user1@server1 gpg --decrypt --output /home/example/secret.key /home/example/secret.key.enc
# можно для передачи использовать одну учётку, а расшифровку запускать от имени другого пользователя на удалённом сервере по расписанию

# повторить строки выше в цикле для нескольких серверов
# хорошо бы ещё делать резервную копию текущих ключей, на случай сбоя при обновлении

# скрипт не тестировал
Отредактировано 16.11.2017 19:42 AleksandrN . Предыдущая версия .
Re[4]: Секретные ключи GPG
От: KOLRH Финляндия  
Дата: 16.11.17 19:54
Оценка:
Здравствуйте, AleksandrN, Вы писали:

AN>Здравствуйте, KOLRH, Вы писали:


KOL>>Наверно я просто слишком усложняю вещи и проблемы здесь никакой нет. После ехпорта субключ надо просто зашивровать и можно передавать спокоино.

KOL>>А если еще проще, то ключи даже не нужно эксопртировать из GPG, а напрямую пересылать GPG контейнер со всеми ключами.

AN>Если я всё правильно понял, ключ передаётся через SSH внутри локальной сетки. Тогда можно не сильно заморачиваться и настроить SSH-авторизацию не по логину/паролю, а по сертификату. Тогда ключ для сервера будет передаваться по шифрованному каналу. Можно дополнительно шифровать ключ, передавать шифрованным и расшифровывать на другом сервере.


AN>И написать скрипт, который всё это сделает автоматически.


AN>
AN>#!/bin/bash

AN>gpg --output secret.key.enc --encrypt --recipient user1@server1 secret.key

AN># авторизацию уже настроили и нужные файлы лежат в ~/.ssh
AN>scp secret.key.enc user1@server1:/home/example/secret.key.enc
AN>ssh user1@server1 gpg --decrypt --output /home/example/secret.key /home/example/secret.key.enc
AN># можно для передачи использовать одну учётку, а расшифровку запускать от имени другого пользователя на удалённом сервере по расписанию

AN># повторить строки выше в цикле для нескольких серверов
AN># хорошо бы ещё делать резервную копию текущих ключей, на случай сбоя при обновлении

AN># скрипт не тестировал

AN>


Идею понял. Большое спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.