Инструменты пользователя

Инструменты сайта


siebel_strong_encryption_pack

Siebel Strong Encryption Pack

Добрый вечер, уважаемые телезрители. Сегодня в передаче я расскажу Вам о Siebel Strong Encryption Pack. Как оказалось, на некоторых проектах были вопросы о возможностях, которые реализуемы Siebel Strong Encryption Pack. Я всё-таки решил привести краткий пример, что бы у всех было представление.

Задача следующая: в БД Siebel необходимо хранить зашифрованные данные в колонке (-ах), а при доступе к записи на уровне BC/Applet-ов данные должны быть дешифрованы и получены нормальные значения.

Более подробно о безопасности, шифровании в Siebel, читайте книгу: Siebel Security Guide. https://docs.oracle.com/cd/B40099_02/books/Secur/Secur_DataEncrypt.html

Как устанавливать описано по ссылке (подробно не останавливаюсь, так как везде, где я видел, SSEP уже был установлен вместе с Siebel Enterprise): https://docs.oracle.com/cd/B40099_02/books/Secur/Secur_DataEncrypt29.html#wp1270657

Что можно делать при помощи Siebel Strong Encryption Pack:

  1. AES encryption (128, 192, and 256 bits), using AES Encryptor
  2. RC2 encryption (128 bits), using RC2 Encryptor. Siebel Business Applications support RC2 56-bit encryption without requiring that you use the Siebel Strong Encryption Pack.
  3. Key Database Upgrade utility. This utility decrypts the key file (if previously encrypted with a 56-bit or 128-bit RC2 encryption key) and then re-encrypts the key file with a longer key and a more secure algorithm.

То есть: шифрование/дешифрование данных алгоритмами AES/RC2; хранение ключей и их добавление при помощи серверной утилиты.

Ограничения/советы (описываю основные):

  1. Не шифруйте «чтопопало», это влияет на производительность (шифруйте номера карт, и т.п.)
  2. Assignment Manager не работает с шифрованными данными при назначении
  3. Enterprise Integration Manager не шифрует и не дешифрует данные
  4. Шифрование не работает с LOV, MLOV
  5. При определении колонок для шифрования, необходимо четко высчитать длину (формула по ссылке ниже)

Это основное, более детально здесь: https://docs.oracle.com/cd/B40099_02/books/Secur/Secur_DataEncrypt16.html#wp1018983

Как оно работает (краткое руководство)?

Данные перед попаданием в БД проходят через шифровщик/шифрометатель/шифрун/шифратор (AES Encryptor/RC2 Encryptor). Данные шифруются при помощи ключей (encryption key), которые хранятся (ключи хранятся) в специальном бинарном файле на сервере (дальше keyfile.bin). После шифрования, данные попадают в таблицу, а повидло в карамельку. При доступе пользователя к данным (БК/Апплет), они дешифруются тем же способом и ключом. Файл хранится в папке «[folder]/siebsrvr/ADMIN». Файл защищен паролем, а ключи можно добавить при помощи утилиты keydbmgr.exe (читать дальше). Ключи можно добавлять, а все последующие записи будут шифроваться при помощи последнего установленного ключа. https://docs.oracle.com/cd/B40099_02/books/Secur/Secur_DataEncrypt15.html#wp1396733

Как мы работаем с keydbmgr.exe?

Для доступа к ключам необходимо открыть cmd.exe и залогиниться в утилиту. Она вас ждёт тутки: «[folder]/siebsrvr/BIN». Запускать нужно вот так: keydbmgr.exe \u db_username \p db_password \l language \c config_file Где:

  1. db_username – пользователь в БД (лучше SADMIN)
  2. db_password – пароль пользователя
  3. language – язык (я выбираю ENU, так как там нет приколов с кодировкой текста)
  4. config_file – файл конфигурации аппликейшна (я скопировал fins.cfg в серверных конфигах и в секции конфига [DBSecAdpt] (если базючная авторизация) – установите правильный DataSourceName, так как могут быть ошибки)

Программа попросит ввести мастер-пароль (упаси, вы его забудете). После этого появится шикарное меню:

В меню:

  1. Изменить пароль (мастер-пароль)
  2. Добавить новый ключ шифрования
  3. Выйти

Хочешь знать больше? Читай тут: https://docs.oracle.com/cd/B40099_02/books/Secur/Secur_DataEncrypt20.html#wp1396778

«Конфигурируем колонки своими руками».

Для того, что бы шифровщик знал, какие колонки нужно шифровать/дешифровать, необходимо немного потулзячить. Залогинились в тулзы и открываем список таблиц/колонок. После того, как выбрали колонку, которая будет шифроваться устанавливаем следующие значения:

  1. Computation Expression – колонка, в которой указывается алгоритм шифрования и название шифруемой колонка, пример: SiebelEncrypt.RC2 ([ColumnName]) или SiebelEncrypt.AES ([ColumnName]), шифрованные данные хранятся в ATTRIB_01
  2. Encrypt Key Specifier – указывается колонка, где хранится номер ключа в keyfile.bin

Читаем тут (Тем, кто хочет настроить поиск по данным колонкам, тоже читать тут): https://docs.oracle.com/cd/E14004_01/books/Secur/Secur_DataEncrypt22.html#wp1269557

Как смотрится?

Зашифруем колонку Closure Summary на Opportunity (ATTRIB_01):

После проведенных манипуляций с колонкой в пункте 6, получаем (Hi, how are you? – так выглядит в Siebel-е):


А вы такие идёте в таблицу, что бы украсть данные и видите (ROW_ID = ‘1-1DPFR’):


«Ох, ноу, зе дейта из ананвейлабл».

Так как ключи шифрования хранятся в файле keyfile.bin, представим, что файл удалили или перенесли (я просто меняю название файла на: keyfile_.bin).

Данные не показываются на экран, вместо них показывается надпись «Данные недоступны», а при попытке ввода значения в поле, получите ошибку.

Знать всем:

  1. Перед тем, как логиниться в keydbmgr.exe впервые – скопируйте файл keyfile.bin (обязательно сделать резервную копию). Это единственный способ восстановить данные, если забыли мастер-пароль в keydbmgr.exe.
  2. Не забывайте пароль от keydbmgr.exe.
  3. Когда читаете bookshelf, обращайте внимание на примечания: NOTE: The loss of the key file's password is irrecoverable.
  4. При копировании файла на сервер, обязательно убедитесь, что он не повредился при процессе копирования.
  5. Забыли пароль и файла нет – данных тоже нет, то есть они всегда будут зашифрованными. Как сказал мой знакомый: «If the key file is lost or damaged, it might not be possible to recover the encrypted data without a backup key file.»

Для изменения алгоритма шифрования зашифрованных данных, читайте: https://docs.oracle.com/cd/B40099_02/books/Secur/Secur_DataEncrypt23.html#wp1078261

Владислав 2014/12/02 15:47

siebel_strong_encryption_pack.txt · Последние изменения: 2019/09/06 11:04 — wiki_admin