Вопросы безопасности в Lotus Notes и Domino 7

Смарт-карты

Разбить на страницы
Показывать лекцию целиком

Смарт-карты, в категорию которых в нашем контексте попадают как карты с формфактором кредитных карт (читаются специальным устройством), так и криптографические жетоны (token) (вставляются в USB-порт), представляют собой существенное, охватывающее множество приложений достижение в области безопасности Созданные так, чтобы владелец всегда имел возможность контролировать их, смарт-карты реализуют фундаментальное правило, гласящее, что безопасность улучшается, когда вместе сводится то, что пользователь имеет (криптографический жетон или ID-файл), с тем, что пользователь знает (пароль). Поддержка этой технологии индустрией и принятие ее рынком достигло той критической массы, когда возможности смарт-карт, возраст которых насчитывает 10 лет, осознаются, а не только узнаются. Внедрение этой технологии организациями, заботящимися о собственной безопасности, несомненно, находится на подъеме.

Примечание. Приводимые здесь сведения относятся к первоначальному релизу Lotus Notes 7 (а также к 6.5.4 и 6.0.5). Поддержка смарт-карт в Notes со временем будет продолжать развиваться, и, вероятно, быстро. Мы рекомендуем вам обращаться к информации о релизах (Release Notes) и онлайновой документации новых версий (и просто тестировать возможности вручную), чтобы определить, существуют ли по-прежнему упоминаемые здесь ограничения. Чтобы обратиться к Release Notes, щелкните ссылку Release Notes в разделе Documentation Links по адресу http://www.lotus.com/doc

4.1 Зачем нужны смарт-карты?

При прочих равных условиях чем больше гарантия того, что пользователь (или приложение, т. е. "владелец") "лично" предоставляет то, что есть только у него, тем надежнее аутентификация и выше безопасность системы. Если не использовать смарт-карту, то в случае, если атакующий завладеет копией файла Notes ID, на его пути останется только зашифрованый пароль. Атакующий может взломать пароль методом прямого подбора или используя методы социальной инженерии. Более того, взлом может оказаться незамеченным, ни у кого не возникнет никаких подозрений.

Простое использование смарт-карт позволяет существенно уменьшить эти опасности. Взлом становится гораздо более сложным, поскольку возникает необходимость украсть карту или жетон, а с жетонами владельцы обычно не расстаются (и не сохраняют их на жестком диске компьютера с сетевым доступом, пока у владельца выходной). Более того, если смарт-карта все-таки украдена, она, как правило, блокируется при нескольких неудачных попытках ввести PINPIN - Personal identification number - личный идентификационный номер, хотя часто это не только цифры. Примеч. авт. (и деблокируется только администратором, если это вообще возможно). Исчезновение карты быстро обнаруживается, поскольку зависимые от нее системы останавливаются, как только становится необходимым ввести защищенные имя и пароль (например, при следующей попытке входа в систему или при следующем действии, связанном с шифрованием, - попытке аутентификации, дешифровки или простановке электронной подписи). Следовательно, если все существующие копии конкретного Notes ID защищены смарт-картой, взлом будет очень маловероятным, и только если взломан будет сам файл.

В смарт-карту встроен микропроцессорный чип, выполняющий исключительно "аппаратные" операции шифрования и безопасное устройство хранения. "Аппаратные" здесь означает противоположность для "в памяти компьютера-хоста", поскольку к этой памяти обычно каким-нибудь образом может обращаться другой код, выполняемый на данном хосте. В безопасном устройстве хранения содержатся личные ключи и другие криптографические объекты, которые, как правило, смарт-карта не разрешает копировать пользователям или сторонним приложениям (а может быть, и вообще никому). (Другие хранящиеся здесь объекты могут быть названы общими, и смарт-карта может позволить их скопировать).

4.2 Установка смарт-карты

К сожалению, индустрия смарт-карт еще не устоялась: конкурирующие реализации от разных производителей, конкурирующие стандарты, несовместимые и конфликтующие реализации имеющихся стандартов и т. п. К счастью, стандарт RSA PKCS #11, Cryptographic Token Interface Standard, приобрел за последние несколько лет существенное значение, а это означает, что широко признаются и реализуются приложения, охватывающие разных производителей, и все связанные с этим преимущества Lotus Notes признает стандарт PKCS #11 и принимает участие в его развитии.

