Зашифровать данные в базе данных

zVlad
Уже с Приветом
Posts: 15420
Joined: 30 Apr 2003 16:43
Has thanked: 1 time

Re: Зашифровать данные в базе данных

Post by zVlad »

Flash-04 wrote: 27 Dec 2020 02:00 В Active Directory хранится информация о пользователях имеющих доступ в Enterprise network. Для того M$ её и создала. Кастомеры не являются пользователями сети, потому информация о них действительно хранится в БД. Что по вашему тут неправильного?
MS создал недоразвитое решение. Как всегда. На МФ все "пользователи", и мой аккаунт - RACF Special, у которого все возможности по умолчанию и пользователи клиента хранятся в одном месте - базе данных RACF, или, если хотишь, Active Directory в теминологии MS. Это позволяет избежать проблему нашего друга, топикстартера. Аккунты RACF, в зависимости от того где они могут быть использоиваны - в каких приложениях -, могут иметь или не иметь разнообразные "сегменты". Например для работы в Юникс, или NetView. Если аккоунт не имеет сегмента Юникс, то Юникс ему недоступен. Простейшие аккаунты клиента не имеют никаких сегментов и существуют только для верификации пароля.
Понятно что скоммуниздить RACF базу данных невозможно. Но даже если скоммуниздить то восстановить пароли невозможно. Думаю не надо обьяснять почему. Тоже, полагаю, относится к Active Directory. Странно почему кастомеры, по Вашему, не могут быть там. Кстати, кастомеры нашего клиента точно имеют аккаунты в Active Directory.
Кроме Active Directory имеются разные там LDAP-ы. Думаю что ситуация топикстартера надумана.
User avatar
Mark
Уже с Приветом
Posts: 1982
Joined: 10 Oct 2000 09:01
Location: New England

Re: Зашифровать данные в базе данных

Post by Mark »

shadow7256 wrote: 25 Dec 2020 16:55
Mark wrote: 23 Dec 2020 12:58
shadow7256 wrote:
timeau wrote: 21 Dec 2020 00:50 у MSSQL на 200% есть возможность шифрования базы налету.
так я же писал, что ихние DBA сидят в Индии и тупые как пробки (те технари и менеджры что в Англии сидят тоже дебилы еще те), они не желают учить это и просто говорят своему начальству что this is not secure enough.
А давайте предложим вашему клиенту контракт по внедрению TDE :) если интересно пишите в личку


Sent from my iPhone using Tapatalk
А что конкретно этот контракт будет подразумевать?
Вкратце - Transparent Database Encryption (TDE) implementation:
- Encrypted database storage setup including certificates/wallets configuration
- Data migration into encrypted storage/tablespace with zero downtime using online redefinition
- Routine maintenance procedures adjustments (startup/shutdown, backups. certificates rotation)
Если вас серьезно интересует proposal - пишите в личку
p.s. Это так же можно объеденить с внедрение Oracle Advanced Compression (ACO) чтоб ужать данные (в сренднем в 2-4 раза жмутся без performance degradation)
p.p.s. TDE and ACO требуют дополнительного лицензирования. Если у клиента не куплено то надо покупать
User avatar
Mark
Уже с Приветом
Posts: 1982
Joined: 10 Oct 2000 09:01
Location: New England

Re: Зашифровать данные в базе данных

Post by Mark »

shadow7256 wrote: 22 Dec 2020 19:19 Бля... просто нет слов!!! Я уже теперь борюсь не этим гребаным барклаем, а со своим начальником (и менеджером, который тоже девелопер).

Я им говорю, что RSA НЕ предназначен для шифрования больших объемов данных. Просто физически это невозможно, для этого есть тот же AES например. У асимметричных и симметричных алгоритмов разные цели абсолютно и не надо пытаться применить один алгоритм, если у него другая цель. Мне в ответ "ну вот мы пообещали RSA и барклай согласился и надо делать RSA" :angry: Так может прежде, чем предлагать что то, надо сначала понять а подойдет ли это решение? Разумно ли его пользовать? я уже устал присылать им статьи в инете..

может кто подскажет ссылку на статью, которая ясно и четко покажет для чего нужен RSA и для чего AES...
Если мы все еще об Oracle TDE то оно не поддерживает RSA. Только DES and AES:
https://docs.oracle.com/database/121/AS ... ASOAG10117
User avatar
Mark
Уже с Приветом
Posts: 1982
Joined: 10 Oct 2000 09:01
Location: New England

Re: Зашифровать данные в базе данных

Post by Mark »

