Усовершенствования, связанные с безопасностью, в Notes C API
В Lotus Notes/Domino 7 была обнародована серия новых вызовов Lotus Notes C API, с помощью которых можно манипулировать различными аспектами распространения файлов Notes ID и их использованием для обеспечения безопасности документов Notes, например почтовых сообщений. В Lotus Developer Domain есть статья, посвященная подробному обсуждению этих API и возможностей их функциональной реализации. Эта статья называется "Security APIs in Notes/Domino 7.0" и ее можно найти в Lotus Technical Library на сайте http://www.lotus.com/ldd
Мы обсудим этот вопрос на общем уровне и предложим сценарии, в которых использование API может оказаться полезным.
Имена API указывают на их назначение:
- SECKFMOpen(), SECKFMClose();
- SECAttachIdFileToDB(), SECExtractIdFileFromDB();
- SECRefreshIDFile();
- NSFNoteSignExt3(), NSFNoteCopyAndEncryptExt2(), NSFNoteDecryptExt2()1Префикс SEC является сокращением от "security" (безопасность); KFM – это сокращение от "Key File Management" (Управление файлами ключей), а NSF – это, конечно, "Notes Storage Facility". Примеч. авт..
Вызов SECKFMOpen(), в отличие от SECKFMSwitchToIDFile(), появившегося в Notes 5, позволяет разблокировать ID при помощи пароля, без использования применительно к этому ID всего контекста выполнения Notes. Вызов создает контекст, применяемый с ранее упомянутыми вызовами, обеспечивающими безопасность содержания (контента) (шифрование, электронная подпись, дешифрование). Следовательно, теперь программа, использующая Notes C API, может свободно выполнять криптографические операции с идентификационными данными, отличными от тех, которые управляют текущим контекстом выполнения Notes.
Вызов SECAttachIdFileToDB(), наряду со своей противоположностью, позволяют распространять ID-файлы за пределы непосредственно связанной с ними файловой системы. Данные вызовы производят это со всей осторожностью, используя вариант протокола Белловина–Меррита для шифрованного обмена ключами (Bellovin-Merritt Encrypted Key Exchange), который обеспечивает безопасную передачу ключей на сервер и от него. На практике используется двойное шифрование для того, чтобы база данных Domino, в которой хранится вложение – ID, не содержала секретного пароля, необходимого для перевода вложения в активное состояние.
Вызов SECRefreshIDFile() приводит к тому, что ID-файл дополняется всеми автоматическими обновлениями, запланированными для него сервером Domino. Сюда могут входить обновления сертификатов X.509, повторная Notes-сертификация (изменение имени, расширение срока действия), а также смена ключей. Следовательно, ID, хранящийся отдельно, можно программно сделать соответствующим всем последним изменениям.
Можно попытаться представить, как этот набор функций может использоваться бизнес-партнерами IBM, независимыми поставщиками программного обеспечения и т. п.
- Приложения, которые обрабатывают для пользователей безопасное содержимое новыми методами, например подготавливая его к передаче и к обработке другими системами и приложениями, к примеру к передаче на портативный компьютер (PDA). Иллюстрацией служит клиент Domino Web Access, который производит криптографические операции над почтой, используя импортированные ID-файлы (см. раздел 7.5, "Безопасный обмен сообщениями при помощи Domino Web Access").
- Приложения, позволяющие выполнять распределенное индексирование и архивирование защищенной почты Notes.
- Приложения, управляющие Notes ID методами, отличными от тех, которые использует система восстановления ID Domino (например, другое централизованное хранилище).
- Приложения, используемые в специфических ситуациях, когда полезным оказывается криптографическое обеспечение безопасности и соответствующие манипуляции.