Опубликован: 04.07.2008 | Доступ: свободный | Студентов: 629 / 31 | Оценка: 4.83 / 5.00 | Длительность: 42:11:00
Лекция 10:

Модель безопасности Notes/Domino

< Лекция 9 || Лекция 10: 12 || Лекция 11 >

10.3.2 Безопасность Notes

Безопасность Notes связана с защитой сервера Domino, содержащихся на нем баз данных Notes и данных, содержащихся в этих базах данных Notes, как показано на рис. 10.6.

Безопасность Notes

Рис. 10.6. Безопасность Notes

В этом разделе описываются элементы безопасности Notes.

Сертификация

Notes использует концепцию идентификаторов Notes ID, основанных на криптографии открытого ключа и сертификатах. Сертификат представляет собой уникальный электронный штамп, идентифицирующий пользователя или сервер. Идентификаторы сервера и пользователя содержат один или несколько сертификатов Notes. Кроме того, идентификаторы пользователей могут содержать один или несколько интернет-сертификатов, идентифицирующих пользователей при употреблении SSL для подключения к серверу в Интернете или для отправки подписанного или зашифрованного почтового сообщения S/MIME.

Сертификат содержит:

  • Имя центра сертификации, выдавшего сертификат.
  • Имя пользователя сервера, для которого был выдан сертификат.
  • Открытый ключ, сохраняемый как в Domino Directory, так и в ID-файле (файле идентификатора). Notes использует открытый ключ для шифрования сообщений, пересылаемых владельцу открытого ключа, а также для подтверждения подписи владельца идентификатора.
  • Электронную подпись.
  • Срок действия сертификата.

Сертификаты хранятся в файлах идентификаторов, а также в документах Person, Server и Certifier в Domino Directory. Открытые ключи не являются секретными. Любой пользователь может просмотреть открытый ключ другого пользователя и применить его для отправления зашифрованных почтовых сообщений или для аутентификации пользователя. Важно то, что при просмотре открытого ключа можно быть уверенным в его надежности, так как Domino применяет его для идентификации. Пользователи должны иметь возможность получить открытый ключ центра сертификации, издавшего сертификат, прежде чем они смогут выполнять аутентификацию владельца сертификата. Если сертификат пользователя выдан тем же центром сертификации, что и сертификат другого пользователя или сервера, то первый пользователь может проверить открытый ключ для сертификата, после чего он будет точно знать открытый ключ, связанный с именем сервера или пользователя. Если сертификат пользователя был выдан другим центром сертификации, то для аутентификации потребуется кросс-сертификат.

Если пользователи и серверы зарегистрированы, Domino автоматически создает сертификат Notes для каждого идентификатора пользователя и сервера. Кроме того, для идентификаторов пользователей можно создавать интернет-сертификаты либо с применением центра сертификации Domino Certificate Authority (CA), либо с применением стороннего центра сертификации (Certificate Authority). Domino 6 создает интернет-сертификаты, используя формат сертификатов x.509v3, который включает поддержку расширений сертификатов x.509, списков отзыва сертификатов [Certificate Revocation Lists (CRL)] и пунктов распространения сертификатов [Certificate Distribution Points (CDP)].

Шифрование

Криптография – это наука и искусство тайнописи или, если точнее, хранения информации (на короткий или долгий период времени) в такой форме, которая допускает ее просмотр только теми лицами, которым вы позволяете это делать, скрывая ее от других. Криптосистема представляет собой метод выполнения этой задачи. Криптоанализ представляет собой практику нарушения таких попыток скрыть информацию либо посредством обнаружения математических недостатков таких систем (например, слабой энтропии), либо с использованием механизмов грубой силы (методов последовательного перебора) новыми способами. Криптография и криптоанализ вместе составляют криптологию.

Изначальная информация, подлежащая скрытию, называется открытым текстом. Скрытая информация называется шифротекстом (ciphertext). Шифрованием называется любая процедура преобразования открытого текста в шифротекст. Дешифрование – любая процедура преобразования шифротекста в открытый текст.

