Администрирование Lotus Notes 4.1x и Lotus Domino 4.5

Назначение ключей шифрования к полям


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

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

Рис. 9.28. Выбор ключей шифрования "по умолчанию" в форме

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

2. Разработчик разрешает шифрование для полей, но не делает выбор ключей шифрования "по умолчанию" в форме. Создатель документа может выбрать ключи шифрования для каждого документа в отдельности в окне свойств этого документа

Рис. 9.29. Выбор ключа шифрования для документа

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

Если в форме нет шифруемых полей, а пользователь делает попытку шифровать создаваемый по форме документ, он получит следующее сообщение об ошибке "No encryptable fields found in document. Encryptable fields must be specified in form".

3. Разработчик добавляет в форму предопределенное поле с именем SecretEncryptionKeys. В это поле в формате текстового списка каким-либо способом добавляется список названий ключей шифрования.

4. Разработчик использует для назначения ключей шифрования документу возможности встроенных классов LotusScript.

По своей внутренней реализации в Notes все эти способы ничем не отличаются. В документе всегда появляется предопределенное поле SecretEncryptionKeys, содержащее текстовый список названий ключей шифрования. Вместо каждого шифруемого поля появляется поле $SealData, в котором, используя окно свойств документа на закладке Fields, удается "прочитать" настоящее название соответствующего шифруемого поля. И, наконец, появляется только одно на весь документ поле $Seal, которое и содержит в зашифрованном виде информацию из всех шифруемых полей документа. Наблюдения за размером поля $Seal в зависимости от количества использованных ключей шифрования позволяют сделать вывод, что каждый новый ключ "добавляет" в поле $Seal еще один экземпляр зашифрованных этим ключом данных. Становится понятно, почему для того, чтобы расшифровать информацию, достаточно иметь всего один ключ.



Содержание раздела