Здравствуйте, SkyDance, Вы писали:
SD>Я знаю, что есть хардверные решения (два или более синхронизированных хардверных ключа, на которых нужно вводить свой пароль каждому "хранителю"), но нам надо без этих железяк и на опен сорс.
Самое правильное решение — требовать ДВУХ сертификатов в клиентском софте.
Но можно сделать и по-другому:
1) Генерируется CSR (Certificate Signing Request).
2) CSR подписывается приватным ключом первого ключника.
3) CSR подписывается приватным ключом второго ключника.
Теперь имеем CSR и его две подписанные копии. Теперь на сервере просто проверяем обе подписи и генерируем сертификат, подписанный уже ключом сервера.
Вдобавок, в CSR можно включить информацию (хэши) двух промежуточных CSR.