Криптосистема, в частности встроенная в Notes и Domino, разрабатывается таким образом, чтобы дешифрование осуществлялось только при определенных условиях, что обычно означает, что оно должно выполняться только владельцами механизма дешифрования (например, реализации RSA Security BSAFE Engine в Notes и Domino) и определенного фрагмента информации, называемого ключом дешифрования, который прилагается к механизму дешифрования в процессе дешифрования.

Открытый текст преобразуется в шифротекст средствами внутреннего механизма шифрования Notes и Domino с четко установленным способом функционирования (метод шифрования), на практике зависящим от определенного фрагмента информации (ключа шифрования), который оказывает существенное воздействие на выходные данные процесса шифрования.

Результат использования метода дешифрования и ключа дешифрования для расшифровки шифротекста, созданного с использованием метода шифрования и ключа шифрования, должен всегда соответствовать первоначальному открытому тексту (иногда допускаются незначительные различия).

В этом процессе ключ шифрования и ключ дешифрования могут быть как одинаковыми, так и неодинаковыми. Если они одинаковы, криптосистема называется системой симметричного ключа; в противном случае она называется системой несимметричного ключа. Notes и Domino используют для шифрования сочетание систем симметричного ключа и несимметричного ключа. Шифрование данных выполняется с использованием симметричного ключа, сам ключ шифруется открытым ключом целевого получателя и добавляется к зашифрованному сообщению. После получения получатель выполняет дешифрование симметричного ключа своим закрытым ключом, после чего осуществляет дешифрование сообщение расшифрованным симметричным ключом.

Такое использование систем симметричного и асимметричного шифрования устраняет необходимость использования дополнительного метода распространения симметричных ключей. Кроме того, в Notes, механизм шифрования полностью прозрачен для пользователей Notes.

Цифровые подписи

Цифровые подписи представляют собой "побочный продукт" шифрования; они предлагают другую форму защиты, удостоверяя получателя подписанного сообщения электронной почты в том, что сообщение было отправлено стороной, его подписавшей, и что его содержимое не было изменено в процессе передачи (то же относится и к подписанному документу, хранящемуся в базе данных, где цифровая подпись удостоверяет, что документ аутентичен и не был никем и никоим образом изменен). Кроме того, при использовании цифровых подписей тот, кто подписал сообщение (или автор документа), не может сказать, что он не отправлял сообщение (или не писал документ). Это называется термином "non-repudiation" (невозможность отказа от авторства).

Как и шифрование, обработка цифровых подписей прозрачна для пользователя. Обработка цифровых подписей (в данном примере – для сообщений электронной почты) выполняется следующим образом:

  1. Почтовый клиент отправителя вычисляет дайджест сообщения (message digest) для всего сообщения. Дайджест сообщения представляет собой уникальный хешкод фиксированной длины (не зависящей от фактической длины сообщения), создаваемый из целого сообщения функцией одностороннего хеширования.
  2. Почтовый клиент отправителя выполняет шифрование дайджеста сообщения с использованием закрытого ключа отправителя, после чего добавляет зашифрованный дайджест сообщения и сертификат отправителя (который содержит открытый ключ) к сообщению.
  3. Почтовый клиент получателя выполняет дешифрование дайджеста сообщения, используя открытый ключ подписавшей стороны, который является частью сертификата подписавшей стороны.
  4. Почтовый клиент получателя вычисляет собственный дайджест сообщения и сравнивает его с дайджестом сообщения, добавленным к сообщению электронной почты. Если два дайджеста идентичны, это удостоверяет, что сообщение пришло от данного отправителя и не было изменено при передаче.
Управление доступом