Flash-04 wrote: 27 Dec 2020 02:00 В Active Directory хранится информация о пользователях имеющих доступ в Enterprise network. Для того M$ её и создала. Кастомеры не являются пользователями сети, потому информация о них действительно хранится в БД. Что по вашему тут неправильного?
ну можно создать внешний домен для кастомеров - и используя directory services законнектить все к базе (Oracle EUS for example). но в принципе и хранение app users в базе это не криминал - просто хеш вместо plain text password - это как бы закон!
User avatar
valchkou
Уже с Приветом
Posts: 4195
Joined: 27 Apr 2011 03:43
Location: Сергели ->Chicago

Re: Зашифровать данные в базе данных

Post by valchkou »

согласен с некоторыми ораторами, простое работающее решение использовать vault + AES.
Простое не значит плохое или недостаточно безопасное!
Вопрос тут в другом, как защитить сам VAULT от несанкционированного доступа и от потери самого вольта.

Вариант без вольта тоже сработает, это установка сертификата на саму машину где запущена прога.
Но и тут есть подводные камни. Как управлять такими сертификатами?

Короче простого решения нет, если нет системы и процесса управления ключами/секретами/сертификатами.
Но если есть, то реализовать фичу просто.
alex_127
Уже с Приветом
Posts: 7723
Joined: 29 Mar 2000 10:01
Location: Kirkland,WA

Re: Зашифровать данные в базе данных

Post by alex_127 »

интересно может будет почитать про https://docs.microsoft.com/en-us/sql/re ... rver-ver15
одной строчкой: engine never sees unencrypted data. по зашифрованному ключу можно делать индех. и он сортирован (range scans). но больше места займет.
User avatar
Flash-04
Уже с Приветом
Posts: 63430
Joined: 03 Nov 2004 05:31
Location: RU -> Toronto, ON

Re: Зашифровать данные в базе данных

Post by Flash-04 »

Mark wrote: 04 Jan 2021 18:52
Flash-04 wrote: 27 Dec 2020 02:00 В Active Directory хранится информация о пользователях имеющих доступ в Enterprise network. Для того M$ её и создала. Кастомеры не являются пользователями сети, потому информация о них действительно хранится в БД. Что по вашему тут неправильного?
ну можно создать внешний домен для кастомеров - и используя directory services законнектить все к базе (Oracle EUS for example). но в принципе и хранение app users в базе это не криминал - просто хеш вместо plain text password - это как бы закон!
в принципе можно, да.
Not everyone believes what I believe but my beliefs do not require them to.
User avatar
Mark
Уже с Приветом
Posts: 1982
Joined: 10 Oct 2000 09:01
Location: New England

Re: Зашифровать данные в базе данных

Post by Mark »

valchkou wrote: 12 Jan 2021 03:25 согласен с некоторыми ораторами, простое работающее решение использовать vault + AES.
Простое не значит плохое или недостаточно безопасное!
Вопрос тут в другом, как защитить сам VAULT от несанкционированного доступа и от потери самого вольта.

Вариант без вольта тоже сработает, это установка сертификата на саму машину где запущена прога.
Но и тут есть подводные камни. Как управлять такими сертификатами?

Короче простого решения нет, если нет системы и процесса управления ключами/секретами/сертификатами.
Но если есть, то реализовать фичу просто.
а чем вас orapki не устраивает как тулза - у автора ведь Oracle DB? Зачем выдумывать велосипед? Есть более продвинутые (и дорогие) решения как тот же Orale Key Vault или claud-based like Azure Key Vault.
User avatar
valchkou
Уже с Приветом
Posts: 4195
Joined: 27 Apr 2011 03:43
Location: Сергели ->Chicago

Re: Зашифровать данные в базе данных

Post by valchkou »

Mark wrote: 12 Jan 2021 15:17
valchkou wrote: 12 Jan 2021 03:25 согласен с некоторыми ораторами, простое работающее решение использовать vault + AES.
Простое не значит плохое или недостаточно безопасное!
Вопрос тут в другом, как защитить сам VAULT от несанкционированного доступа и от потери самого вольта.

Вариант без вольта тоже сработает, это установка сертификата на саму машину где запущена прога.
Но и тут есть подводные камни. Как управлять такими сертификатами?

Короче простого решения нет, если нет системы и процесса управления ключами/секретами/сертификатами.
Но если есть, то реализовать фичу просто.
а чем вас orapki не устраивает как тулза - у автора ведь Oracle DB? Зачем выдумывать велосипед? Есть более продвинутые (и дорогие) решения как тот же Orale Key Vault или claud-based like Azure Key Vault.
меня устраивает :fr: , более того я сторонник готовых решений.
вопрос в другом, почему компания стартера до сих пор этим не пользуется, при том что в клиентах у них как минимум банк
User avatar
Mark
Уже с Приветом
Posts: 1982
Joined: 10 Oct 2000 09:01
Location: New England

