Rutoken + openVPN
Сделал все по статье
http://habrahabr.ru/company/aktiv-company/blog/137306/
в итоге конечно заработало. Рутокен ЭЦП. Правда времени потратил почти целый день и все из-за своей невнимательности - согласно статье на windows клиенте OpenVPN надо запускать из командной строки, а я запускал через OpenVPNGui. А он видите-ли не умеет запрашивать пин-код от токена (хотя пароль от зашифрованного ключа запрашивать умеет). Вычислил, включив лог на уровень 9 (verb 9) - лог завершался "Calling pin_prompt hook for Rutoken ECP". Но не сразу понял что проблема в gui, думал несовместимость с драйверами рутокена.
Зато уяснил следующее:
1. Никакой специальной версии клиента OpenVPN сейчас не требуется, начиная с версии 2.2 OpenVPN под Windows поддерживает работу с PKSC#11
2. После установки доп. софта Linux (использовал Ubuntu 12.10) надо перезагрузить, иначе токен он не видит.
3. В расширениях сертификата в текущей версии XCA надо отмечать не Microsoft Server/Client (такого вообще нет), а TLS WEB Server/Client Autentification
Кроме того, пока разбирался, попробовал использовать существующую пару (сертификат + ключ), созданную без рутокена. Под windows с помощью openssl из комплекта openvpn объединил файлы сертификата .crt и закрытого ключа пользователя .key в один файл .p12
Этот файл .p12 c помощью "Панели управления рутокен" записал на рутокен. И openvpn c ним тоже нормально работает, только что вместо rtPKSC11ECP.dll пришлось использовать rtPKCS11.dll.
А вот что интересно - так то, что "Панель управления рутокен" (равно как и "Браузер сертификатов") не видит сертификата/ключа, записанного под линуксом с помощью XCA, а XCA не видит сертификата/ключа, записанного через "Панель управления рутокен". Хотя эти две пары одновременно существуют на токене. (Токен не форматировал никак - т.е. формат тот, что идет с завода).
Теперь собственно вопросы. (Основное что мне надо от рутокена - неизвлекаемость закрытого ключа даже при условии знания PIN.)
1. В варианте с генерацией ключей сразу на токене через XCA ключик отображаетсЯ на вкладке Private Keys и кнопочка Export доступна. Хотя при нажатии заголовок выглядит как Public Key Export (для остальных ключей пишет Key Export). Это и означает что закрытый ключа нельзя извлечь и шифрование осуществляется в токене ?
2. В варианте с записью существующих ключей "панель управления рутокен" пишет, что "ключевая пара не является экспортируемой". Это и означает что закрытый ключ нельзя извлечь и шифрование осуществляется в токене ? И еще вопрос - вариант с записью ключей в плане безопасности чем-то хуже первого ? (То что закрытый ключ на компьютере временно присутствует в виде файла - это понятно, но интересует именно то, что в итоге получается на токене).
3. Есть ли программа которая может показать все, что записано на токене (т.к. описанные выше показывают только то что записали сами.) ?