Безпека в середовищі баз даних

 

Очевидні достоїнства баз даних у сучасному середовищі обробки даних є гарантією їхнього подальшого розвитку й використання. Контроль доступу в цій області важливий через колосальну концентрацію інформації.

У даний момент «хребтом» базових систем обробки інформації в багатьох більших організаціях є локальна мережа, що поступово займає таке ж місце й у фірмах меншого розміру. Зростаюча популярність локальних мереж вимагає відповідного захисту інформації, але історично вони були спроектовані саме не для розмежування, а для полегшення доступу й колективного використання ресурсів. У середовищі локальних мереж у межах будинку або району (містечка) співробітник, що має доступ до фізичної лінії, може переглядати дані, не призначені для нього. З метою захисту інформації в різних комбінаціях використаються контроль доступу, авторизація й шифрування інформації, доповнені резервуванням.

 

Визначення потреби в захисті інформації

 

Забезпечення безпеки інформації - дорога справа, і не стільки через витрати на закупівлю або установку засобів, скільки через те, що важко кваліфіковано визначити границі розумної безпеки й відповідної підтримки системи в працездатному стані.

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

Засоби захисту інформації не можна проектувати, купувати або встановлювати доти, поки не зроблений відповідний аналіз.

Аналіз ризику повинен дати об'єктивну оцінку багатьох факторів (схильність появі порушення роботи, імовірність появи порушення роботи, збиток від комерційних втрат, зниження коефіцієнта готовності системи, суспільні відносини, юридичні проблеми) і надати інформацію для визначення підходящих типів і рівнів безпеки. Комерційні організації все більшою мірою переносять критичну корпоративну інформацію з більших обчислювальних систем у середовище відкритих систем і зустрічаються з новими й складними проблемами при реалізації й експлуатації системи безпеки. Сьогодні усе більше організацій розвертають потужні розподілені бази даних і додатка клієнт/сервер для керування комерційними даними. При збільшенні розподілу зростає також і ризик неавторизованого доступу до даних й їхній перекручування.

Шифрування даних традиційно використалося урядовими й оборонними департаментами, але у зв'язку зі зміною потреб і деякі найбільш солідні компанії починають використати можливості, надавані шифруванням для забезпечення конфіденційності інформації.

Фінансові служби компаній (насамперед у США) представляють важливу й більшу користувальницьку базу й часто специфічні вимоги пред'являються до алгоритму, використовуваному в процесі шифрування. Опубліковані алгоритми, наприклад DES (Див. нижче), є обов'язковими. У той же час, ринок комерційних систем не завжди вимагає такого строгого захисту, як урядові або оборонні відомства, тому можливо застосування продуктів й іншого типу, наприклад PGP (Pretty Good Privacy).

 

Шифрування

 

Шифрування даних може здійснюватися в режимах On-Line (у темпі надходження інформації) і Off-Line (автономному). Зупинимося докладніше на першому типі, що представляє більший інтерес. Найпоширеніший два алгоритми.

Стандарт шифрування даних DES (Data Encryption Standard) був розроблений фірмою IBM на початку 70-х років й у цей час є урядовим стандартом для шифрування цифрової інформації. Він рекомендований Асоціацією Американських Банкірів. Складний алгоритм DES використає ключ довжиною 56 біт й 8 бітів перевірки на парність і жадає від зловмисника перебору 72 квадрильйонів можливих ключових комбінацій, забезпечуючи високий ступінь захисту при невеликих витратах. При частій зміні ключів алгоритм задовільно вирішує проблему перетворення конфіденційної інформації в недоступну.

Алгоритм RSA був винайдений Рівестом, Шаміром й Альдеманом в 1976 році і являє собою значний крок у криптографії. Цей алгоритм також був прийнятий як стандарт Національним Бюро Стандартів.

DES, технічно, є СИМЕТРИЧНИМ алгоритмом, а RSA - АСИМЕТРИЧНИМ, тобто він використає різні ключі при шифруванні й дешифруванні. Користувачі мають два ключі й можуть широко поширювати свій відкритий ключ. Відкритий ключ використається для шифрування повідомлення користувачем, але тільки певний одержувач може дешифрувати його своїм секретним ключем; відкритий ключ марний для дешифрування. Це робить непотрібними секретні угоди про передачу ключів між кореспондентами. DES визначає довжину даних і ключа в бітах, а RSA може бути реалізований при будь-якій довжині ключа. Ніж довше ключ, тим вище рівень безпеки (але стає довготриваліше й процес шифрування й дешифрування). Якщо ключі DES можна згенерувати за мікросекунди, то зразковий час генерації ключа RSA - десятки секунд. Тому відкриті ключі RSA надають перевагу розробники програмних засобів, а секретні ключі DES - розробники апаратур.

 