Хотя количество типов смарт-карт, напрямую протестированных компанией Lotus на совместимость с Notes, ограничено, все-таки работать должна любая смарт-карта с интерфейсом PKCS #11, поддерживающая минимальный набор функций, описанных версией 2.01+ этого стандартаВ частности, в документе данного стандарта "Conformance Profile Specification" описывает ся профиль больших приложений, "Large Applications Profile", и этот документ можно увидеть по адресу http://www.rsasecurity.com/rsalabs/node.asp?id=2_33. Примеч. авт .. Ограниченную функциональность могут обеспечивать смарт-карты с интерфейсом версии 2.0, но мы не рекомендуем использовать такие реализации. В Notes 6.0.1 поддерживаются смарт-карты с интерфейсом PKCS #11 "Protected Authentication Path" (встроенный интерфейс для ввода PIN или его эквивалент, например устройство чтения отпечатка пальцев). Сертификаты X.509, предварительно записанные на смарт-карту и играющие роль в реализации части функций стандартаВ частности, "RSA Asymmetric Client Signing Profile" спецификации "Conformance Profile Specification. Примеч. авт ., можно импортировать в ID-файл пользователя в Notes 6.0.2. Что касается Notes 7, то здесь смарт-карта, с которой связывается Notes, не обязательно должна находиться в первой позиции системы (первом "слоте").

Хотя инсталляция и функционирование смарт-карт усовершенствованы, они по-прежнему остаются сложными. Мы настоятельно рекомендуем, чтобы организации, заинтересованные в использовании смарт-карт, провели двойную оценку, при тестировании спланированной системы и в репрезентативном пилотном проекте, прежде чем приступать к широкомасштабному внедрению. Используйте тот же процесс и при обновлении драйвера смарт-карты.

Совет. Тестируйте функции смарт-карты изолированно и поэтапно. Плохо проведенная установка может привести к нестабильности и серьезным проблемам в системе, поскольку здесь задействованы механизмы управления идентификационными данными. Одной из трудностей, с которыми мы можем столкнуться, является полное нарушение функции входа в систему. Инсталлятор может отобразить окно входа в Microsoft Windows $$\text{\textregistered}$$, вариант Graphical Identification and Authentication (GINA, сокращение от Microsoft), который, вероятно, выбран по умолчанию и который может быть устаревшим и содержать ошибки. Следовательно, мы советуем не активизировать с самого начала функции, не относящиеся к базовым. После того как смарт-карта доказала свою совместимость с Notes, вы можете включить и протестировать дополнительные возможности.

Поскольку виды реализаций еще не устоялись, мы не описываем здесь таблицу совместимости с Notes. Мы советуем администраторам и архитекторам обращаться сначала к описанию (Release Notes) соответствующей версии Notes, которая используется клиентами. На рис. 4.1 показан пример файла Release Notes и его местоположение.

Совет. Для доступа к базе Release Notes выберите ссылку Release Notes в разделе Documentation Links по адресу http://www.lotus.com/doc

Чтобы включить смарт-карты в системе, установите драйверы от производителя, включая интерфейс PKCS #11, если он устанавливается дополнительно. Более того, если вы не применяете смарт-карту, уже сконфигурированную для немедленного использования, инсталлируйте все инструменты, необходимые для повседневного применения смарт-карт. Например, для инициализации PIN может понадобиться импорт учетных данных Х.509.

(рис 4.1) Таблица поддержки смарт-карт в базе данных Release Notes клиента Notes

Чтобы зарегистрировать смарт-карту клиентом Notes, в диалоговом окне User Security (Безопасность пользователя) установите связь с картой, выбрав пункт Your Identity (Ваш идентификатор) $$\to$$ YourSmartcard (Ваша смарт-карта), как показано на рис. 4.2 [для доступа к окну User Security в клиенте Notes выберите пункт File (Файл) $$\to$$ Security (Безопасность) $$\to$$ UserSecurity (Безопасность пользователя)]. Для работы смарт-карты необходимо, чтобы смарт-карта была вставлена в разъем рабочей станции, и система должна иметь возможность найти двоичный библиотечный файл, который соответствует интерфейсу PKCS #11 (в Windows это DLL). Как правило, эту библиотеку предоставляет производитель смарт-карты и помещает ее в директорию двоичных файлов системы (в Windows - system32). Указать файл можно при помощи специального диалогового окна, которое открывается в клиенте Notes, когда пользователь переходит к данной панели, или при помощи кнопки Configuration Details (Информация о конфигурации) на этой панели. После указания библиотеки Notes запрашивает у карты идентификационную информацию и информацию о возможностях карты, после чего отображает ее в соответствующих полях (например, как показано в полях, обведенных на рис. 4.2). Если эта операция прошла успешно, значит, взаимодействие между Notes и смарт-картой может продолжаться.

