API захисту в Notes / Domino 7.0

У даній статті ми розглянемо багато різних функціональних можливостей, пов'язаних з новими API шифрування / дешифрування, в Notes / Domino 7 Notes. Ми обговоримо, як бізнес-партнери та інші Notes-розробники можуть реалізувати у своїх програмах можливість читати і створювати Notes-шифровані і S / MIME-шифровані повідомлення. Існує незліченна безліч сценаріїв, коли бізнес-партнери та розробники можуть захотіти реалізувати можливість переглядати та / або створювати зашифровані документи у своїх додатках. У даній статті наведено огляд критичних технічних і адміністративних подробиць, необхідних для реалізації цих та інших захисних функціональних можливостей Notes / Domino 7.


Через велику кількість різних сценаріїв, в яких Notes-додатків може знадобитися звернутися до зашифрованих документів, ми пропонуємо, щоб ви використовували цю статтю як вступ, яке допоможе зрозуміти роботу нових API. Ви можете згодом підлаштувати процедури реалізації, що містяться в цій статті, під архітектуру своїх додатків.


У даній статті передбачається, що ви є досвідченим розробником додатків Notes / Domino з хорошими знаннями системи захисту Notes / Domino. Також бажано мати уявлення про модель сертифікатів безпеки Domino.


Огляд API системи захисту Notes / Domino 7


Нові методи API системи захисту є частиною C-бібліотеки середовища виконання Notes / Domino 7. За допомогою бібліотеки середовища виконання Notes / Domino 7 до цих API можуть звертатися програми, здатні використовувати NRPC-виклики.


До появи нових API в Notes / Domino 7 (підмножина яких було також представлено в Notes / Domino 6.5x) Notes-додаток міг читати / створювати Notes-шифровані і S / MIME-шифровані документи за допомогою API NSFNoteCopyAndEncrypt і NSFNoteDecrypt відповідно. Існує кілька причин, чому цього методу може бути недостатньо для Notes-додатки. По-перше, додаток повинен перейти на контекст користувача, що виконує шифрування / дешифрування шляхом виклику SECKFMSwitchToIDFile. Переключення контексту між користувачами (наприклад, перемикання з користувача-адміністратора на іншого користувача і назад) у кілька разів знижує продуктивність. Крім того, SECKFMSwitchToIDFile вимагає, щоб існував і був в актуальному стані ID-файл користувача. Це означає, що Notes-додаток має стежити за одними ID-файлами і виявляти зміни, що впливають на ID-файли (зміни Name і публічного ключа). Нові API можуть виявляти ці зміни замість вас і спрощують управління ID-файлами. Використання нових API системи захисту не обов'язково, але допоможе вам подолати описані вище обмеження.


Крім того, існували раніше API PKCS12_ExportIDFileToFile і PKCS12_ImportFileToIDFile дозволяють виконувати імпорт і експорт інтернет-сертифікатів і ключів в ID-файл. Маючи інтернет-сертифікати і приватні ключі в ID-файлі, можна прочитати S / MIME-шифроване поштове повідомлення і передати поштове повідомлення, підписане S / MIME-кодом. Хоча цей метод дозволяє читати S / MIME-повідомлення (якщо у вас є відповідний крипто-механізм), це може бути не зручним рішенням для вас, а також може використовуватися для дешифрування лише S / MIME-зашифрованих повідомлень. Нові API полегшують доступ / створення як Notes-шифрованих, так і S / MIME-зашифрованих повідомлень.



Нові API Notes / Domino


Більш докладний і точний опис цих API наведено в "Довіднику з Lotus C API Notes / Domino 7.0" і "Керівництві користувача". У даному розділі містяться короткі описи API, які будуть розглянуті в даній статті.


SECKFMOpen


Цей метод надає описувач повноважень (credential handle) ID-файлу, якщо ви передасте коректні ім'я ID-файлу і пароль. Цей описувач повноважень потім може передаватися в інші функції в даному списку, так що перемикання контексту між користувачами через SECKFMSwitchToIDFile стає не потрібним. Шифрування / дешифрування неможливо без правильних повноважень.


SECKFMClose


