Смарт-карты
4.3.3 Перенос длинного ключа Notes на смарт-карту
В Notes 7 появилась поддержка в ID более длинных ключей в паре асимметричных ключей (см "Усовершенствования, связанные с ключами увеличенной длины в сертификатах и ID" , "Усовершенствования, связанные с более длинными ключами и сертификатами в ID"). Такие ключи Notes, длиной 1024 бит и более, хранятся и обрабатываются внутри Notes с использованием более современных и общепринятых криптографических стандартов, чем это было в начале истории Notes (где использовалась одна из самых ранних PKI, оказавшаяся самой долгоживущей). Одним из преимуществ современных длинных ключей Notes является совместимость с устройствами, соответствующими стандарту PKCS#11, а это означает, что длинные ключи Notes можно переносить на смарт-карту при помощи практически тех же методов, которые описаны в подразделе 4.3.2, "Связывание с ключом Х.509 на смарт-карте" для ключей X.509, и с тем же самым результатом - все операции с личным ключом производит микропроцессор смарт-карты. После того как ID-файл создан или переведен на длинные ключи Notes, пользователю нужно только перенести ключ на смарт-карту, применяя обычный пункт меню Other Actions (Другие действия) Move Private Key to Smartcard (Перенести личный ключ на смарт-карту), как показано на рис. 4.7.
В настоящее время в Notes 7 значок в столбце Туре (Тип) для связанного со смарт-картой сертификата Notes не имеет небольшого элемента, обозначающего "на смарт-карте", как показано на рис. 4.5, относящемся к связанным со смарт-картой сертификатам X.509. Кроме того, исходно клиент Notes 7 не поддерживает защиту смарт-картой ID-файла с находящимся на смарт-карте ключом Notes так, как это описано для ключей X.509 в подразделе 4.3.3, "Обеспечение безопасности Notes ID при помощи смарт-карты". Однако вы можете использовать для этого программу с применением Notes С API, как описано в подразделе 4.4.1, "Поддержка Notes С API"
4.4 Дополнительные возможности
В этом разделе рассматриваются дополнительные возможности Lotus Notes и смарт-карт: поддержка Notes С API, защита сервера Domino при помощи смарт-карты и поддержка криптографических ускорителей, предлагаемых интерфейсом PKCS #11.
4.4.1 Поддержка Notes C API
В этом подразделе описывается поддержка Notes С API.
SECManipulateSC()
Функция Notes С API SECManipulateSCO (типа "все в одном"), появившаяся в Notes 6.0.2, позволяет программно выполнять все функции, описанные выше, и даже больше: становится возможной автоматизация работы со смарт-картами через Notes ID.
За подробным описанием этой функции обращайтесь к справочной базе данных, входящей в Notes/Domino 7 С API Toolkit. Данный инструментарий доступен через Lotus Developer Domain. Посетите указанный ниже сайт и выберите ссылку Toolkits and drivers в разделе Downloads and CDs: http://www.lotus.com/ldd
Помимо возможностей, которые есть в клиенте Notes, при помощи функции SECManipulateSC() вы можете защитить смарт-картой файл кольца для ключей (key ring) Domino (раздел "Защита сервера смарт-картой") или защитить ID длинным ключом Notes, перенесенным на смарт-карту. Последняя возможность реализуется при помощи следующих кодов вызова:
- SC_manip_FindAllKeys. Определяется количество ключей на смарт-карте.
- SC_manip_GetMatchedCert. В цикле подсчета обнаруживается интересующий нас длинный ключ Notes (или любой другой ключ RSA), и определяется тип ключа путем изучения выходных данных в структуре SC_MANIP_IMPORTABLE_CERT.
- SC_manip_LockIDWithKeyRO. Защита Notes ID указанным ключом, расположенным на смарт-карте.
EM_GETPASSWORD
Когда смарт-карта производит запрос PIN-кода, поддерживается срабатывание перехватчика Notes EM_GETPASSWORD Extension Manager. Следовательно, использованием смарт-карт не должно нарушить работу решений, где применяется этот перехватчик. Этот перехватчик особенно полезен, например, в качестве способа автоматической перезагрузки системы, хотя очевидно, что этот способ следует применять осторожно.
4.4.2 Поддержка сервера Domino
В этом подразделе описывается поддержка сервера Domino.
Защита сервера при помощи смарт-карты
ID сервера Domino можно защитить смарт-картой примерно так же, как пользовательский ID. Однако в этом случае для запуска сервера необходимо будет выполнить PIN-аутентификацию. Следовательно, если необходимым требованием является автоматическая перезагрузка, этот подход будет работать только при использовании перехватчика Notes С API Extension Manager (см. предыдущий подраздел). В справке Lotus Domino 7 Administrator Help подробно рассказывается о том, как применять клиент Notes для обеспечения безопасности ID-файла сервера, и указывается на необходимость указать переменную PKCS11_Library в файле NOTES.INI. См. тему "Physically securing the Domino server" (Физическая защита сервера Domino).
Обратите внимание, что, если ID сервера включает пару длинных ключей Notes (1024 и более бит), мы не рекомендуем переносить личный ключ на обычную смарт-карту (метод, описанный в подразделе 4.3.3, "Перенос длинного ключа Notes на смарт-карту"), поскольку это значительно замедляет многие криптографические операции, для которых требуется этот ключ (например, аутентификацию клиента Notes и дешифровка базы данных). Мы не рекомендуем этого, если только ключ не перемещается в криптографический ускоритель.
Domino и криптографические ускорители (SSL)
Компания Lotus ввела в Notes и Domino 7 поддержку криптографических ускорителей, соответствующих интерфейсу PKCS #11. Криптографические ускорители традиционно используются для уменьшения падения производительности, связанного с шифрованием сетевого SSL-трафика. Эти продукты, оптимизированные для выполнения криптографических операций и имеющие параллельные микропроцессоры, позволяют значительно увеличить возможности масштабирования при интенсивном шифрованном трафике. Исторически система Domino не поддерживала напрямую эти устройства. В Domino 7 данное положение изменилось.
В Domino 7 появилась поддержка многопоточной, многоканальной потоковой криптографии, а также поддержка хранения и доступа к личным ключам SSL на PKCS #11 -совместимых устройствах. Собственный формат Domino для файлов колец для ключей (key ring) (*.kyr) продолжает использоваться в реализации SSL, но Domino 7 теперь поддерживает непрямой доступ к личному ключу X.509, сходный с непрямым доступом к личному ключу, о котором мы рассказывали ранее применительно к Notes ID. Однако пока нет возможностей пользовательского интерфейса, позволяющих выполнить перемещение личного ключа из файла кольца для ключей в хранилище с интерфейсом PKCS #11. Тем не менее на момент написания этого текста функция Notes С API SECManipulateSCO (см. подраздел 4.4.1, "Поддержка Notes С API") была дополнена кодом SC_manip_PushKyrKey, а это означает, что нужно создать короткую простую программу Notes С API для подготовки файлов колец для ключей и ID сервера к непрямому использованию личного ключа.
Как уже говорилось ранее, если ID сервера основывается на паре длинных ключей Notes, личный ключ можно перенести в хранилище с ускорителем, совместимое с PKCS #11, получив все преимущества, которые дают криптографические операции на серве ре, использующие данный ключ (аутентификацию клиентов и дешифрование базы данных). Шифрование портов не использует асимметричные личные ключи RSA на прямую, поэтому выигрыш производительности на этот контекст не распространяется.
4.5 Соображения и предупреждения
В основном защита ID смарт-картой заменяет собой другие, основанные на паролях возможности Notes и Domino, и ответственность за эту функциональность передается от уровня приложений (Notes) к уровню безопасного устройства (смарт-карты). В частности, включайте восстановление Notes ID (которое подробно описывалось в разделе 3.3, "Как работает восстановление ID") дo того, как файл будет защищен смарт-картой, поскольку это позволяет вернуть ID к первоначальному состоянию защиты паролем, если смарт-карта будет потеряна или повреждена (включая все личные ключи, перемещенные на смарт-карту). Если организация регистрирует идентификаторы при помощи сертификатора, в котором уже записана информация для восстановления ID, никаких дополнительных шагов перед защитой ID смарт-картой не требуется.
Добавление новой информации для восстановления ID или ее изменение после включения защиты смарт-картой по-прежнему может работать, хотя и не идеально, за исключением того, что личные ключи, переданные до включения защиты смарт-картой, нельзя будет восстановить напрямую, а только при представлении смарт-карты, содержащей эти ключи. Иными словами, если смарт-карта была потеряна или повреждена, эти личные ключи также оказываются потерянными. Единственной альтернативой является возможность повторной генерации смарт-карты, описанной в подразделе 4.3.1, "Обеспечение безопасности Notes ID при помощи смарт-карты".
Для ситуации с "изменением" информации для восстановления (в противоположность ситуации с ее первоначальным созданием) мы можем уточнить, что, поскольку функция восстановления ID посылает зашифрованную копию ID в хранилище резервных копий ID организации при каждом изменении защищенного компонента (например, при добавлении специального симметричного ключа шифрования), личные ключи, находящиеся на смарт-карте, могут находиться в копиях ID, имеющихся в хранилище, и, следовательно, их можно безболезненно восстановить.
Отключите единый вход в Notes, очистив значение опции Login to Notes using your operating system login (Вход в Notes при помощи входа в операционную систему) на панели Security Basics (Основные параметры безопасности) диалогового окна User Security (Безопасность пользователя). Все возможные функции единого входа будут управляться через смарт-карту и ее программные драйверы. В PKCS #11 намеренно не включена поддержка единого входа (single sign-on, SSO) для нескольких приложений Notes не вносит сюда ничего нового.
Серверный срок действия пароля необходимо отключить в документах Person пользователей, применяющих смарт-карты. В противном случае пользователи не смогут обращаться к своим серверам Domino. Чтобы отключить срок действия пароля, в документе Person пользователя в Domino Directory установите в поле Required change interval (Интервал обязательной смены) равным нулю [Представление Person редактирование документа Person закладка Administration (Администрирование) раздел Password Management (Управление паролями)].
Серверная проверка паролей поддерживается при работе со смарт-картами, если все существующие ID-файлы являются файлами-копиями ID, защищенного смарт-картой (не обращайте внимания на противоположные утверждения в онлайновой справке Notes). Так же, как и в случае срока действия пароля, проверка пароля управляется через пользовательский документ Person в Domino Directory [опция Check password (Проверять пароль) в разделе Password Management (Управление паролями)].
Наконец, поддержка смарт-карт пока не распространяется на регистрацию новых пользователей и серверов. Поэтому архитекторы и администраторы системы безопасности должны включать операцию защиты смарт-картой в свои планы развертывания системы — либо вручную (по одному), либо автоматизированно (при помощи программы Notes С API).