Деякі рішення

 

Прикладом архітектури клієнт/сервер, що добре доповнюють засобу шифрування, можуть служити Oracle Server, мережні продукти (SQMNet) і програмне забезпечення клієнта.

Мережна служба безпеки (SNS - Secure Network Services) пропонує стандартний, оптимізований алгоритм шифрування DES із ключем довжиною 56 біт для організацій, від яких потрібно використати стандарт DES. Для замовників поза межами США або Канади SNS пропонує DES40, у якому комбінується використання алгоритму шифрування DES із загальноприйнятим ключем довжиною 40 біт (експорт технологій шифрування в США законодавчо обмежений). Поряд з DES можливо також використання алгоритму шифрування RSA RC4.

Секретний, генеруючий випадковим чином ключ для кожної сесії SQL* Net зберігає весь мережний трафік - включаючи паролі, значення даних, SQL-твердження й зберігають виклики, що, і результати.

Для виявлення модифікації або підміни даних під час передачі SNS генерує криптографічно захищене значення, що обчислює по вмісту повідомлення, і включає його в кожен пакет, переданий по мережі. При одержанні пакета в пункті призначення SNS негайно робить перевірку цілісності кожного пакета.

Стійкість до перекручування даних забезпечується в такий спосіб:

1) криптографічно захищена контрольна сума в кожному пакеті SQL* Net забезпечує захист від модифікації даних і заміни операції;

2) при виявленні порушень операції негайно автоматично завершуються;

3) інформація про всі порушення реєструється в журналі.

Поряд із цим забезпечується багато протокольна перекодування даних, тобто повністю підтримується Oracle Multiprotocol Interchange - при роботі із зашифрованою сесією можна починати роботу з одним мережним протоколом, а закінчувати з іншим, при цьому не потрібне дешифрування або перешифрування інформації. SNS повністю підтримується наскрізними шлюзами, Oracle Transparent Gateways, і процедурними шлюзами, Oracle Procedural Gateways, які дають можливість організовувати повністю зашифровані сесії клієнт/сервер до відмінного від Oracle джерелам даних, включаючи Adabas, CA-Datacom, DB2, DRDA, FOCUS, IDMS, IMS, ISAM, MUMPS, QSAM, Rdb, RMS, SAP, SQL/DS, SQL/400, SUPRA, Teradata, TOTAL, VSAM й інші.

SNS працює з усіма основними протоколами, підтримуваними SQL* Net, включаючи AppleTalk, Banyan, DECnet, LU6.2, MaxSix, NetBIOS, SPX/IPX, TCP/IP, X.25 й інші.

Забезпечується незалежність від топології мережі - SNS працює у всіх основних мережних середовищах, підтримуваних SQL-Net.

SNS являє собою додатковий продукт до стандартного пакета SQL* Net, тобто потрібно попередньо придбати ліцензію на SQL* Net. Продукт треба купувати й для клієнта, і для сервера.

Разом тим СУБД Oracle, починаючи з версії 7.1, пароль передається по мережі в зашифрованому виді.

Це означає, що при організації зв'язку клієнт/сервер використається новий протокол установлення зв'язку, у якому застосовується сеансовий ключ, придатний тільки для єдиної спроби з'єднання з базою даних і використовуваний як ключ для шифрування пароля, перш ніж він буде переданий клієнтам. Oracle-сервер знаходить зашифрований пароль для цього користувача й використає його як ключ, яким він зашифровує сеансовый ключ. Потім сервер пересилає цей зашифрований сеансовий ключ клієнтові. Клієнт шифрує (застосовуючи той же самий однобічний алгоритм, що використається сервером) пароль, уведений користувачем, і з його допомогою дешифрує зашифрований сеансовий ключ. Виявивши цей сеансовий ключ, він використає його - це стає спільним секретом клієнта й сервера - для шифрування пароля користувача. Цей зашифрований пароль потім передається через мережу серверу. Сервер дешифрує пароль і потім зашифровує його, використовуючи однобічний алгоритм сервера; результат цих обчислень звіряється зі значенням, збереженим у словнику даних. Якщо вони збігаються, клієнтові надається доступ. Такий підхід реалізується як у з'єднаннях типу клієнт/сервер, так і сервер/сервер, де сеанси встановлюються через так називані повноважні ланки баз даних (тобто ланки баз даних без вкладених імен користувачів і паролів).