Закриває описувач SECKFMOpen по завершенні вашої роботи з ним.


SECAttachIdFileToDB


Використовується для читання ID-файлу і захищеного приєднання його до бази даних (наприклад, в призначений для користувача поштовий файл). Це полегшує управління користувацькими ID-файлами таким чином, що не потрібно підтримувати центральний репозиторій для користувача ID-файлів. Для приєднання необхідно надати ID-файл і пароль. ID-файл зберігається в документі профілю (ім'я вказується при виклику функції) бази даних.


SECExtractIdFileFromDB


Ця функція від'єднує ID-файл, приєднаний функцією SECAttachIdFileToDB. ID-файл повинен бути від'єднаний, для того щоб передати в SECKFMOpen відповідний ID-шлях.


SECRefreshIdFile


Ця функція перевіряє в каталозі для даного користувача зміни Notes-сертифікації, зміни Internet-сертифікації та перейменування користувача. Ви передаєте в цей метод ID-файл, пароль і сервер, на якому потрібно перевірити зміни. Якщо будь-яка зміна виявляється, ID-файл буде оновлено. Зазвичай, при виявленні змін ви повинні повторно приєднати ID-файл за допомогою SECAttachIdFileToDB. Ви повинні завжди викликати SECRefreshIdFile після вилучення ID, щоб гарантувати його актуальність.


NSFNoteDecrpytExt2


Це розширення NSFNoteDecryptExt. Ви передаєте в цей метод описувач повноважень KFM, для того щоб можна було коректно дешифрувати повідомлення.


NSFNoteCopyAndEncryptExt2


Це розширення NSFNoteCopyAndEncrypt. Ви передаєте в цей метод описувач повноважень KFM, для того щоб можна було коректно зашифрувати повідомлення.



Використання нових API системи захисту


Перш ніж відбудеться шифрування / дешифрування, повинен бути доступний Notes ID з повноваженнями для захищеного документа, щоб могли бути використані коректні повноваження. Якщо у вас є для користувача ID-файл і пароль, ви можете приєднати ID-файл до поштової файлу, використовуючи нову функцію SECAttachIdFileToDB. Наприклад, ваше Notes-програма може зберігати кожен для користувача ID-файл в $ MyId (Або інше унікальне ім'я) документа профілю. Взагалі кажучи, існує незліченна безліч інтерфейсів, через які ваше додаток може запитати і зберегти для користувача ID і пароль. Ваше додаток вирішує, як надати потрібний інтерфейс способом, який прийнятний для кінцевого користувача і архітектури вашого продукту.


Використовуючи Domino Web Access як приклад, Notes ID приєднується як профіль $ shimmerid. Ви можете перевірити, що документ $ shimmerid існує, використовуючи програму Notespeek, яка покаже вам список ID (див. малюнок 1).


Малюнок 1. Список ID Notespeek

Ви можете захотіти надати інтерфейс для збору існуючого пароля і нового пароля користувача. Цей інтерфейс міг би потім забезпечити цими даними вашу програму. Одним зі способів зробити це може бути виконання наступних дій:



  1. Від'єднайте користувача ID-файл від поштового файлу за допомогою методу SECExtractIdFileFromDB.

  2. Виконайте метод SECRefreshIdFile з вщ'еднаним ID-файлом. Це гарантує відображення в ID-файлі змін Notes-сертифікації, інтернет-сертифікації та перейменування користувача.

  3. Використовуючи дані про новий пароль, виконайте метод SECKFMChangePassword для зміни пароля.

  4. Повторно приєднаєте ID-файл до поштової файлу, використовуючи SECAttachIdFileToDB.

  5. Закрийте повідомлення і видаліть від'єднаний ID-файл зі сховища.


Висновок


У цій статті ми познайомили вас з новими API системи захисту, представленими в Notes / Domino 7. Ми також показали вам, як використовувати ці API і запропонували деякі практичні приклади додатків. Ми сподіваємося, що ви знайшли цю статтю корисною. Не соромтеся надсилати пропозиції щодо інших пов'язаних з системою захисту Notes / Domino темами, розгляд яких ви хотіли б побачити в майбутніх статтях.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*