openssl: два ключа шифрования
От: SkyDance Земля  
Дата: 17.09.15 04:54
Оценка:
Хочется совсем не странного: защитить приватный ключ шифрования паролем. Но не простым, а таким, чтобы он был поделен на две части, и каждой из частей владел только один человек. Нужно для того, чтобы для подписи сертификатов своё одобрение выдавали два человека (таковы местные правила).

Самый простой вариант — вводить пароль двоим сразу, с одного логического терминала (скажем, screen в linux). Но это не шибко безопасно и жуть как неудобно. Есть ли классические решения лучше?

Второй вариант — хранить ключ в зашифрованном дважды хранилище, первый раз с первым паролем, второй раз с другим. Проблемы аналогично предыдущему.
Re: openssl: два ключа шифрования
От: BulatZiganshin  
Дата: 17.09.15 22:33
Оценка:
Здравствуйте, SkyDance, Вы писали:

SD>Хочется совсем не странного: защитить приватный ключ шифрования паролем. Но не простым, а таким, чтобы он был поделен на две части, и каждой из частей владел только один человек.


проблема в чём — алгоритме или процедуре?
Люди, я люблю вас! Будьте бдительны!!!
Re[2]: openssl: два ключа шифрования
От: SkyDance Земля  
Дата: 17.09.15 23:39
Оценка:
BZ>проблема в чём — алгоритме или процедуре?

Что вы имеете в виду?

Попробую пояснить на примере аналогий.
Есть сейф (банковская ячейка). Чтобы ее открыть, нужно, чтобы два человека одновременно (или с небольшой разницей по времени) совершили два неких аутентификационных действия. Суть каждый человек повернул свой ключ в замке этой банковской ячейки.

Именно эту процедуру хочется реализовать для "открывания" приватного ключа сертификационного центра. Чтобы поодиночке (без активного действия второго человека) люди не могли подписывать сертификаты.

Раньше было сделано так: ключ лежит в контейнере, который зашифрован ключом одного из этих людей. Но ключ также зашифрован паролем (второго человека). Проблема этого подхода в том, что после того, как первый расшифровал контейнер, второй получает доступ к расшифрованному контейнеру — суть к ключу (и может его использовать неограниченное количество раз).

Сейчас сделано так: каждый из двух ответственных знает только половину пароля. Они вводят эти половины по очереди на secure terminal. Неудобство в том, что этот secure terminal — физический, а значит, требуется личное присутствие обоих людей в одном месте (возле корпоративного сейфа).

Я знаю, что есть хардверные решения (два или более синхронизированных хардверных ключа, на которых нужно вводить свой пароль каждому "хранителю"), но нам надо без этих железяк и на опен сорс.
Re[3]: openssl: два ключа шифрования
От: Cyberax Марс  
Дата: 18.09.15 01:33
Оценка: +1
Здравствуйте, SkyDance, Вы писали:

SD>Я знаю, что есть хардверные решения (два или более синхронизированных хардверных ключа, на которых нужно вводить свой пароль каждому "хранителю"), но нам надо без этих железяк и на опен сорс.

Самое правильное решение — требовать ДВУХ сертификатов в клиентском софте.

Но можно сделать и по-другому:
1) Генерируется CSR (Certificate Signing Request).
2) CSR подписывается приватным ключом первого ключника.
3) CSR подписывается приватным ключом второго ключника.

Теперь имеем CSR и его две подписанные копии. Теперь на сервере просто проверяем обе подписи и генерируем сертификат, подписанный уже ключом сервера.

Вдобавок, в CSR можно включить информацию (хэши) двух промежуточных CSR.
Sapienti sat!
Re[4]: openssl: два ключа шифрования
От: SkyDance Земля  
Дата: 18.09.15 02:08
Оценка:
C>Самое правильное решение — требовать ДВУХ сертификатов в клиентском софте.