Re: Зашифровать данные в базе данных

Post by Mark »

Если я правильно понимаю в банке собственные DBAs которые просто не знают или не хотят особо шевелится. А компания топик-стартера предполагаю никаких прав на базу и инфраструктуру не имеет.
shadow7256
Уже с Приветом
Posts: 9402
Joined: 18 Mar 2004 15:11
Location: New York -> FL

Re: Зашифровать данные в базе данных

Post by shadow7256 »

Mark wrote: 12 Jan 2021 20:42 Если я правильно понимаю в банке собственные DBAs которые просто не знают или не хотят особо шевелится. А компания топик-стартера предполагаю никаких прав на базу и инфраструктуру не имеет.
Всё верно по всем пунктам. Банк согласился на AES шифрование. Ну пусть радуются.
shadow7256
Уже с Приветом
Posts: 9402
Joined: 18 Mar 2004 15:11
Location: New York -> FL

Re: Зашифровать данные в базе данных

Post by shadow7256 »

Гребаный Барклай теперь пишет вот что:

- Data would be protected by AES-256.
- The key would be stored locally on the server in Windows Key Store (CNG)

Поправьте меня спецы, но CNG используется для хранения public and private keys при использовании asymmetric encryption или digital signatures.

Разве можно в CNG хранить symmetric key and IV, которые используются при AES-256 ???
shadow7256
Уже с Приветом
Posts: 9402
Joined: 18 Mar 2004 15:11
Location: New York -> FL

Re: Зашифровать данные в базе данных

Post by shadow7256 »

Mark wrote: 12 Jan 2021 15:17 у автора ведь Oracle DB?
у них SQL Server.
Oleg-NY
Уже с Приветом
Posts: 2418
Joined: 16 Jul 2004 00:32
Location: NY, NY

Re: Зашифровать данные в базе данных

Post by Oleg-NY »

shadow7256 wrote: 25 Jan 2021 18:28 Гребаный Барклай теперь пишет вот что:

- Data would be protected by AES-256.
- The key would be stored locally on the server in Windows Key Store (CNG)

Поправьте меня спецы, но CNG используется для хранения public and private keys при использовании asymmetric encryption или digital signatures.

Разве можно в CNG хранить symmetric key and IV, которые используются при AES-256 ???
Совсем не обязательно там хранить сам актуальный AES-256 key, т.к. они могут и должны быть разными (по аналогии с тем, как это происходит в TLS, например). Все зависит от того как и что вы собираетесь шифровать, но всякие encrypted blob сами в себе содержат оный симметричный ключ в зашифрованном виде с помощью мастер-ключа. Вот мастер-ключ и храните в CNG или где-нибудь еще... Данный подход еще и аппаратно реализован много где так, что можно будет разгрузить основной проц или вынести шифрование в отдельный блок для пущей секретности так сказать! )) Плюс в данном виде можно еще и доп. ключ/пароль от пользоателя подмешивать для авторизации доступа и т.д.
shadow7256
Уже с Приветом
Posts: 9402
Joined: 18 Mar 2004 15:11
Location: New York -> FL

Re: Зашифровать данные в базе данных

Post by shadow7256 »

Oleg-NY wrote: 25 Jan 2021 18:49
shadow7256 wrote: 25 Jan 2021 18:28 Гребаный Барклай теперь пишет вот что:

- Data would be protected by AES-256.
- The key would be stored locally on the server in Windows Key Store (CNG)

Поправьте меня спецы, но CNG используется для хранения public and private keys при использовании asymmetric encryption или digital signatures.

Разве можно в CNG хранить symmetric key and IV, которые используются при AES-256 ???
Совсем не обязательно там хранить сам актуальный AES-256 key, т.к. они могут и должны быть разными (по аналогии с тем, как это происходит в TLS, например). Все зависит от того как и что вы собираетесь шифровать, но всякие encrypted blob сами в себе содержат оный симметричный ключ в зашифрованном виде с помощью мастер-ключа. Вот мастер-ключ и храните в CNG или где-нибудь еще... Данный подход еще и аппаратно реализован много где так, что можно будет разгрузить основной проц или вынести шифрование в отдельный блок для пущей секретности так сказать! )) Плюс в данном виде можно еще и доп. ключ/пароль от пользоателя подмешивать для авторизации доступа и т.д.
Задача конкретная.. где хранить symmetric key and Initialization vector? В CNG невозможно это сделать, так как CNG используется для asymmetric keys.

Return to “Вопросы и новости IT”