Каждая база данных содержит таблицу управления доступом, или, по-другому, список контроля доступа [access control list, (ACL)], которая используется в Domino для определения уровня доступа пользователей и серверов к базе данных. Когда пользователь открывает базу данных, Domino классифицирует пользователя в соответствии с уровнем доступа, определяющим привилегии. Уровень доступа для пользователя в различных базах данных может варьироваться.

Уровень доступа, назначенный пользователю, определяет задачи, которые пользователь может выполнять в базе данных. Уровень доступа, назначенный серверу, определяет, какую информацию сервер может реплицировать в определенной базе данных. Только пользователь с доступом Manager может создать или изменить ACL базы данных, находящейся на сервере.

Существуют следующие уровни управления доступом (перечислены в порядке возрастания привилегий): No Access, Depositor, Reader, Author, Editor, Designer, Manager.

Управление выполнением

ECL, впервые реализованный в Notes 4.5, дает возможность пользователям осуществлять защиту своих данных от почтовых бомб (e-mail bombs), вирусов, троянских коней (Trojan horses) и нежелательного вмешательства приложений. ECL обеспечивает механизм управления разрешением на выполнение таких программ или кода, а также предоставляемым им уровнем доступа.

Управление ECL осуществляется для каждого пользователя в отдельности и может контролироваться на очень тонком уровне. Например, пользователь может указать, что если документ подписан определенными доверенными коллегами, то программы, выполняемые кодом в документе, могут осуществлять доступ к документам и базам данных и изменять переменные окружения, но не могут осуществлять доступ к файловой системе или внешним программам.

ECL использует цифровые подписи для проверки выполняемого кода. При попытке выполнить фрагмент кода, Notes проверяет цифровую подпись для этого кода, после чего просматривает параметры ECL пользователя, чтобы определить, можно ли выполнить определенное действие или же следует спросить пользователя. Если пользователь, подписавший код, указан в ECL пользователя (либо явно, в составе организации, например: */Lotus, либо через Default) и включена соответствующая возможность, то происходит прямое выполнение кода. Если ECL не содержит имени пользователя, подписавшего код, или если оно есть, но данная возможность не включена, пользователю будет выдано диалоговое окно, сообщающее о выполняемом действии, подписавшем его пользователе (и способе проверки подписи), а также о возможности, не разрешенной текущими параметрами ECL. Пользователь имеет следующие варианты: Abort (Отмена), Execute Once (Выполнить однократно) или Trust Signer (Доверять подписавшему пользователю). Если код не подписан, тогда для определения разрешенных возможностей будет использоваться запись No Signature (Нет подписи) для клиентского ECL.

Локальная безопасность

Это понятие связано со способностью шифрования целой базы данных с применением ID-файла. На сервере шифрование базы данных выполняется с использованием файла идентификатора сервера Notes. На локальной рабочей станции шифрование базы данных осуществляется с применением файла идентификатора пользователя Notes.

Это не позволит людям, каким-то образом получившим копию базы данных, просмотреть ее содержимое, если у них нет идентификатора Notes ID, который применялся при ее шифровании. Этот метод называется многоуровневой защитой, когда средства и инструменты защиты совместно используются для усиления существующих служб обеспечения конфиденциальности. В данном случае вам необходимо иметь как базу данных, так и идентификатор Notes.

Как говорилось выше, файл идентификатора необходим для доступа к зашифрованным данным в базе данных, за исключением тех случаев, когда она находится на сервере. Если база данных зашифрована идентификатором Notes сервера и пользователи попытаются получить доступ к базе данных через механизм сервера базы данных Domino, база данных будет расшифрована и представлена пользователям открытым текстом. В этом случае, если информация имеет более конфиденциальный характер, может иметь смысл шифровать данные на коммуникационном порте.

10.4 Заключение

В этой лекции был представлен обзор основных концепций безопасности, реализованных в Lotus Notes и Domino. В следующих двух лекциях мы представим пошаговые инструкции и более подробное описание защиты и ее применения.

< Лекция 9 || Лекция 10: 12 || Лекция 11 >