Все, что нам нужно, это просто убедиться, что оба ключника лично разрешили подписать сертификат. Конкретный юз-кейс — личные сертификаты для VPN соединения. Их должны подписать два офицера по безопасности (как, кстати, правильно перевести security officer?)
Два сертификата тот же openVPN не понимает.

C>Теперь имеем CSR и его две подписанные копии. Теперь на сервере просто проверяем обе подписи и генерируем сертификат, подписанный уже ключом сервера.


В таком варианте ключ сервера лежит в открытом виде и может быть доступен кому-то одному. Нам как раз нужно защитить "ключ сервера" в твоей терминологии. Чтобы им можно было воспользоваться только когда оба ключника это разрешили.
Re[3]: openssl: два ключа шифрования
От: BulatZiganshin  
Дата: 18.09.15 06:10
Оценка:
Здравствуйте, SkyDance, Вы писали:

SD>Попробую пояснить на примере аналогий.


аналогии вещь конечно замечательная

SD>Я знаю, что есть хардверные решения (два или более синхронизированных хардверных ключа, на которых нужно вводить свой пароль каждому "хранителю"), но нам надо без этих железяк и на опен сорс.


тебе нужно готовое решение, которое запросит половинки пароля на разных компах и затем расшифрует данные? или просто такая идея не пришла в голову?
Люди, я люблю вас! Будьте бдительны!!!
Re[5]: openssl: два ключа шифрования
От: wildwind Россия  
Дата: 20.09.15 13:05
Оценка:
Здравствуйте, SkyDance, Вы писали:

SD> (как, кстати, правильно перевести security officer?)


Специалист по ИБ или просто "безопасник". Officer в данном случае от слова office.
Я привык, что в интернете можно найти ответ на любой вопрос. Я не люблю думать. Зачем думать, если всё уже придумано до меня? © Zenden@RSDN ::: avalon/1.0.442
Re: openssl: два ключа шифрования
От: pva  
Дата: 20.09.15 13:06
Оценка:
Здравствуйте, SkyDance, Вы писали:

SD>Хочется совсем не странного: защитить приватный ключ шифрования паролем. Но не простым, а таким, чтобы он был поделен на две части, и каждой из частей владел только один человек. Нужно для того, чтобы для подписи сертификатов своё одобрение выдавали два человека (таковы местные правила).

С наскоку вспомнить не могу, но по-моему именно такая задача была в курсе критпто 1 на курсере у Бонеха.
И вроде бы она решается классическим способом для двух персон, но если больше — то с решением проблемы.

В принципе, наколенное решение
1. Сертификат шифруется ключем К
2. Генерится К1 длиной ||K||
3. К2 вычисляется как K2 = K ^ K1

Без ввода обоих ключей К не получить. Информация отдельно о К1, либо о К2 не дает никакой информации о К.
newbie
Re[2]: openssl: два ключа шифрования
От: wildwind Россия  
Дата: 20.09.15 16:24
Оценка: +1
Здравствуйте, pva, Вы писали:

pva> 1. Сертификат шифруется ключем К

pva> 2. Генерится К1 длиной ||K||
pva> 3. К2 вычисляется как K2 = K ^ K1

pva> Без ввода обоих ключей К не получить. Информация отдельно о К1, либо о К2 не дает никакой информации о К.


Тут есть еще организационная часть. ТС хочет, как я понял, некую "магию", с помощью которой никто не имел бы доступа к К или расшифрованному сертификату. А это по-моему невозможно. Тут можно продложить только схему с доверенной third party, которая будет проверять запрос, подписанный обоими ответственными лицами, и выдавать сертификат.
Я привык, что в интернете можно найти ответ на любой вопрос. Я не люблю думать. Зачем думать, если всё уже придумано до меня? © Zenden@RSDN ::: avalon/1.0.442
Re[3]: openssl: два ключа шифрования
От: pva  
Дата: 20.09.15 18:44
Оценка:
Здравствуйте, wildwind, Вы писали:

W>Тут есть еще организационная часть. ТС хочет, как я понял, некую "магию", с помощью которой никто не имел бы доступа к К или расшифрованному сертификату. А это по-моему невозможно.

W>Тут можно продложить только схему с доверенной third party, которая будет проверять запрос, подписанный обоими ответственными лицами, и выдавать сертификат.
Third party может быть смарткартой/криптотокеном, например. Тогда, условно конечно, требования будут выполнены.
При этом политику управления ключами можно реализовать любую, начиная от списка паролей. Причем сам сертификат не покинет "доверенную зону".
newbie
Re[4]: openssl: два ключа шифрования
От: wildwind Россия  
Дата: 20.09.15 19:10
Оценка:
Здравствуйте, pva, Вы писали:

pva> Third party может быть смарткартой/криптотокеном, например.


Существуют такие токены, которые умеют подписывать сертификаты? Я не встречал.
Я привык, что в интернете можно найти ответ на любой вопрос. Я не люблю думать. Зачем думать, если всё уже придумано до меня? © Zenden@RSDN ::: avalon/1.0.442
Re[5]: openssl: два ключа шифрования
От: Cyberax Марс  
Дата: 21.09.15 00:07
Оценка: 16 (1)
Здравствуйте, wildwind, Вы писали:

pva>> Third party может быть смарткартой/криптотокеном, например.

W>Существуют такие токены, которые умеют подписывать сертификаты? Я не встречал.
Конечно, существуют. Называются "HSM" (Hardware Security Module) — можно взять http://www.safenet-inc.com/data-encryption/hardware-security-modules-hsms/luna-hsms-key-management/luna-sa-network-hsm/

Единственная проблема — это нишевой рынок, поэтому все решения очень дорогие.
Sapienti sat!
Re[6]: openssl: два ключа шифрования
От: wildwind Россия  
Дата: 21.09.15 00:30
Оценка:
Здравствуйте, Cyberax, Вы писали:

C> W>Существуют такие токены, которые умеют подписывать сертификаты? Я не встречал.


C> Конечно, существуют. Называются "HSM" (Hardware Security Module) — можно взять http://www.safenet-inc.com/data-encryption/hardware-security-modules-hsms/luna-hsms-key-management/luna-sa-network-hsm/


На первый взгляд он по функциям такой же, как и карманный токен, только большой и обвешанный сертификациями. То есть может асимметрично зашифровать/подписать произвольный блок данных. Или он действительно может взять на себя поддержку PKI и генерировать X.509?
Я привык, что в интернете можно найти ответ на любой вопрос. Я не люблю думать. Зачем думать, если всё уже придумано до меня? © Zenden@RSDN ::: avalon/1.0.442
Re[6]: openssl: два ключа шифрования
От: SkyDance Земля  
Дата: 21.09.15 01:21
Оценка:
C>Единственная проблема — это нишевой рынок, поэтому все решения очень дорогие.

Именно так.
У нас есть несколько этих токенов, но еще покупать не планируют до 2016 года. А сейчас нужно "как-нибудь так".
Re[7]: openssl: два ключа шифрования
От: Cyberax Марс  
Дата: 21.09.15 01:50
Оценка: 16 (1)
Здравствуйте, wildwind, Вы писали:

W>На первый взгляд он по функциям такой же, как и карманный токен, только большой и обвешанный сертификациями. То есть может асимметрично зашифровать/подписать произвольный блок данных. Или он действительно может взять на себя поддержку PKI и генерировать X.509?

Там реально PKI — его как раз чаще всего и используют именно для этого. Т.е. он подключен к управляющему компу и генерирует сертификаты и списки отзыва.
Sapienti sat!
Re[5]: openssl: два ключа шифрования
От: pva  
Дата: 21.09.15 08:16
Оценка:
Здравствуйте, wildwind, Вы писали:

W>Существуют такие токены, которые умеют подписывать сертификаты? Я не встречал.

Существуют такие смарткарты, которые позволяют свои модули писать. А там уже можно реализовать нужную логику.
newbie
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.