(рис 4.2) Панель конфигурации смарт-карты в диалоговом окне User Security (Безопасность пользователя)Примечание. Работа смарт-карты в диалоговом окне User Security (Безопасность пользователя) Macintosh-клиента Notes может отличаться от работы в Windows-клиенте. Компания Lotus тестировала смарт-карты только в Windows-клиентах Notes.

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 со смарт-картой на традиционный вариант с разблокированием при помощи пароля, поскольку это нарушает принцип, что смарт-карта должна обязательно присутствовать для разблокирования защищенного ею ресурса, - ограничение, которое повышает безопасность системы при повседневном использовании.

    Примечание. Администратор имеет возможность использовать восстановление ID, чтобы вернуть традиционную защиту ID-файла при помощи пароля. За дополнительной информацией обращайтесь к разделу 4.5, "Соображения и предупреждения".

    Размещение специального личного объекта-пароля

    В Notes 6 появился первый метод защиты Notes ID при помощи смарт-карты. В диалоговом окне User Security (Безопасность пользователя) выберите пункт Your Identity (Ваш идентификатор) $$\to$$ 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 (Другие действия) $$\to$$ Lock ID File with Key on Smartcard (Заблокировать ID-файл при помощи ключа на смарт-карте), как показано на рис. 4.3. Этот пункт меню становится доступным после выполнения шагов 1 и 2 и после того, как пользователь выделит персональ ный сертификат X.509. Для доступа к сертификату в диалоговом окне User Security. (Безопасность пользователя) выберите пункт Your Identity (Ваш идентифика тор) $$\to$$ 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, так что, если повторная генерация смарт-карт представляет для организации интерес, необходимо сохранить где-нибудь запись об этом значении (которое секретом не является).

    4.3.2 Связывание с ключом X.509 на смарт-карте

    Смарт-карты при желании могут работать с сертификатами и ключами X.509. Система Notes поддерживает как запись личных ключей Х.509 на смарт-карту, так и связывание сертифицированных ключей, находящихся на смарт-карте, с ID-файлом. В любом случае результатом является то, что личный ключ X.509 находится только на смарт-карте, на которой и проводятся все операции, связанные с личным ключом (обеспечение безопасности данных S/MIME и SSL-аутентификация клиента).

    Связывание ID с находящимися на смарт-карте сертификатами и ключами

    Часто пользователь получает смарт-карту, на которую уже загружен необходимый сертификат X.509 и пара ключей. Например, компания, заботящаяся о безопасности, может выдать такую карту консультанту, нанятому для выполнения важного проекта. После этого консультант может импортировать сертификат X.509 (вместе с общими ключами) в файл Notes ID, и это свяжет ID со вторым, личным ключом, оставшимся на смарт-карте. Теперь консультант может посылать электронные сообщения S/MIME, подписанные этим ключом, и дешифровать сообщения, зашифрованные для этого ключа, или использовать его на Web-сайте, защищенном при помощи SSL-аутентификации клиента. Чтобы установить такую связь, в диалоговом окне User Security (Безопасность пользователя) выберите пункт Your Identity (Ваш идентификатор) $$\to$$ Your Certificates (Ваши сертификаты), затем Get Certificates (Получить сертификаты) и выберите из раскрывающегося списка пункт Import Internet Certificate from a Smartcard (Импортировать интернет-сертификат со смарт-карты), как показано на рис. 4.4. В Notes 7 эта операция не требует предварительной защиты ID-файла смарт-картой и не производит обновлений данных на смарт-карте, что дает возможность использовать смарт-карты "только для чтения".

    (рис 4.4) Импортирование (и связывание) сертификата X.509, находящегося на смарт-карте

    Обратите внимание, что в данном случае связывания уже загруженных идентификационных данных X.509 с ID обязательным является наличие связанных объектов-сертификатов X.509, поскольку Notes регистрирует их в ходе проверки того, какие данные на смарт-карте могут быть импортированы или связаны. В настоящий момент на данном этапе импорта пользователь не может выбирать, какие идентификационные данные нужно связать. Связаны будут все данные, для которых это возможно.

    Чтобы увидеть импортированный и связанный сертификат в поле диалогового окна, показанного на рис. 4.4, пользователю может потребоваться закрыть и снова открыть диалоговое окно User Security (Безопасность пользователя). В любом случае. результат должен выглядеть примерно так, как показано на рис. 4.5. Обратите внимание на небольшой серый прямоугольный элемент в верхнем левом углу значка в поле. Туре (Тип) (обведен кружком). Это обозначение показывает, что личный ключ, связанный с сертификатом, расположен на смарт-карте и, следовательно, не в ID-файле.

    (рис 4.5) Персональный сертификат X.509, связанный со смарт-картой

    Перемещение личного ключа X.509 из Notes ID на смарт-карту

    Связывание ключа X.509 может происходить и в обратном направлении. Скажем, пользователь получил сертификат X.509 и пару ключей в свой ID-файл. Эти идентификационные данные можно перенести на смарт-карту, чтобы использовать возможности системы безопасности. Для этого ID уже должен быть защищен данной смарт-картой (как это описано в подразделе 4.3.1, "Обеспечение безопасности Notes ID при помощи смарт-карты"). Пользователь выделяет персональный сертификат Х.509, личный ключ которого нужно перенести, и выбирает пункт меню Other Actions (Другие действия) $$\to$$ Move Private Key to Smartcard (Переместить личный ключ на смарт-карту), как показано на рис. 4.6. Личный ключ перемещается на смарт-карту и удаляется из ID. В Notes 7 копируется также и соответствующий общий ключ, что облегчает поиск ключа в ситуациях, когда PIN-код смарт-карты не требуется или недоступен.

    (рис 4.6) Move Private Key to Smartcard (Переместить личный ключ на смарт-карту)

    Если ID-файл доступен для восстановления ID, то копия личного ключа Х.509 создается до импорта его на смарт-карту. Эта копия шифруется отдельным надежным ключом ID, предназначенным для восстановления, и сохраняется вместе с остальной информацией восстановления в ID-файле. При этой операции ID также помечается как ID, который необходимо послать в безопасное хранилище резервных копий ID. За дополнительной информацией о том, как восстановление ID связано с ID, защищенными смарт-картами, обращайтесь к разделу 4.5, "Соображения и предупреждения".

    4.3.3 Перенос длинного ключа Notes на смарт-карту

    В Notes 7 появилась поддержка в ID более длинных ключей в паре асимметричных ключей (см лекцию 5, "Усовершенствования, связанные с более длинными ключами и сертификатами в ID"). Такие ключи Notes, длиной 1024 бит и более, хранятся и обрабатываются внутри Notes с использованием более современных и общепринятых криптографических стандартов, чем это было в начале истории Notes (где использовалась одна из самых ранних PKI, оказавшаяся самой долгоживущей). Одним из преимуществ современных длинных ключей Notes является совместимость с устройствами, соответствующими стандарту PKCS#11, а это означает, что длинные ключи Notes можно переносить на смарт-карту при помощи практически тех же методов, которые описаны в подразделе 4.3.2, "Связывание с ключом Х.509 на смарт-карте" для ключей X.509, и с тем же самым результатом - все операции с личным ключом производит микропроцессор смарт-карты. После того как ID-файл создан или переведен на длинные ключи Notes, пользователю нужно только перенести ключ на смарт-карту, применяя обычный пункт меню Other Actions (Другие действия) $$\to$$ Move Private Key to Smartcard (Перенести личный ключ на смарт-карту), как показано на рис. 4.7.

    (рис 4.7) Move Private Key to Smartcard (Перенос личного ключа на смарт-карту)

    В настоящее время в 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 $$\to$$ редактирование документа Person $$\to$$ закладка Administration (Администрирование) $$\to$$ раздел Password Management (Управление паролями)].

    Серверная проверка паролей поддерживается при работе со смарт-картами, если все существующие ID-файлы являются файлами-копиями ID, защищенного смарт-картой (не обращайте внимания на противоположные утверждения в онлайновой справке Notes). Так же, как и в случае срока действия пароля, проверка пароля управляется через пользовательский документ Person в Domino Directory [опция Check password (Проверять пароль) в разделе Password Management (Управление паролями)].

    Наконец, поддержка смарт-карт пока не распространяется на регистрацию новых пользователей и серверов. Поэтому архитекторы и администраторы системы безопасности должны включать операцию защиты смарт-картой в свои планы развертывания системы — либо вручную (по одному), либо автоматизированно (при помощи программы Notes С API).

    Страницы:

    Смарт-карты, в категорию которых в нашем контексте попадают как карты с формфактором кредитных карт (читаются специальным устройством), так и криптографические жетоны (token) (вставляются в USB-порт), представляют собой существенное, охватывающее множество приложений достижение в области безопасности Созданные так, чтобы владелец всегда имел возможность контролировать их, смарт-карты реализуют фундаментальное правило, гласящее, что безопасность улучшается, когда вместе сводится то, что пользователь имеет (криптографический жетон или ID-файл), с тем, что пользователь знает (пароль). Поддержка этой технологии индустрией и принятие ее рынком достигло той критической массы, когда возможности смарт-карт, возраст которых насчитывает 10 лет, осознаются, а не только узнаются. Внедрение этой технологии организациями, заботящимися о собственной безопасности, несомненно, находится на подъеме.

    Примечание. Приводимые здесь сведения относятся к первоначальному релизу Lotus Notes 7 (а также к 6.5.4 и 6.0.5). Поддержка смарт-карт в Notes со временем будет продолжать развиваться, и, вероятно, быстро. Мы рекомендуем вам обращаться к информации о релизах (Release Notes) и онлайновой документации новых версий (и просто тестировать возможности вручную), чтобы определить, существуют ли по-прежнему упоминаемые здесь ограничения. Чтобы обратиться к Release Notes, щелкните ссылку Release Notes в разделе Documentation Links по адресу http://www.lotus.com/doc

    4.1 Зачем нужны смарт-карты?

    При прочих равных условиях чем больше гарантия того, что пользователь (или приложение, т. е. "владелец") "лично" предоставляет то, что есть только у него, тем надежнее аутентификация и выше безопасность системы. Если не использовать смарт-карту, то в случае, если атакующий завладеет копией файла Notes ID, на его пути останется только зашифрованый пароль. Атакующий может взломать пароль методом прямого подбора или используя методы социальной инженерии. Более того, взлом может оказаться незамеченным, ни у кого не возникнет никаких подозрений.

    Простое использование смарт-карт позволяет существенно уменьшить эти опасности. Взлом становится гораздо более сложным, поскольку возникает необходимость украсть карту или жетон, а с жетонами владельцы обычно не расстаются (и не сохраняют их на жестком диске компьютера с сетевым доступом, пока у владельца выходной). Более того, если смарт-карта все-таки украдена, она, как правило, блокируется при нескольких неудачных попытках ввести PINPIN - Personal identification number - личный идентификационный номер, хотя часто это не только цифры. Примеч. авт. (и деблокируется только администратором, если это вообще возможно). Исчезновение карты быстро обнаруживается, поскольку зависимые от нее системы останавливаются, как только становится необходимым ввести защищенные имя и пароль (например, при следующей попытке входа в систему или при следующем действии, связанном с шифрованием, - попытке аутентификации, дешифровки или простановке электронной подписи). Следовательно, если все существующие копии конкретного Notes ID защищены смарт-картой, взлом будет очень маловероятным, и только если взломан будет сам файл.

    В смарт-карту встроен микропроцессорный чип, выполняющий исключительно "аппаратные" операции шифрования и безопасное устройство хранения. "Аппаратные" здесь означает противоположность для "в памяти компьютера-хоста", поскольку к этой памяти обычно каким-нибудь образом может обращаться другой код, выполняемый на данном хосте. В безопасном устройстве хранения содержатся личные ключи и другие криптографические объекты, которые, как правило, смарт-карта не разрешает копировать пользователям или сторонним приложениям (а может быть, и вообще никому). (Другие хранящиеся здесь объекты могут быть названы общими, и смарт-карта может позволить их скопировать).

    4.2 Установка смарт-карты

    К сожалению, индустрия смарт-карт еще не устоялась: конкурирующие реализации от разных производителей, конкурирующие стандарты, несовместимые и конфликтующие реализации имеющихся стандартов и т. п. К счастью, стандарт RSA PKCS #11, Cryptographic Token Interface Standard, приобрел за последние несколько лет существенное значение, а это означает, что широко признаются и реализуются приложения, охватывающие разных производителей, и все связанные с этим преимущества Lotus Notes признает стандарт PKCS #11 и принимает участие в его развитии.

    Хотя количество типов смарт-карт, напрямую протестированных компанией Lotus на совместимость с Notes, ограничено, все-таки работать должна любая смарт-карта с интерфейсом PKCS #11, поддерживающая минимальный набор функций, описанных версией 2.01+ этого стандартаВ частности, в документе данного стандарта "Conformance Profile Specification" описывает ся профиль больших приложений, "Large Applications Profile", и этот документ можно увидеть по адресу http://www.rsasecurity.com/rsalabs/node.asp?id=2_33. Примеч. авт .. Ограниченную функциональность могут обеспечивать смарт-карты с интерфейсом версии 2.0, но мы не рекомендуем использовать такие реализации. В Notes 6.0.1 поддерживаются смарт-карты с интерфейсом PKCS #11 "Protected Authentication Path" (встроенный интерфейс для ввода PIN или его эквивалент, например устройство чтения отпечатка пальцев). Сертификаты X.509, предварительно записанные на смарт-карту и играющие роль в реализации части функций стандартаВ частности, "RSA Asymmetric Client Signing Profile" спецификации "Conformance Profile Specification. Примеч. авт ., можно импортировать в ID-файл пользователя в Notes 6.0.2. Что касается Notes 7, то здесь смарт-карта, с которой связывается Notes, не обязательно должна находиться в первой позиции системы (первом "слоте").

    Хотя инсталляция и функционирование смарт-карт усовершенствованы, они по-прежнему остаются сложными. Мы настоятельно рекомендуем, чтобы организации, заинтересованные в использовании смарт-карт, провели двойную оценку, при тестировании спланированной системы и в репрезентативном пилотном проекте, прежде чем приступать к широкомасштабному внедрению. Используйте тот же процесс и при обновлении драйвера смарт-карты.

    Совет. Тестируйте функции смарт-карты изолированно и поэтапно. Плохо проведенная установка может привести к нестабильности и серьезным проблемам в системе, поскольку здесь задействованы механизмы управления идентификационными данными. Одной из трудностей, с которыми мы можем столкнуться, является полное нарушение функции входа в систему. Инсталлятор может отобразить окно входа в Microsoft Windows $$\text{\textregistered}$$, вариант Graphical Identification and Authentication (GINA, сокращение от Microsoft), который, вероятно, выбран по умолчанию и который может быть устаревшим и содержать ошибки. Следовательно, мы советуем не активизировать с самого начала функции, не относящиеся к базовым. После того как смарт-карта доказала свою совместимость с Notes, вы можете включить и протестировать дополнительные возможности.

    Поскольку виды реализаций еще не устоялись, мы не описываем здесь таблицу совместимости с Notes. Мы советуем администраторам и архитекторам обращаться сначала к описанию (Release Notes) соответствующей версии Notes, которая используется клиентами. На рис. 4.1 показан пример файла Release Notes и его местоположение.

    Совет. Для доступа к базе Release Notes выберите ссылку Release Notes в разделе Documentation Links по адресу http://www.lotus.com/doc

    Чтобы включить смарт-карты в системе, установите драйверы от производителя, включая интерфейс PKCS #11, если он устанавливается дополнительно. Более того, если вы не применяете смарт-карту, уже сконфигурированную для немедленного использования, инсталлируйте все инструменты, необходимые для повседневного применения смарт-карт. Например, для инициализации PIN может понадобиться импорт учетных данных Х.509.

    (рис 4.1) Таблица поддержки смарт-карт в базе данных Release Notes клиента Notes

    Чтобы зарегистрировать смарт-карту клиентом Notes, в диалоговом окне User Security (Безопасность пользователя) установите связь с картой, выбрав пункт Your Identity (Ваш идентификатор) $$\to$$ YourSmartcard (Ваша смарт-карта), как показано на рис. 4.2 [для доступа к окну User Security в клиенте Notes выберите пункт File (Файл) $$\to$$ Security (Безопасность) $$\to$$ UserSecurity (Безопасность пользователя)]. Для работы смарт-карты необходимо, чтобы смарт-карта была вставлена в разъем рабочей станции, и система должна иметь возможность найти двоичный библиотечный файл, который соответствует интерфейсу PKCS #11 (в Windows это DLL). Как правило, эту библиотеку предоставляет производитель смарт-карты и помещает ее в директорию двоичных файлов системы (в Windows - system32). Указать файл можно при помощи специального диалогового окна, которое открывается в клиенте Notes, когда пользователь переходит к данной панели, или при помощи кнопки Configuration Details (Информация о конфигурации) на этой панели. После указания библиотеки Notes запрашивает у карты идентификационную информацию и информацию о возможностях карты, после чего отображает ее в соответствующих полях (например, как показано в полях, обведенных на рис. 4.2). Если эта операция прошла успешно, значит, взаимодействие между Notes и смарт-картой может продолжаться.

    (рис 4.2) Панель конфигурации смарт-карты в диалоговом окне User Security (Безопасность пользователя)Примечание. Работа смарт-карты в диалоговом окне User Security (Безопасность пользователя) Macintosh-клиента Notes может отличаться от работы в Windows-клиенте. Компания Lotus тестировала смарт-карты только в Windows-клиентах Notes.

    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 со смарт-картой на традиционный вариант с разблокированием при помощи пароля, поскольку это нарушает принцип, что смарт-карта должна обязательно присутствовать для разблокирования защищенного ею ресурса, - ограничение, которое повышает безопасность системы при повседневном использовании.

    Примечание. Администратор имеет возможность использовать восстановление ID, чтобы вернуть традиционную защиту ID-файла при помощи пароля. За дополнительной информацией обращайтесь к разделу 4.5, "Соображения и предупреждения".

    Размещение специального личного объекта-пароля

    В Notes 6 появился первый метод защиты Notes ID при помощи смарт-карты. В диалоговом окне User Security (Безопасность пользователя) выберите пункт Your Identity (Ваш идентификатор) $$\to$$ 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 (Другие действия) $$\to$$ Lock ID File with Key on Smartcard (Заблокировать ID-файл при помощи ключа на смарт-карте), как показано на рис. 4.3. Этот пункт меню становится доступным после выполнения шагов 1 и 2 и после того, как пользователь выделит персональ ный сертификат X.509. Для доступа к сертификату в диалоговом окне User Security. (Безопасность пользователя) выберите пункт Your Identity (Ваш идентифика тор) $$\to$$ 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, так что, если повторная генерация смарт-карт представляет для организации интерес, необходимо сохранить где-нибудь запись об этом значении (которое секретом не является).

    4.3.2 Связывание с ключом X.509 на смарт-карте

    Смарт-карты при желании могут работать с сертификатами и ключами X.509. Система Notes поддерживает как запись личных ключей Х.509 на смарт-карту, так и связывание сертифицированных ключей, находящихся на смарт-карте, с ID-файлом. В любом случае результатом является то, что личный ключ X.509 находится только на смарт-карте, на которой и проводятся все операции, связанные с личным ключом (обеспечение безопасности данных S/MIME и SSL-аутентификация клиента).

    Связывание ID с находящимися на смарт-карте сертификатами и ключами

    Часто пользователь получает смарт-карту, на которую уже загружен необходимый сертификат X.509 и пара ключей. Например, компания, заботящаяся о безопасности, может выдать такую карту консультанту, нанятому для выполнения важного проекта. После этого консультант может импортировать сертификат X.509 (вместе с общими ключами) в файл Notes ID, и это свяжет ID со вторым, личным ключом, оставшимся на смарт-карте. Теперь консультант может посылать электронные сообщения S/MIME, подписанные этим ключом, и дешифровать сообщения, зашифрованные для этого ключа, или использовать его на Web-сайте, защищенном при помощи SSL-аутентификации клиента. Чтобы установить такую связь, в диалоговом окне User Security (Безопасность пользователя) выберите пункт Your Identity (Ваш идентификатор) $$\to$$ Your Certificates (Ваши сертификаты), затем Get Certificates (Получить сертификаты) и выберите из раскрывающегося списка пункт Import Internet Certificate from a Smartcard (Импортировать интернет-сертификат со смарт-карты), как показано на рис. 4.4. В Notes 7 эта операция не требует предварительной защиты ID-файла смарт-картой и не производит обновлений данных на смарт-карте, что дает возможность использовать смарт-карты "только для чтения".

    (рис 4.4) Импортирование (и связывание) сертификата X.509, находящегося на смарт-карте

    Обратите внимание, что в данном случае связывания уже загруженных идентификационных данных X.509 с ID обязательным является наличие связанных объектов-сертификатов X.509, поскольку Notes регистрирует их в ходе проверки того, какие данные на смарт-карте могут быть импортированы или связаны. В настоящий момент на данном этапе импорта пользователь не может выбирать, какие идентификационные данные нужно связать. Связаны будут все данные, для которых это возможно.

    Чтобы увидеть импортированный и связанный сертификат в поле диалогового окна, показанного на рис. 4.4, пользователю может потребоваться закрыть и снова открыть диалоговое окно User Security (Безопасность пользователя). В любом случае. результат должен выглядеть примерно так, как показано на рис. 4.5. Обратите внимание на небольшой серый прямоугольный элемент в верхнем левом углу значка в поле. Туре (Тип) (обведен кружком). Это обозначение показывает, что личный ключ, связанный с сертификатом, расположен на смарт-карте и, следовательно, не в ID-файле.

    (рис 4.5) Персональный сертификат X.509, связанный со смарт-картой

    Перемещение личного ключа X.509 из Notes ID на смарт-карту

    Связывание ключа X.509 может происходить и в обратном направлении. Скажем, пользователь получил сертификат X.509 и пару ключей в свой ID-файл. Эти идентификационные данные можно перенести на смарт-карту, чтобы использовать возможности системы безопасности. Для этого ID уже должен быть защищен данной смарт-картой (как это описано в подразделе 4.3.1, "Обеспечение безопасности Notes ID при помощи смарт-карты"). Пользователь выделяет персональный сертификат Х.509, личный ключ которого нужно перенести, и выбирает пункт меню Other Actions (Другие действия) $$\to$$ Move Private Key to Smartcard (Переместить личный ключ на смарт-карту), как показано на рис. 4.6. Личный ключ перемещается на смарт-карту и удаляется из ID. В Notes 7 копируется также и соответствующий общий ключ, что облегчает поиск ключа в ситуациях, когда PIN-код смарт-карты не требуется или недоступен.

    (рис 4.6) Move Private Key to Smartcard (Переместить личный ключ на смарт-карту)

    Если ID-файл доступен для восстановления ID, то копия личного ключа Х.509 создается до импорта его на смарт-карту. Эта копия шифруется отдельным надежным ключом ID, предназначенным для восстановления, и сохраняется вместе с остальной информацией восстановления в ID-файле. При этой операции ID также помечается как ID, который необходимо послать в безопасное хранилище резервных копий ID. За дополнительной информацией о том, как восстановление ID связано с ID, защищенными смарт-картами, обращайтесь к разделу 4.5, "Соображения и предупреждения".

    4.3.3 Перенос длинного ключа Notes на смарт-карту

    В Notes 7 появилась поддержка в ID более длинных ключей в паре асимметричных ключей (см лекцию 5, "Усовершенствования, связанные с более длинными ключами и сертификатами в ID"). Такие ключи Notes, длиной 1024 бит и более, хранятся и обрабатываются внутри Notes с использованием более современных и общепринятых криптографических стандартов, чем это было в начале истории Notes (где использовалась одна из самых ранних PKI, оказавшаяся самой долгоживущей). Одним из преимуществ современных длинных ключей Notes является совместимость с устройствами, соответствующими стандарту PKCS#11, а это означает, что длинные ключи Notes можно переносить на смарт-карту при помощи практически тех же методов, которые описаны в подразделе 4.3.2, "Связывание с ключом Х.509 на смарт-карте" для ключей X.509, и с тем же самым результатом - все операции с личным ключом производит микропроцессор смарт-карты. После того как ID-файл создан или переведен на длинные ключи Notes, пользователю нужно только перенести ключ на смарт-карту, применяя обычный пункт меню Other Actions (Другие действия) $$\to$$ Move Private Key to Smartcard (Перенести личный ключ на смарт-карту), как показано на рис. 4.7.

    (рис 4.7) Move Private Key to Smartcard (Перенос личного ключа на смарт-карту)

    В настоящее время в 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 $$\to$$ редактирование документа Person $$\to$$ закладка Administration (Администрирование) $$\to$$ раздел Password Management (Управление паролями)].

    Серверная проверка паролей поддерживается при работе со смарт-картами, если все существующие ID-файлы являются файлами-копиями ID, защищенного смарт-картой (не обращайте внимания на противоположные утверждения в онлайновой справке Notes). Так же, как и в случае срока действия пароля, проверка пароля управляется через пользовательский документ Person в Domino Directory [опция Check password (Проверять пароль) в разделе Password Management (Управление паролями)].

    Наконец, поддержка смарт-карт пока не распространяется на регистрацию новых пользователей и серверов. Поэтому архитекторы и администраторы системы безопасности должны включать операцию защиты смарт-картой в свои планы развертывания системы — либо вручную (по одному), либо автоматизированно (при помощи программы Notes С API).

    Вернуться к учебному плану