Смарт-карты
4.3 Функции смарт-карт в клиенте Notes
Поскольку поддержка смарт-карт появилась только в Notes 6 и документация недалеко ушла от пошаговых инструкций онлайновой справки Notes, мы предлагаем здесь общее обсуждение возможностей смарт-карт в Notes. Мы также расскажем об усовершенствованиях, появившихся в Notes 7.
Функциональность смарт-карт в Notes охватывает следующие области:
- Безопасность самого файла Notes ID, поскольку смарт-карта необходима для разблокирования ID, чтобы можно было выполнять операции, связанные с личным ключом.
- Использование личного ключа X.509, хранящегося на смарт-карте, в S/MIME-операциях, связанных с безопасностью (электронная подпись и дешифровка), а также при SSL-аутентификации. Для этого в Notes есть поддержка обмена ключами X.509 между смарт-картой и ID-файлом.
- Если применяются Notes ID с длинными ключами (более 1024 бит), личный ключ Notes, хранящийся в смарт-карте, используется для защиты данных (электронная подпись и дешифровка в Notes) и при аутентификации в системе клиент-сервер.
4.3.1 Обеспечение безопасности Notes ID при помощи смарт-карты
Безопасность Notes ID обеспечивается путем шифрования приватной части файла с применением указанной пользователем секретной информации. Традиционно этой секретной информацией служит пароль. Теперь секретную информацию можно безопасно хранить на смарт-карте. Секретная информация может иметь две формы:
- специальный личный объект, представляющий собой очень сложный, не вводимый с клавиатуры пароль;
- начиная с Notes 7 личный ключ X.509, связанный с пользовательским ID-файлом.
Если безопасность ID обеспечивается одним из этих способов, говорят, что он защищен смарт-картой. Когда ID защищен смарт-картой, для разблокирования ID необходимо наличие разблокированной смарт-карты. Соответственно клиент Notes, имеющий защиту смарт-картой, рассматривает извлечение смарт-карты как выход из системы (аналогичный нажатию клавиши F5).
Согласно соглашениям об использовании смарт-карт Notes не разрешает заменить связь ID со смарт-картой на традиционный вариант с разблокированием при помощи пароля, поскольку это нарушает принцип, что смарт-карта должна обязательно присутствовать для разблокирования защищенного ею ресурса, - ограничение, которое повышает безопасность системы при повседневном использовании.
Размещение специального личного объекта-пароля
В Notes 6 появился первый метод защиты Notes ID при помощи смарт-карты. В диалоговом окне User Security (Безопасность пользователя) выберите пункт Your Identity (Ваш идентификатор) Your Smartcard (Ваша смарт-карта), а затем нажмите на кнопку Enable Smartcard Login (Включить вход в систему при помощи смарт-карты), как показано на рис. 4.2. При этом будет создан и сохранен на смарт-карте 64-байтовый случайный пароль. Этот пароль по надежности приблизительно соответствует 512-битовому симметричному ключу (очень надежному). Он сделан так, чтобы его нельзя было ввести с клавиатуры (т. е. используемые байты не соответствуют символам) и нельзя было использовать имеющимися функциями Notes С API (этому препятствуют применяемые пустые символы).
Мы встретили одно небольшое ограничение применения такого объекта-пароля как метода обеспечения ID безопасности при использовании Rainbow iKey 2032. В данном сценарии у пользователя есть две копии ID-файла. Если одна копия была защищена объектом-паролем, попытка защитить другую копию смарт-картой приводит к ошибке. (Однако тестирование показывает, что идентификаторы нескольких пользователей можно защитить одной смарт-картой, применяя метод с объектом-паролем). Если пользователь смарт-карты должен иметь возможность свободно переходить от одного экземпляра клиента Notes к другому и метод с объектом-паролем является необходимым, защитите один ID-файл и скопируйте его в файловые системы, заменив все другие копии. В результате будет использоваться только один объект-пароль и одна смарт-карта будет разблокировать все копии ID, поскольку они идентичны. Пользователь пользуется всеми преимуществами повышенной безопасности (ID-файлы бесполезны без смарт-карты) и удобства применения (сочетание пароль/ PIN гарантированно будет подходить ко всем экземплярам Notes). В любом случае помните, что упомянутое ограничение не действует, если безопасность ID-файлов обеспечивается при помощи личного ключа на смарт-карте, как это описано в следующем подразделе.
Соединение с резидентным, связанным личным ключом X.509 (Notes 7)
В Notes 6 появилась возможность копировать некоторые ключи Х.509 между смарт-картой и ID-файлом (см. подраздел 4.3.2, "Связывание с ключом X.509 на смарт-карте") и использовать находящиеся на смарт-карте (резидентные) личные ключи X.509, привязывая ID к таким ключам для применения обычных функций Х.509 (безопасность данных S/MIME и SSL-аутентификация клиента). В Notes 7 эти возможности были усовершенствованы: теперь можно использовать личный ключ Х.509, хранящийся на смарт-карте, для обеспечения безопасности Notes ID вместо нестандарти-зованного объекта-пароля. Отсюда проистекает множество возможностей. Для начала мы опишем, как защитить ID при помощи ключа X.509:
- Если сертификат X.509 и пара ключей в ID-файле или на смарт-карте
отсутствует, их нужно импортировать в одно из этих мест. Если
импортирование производится на смарт-карту, как правило, используются
инструменты от производителя карты и импортируется закодированный файл
PKCS #12, содержащий X.509. Произвести импорт в файл Notes ID можно
любым из способов, поддерживаемых Notes.Примечание. Например, это можно сделать так:
- автоматически, при аутентификации на сервере Domino (выполняя заранее составленные инструкции администратора);
- импортировать сертификат, нажав кнопку Get Certificates (Получить сертификаты) в диалоговом окне User Security (Безопасность пользователя), как показано на рис. 4.3.
- Доступная пара ключей X.509 должна быть связана с объектом, пока ничего не знающим о ее существовании (смарт-картой или Notes ID). Делается это снова при помощи окна User Security (Безопасность пользователя), как описано в подразделе 4.3.2, "Связывание с ключом Х.509 на смарт-карте".
- Наконец, пользователь выбирает пункт меню Other Actions (Другие действия) Lock ID File with Key on Smartcard (Заблокировать ID-файл при помощи ключа на смарт-карте), как показано на рис. 4.3. Этот пункт меню становится доступным после выполнения шагов 1 и 2 и после того, как пользователь выделит персональ ный сертификат X.509. Для доступа к сертификату в диалоговом окне User Security. (Безопасность пользователя) выберите пункт Your Identity (Ваш идентифика тор) Your Certificates (Ваши сертификаты). Затем выберите пункт All Internet Certificates (Все интернет-сертификаты), Your Internet Certificates (Ваши интернет-сертификаты) или All Certificates (Все сертификаты) в раскрывающемся списке.
Если предыдущие этапы начинаются, когда персональный сертификат X.509 находится на смарт-карте (до связывания с ID и его защиты), гибкости при использовании будет больше:
- наиболее важно то, что в этом случае поддерживаются смарт-карты "только для чтения" (не нужно записывать ни специальный объект-пароль, необходимый в Notes 6, ни личный ключ X.509);
- из этого следует, что отдельные копии ID-файла можно независимо защитить одной и той же физической смарт-картой, хотя польза такого сценария не очень велика (например, разработчик, переключающийся между тестовым и пользовательским ID).
увеличить изображение
Рис. 4.3. Lock ID File with Key on Smartcard (Блокирование ID-файла при помощи ключа на смарт-карте)
Интересно, что независимо от того, каким способом ID получил защиту ключом X.509, если смарт-карта оказывается повреждена или потеряна, можно создать ее замену, если есть заархивированная копия полного персонального сертификата (с личным ключом) (например, файл PKCS #12, сохраненный в безопасном месте). Чтобы повторное создание карты прошло успешно, значение параметра метаданных PKCS #11 CKA_ID личного ключа на смарт-карте (и соответствующий сертификат и общий ключ, если они есть) должны совпадать со значением на исходной смарт-карте. Notes использует это свойство при поиске ключей на смарт-картах. Как правило, инструменты от производителя смарт-карты генерируют это значение при импорте, так что если процесс исходно начался с этого этапа (персональный сертификат X.509 на смарт-карте), то никаких действий не требуется. В других случаях параметр CKA_ID необходимо изменить, введя значение, которое ожидает Notes, и данную операцию поддерживают инструменты от некоторых производителей смарт-карт. К сожалению, пока Notes нигде не отображает значение CKA_ID, так что, если повторная генерация смарт-карт представляет для организации интерес, необходимо сохранить где-нибудь запись об этом значении (которое секретом не является).